Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions mock_nonce_checker_test.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 7 additions & 2 deletions nonce.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,12 @@ func (ng NonceGetterFunc) GetNonce(ctx context.Context) (string, error) { return
// e.g. to prevent replay attacks, or to verify that the nonce is the expected one, like
// if requested using the Accept-Signature header.
type NonceChecker interface {
CheckNonce(ctx context.Context, nonce string) error
CheckNonce(ctx context.Context, nonce NonceValue) error
}

type NonceValue struct {
Comment thread
mariusor marked this conversation as resolved.
Present bool
Value string
}

type NonceCheckerFunc func(ctx context.Context, nonce string) error
Expand All @@ -32,7 +37,7 @@ func (nc NonceCheckerFunc) GetNonce(ctx context.Context, nonce string) error { r

type noopNonceChecker struct{}

func (n noopNonceChecker) CheckNonce(_ context.Context, _ string) error { return nil }
func (n noopNonceChecker) CheckNonce(_ context.Context, _ NonceValue) error { return nil }

type nonceGetter struct{}

Expand Down
1 change: 1 addition & 0 deletions serializer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ func TestNewSerializer(t *testing.T) {
t.Helper()

require.NoError(t, err)

ser, ok := s.(*strictSerializer)
require.True(t, ok)
assert.Equal(t, "foo", ser.key)
Expand Down
6 changes: 4 additions & 2 deletions verifier.go
Original file line number Diff line number Diff line change
Expand Up @@ -286,15 +286,17 @@ func (e *expectations) assert(
nc NonceChecker,
) error {
var (
nonce string
missingComponents []string
cmv compositeMessageVerifier
mv messageVerifier
)

nonce := NonceValue{}

nonceValue, noncePresent := params.Params.Get(string(Nonce))
if noncePresent {
nonce = nonceValue.(string) //nolint: forcetypeassert
nonce.Value = nonceValue.(string) //nolint: forcetypeassert
nonce.Present = true
}

if err := nc.CheckNonce(msg.Context, nonce); err != nil {
Expand Down
32 changes: 19 additions & 13 deletions verifier_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ func TestExpectationsAssertParameters(t *testing.T) {
now := time.Now().UTC()
falseVal := false
trueVal := true
noNonce := NonceValue{Present: false, Value: ""}

for _, tc := range []struct {
uc string
Expand All @@ -97,7 +98,11 @@ func TestExpectationsAssertParameters(t *testing.T) {
configure: func(t *testing.T, nc *NonceCheckerMock) {
t.Helper()

nc.EXPECT().CheckNonce(mock.Anything, "test").Return(errors.New("test error"))
nonce := NonceValue{
Present: true,
Value: "test",
}
nc.EXPECT().CheckNonce(mock.Anything, nonce).Return(errors.New("test error"))
},
assert: func(t *testing.T, err error) {
t.Helper()
Expand All @@ -121,7 +126,7 @@ func TestExpectationsAssertParameters(t *testing.T) {
configure: func(t *testing.T, nc *NonceCheckerMock) {
t.Helper()

nc.EXPECT().CheckNonce(mock.Anything, "").Return(nil)
nc.EXPECT().CheckNonce(mock.Anything, noNonce).Return(nil)
},
assert: func(t *testing.T, err error) {
t.Helper()
Expand All @@ -145,7 +150,7 @@ func TestExpectationsAssertParameters(t *testing.T) {
configure: func(t *testing.T, nc *NonceCheckerMock) {
t.Helper()

nc.EXPECT().CheckNonce(mock.Anything, "").Return(nil)
nc.EXPECT().CheckNonce(mock.Anything, noNonce).Return(nil)
},
assert: func(t *testing.T, err error) {
t.Helper()
Expand Down Expand Up @@ -173,7 +178,7 @@ func TestExpectationsAssertParameters(t *testing.T) {
configure: func(t *testing.T, nc *NonceCheckerMock) {
t.Helper()

nc.EXPECT().CheckNonce(mock.Anything, "").Return(nil)
nc.EXPECT().CheckNonce(mock.Anything, noNonce).Return(nil)
},
assert: func(t *testing.T, err error) {
t.Helper()
Expand All @@ -199,7 +204,7 @@ func TestExpectationsAssertParameters(t *testing.T) {
configure: func(t *testing.T, nc *NonceCheckerMock) {
t.Helper()

nc.EXPECT().CheckNonce(mock.Anything, "").Return(nil)
nc.EXPECT().CheckNonce(mock.Anything, noNonce).Return(nil)
},
assert: func(t *testing.T, err error) {
t.Helper()
Expand All @@ -221,7 +226,7 @@ func TestExpectationsAssertParameters(t *testing.T) {
configure: func(t *testing.T, nc *NonceCheckerMock) {
t.Helper()

nc.EXPECT().CheckNonce(mock.Anything, "").Return(nil)
nc.EXPECT().CheckNonce(mock.Anything, noNonce).Return(nil)
},
assert: func(t *testing.T, err error) {
t.Helper()
Expand Down Expand Up @@ -249,7 +254,7 @@ func TestExpectationsAssertParameters(t *testing.T) {
configure: func(t *testing.T, nc *NonceCheckerMock) {
t.Helper()

nc.EXPECT().CheckNonce(mock.Anything, "").Return(nil)
nc.EXPECT().CheckNonce(mock.Anything, noNonce).Return(nil)
},
assert: func(t *testing.T, err error) {
t.Helper()
Expand All @@ -275,7 +280,7 @@ func TestExpectationsAssertParameters(t *testing.T) {
configure: func(t *testing.T, nc *NonceCheckerMock) {
t.Helper()

nc.EXPECT().CheckNonce(mock.Anything, "").Return(nil)
nc.EXPECT().CheckNonce(mock.Anything, noNonce).Return(nil)
},
assert: func(t *testing.T, err error) {
t.Helper()
Expand All @@ -297,7 +302,7 @@ func TestExpectationsAssertParameters(t *testing.T) {
configure: func(t *testing.T, nc *NonceCheckerMock) {
t.Helper()

nc.EXPECT().CheckNonce(mock.Anything, "").Return(nil)
nc.EXPECT().CheckNonce(mock.Anything, noNonce).Return(nil)
},
assert: func(t *testing.T, err error) {
t.Helper()
Expand All @@ -319,7 +324,7 @@ func TestExpectationsAssertParameters(t *testing.T) {
configure: func(t *testing.T, nc *NonceCheckerMock) {
t.Helper()

nc.EXPECT().CheckNonce(mock.Anything, "").Return(nil)
nc.EXPECT().CheckNonce(mock.Anything, noNonce).Return(nil)
},
assert: func(t *testing.T, err error) {
t.Helper()
Expand All @@ -336,7 +341,7 @@ func TestExpectationsAssertParameters(t *testing.T) {
configure: func(t *testing.T, nc *NonceCheckerMock) {
t.Helper()

nc.EXPECT().CheckNonce(mock.Anything, "").Return(nil)
nc.EXPECT().CheckNonce(mock.Anything, noNonce).Return(nil)
},
assert: func(t *testing.T, err error) {
t.Helper()
Expand All @@ -353,7 +358,7 @@ func TestExpectationsAssertParameters(t *testing.T) {
configure: func(t *testing.T, nc *NonceCheckerMock) {
t.Helper()

nc.EXPECT().CheckNonce(mock.Anything, "").Return(nil)
nc.EXPECT().CheckNonce(mock.Anything, noNonce).Return(nil)
},
assert: func(t *testing.T, err error) {
t.Helper()
Expand Down Expand Up @@ -395,7 +400,8 @@ func TestExpectationsAssertParameters(t *testing.T) {
configure: func(t *testing.T, nc *NonceCheckerMock) {
t.Helper()

nc.EXPECT().CheckNonce(mock.Anything, "foo").Return(nil)
nonce := NonceValue{Present: true, Value: "foo"}
nc.EXPECT().CheckNonce(mock.Anything, nonce).Return(nil)
},
assert: func(t *testing.T, err error) {
t.Helper()
Expand Down