@@ -10,8 +10,7 @@ function toNormalizedJsonString(payload: object) {
1010
1111const eventPayload = toNormalizedJsonString ( { foo : "bar" } ) ;
1212const secret = "mysecret" ;
13- const signatureSHA1 = "sha1=640c0ea7402a3f74e1767338fa2dba243b1f2d9c" ;
14- const signatureSHA256 =
13+ const signature =
1514 "sha256=e3eccac34c43c7dc1cbb905488b1b81347fcc700a7b025697a9d07862256023f" ;
1615
1716describe ( "verify" , ( ) => {
@@ -51,69 +50,40 @@ describe("verify", () => {
5150 ) ;
5251 } ) ;
5352
54- test ( "verify(secret, eventPayload, signatureSHA1 ) returns true for correct signature" , async ( ) => {
55- const signatureMatches = await verify ( secret , eventPayload , signatureSHA1 ) ;
53+ test ( "verify(secret, eventPayload, signature ) returns true for correct signature" , async ( ) => {
54+ const signatureMatches = await verify ( secret , eventPayload , signature ) ;
5655 expect ( signatureMatches ) . toBe ( true ) ;
5756 } ) ;
5857
59- test ( "verify(secret, eventPayload, signatureSHA1) returns false for incorrect signature" , async ( ) => {
60- const signatureMatches = await verify ( secret , eventPayload , "foo" ) ;
61- expect ( signatureMatches ) . toBe ( false ) ;
62- } ) ;
63-
64- test ( "verify(secret, eventPayload, signatureSHA1) returns false for correct secret" , async ( ) => {
65- const signatureMatches = await verify ( "foo" , eventPayload , signatureSHA1 ) ;
66- expect ( signatureMatches ) . toBe ( false ) ;
67- } ) ;
68-
69- test ( "verify(secret, eventPayload, signatureSHA1) returns true if eventPayload contains special characters (#71)" , async ( ) => {
70- // https://github.com/octokit/webhooks.js/issues/71
71- const signatureMatchesLowerCaseSequence = await verify (
72- "development" ,
73- toNormalizedJsonString ( {
74- foo : "Foo\n\u001b[34mbar: ♥♥♥♥♥♥♥♥\nthis-is-lost\u001b[0m\u001b[2K" ,
75- } ) ,
76- "sha1=82a91c5aacc9cdc2eea893bc828bd03d218df79c" ,
77- ) ;
78- expect ( signatureMatchesLowerCaseSequence ) . toBe ( true ) ;
79- const signatureMatchesUpperCaseSequence = await verify (
80- "development" ,
81- toNormalizedJsonString ( {
82- foo : "Foo\n\u001B[34mbar: ♥♥♥♥♥♥♥♥\nthis-is-lost\u001B[0m\u001B[2K" ,
83- } ) ,
84- "sha1=82a91c5aacc9cdc2eea893bc828bd03d218df79c" ,
85- ) ;
86- expect ( signatureMatchesUpperCaseSequence ) . toBe ( true ) ;
87- const signatureMatchesEscapedSequence = await verify (
88- "development" ,
89- toNormalizedJsonString ( {
90- foo : "\\u001b" ,
91- } ) ,
92- "sha1=bdae4705bdd827d026bb227817ca025b5b3a6756" ,
58+ test ( "verify(secret, eventPayload, signature) returns true for secret provided as Buffer" , async ( ) => {
59+ const signatureMatches = await verify (
60+ Buffer . from ( secret ) ,
61+ eventPayload ,
62+ signature ,
9363 ) ;
94- expect ( signatureMatchesEscapedSequence ) . toBe ( true ) ;
64+ expect ( signatureMatches ) . toBe ( true ) ;
9565 } ) ;
9666
97- test ( "verify(secret, eventPayload, signatureSHA256 ) returns true for correct signature" , async ( ) => {
67+ test ( "verify(secret, eventPayload, signature ) returns false for incorrect signature" , async ( ) => {
9868 const signatureMatches = await verify (
9969 secret ,
10070 eventPayload ,
101- signatureSHA256 ,
71+ "sha256=xxxccac34c43c7dc1cbb905488b1b81347fcc700a7b025697a9d07862256023f" ,
10272 ) ;
103- expect ( signatureMatches ) . toBe ( true ) ;
73+ expect ( signatureMatches ) . toBe ( false ) ;
10474 } ) ;
10575
106- test ( "verify(secret, eventPayload, signatureSHA256 ) returns false for incorrect signature" , async ( ) => {
76+ test ( "verify(secret, eventPayload, signature ) returns false for incorrect signature" , async ( ) => {
10777 const signatureMatches = await verify ( secret , eventPayload , "foo" ) ;
10878 expect ( signatureMatches ) . toBe ( false ) ;
10979 } ) ;
11080
111- test ( "verify(secret, eventPayload, signatureSHA256 ) returns false for incorrect secret" , async ( ) => {
112- const signatureMatches = await verify ( "foo" , eventPayload , signatureSHA256 ) ;
81+ test ( "verify(secret, eventPayload, signature ) returns false for incorrect secret" , async ( ) => {
82+ const signatureMatches = await verify ( "foo" , eventPayload , signature ) ;
11383 expect ( signatureMatches ) . toBe ( false ) ;
11484 } ) ;
11585
116- test ( "verify(secret, eventPayload, signatureSHA256 ) returns true if eventPayload contains special characters (#71)" , async ( ) => {
86+ test ( "verify(secret, eventPayload, signature ) returns true if eventPayload contains special characters (#71)" , async ( ) => {
11787 // https://github.com/octokit/webhooks.js/issues/71
11888 const signatureMatchesLowerCaseSequence = await verify (
11989 "development" ,
@@ -147,31 +117,31 @@ describe("verifyWithFallback", () => {
147117 expect ( verifyWithFallback ) . toBeInstanceOf ( Function ) ;
148118 } ) ;
149119
150- test ( "verifyWithFallback(secret, eventPayload, signatureSHA256 , [bogus]) returns true" , async ( ) => {
120+ test ( "verifyWithFallback(secret, eventPayload, signature , [bogus]) returns true" , async ( ) => {
151121 const signatureMatches = await verifyWithFallback (
152122 secret ,
153123 eventPayload ,
154- signatureSHA256 ,
124+ signature ,
155125 [ "foo" ] ,
156126 ) ;
157127 expect ( signatureMatches ) . toBe ( true ) ;
158128 } ) ;
159129
160- test ( "verifyWithFallback(bogus, eventPayload, signatureSHA256 , [secret]) returns true" , async ( ) => {
130+ test ( "verifyWithFallback(bogus, eventPayload, signature , [secret]) returns true" , async ( ) => {
161131 const signatureMatches = await verifyWithFallback (
162132 "foo" ,
163133 eventPayload ,
164- signatureSHA256 ,
134+ signature ,
165135 [ secret ] ,
166136 ) ;
167137 expect ( signatureMatches ) . toBe ( true ) ;
168138 } ) ;
169139
170- test ( "verify(bogus, eventPayload, signatureSHA256 , [bogus]) returns false" , async ( ) => {
140+ test ( "verify(bogus, eventPayload, signature , [bogus]) returns false" , async ( ) => {
171141 const signatureMatches = await verifyWithFallback (
172142 "foo" ,
173143 eventPayload ,
174- signatureSHA256 ,
144+ signature ,
175145 [ "foo" ] ,
176146 ) ;
177147 expect ( signatureMatches ) . toBe ( false ) ;
0 commit comments