2424 verification_name_escapes_values_correctly /1 ,
2525 verification_name_does_not_escape_values_correctly /1 ,
2626 authentication_server_last_message_is_an_error /1 ,
27+ authentication_ignores_extra_extensions /1 ,
2728 authentication_server_rejects_the_proof /1 ,
2829 authentication_server_rejects_invalid_encoded_proof /1 ,
2930 authentication_client_rejects_the_signature /1 ,
5253 wrong_flag_salt /1 ,
5354 wrong_flag_it_count /1 ,
5455 wrong_it_count /1 ,
56+ wrong_extensions /1 ,
5557 too_much_input /1 ,
5658 not_supported_authzid /1 ,
5759 not_supported_mext /1 ,
@@ -89,6 +91,7 @@ groups() ->
8991 ]},
9092 {authentication , [parallel ], [
9193 authentication_server_last_message_is_an_error ,
94+ authentication_ignores_extra_extensions ,
9295 authentication_server_rejects_the_proof ,
9396 authentication_server_rejects_invalid_encoded_proof ,
9497 authentication_client_rejects_the_signature
@@ -125,6 +128,7 @@ groups() ->
125128 wrong_flag_salt ,
126129 wrong_flag_it_count ,
127130 wrong_it_count ,
131+ wrong_extensions ,
128132 too_much_input
129133 ]},
130134 {not_supported , [parallel ], [
@@ -398,6 +402,11 @@ authentication_server_last_message_is_an_error(_Config) ->
398402 ),
399403 ? assertEqual (<<" invalid" >>, Reason ).
400404
405+ authentication_ignores_extra_extensions (_Config ) ->
406+ ServerState = typical_scram_configuration (server ),
407+ ClientFirst1 = <<" n,,n=user,r=fyko+d2lbbFgONRv9qkxdawL,g=extra1,h=extra2" >>,
408+ ? assertMatch ({continue , _ , _ }, fast_scram :mech_step (ServerState , ClientFirst1 )).
409+
401410configuration_client_sends_wrong_username (_Config ) ->
402411 ClientState1 = typical_scram_configuration (client ),
403412 ServerState0 = typical_scram_configuration (server ),
@@ -671,6 +680,14 @@ wrong_it_count(_Config) ->
671680 <<" r=fyko+d2lbbFgONRv9qkxdawL3rfcNHYJY1ZVvWVs7j,s=QSXCR+Q6sek8bf92,i=wrong" >>,
672681 {error , Reason , _ } = fast_scram :mech_step (ClientState3 , ServerWrongItCount ),
673682 ? assertEqual (<<" invalid-iteration-count" >>, Reason ).
683+ wrong_extensions (_Config ) ->
684+ ServerState = typical_scram_configuration (server ),
685+ ClientFirst1 = <<" n,,n=user,r=fyko+d2lbbFgONRv9qkxdawL,9=invalid" >>,
686+ {error , Reason1 , _ } = fast_scram :mech_step (ServerState , ClientFirst1 ),
687+ ? assertEqual (<<" invalid-extensions" >>, Reason1 ),
688+ ClientFirst2 = <<" n,,n=user,r=fyko+d2lbbFgONRv9qkxdawL,zz=invalid" >>,
689+ {error , Reason2 , _ } = fast_scram :mech_step (ServerState , ClientFirst2 ),
690+ ? assertEqual (<<" invalid-extensions" >>, Reason2 ).
674691too_much_input (_Config ) ->
675692 ServerState2 = typical_scram_configuration (server ),
676693 Username = <<" n,,n=user,r=fyko+d2lbbFgONRv9qkxdawL,r=toomuch" >>,
@@ -690,12 +707,9 @@ not_supported_mext(_Config) ->
690707 {error , Reason , _ } = fast_scram :mech_step (ClientState3 , ServerWithMext ),
691708 ? assertEqual (<<" extensions-not-supported" >>, Reason ).
692709not_supported_extension (_Config ) ->
693- ServerState2 = typical_scram_configuration (server ),
694- ClientFirst1 = <<" n,,n=user,r=fyko+d2lbbFgONRv9qkxdawL,t=extension" >>,
695- {error , Reason , _ } = fast_scram :mech_step (ServerState2 , ClientFirst1 ),
696- ? assertEqual (<<" extensions-not-supported" >>, Reason ),
697- ClientFirst2 = <<" n,,n=user,r=fyko+d2lbbFgONRv9qkxdawL,m=extension" >>,
698- {error , Reason , _ } = fast_scram :mech_step (ServerState2 , ClientFirst2 ),
710+ ServerState = typical_scram_configuration (server ),
711+ ClientFirst = <<" n,,n=user,r=fyko+d2lbbFgONRv9qkxdawL,m=extension" >>,
712+ {error , Reason , _ } = fast_scram :mech_step (ServerState , ClientFirst ),
699713 ? assertEqual (<<" extensions-not-supported" >>, Reason ).
700714
701715% %%===================================================================
0 commit comments