@@ -433,7 +433,7 @@ certificate_verify(Signature, PublicKeyInfo, Version,
433433 end .
434434% %--------------------------------------------------------------------
435435-spec verify_signature (ssl_record :ssl_version (), binary (), {term (), term ()}, binary (),
436- public_key_info ()) -> true | false .
436+ public_key_info ()) -> true | false .
437437% %
438438% % Description: Checks that a public_key signature is valid.
439439% %--------------------------------------------------------------------
@@ -2701,9 +2701,13 @@ encode_psk_binders(Binders) ->
27012701 Len = byte_size (Result ),
27022702 <<? UINT16 (Len ), Result /binary >>.
27032703
2704-
27052704hello_extensions_list (HelloExtensions ) ->
2706- [Ext || {_ , Ext } <- maps :to_list (HelloExtensions ), Ext =/= undefined ].
2705+ case maps :take (pre_shared_key , HelloExtensions ) of
2706+ {# pre_shared_key_client_hello {} = PSK , Rest } ->
2707+ [Ext || {_ , Ext } <- maps :to_list (Rest ), Ext =/= undefined ] ++ [PSK ];
2708+ _ ->
2709+ [Ext || {_ , Ext } <- maps :to_list (HelloExtensions ), Ext =/= undefined ]
2710+ end .
27072711
27082712% %-------------Decode handshakes---------------------------------
27092713dec_server_key (<<? UINT16 (PLen ), P :PLen /binary ,
@@ -3127,7 +3131,9 @@ decode_extensions(<<?UINT16(?PRE_SHARED_KEY_EXT), ?UINT16(Len),
31273131 # pre_shared_key_client_hello {
31283132 offered_psks = # offered_psks {
31293133 identities = decode_psk_identities (Identities ),
3130- binders = decode_psk_binders (Binders )}}});
3134+ binders = decode_psk_binders (Binders )},
3135+ binder_length = BLen + 2 }}
3136+ );
31313137decode_extensions (<<? UINT16 (? PRE_SHARED_KEY_EXT ), ? UINT16 (Len ),
31323138 ExtData :Len /binary , Rest /binary >>,
31333139 Version , MessageType = server_hello , Acc ) ->
0 commit comments