aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ssl/src/ssl_connection.erl
diff options
context:
space:
mode:
authorDanil Zagoskin <[email protected]>2014-04-21 22:00:09 +0400
committerIngela Anderton Andin <[email protected]>2014-04-23 10:59:27 +0200
commitb4fc84117b6bd1105ca8ccb91f699564ac400dff (patch)
tree86106ff6431f3753613c4ee27114a1f31137445f /lib/ssl/src/ssl_connection.erl
parenta7446cd75e2a48e810faef26d91e9d70247297d1 (diff)
downloadotp-b4fc84117b6bd1105ca8ccb91f699564ac400dff.tar.gz
otp-b4fc84117b6bd1105ca8ccb91f699564ac400dff.tar.bz2
otp-b4fc84117b6bd1105ca8ccb91f699564ac400dff.zip
ssl: always pass negotiated version when selecting hashsign
Negotiated version is now always passed to ssl_handshake:select_hashsign because ssl_handshake:select_cert_hashsign has different rsa defaults on tlsv1.2 and older versions.
Diffstat (limited to 'lib/ssl/src/ssl_connection.erl')
-rw-r--r--lib/ssl/src/ssl_connection.erl5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/ssl/src/ssl_connection.erl b/lib/ssl/src/ssl_connection.erl
index edf49a340b..75100864c8 100644
--- a/lib/ssl/src/ssl_connection.erl
+++ b/lib/ssl/src/ssl_connection.erl
@@ -441,8 +441,9 @@ certify(#server_key_exchange{} = Msg,
Connection:handle_unexpected_message(Msg, certify_server_keyexchange, State);
certify(#certificate_request{hashsign_algorithms = HashSigns},
- #state{session = #session{own_certificate = Cert}} = State0, Connection) ->
- HashSign = ssl_handshake:select_hashsign(HashSigns, Cert),
+ #state{session = #session{own_certificate = Cert},
+ negotiated_version = Version} = State0, Connection) ->
+ HashSign = ssl_handshake:select_hashsign(HashSigns, Cert, Version),
{Record, State} = Connection:next_record(State0#state{client_certificate_requested = true}),
Connection:next_state(certify, certify, Record,
State#state{cert_hashsign_algorithm = HashSign});