summaryrefslogtreecommitdiff
path: root/src/sslkeylog.sh
blob: b5bac946f957808b1ab0e1f01e40691a6a120d14 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/sh
# Invokes the given command, displaying the pre-master secrets to stderr
# (or to the file given by envvar SSLKEYLOGFILE).
#
# Example usage:
# SSLKEYLOGFILE=premaster.txt ./sslkeylog.sh curl https://lekensteyn.nl/

# Do not load the library into gdb or the shell launched by gdb. This prevent
# crashes when the library is built with -fsanitize=address and such.
gdb() {
    export -n LD_PRELOAD
    command gdb -q \
        -ex 'set startup-with-shell off' \
        -ex "set environment LD_PRELOAD=$LD_PRELOAD" \
        "$@"
}

export LD_PRELOAD=$(dirname "$0")/libsslkeylog.so
export SSLKEYLOGFILE=${SSLKEYLOGFILE:-/dev/stderr}

# Run the command
"$@"