@@ -30,12 +30,12 @@ const PROJECT = 'proj_000000000001';
3030const OTHER_PROJECT = 'proj_000000000002' ;
3131
3232const TOK_0 = 'ZMRzpVRsaOJSG_unVlA0oqSaz2kApOohvao_XGR8Q0c' ;
33- const TOK_1 = 'v2.1.3W5_i2g79pUCXyzxWPQWmTqscSNtC_2vuHC84z775Y8 ' ;
34- const TOK_2 = 'v2.2.Vx_qycCHPx2BoYvQrbQ7JrhbONKU7f0jNK23B0YUhOs ' ;
33+ const TOK_1 = '1.tSB1ya3fUJXjnL2nfUht0aCBRh9d1pFCrH_rJIJGGWo ' ;
34+ const TOK_2 = '2.Ko4ZEz_VQ8IZH70koONArHkURyEHZUwLJsqFsGJgwyE ' ;
3535const INTERNAL : Record < ProxyInternalRoute , string > = {
36- 'resolve-worker' : 'fSljhl8vCcBSR-jWXklS-KDL4K8lFb_wPaRAu-aKPv0 ' ,
37- 'resolve-resource' : 'gNOx85Zh_di7yHFjG8AlV0QQ8PbHYs1ipC2ukAl7i5Y ' ,
38- 'verify-prerender-build' : 'A7F1IjLUbEWq0atQH3W5dsR1DidJ6ZgqU6QQ3lehBbc ' ,
36+ 'resolve-worker' : 'Phjba6joMrR31HPBsOamhNdtbT3__9Fg6zkd34dJiS0 ' ,
37+ 'resolve-resource' : 'qqnenNPCqY-C4RMAfPn0AUdXlvKS0tvkDcC8lyjTYck ' ,
38+ 'verify-prerender-build' : 'L-_KXs8KdULytY5ibjHuH095R-1L3OM91NokMoj6828 ' ,
3939} ;
4040const ROUTES = Object . keys ( INTERNAL ) as Array < ProxyInternalRoute > ;
4141
@@ -47,15 +47,15 @@ function nodeTok(gen: number, projectId = PROJECT): string {
4747 if ( gen === 0 ) {
4848 return base64url ( createHmac ( 'sha256' , SECRET ) . update ( projectId ) . digest ( ) ) ;
4949 }
50- const key = Buffer . from ( hkdfSync ( 'sha256' , SECRET , 'void-proxy-token' , 'v2 ' , 32 ) ) ;
51- const mac = createHmac ( 'sha256' , key ) . update ( `void-proxy-token:v2: ${ projectId } :${ gen } ` ) . digest ( ) ;
52- return `v2. ${ gen } .${ base64url ( mac ) } ` ;
50+ const key = Buffer . from ( hkdfSync ( 'sha256' , SECRET , 'void-proxy-token' , 'proxy-token ' , 32 ) ) ;
51+ const mac = createHmac ( 'sha256' , key ) . update ( `void-proxy-token:${ projectId } :${ gen } ` ) . digest ( ) ;
52+ return `${ gen } .${ base64url ( mac ) } ` ;
5353}
5454
5555function nodeInternal ( route : ProxyInternalRoute , projectId = PROJECT ) : string {
56- const key = Buffer . from ( hkdfSync ( 'sha256' , SECRET , 'void-proxy-internal' , 'v1 ' , 32 ) ) ;
56+ const key = Buffer . from ( hkdfSync ( 'sha256' , SECRET , 'void-proxy-internal' , 'proxy-internal ' , 32 ) ) ;
5757 return base64url (
58- createHmac ( 'sha256' , key ) . update ( `void-proxy-internal:v1 \n${ route } \n${ projectId } ` ) . digest ( ) ,
58+ createHmac ( 'sha256' , key ) . update ( `void-proxy-internal\n${ route } \n${ projectId } ` ) . digest ( ) ,
5959 ) ;
6060}
6161
@@ -111,7 +111,7 @@ describe('vectors', () => {
111111 } ) ;
112112
113113 it ( 'keeps internal values distinct from each other and from tenant tokens' , ( ) => {
114- const values = [ ...Object . values ( INTERNAL ) , TOK_0 , TOK_1 . slice ( 'v2. 1.' . length ) ] ;
114+ const values = [ ...Object . values ( INTERNAL ) , TOK_0 , TOK_1 . slice ( '1.' . length ) ] ;
115115 expect ( new Set ( values ) . size ) . toBe ( values . length ) ;
116116 } ) ;
117117
@@ -193,7 +193,7 @@ describe('state table', () => {
193193} ) ;
194194
195195describe ( 'verifyProxyToken' , ( ) => {
196- it ( 'accepts legacy and v2 tokens when no floor is set' , async ( ) => {
196+ it ( 'accepts the legacy and generation tokens when no floor is set' , async ( ) => {
197197 expect ( await verify ( TOK_0 ) . result ) . toBe ( true ) ;
198198 expect ( await verify ( TOK_1 ) . result ) . toBe ( true ) ;
199199 } ) ;
@@ -218,14 +218,14 @@ describe('verifyProxyToken', () => {
218218 } ) ;
219219
220220 it ( 'rejects a MAC relabelled with another generation' , async ( ) => {
221- const relabelled = `v2. 2.${ TOK_1 . slice ( 'v2. 1.' . length ) } ` ;
221+ const relabelled = `2.${ TOK_1 . slice ( '1.' . length ) } ` ;
222222 const { result, readState } = verify ( relabelled ) ;
223223 expect ( await result ) . toBe ( false ) ;
224224 expect ( readState ) . not . toHaveBeenCalled ( ) ;
225225 } ) ;
226226
227227 it ( 'rejects a bad MAC without reading the floor' , async ( ) => {
228- const badMac = `v2. 1.${ 'A' . repeat ( 43 ) } ` ;
228+ const badMac = `1.${ 'A' . repeat ( 43 ) } ` ;
229229 for ( const token of [ badMac , 'A' . repeat ( 43 ) ] ) {
230230 const { result, readState } = verify ( token ) ;
231231 expect ( await result ) . toBe ( false ) ;
@@ -234,14 +234,15 @@ describe('verifyProxyToken', () => {
234234 } ) ;
235235
236236 it . each ( [
237- [ 'leading zero generation' , `v2.01.${ TOK_1 . slice ( 'v2.1.' . length ) } ` ] ,
238- [ 'leading zero and short MAC' , 'v2.01.x' ] ,
237+ [ 'generation zero in the dotted form' , `0.${ TOK_1 . slice ( '1.' . length ) } ` ] ,
238+ [ 'leading zero generation' , `01.${ TOK_1 . slice ( '1.' . length ) } ` ] ,
239+ [ 'leading zero and short MAC' , '01.x' ] ,
239240 [ '42-char MAC' , TOK_0 . slice ( 0 , 42 ) ] ,
240241 [ '44-char MAC' , `${ TOK_0 } A` ] ,
241242 [ 'trailing padding' , `${ TOK_0 } =` ] ,
242243 [ 'standard base64 alphabet' , `+${ TOK_0 . slice ( 1 ) } ` ] ,
243244 [ 'empty token' , '' ] ,
244- [ 'unsafe generation' , `v2. 9999999999999999.${ TOK_1 . slice ( 'v2. 1.' . length ) } ` ] ,
245+ [ 'unsafe generation' , `9999999999999999.${ TOK_1 . slice ( '1.' . length ) } ` ] ,
245246 ] ) ( 'rejects a malformed token (%s) without reading the floor' , async ( _name , token ) => {
246247 const { result, readState } = verify ( token ) ;
247248 expect ( await result ) . toBe ( false ) ;
@@ -416,7 +417,7 @@ describe('verifyProxyInternalAuth', () => {
416417 it . each ( [
417418 [ '42 chars' , INTERNAL [ 'resolve-worker' ] . slice ( 0 , 42 ) ] ,
418419 [ '44 chars' , `${ INTERNAL [ 'resolve-worker' ] } A` ] ,
419- [ 'a v2 token shape' , 'v2. 1.x' ] ,
420+ [ 'a generation token shape' , '1.x' ] ,
420421 [ 'a tenant token' , TOK_1 ] ,
421422 [ 'the legacy token' , TOK_0 ] ,
422423 [ 'empty' , '' ] ,
0 commit comments