#!/bin/bash

TMPDIR=$(mktemp --directory)

for KEY in LOWKEY HIGHKEY
do
    expect <<END
spawn openssl genrsa -des3 -out ${TMPDIR}/private-encrypted.pem 2048
send -- "aaaa\r"
send -- "aaaa\r"
expect eof
END

    expect <<END
spawn openssl rsa -in ${TMPDIR}/private-encrypted.pem -outform PEM -pubout -out ${TMPDIR}/public.pem
send -- "aaaa\r"
expect eof
END

    expect <<END
spawn openssl rsa -in ${TMPDIR}/private-encrypted.pem -out ${TMPDIR}/private.pem -outform PEM
send -- "aaaa\r"
expect eof
END

    expect <<END
spawn openssl req -new -x509 -key ${TMPDIR}/private-encrypted.pem -out ${TMPDIR}/cert.pem -days 360
send -- "aaaa\r"
send -- "\r"
send -- "\r"
send -- "\r"
send -- "\r"
send -- "\r"
send -- "\r"
send -- "\r"
expect eof
END

    cat ${TMPDIR}/cert.pem ${TMPDIR}/private.pem > ${TMPDIR}/all.pem

    perl -we '
        my( $tmp, $key ) = ( shift, shift );
        my $inp;
        open( $inp, "$tmp/all.pem" );
        my $r = join( "", <$inp> );
        close $inp;
        while( <> ) { s/\@\@\@$key\@\@\@/$r/; print }' ${TMPDIR} ${KEY} < src/foolscap/test/common.py \
    | sponge src/foolscap/test/common.py

    rm ${TMPDIR}/*.pem
done

rm -rf ${TMPDIR}
