#REGTEST_TYPE=devel

varnishtest "Test the ssl_s_* sample fetches"
#REQUIRE_VERSION=2.2
#REQUIRE_OPTIONS=OPENSSL
feature ignore_unknown_macro

server s1 -repeat 3 {
    rxreq
    txresp
} -start

haproxy h1 -conf {
    global
        tune.ssl.default-dh-param 2048
        tune.ssl.capture-cipherlist-size 1
        crt-base ${testdir}
        stats socket "${tmpdir}/h1/stats" level admin

    defaults
        mode http
        option httplog
        log stderr local0 debug err
        option logasap
        timeout connect 1s
        timeout client  1s
        timeout server  1s


    listen clear-lst
        bind "fd@${clearlst}"
        balance roundrobin
        http-response add-header x-ssl-sha1 %[ssl_s_sha1,hex]
        http-response add-header x-ssl-notafter %[ssl_s_notafter]
        http-response add-header x-ssl-notbefore %[ssl_s_notbefore]
        http-response add-header x-ssl-sig_alg %[ssl_s_sig_alg]
        http-response add-header x-ssl-i_dn %[ssl_s_i_dn]
        http-response add-header x-ssl-s_dn %[ssl_s_s_dn]
        http-response add-header x-ssl-s_serial %[ssl_s_serial,hex]
        http-response add-header x-ssl-key_alg %[ssl_s_key_alg]
        http-response add-header x-ssl-der %[ssl_s_der,hex]
        http-response add-header x-ssl-chain-der %[ssl_s_chain_der,hex]
        http-response add-header x-ssl-version %[ssl_s_version]

        server s1 "${tmpdir}/ssl.sock" ssl verify none sni str(www.test1.com)

    listen ssl-lst
        mode http

        bind "${tmpdir}/ssl.sock" ssl strict-sni crt-list ${testdir}/localhost.crt-list

        server s1 ${s1_addr}:${s1_port}
} -start


client c1 -connect ${h1_clearlst_sock} {
    txreq
    rxresp
    expect resp.status == 200
    expect resp.http.x-ssl-sha1 == "2195C9F0FD58470313013FC27C1B9CF9864BD1C6"
    expect resp.http.x-ssl-notafter == "180116230238Z"
    expect resp.http.x-ssl-notbefore == "160117230238Z"
    expect resp.http.x-ssl-sig_alg == "RSA-SHA256"
    expect resp.http.x-ssl-i_dn == "/C=FR/ST=Ile-de-France/L=Paris/O=ozon.io/CN=Ozon Test CA/emailAddress=support@ozon.io"
    expect resp.http.x-ssl-s_dn  == "/C=FR/ST=Ile-de-France/L=Neuilly-sur-Seine/O=TOAD Consulting/OU=eParapher Team/CN=www.test1.com/emailAddress=arnault.michel@toad-consulting.fr"
    expect resp.http.x-ssl-s_serial == "02"
    expect resp.http.x-ssl-key_alg == "rsaEncryption"
    expect resp.http.x-ssl-version == "3"
    expect resp.http.x-ssl-der ~ 3082067930820461A0030201020201.*5E3D4498BB847BC4DE093F9AD1AD3
    expect resp.http.x-ssl-chain-der ~ 3082067930820461A0030201020201.*527A6D6780A610484CE356C4C4E1C
} -run


