#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-buffer-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 "${HAPROXY_TEST_TIMEOUT-5s}"
        timeout client  "${HAPROXY_TEST_TIMEOUT-5s}"
        timeout server  "${HAPROXY_TEST_TIMEOUT-5s}"


    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


