diff options
author | Péter Dimitrov <[email protected]> | 2019-01-08 13:36:53 +0100 |
---|---|---|
committer | Péter Dimitrov <[email protected]> | 2019-01-11 09:59:12 +0100 |
commit | dc9ec91e8ba3e8bdae74c7090a9969211e355f07 (patch) | |
tree | f365b5a70db1fb3cf558c965326657c9445c0b01 /lib/ssl/src/ssl_record.erl | |
parent | 5550d8265860adec290aaf4a9498ec88b1a31386 (diff) | |
download | otp-dc9ec91e8ba3e8bdae74c7090a9969211e355f07.tar.gz otp-dc9ec91e8ba3e8bdae74c7090a9969211e355f07.tar.bz2 otp-dc9ec91e8ba3e8bdae74c7090a9969211e355f07.zip |
ssl: Improve AEAD encode/decode
- Update calculation of nonce and additional data
- Update cipher_aead, decipher_aead
- Add test for TLS 1.3 encode/decode
Change-Id: Id0a5cc68d8746079fb42c0192c0c64405f6d7a72
Diffstat (limited to 'lib/ssl/src/ssl_record.erl')
-rw-r--r-- | lib/ssl/src/ssl_record.erl | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/lib/ssl/src/ssl_record.erl b/lib/ssl/src/ssl_record.erl index ddc83821b4..499ba108f2 100644 --- a/lib/ssl/src/ssl_record.erl +++ b/lib/ssl/src/ssl_record.erl @@ -39,7 +39,8 @@ set_renegotiation_flag/2, set_client_verify_data/3, set_server_verify_data/3, - empty_connection_state/2, initial_connection_state/2, record_protocol_role/1]). + empty_connection_state/2, initial_connection_state/2, record_protocol_role/1, + step_encryption_state/1]). %% Compression -export([compress/3, uncompress/3, compressions/0]). @@ -118,6 +119,20 @@ activate_pending_connection_state(#{current_write := Current, }. %%-------------------------------------------------------------------- +-spec step_encryption_state(connection_states()) -> connection_states(). +%% +%% Description: Activates the next encyrption state (e.g. handshake +%% encryption). +%%-------------------------------------------------------------------- +step_encryption_state(#{pending_read := PendingRead, + pending_write := PendingWrite} = States) -> + NewRead = PendingRead#{sequence_number => 0}, + NewWrite = PendingWrite#{sequence_number => 0}, + States#{current_read => NewRead, + current_write => NewWrite}. + + +%%-------------------------------------------------------------------- -spec set_security_params(#security_parameters{}, #security_parameters{}, connection_states()) -> connection_states(). %% |