diff options
author | lloyd <[email protected]> | 2012-01-19 13:37:39 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2012-01-19 13:37:39 +0000 |
commit | 0ac2549aba9a3265a8108b475dffb380dbb07715 (patch) | |
tree | ac71301adf5c6b337bf70c476f8c5a1dab6befbd /src/tls/tls_client.cpp | |
parent | e3d14f1bacde5f23d63ccc5860d5c13c81f70b3a (diff) |
Support SSLv3 client auth on the client side.
Add getters for major and minor protocoll version on TLS_Session.
Add Certificate_Type code points for ECC certs.
Diffstat (limited to 'src/tls/tls_client.cpp')
-rw-r--r-- | src/tls/tls_client.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/tls/tls_client.cpp b/src/tls/tls_client.cpp index 7abcdf644..ca4a56007 100644 --- a/src/tls/tls_client.cpp +++ b/src/tls/tls_client.cpp @@ -333,6 +333,11 @@ void TLS_Client::process_handshake_msg(Handshake_Type type, state->kex_pub, state->version, state->client_hello->version()); + state->keys = SessionKeys(state->suite, state->version, + state->client_kex->pre_master_secret(), + state->client_hello->random(), + state->server_hello->random()); + if(state->received_handshake_msg(CERTIFICATE_REQUEST) && !state->client_certs->empty()) { @@ -341,15 +346,14 @@ void TLS_Client::process_handshake_msg(Handshake_Type type, "tls-client", state->client_hello->sni_hostname()); - state->client_verify = new Certificate_Verify(writer, state->hash, - rng, private_key); + state->client_verify = new Certificate_Verify(writer, + state->hash, + rng, + state->version, + state->keys.master_secret(), + private_key); } - state->keys = SessionKeys(state->suite, state->version, - state->client_kex->pre_master_secret(), - state->client_hello->random(), - state->server_hello->random()); - writer.send(CHANGE_CIPHER_SPEC, 1); writer.activate(state->suite, state->keys, CLIENT); |