88 signCallback ,
99 verifyCallback ,
1010 type CallbackParams ,
11- type VerifyCallbackResult ,
1211} from '../crypto.js'
1312
1413describe ( 'generateVerificationToken' , ( ) => {
@@ -100,20 +99,20 @@ describe('signCallback / verifyCallback', () => {
10099 expect ( ts ) . toMatch ( / ^ \d + $ / )
101100 } )
102101
103- it ( 'round-trips: sign then verify returns valid= true' , ( ) => {
102+ it ( 'round-trips: sign then verify returns true' , ( ) => {
104103 const { sig, ts } = signCallback ( params , secret )
105- expect ( verifyCallback ( params , ts , sig , secret ) . valid ) . toBe ( true )
104+ expect ( verifyCallback ( params , ts , sig , secret ) ) . toBe ( true )
106105 } )
107106
108107 it ( 'rejects wrong secret' , ( ) => {
109108 const { sig, ts } = signCallback ( params , secret )
110- expect ( verifyCallback ( params , ts , sig , 'wrong-secret' ) . valid ) . toBe ( false )
109+ expect ( verifyCallback ( params , ts , sig , 'wrong-secret' ) ) . toBe ( false )
111110 } )
112111
113112 it ( 'rejects tampered email' , ( ) => {
114113 const { sig, ts } = signCallback ( params , secret )
115114 const tampered = { ...params , email : 'attacker@evil.com' }
116- expect ( verifyCallback ( tampered , ts , sig , secret ) . valid ) . toBe ( false )
115+ expect ( verifyCallback ( tampered , ts , sig , secret ) ) . toBe ( false )
117116 } )
118117
119118 it ( 'rejects tampered request_uri' , ( ) => {
@@ -122,7 +121,7 @@ describe('signCallback / verifyCallback', () => {
122121 ...params ,
123122 request_uri : 'urn:ietf:params:oauth:request_uri:evil' ,
124123 }
125- expect ( verifyCallback ( tampered , ts , sig , secret ) . valid ) . toBe ( false )
124+ expect ( verifyCallback ( tampered , ts , sig , secret ) ) . toBe ( false )
126125 } )
127126
128127 it ( 'rejects expired timestamp (>5 min old)' , async ( ) => {
@@ -139,7 +138,7 @@ describe('signCallback / verifyCallback', () => {
139138 ] . join ( '\n' )
140139 const { createHmac } = await import ( 'node:crypto' )
141140 const staleSig = createHmac ( 'sha256' , secret ) . update ( payload ) . digest ( 'hex' )
142- expect ( verifyCallback ( params , staleTs , staleSig , secret ) . valid ) . toBe ( false )
141+ expect ( verifyCallback ( params , staleTs , staleSig , secret ) ) . toBe ( false )
143142 } )
144143
145144 it ( 'rejects future timestamp' , async ( ) => {
@@ -154,21 +153,17 @@ describe('signCallback / verifyCallback', () => {
154153 ] . join ( '\n' )
155154 const { createHmac } = await import ( 'node:crypto' )
156155 const futureSig = createHmac ( 'sha256' , secret ) . update ( payload ) . digest ( 'hex' )
157- expect ( verifyCallback ( params , futureTs , futureSig , secret ) . valid ) . toBe (
158- false ,
159- )
156+ expect ( verifyCallback ( params , futureTs , futureSig , secret ) ) . toBe ( false )
160157 } )
161158
162159 it ( 'rejects non-numeric timestamp' , ( ) => {
163160 const { sig } = signCallback ( params , secret )
164- expect ( verifyCallback ( params , 'not-a-number' , sig , secret ) . valid ) . toBe (
165- false ,
166- )
161+ expect ( verifyCallback ( params , 'not-a-number' , sig , secret ) ) . toBe ( false )
167162 } )
168163
169164 it ( 'rejects wrong-length sig' , ( ) => {
170165 const { ts } = signCallback ( params , secret )
171- expect ( verifyCallback ( params , ts , 'tooshort' , secret ) . valid ) . toBe ( false )
166+ expect ( verifyCallback ( params , ts , 'tooshort' , secret ) ) . toBe ( false )
172167 } )
173168} )
174169
@@ -183,12 +178,10 @@ describe('signCallback / verifyCallback with handle', () => {
183178 handle : 'alice.pds.example.com' ,
184179 }
185180 const { sig, ts } = signCallback ( params , secret )
186- const result = verifyCallback ( params , ts , sig , secret )
187- expect ( result . valid ) . toBe ( true )
188- expect ( result . handle ) . toBe ( 'alice.pds.example.com' )
181+ expect ( verifyCallback ( params , ts , sig , secret ) ) . toBe ( true )
189182 } )
190183
191- it ( 'signs and verifies callback WITHOUT handle (backward compat) ' , ( ) => {
184+ it ( 'signs and verifies callback WITHOUT handle' , ( ) => {
192185 const secret = 'test-secret'
193186 const params : CallbackParams = {
194187 request_uri : 'urn:ietf:params:oauth:request_uri:test' ,
@@ -197,9 +190,7 @@ describe('signCallback / verifyCallback with handle', () => {
197190 new_account : '1' ,
198191 }
199192 const { sig, ts } = signCallback ( params , secret )
200- const result = verifyCallback ( params , ts , sig , secret )
201- expect ( result . valid ) . toBe ( true )
202- expect ( result . handle ) . toBeUndefined ( )
193+ expect ( verifyCallback ( params , ts , sig , secret ) ) . toBe ( true )
203194 } )
204195
205196 it ( 'produces different signatures with vs without handle' , ( ) => {
@@ -233,7 +224,6 @@ describe('signCallback / verifyCallback with handle', () => {
233224 ...params ,
234225 handle : 'evil.pds.example.com' ,
235226 }
236- const result = verifyCallback ( tamperedParams , ts , sig , secret )
237- expect ( result . valid ) . toBe ( false )
227+ expect ( verifyCallback ( tamperedParams , ts , sig , secret ) ) . toBe ( false )
238228 } )
239229} )
0 commit comments