From 3e65b2864c994885f951de404dae0ecd9c939b9d Mon Sep 17 00:00:00 2001 From: Maxim Lebedev Date: Thu, 3 Feb 2022 02:15:29 +0500 Subject: [PATCH] :test_tube: Added CodeChallengeMethod test with IndieLogin data --- internal/domain/code_challenge_method_test.go | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/internal/domain/code_challenge_method_test.go b/internal/domain/code_challenge_method_test.go index 1ad460e..a5cd1a1 100644 --- a/internal/domain/code_challenge_method_test.go +++ b/internal/domain/code_challenge_method_test.go @@ -144,7 +144,14 @@ func TestCodeChallengeMethod_Validate(t *testing.T) { case domain.CodeChallengeMethodUndefined, domain.CodeChallengeMethodPLAIN: codeChallenge = verifier default: - codeChallenge = base64.RawURLEncoding.EncodeToString(tc.hash.Sum([]byte(verifier))) + h := tc.hash + h.Reset() + + if _, err := h.Write([]byte(verifier)); err != nil { + t.Error(err) + } + + codeChallenge = base64.RawURLEncoding.EncodeToString(h.Sum(nil)) } if result := tc.in.Validate(codeChallenge, verifier); result != !tc.expError { @@ -153,3 +160,16 @@ func TestCodeChallengeMethod_Validate(t *testing.T) { }) } } + +func TestCodeChallengeMethod_Validate_IndieAuth(t *testing.T) { + t.Parallel() + + if ok := domain.CodeChallengeMethodS256.Validate( + "ALiMNf5FvF_LIWLhSkd9tjPKh3PEmai2OrdDBzrVZ3M", + "6f535c952339f0670311b4bbec5c41c00805e83291fc7eb15ca4963f82a4d57595787dcc6ee90571fb7789cbd521fe0178ed", + ); !ok { + t.Errorf("Validate(%s, %s) = %t, want %t", "ALiMNf5FvF_LIWLhSkd9tjPKh3PEmai2OrdDBzrVZ3M", + "6f535c952339f0670311b4bbec5c41c00805e83291fc7eb15ca4963f82a4d57595787dcc6ee90571fb7789cbd521fe0178ed", ok, true, + ) + } +}