15
15
use Magento \Framework \Jwt \Claim \PrivateClaim ;
16
16
use Magento \Framework \Jwt \Claim \Subject ;
17
17
use Magento \Framework \Jwt \Header \Critical ;
18
+ use Magento \Framework \Jwt \Header \KeyId ;
18
19
use Magento \Framework \Jwt \Header \PrivateHeaderParameter ;
19
20
use Magento \Framework \Jwt \Header \PublicHeaderParameter ;
20
21
use Magento \Framework \Jwt \Jwe \Jwe ;
@@ -226,11 +227,106 @@ public function getTokenVariants(): array
226
227
]
227
228
)
228
229
);
230
+ $ jsonFlatSharedHeaderJwe = new Jwe (
231
+ new JweHeader (
232
+ [
233
+ new PrivateHeaderParameter ('test ' , true ),
234
+ new PublicHeaderParameter ('test2 ' , 'magento ' , 'value ' )
235
+ ]
236
+ ),
237
+ new JweHeader (
238
+ [
239
+ new PrivateHeaderParameter ('mage ' , 'test ' )
240
+ ]
241
+ ),
242
+ null ,
243
+ new ClaimsPayload (
244
+ [
245
+ new PrivateClaim ('custom-claim ' , 'value ' ),
246
+ new PrivateClaim ('custom-claim2 ' , 'value2 ' , true ),
247
+ new PrivateClaim ('custom-claim3 ' , 'value3 ' ),
248
+ new IssuedAt (new \DateTimeImmutable ()),
249
+ new Issuer ('magento.com ' )
250
+ ]
251
+ )
252
+ );
253
+ $ jsonFlatJwe = new Jwe (
254
+ new JweHeader (
255
+ [
256
+ new PrivateHeaderParameter ('test ' , true ),
257
+ new PublicHeaderParameter ('test2 ' , 'magento ' , 'value ' )
258
+ ]
259
+ ),
260
+ null ,
261
+ [
262
+ new JweHeader (
263
+ [
264
+ new PrivateHeaderParameter ('mage ' , 'test ' )
265
+ ]
266
+ )
267
+ ],
268
+ new ClaimsPayload (
269
+ [
270
+ new PrivateClaim ('custom-claim ' , 'value ' ),
271
+ new PrivateClaim ('custom-claim2 ' , 'value2 ' , true ),
272
+ new PrivateClaim ('custom-claim3 ' , 'value3 ' ),
273
+ new IssuedAt (new \DateTimeImmutable ()),
274
+ new Issuer ('magento.com ' )
275
+ ]
276
+ )
277
+ );
278
+ $ jsonJwe = new Jwe (
279
+ new JweHeader (
280
+ [
281
+ new PrivateHeaderParameter ('test ' , true ),
282
+ new PublicHeaderParameter ('test2 ' , 'magento ' , 'value ' )
283
+ ]
284
+ ),
285
+ new JweHeader (
286
+ [
287
+ new PrivateHeaderParameter ('mage ' , 'test ' )
288
+ ]
289
+ ),
290
+ [
291
+ new JweHeader ([new PrivateHeaderParameter ('tst ' , 2 )]),
292
+ new JweHeader ([new PrivateHeaderParameter ('test2 ' , 3 )])
293
+ ],
294
+ new ClaimsPayload (
295
+ [
296
+ new PrivateClaim ('custom-claim ' , 'value ' ),
297
+ new PrivateClaim ('custom-claim2 ' , 'value2 ' , true ),
298
+ new PrivateClaim ('custom-claim3 ' , 'value3 ' ),
299
+ new IssuedAt (new \DateTimeImmutable ()),
300
+ new Issuer ('magento.com ' )
301
+ ]
302
+ )
303
+ );
304
+ $ jsonJweKids = new Jwe (
305
+ new JweHeader (
306
+ [
307
+ new PrivateHeaderParameter ('test ' , true ),
308
+ ]
309
+ ),
310
+ null ,
311
+ [
312
+ new JweHeader ([new PrivateHeaderParameter ('tst ' , 2 ), new KeyId ('1 ' )]),
313
+ new JweHeader ([new PrivateHeaderParameter ('test2 ' , 3 ), new KeyId ('2 ' )])
314
+ ],
315
+ new ClaimsPayload (
316
+ [
317
+ new PrivateClaim ('custom-claim ' , 'value ' ),
318
+ new PrivateClaim ('custom-claim2 ' , 'value2 ' , true ),
319
+ new PrivateClaim ('custom-claim3 ' , 'value3 ' ),
320
+ new IssuedAt (new \DateTimeImmutable ()),
321
+ new Issuer ('magento.com ' )
322
+ ]
323
+ )
324
+ );
229
325
230
326
//Keys
231
327
[$ rsaPrivate , $ rsaPublic ] = $ this ->createRsaKeys ();
232
328
$ ecKeys = $ this ->createEcKeys ();
233
- $ sharedSecret = random_bytes (128 );
329
+ $ sharedSecret = random_bytes (2048 );
234
330
235
331
return [
236
332
'jws-HS256 ' => [
@@ -263,7 +359,7 @@ public function getTokenVariants(): array
263
359
new JwsSignatureJwks ($ jwkFactory ->createSignRs512 ($ rsaPrivate , 'pass ' )),
264
360
[new JwsSignatureJwks ($ jwkFactory ->createVerifyRs512 ($ rsaPublic ))]
265
361
],
266
- 'jws-compact -multiple-signatures ' => [
362
+ 'jws-json -multiple-signatures ' => [
267
363
$ compactJws ,
268
364
new JwsSignatureJwks (
269
365
new JwkSet (
@@ -281,7 +377,7 @@ public function getTokenVariants(): array
281
377
)
282
378
]
283
379
],
284
- 'jws-compact -multiple-signatures-one-read ' => [
380
+ 'jws-json -multiple-signatures-one-read ' => [
285
381
$ compactJws ,
286
382
new JwsSignatureJwks (
287
383
new JwkSet (
@@ -335,6 +431,121 @@ public function getTokenVariants(): array
335
431
JweEncryptionSettingsInterface::CONTENT_ENCRYPTION_ALGO_A128_HS256
336
432
)
337
433
]
434
+ ],
435
+ 'jwe-A192KW ' => [
436
+ $ jsonFlatSharedHeaderJwe ,
437
+ new JweEncryptionJwks (
438
+ $ jwkFactory ->createA192KW ($ sharedSecret ),
439
+ JweEncryptionSettingsInterface::CONTENT_ENCRYPTION_ALGO_A128_HS256
440
+ ),
441
+ [
442
+ new JweEncryptionJwks (
443
+ $ jwkFactory ->createA192KW ($ sharedSecret ),
444
+ JweEncryptionSettingsInterface::CONTENT_ENCRYPTION_ALGO_A128_HS256
445
+ )
446
+ ]
447
+ ],
448
+ 'jwe-A256KW ' => [
449
+ $ jsonFlatJwe ,
450
+ new JweEncryptionJwks (
451
+ $ jwkFactory ->createA256KW ($ sharedSecret ),
452
+ JweEncryptionSettingsInterface::CONTENT_ENCRYPTION_ALGO_A128_HS256
453
+ ),
454
+ [
455
+ new JweEncryptionJwks (
456
+ $ jwkFactory ->createA256KW ($ sharedSecret ),
457
+ JweEncryptionSettingsInterface::CONTENT_ENCRYPTION_ALGO_A128_HS256
458
+ )
459
+ ]
460
+ ],
461
+ 'jwe-multiple-recipients ' => [
462
+ $ jsonJwe ,
463
+ new JweEncryptionJwks (
464
+ new JwkSet (
465
+ [
466
+ $ jwkFactory ->createA256KW ($ sharedSecret ),
467
+ $ jwkFactory ->createA128KW ($ sharedSecret )
468
+ ]
469
+ ),
470
+ JweEncryptionSettingsInterface::CONTENT_ENCRYPTION_ALGO_A128_HS256
471
+ ),
472
+ [
473
+ new JweEncryptionJwks (
474
+ new JwkSet (
475
+ [
476
+ $ jwkFactory ->createA256KW ($ sharedSecret ),
477
+ ]
478
+ ),
479
+ JweEncryptionSettingsInterface::CONTENT_ENCRYPTION_ALGO_A128_HS256
480
+ )
481
+ ]
482
+ ],
483
+ 'jwe-rsa-oaep ' => [
484
+ $ flatJwe ,
485
+ new JweEncryptionJwks (
486
+ $ jwkFactory ->createEncryptRsaOaep ($ rsaPublic ),
487
+ JweEncryptionSettingsInterface::CONTENT_ENCRYPTION_ALGO_A128_HS256
488
+ ),
489
+ [
490
+ new JweEncryptionJwks (
491
+ $ jwkFactory ->createDecryptRsaOaep ($ rsaPrivate , 'pass ' ),
492
+ JweEncryptionSettingsInterface::CONTENT_ENCRYPTION_ALGO_A128_HS256
493
+ )
494
+ ]
495
+ ],
496
+ 'jwe-rsa-oaep-256 ' => [
497
+ $ flatJwe ,
498
+ new JweEncryptionJwks (
499
+ $ jwkFactory ->createEncryptRsaOaep256 ($ rsaPublic ),
500
+ JweEncryptionSettingsInterface::CONTENT_ENCRYPTION_ALGO_A192GCM
501
+ ),
502
+ [
503
+ new JweEncryptionJwks (
504
+ $ jwkFactory ->createDecryptRsaOaep256 ($ rsaPrivate , 'pass ' ),
505
+ JweEncryptionSettingsInterface::CONTENT_ENCRYPTION_ALGO_A192GCM
506
+ )
507
+ ]
508
+ ],
509
+ 'jwe-dir ' => [
510
+ $ flatJwe ,
511
+ new JweEncryptionJwks (
512
+ $ jwkFactory ->createDir (
513
+ $ sharedSecret ,
514
+ JweEncryptionSettingsInterface::CONTENT_ENCRYPTION_ALGO_A192_HS384
515
+ ),
516
+ JweEncryptionSettingsInterface::CONTENT_ENCRYPTION_ALGO_A192_HS384
517
+ ),
518
+ [
519
+ new JweEncryptionJwks (
520
+ $ jwkFactory ->createDir (
521
+ $ sharedSecret ,
522
+ JweEncryptionSettingsInterface::CONTENT_ENCRYPTION_ALGO_A192_HS384
523
+ ),
524
+ JweEncryptionSettingsInterface::CONTENT_ENCRYPTION_ALGO_A192_HS384
525
+ )
526
+ ]
527
+ ],
528
+ 'jwe-multiple-recipients-kids ' => [
529
+ $ jsonJweKids ,
530
+ new JweEncryptionJwks (
531
+ new JwkSet (
532
+ [
533
+ $ jwkFactory ->createEncryptRsaOaep256 ($ rsaPublic , '2 ' ),
534
+ $ jwkFactory ->createA256KW ($ sharedSecret , '1 ' )
535
+ ]
536
+ ),
537
+ JweEncryptionSettingsInterface::CONTENT_ENCRYPTION_ALGO_A128_HS256
538
+ ),
539
+ [
540
+ new JweEncryptionJwks (
541
+ new JwkSet (
542
+ [
543
+ $ jwkFactory ->createDecryptRsaOaep256 ($ rsaPrivate , 'pass ' , '2 ' )
544
+ ]
545
+ ),
546
+ JweEncryptionSettingsInterface::CONTENT_ENCRYPTION_ALGO_A128_HS256
547
+ )
548
+ ]
338
549
]
339
550
];
340
551
}
0 commit comments