@@ -41,19 +41,19 @@ public function testSignatureKeyAndJwt() {
4141 $ initialPayload = ['nice ' => 'example ' ];
4242 $ pemPrivateKeyExpiresAt = $ this ->appConfig ->getAppValueInt (JwkService::PEM_SIG_KEY_EXPIRES_AT_SETTINGS_KEY , lazy: true );
4343 $ jwkId = 'sig_key_ ' . $ pemPrivateKeyExpiresAt ;
44- $ signedJwtToken = $ this ->jwkService ->createJwt ($ initialPayload , $ sslPrivateKey , $ jwkId , ' ES384 ' );
44+ $ signedJwtToken = $ this ->jwkService ->createJwt ($ initialPayload , $ sslPrivateKey , $ jwkId , JwkService:: PEM_SIG_KEY_ALGORITHM );
4545
4646 // check JWK
4747 $ jwk = $ this ->jwkService ->getJwkFromSslKey ($ pubKey );
4848 $ this ->assertEquals ('EC ' , $ jwk ['kty ' ]);
4949 $ this ->assertEquals ('sig ' , $ jwk ['use ' ]);
5050 $ this ->assertEquals ($ jwkId , $ jwk ['kid ' ]);
51- $ this ->assertEquals (' P-384 ' , $ jwk ['crv ' ]);
52- $ this ->assertEquals (' ES384 ' , $ jwk ['alg ' ]);
51+ $ this ->assertEquals (JwkService:: PEM_SIG_KEY_CURVE , $ jwk ['crv ' ]);
52+ $ this ->assertEquals (JwkService:: PEM_SIG_KEY_ALGORITHM , $ jwk ['alg ' ]);
5353
5454 // check content of JWT
5555 $ rawJwks = ['keys ' => [$ jwk ]];
56- $ jwks = JWK ::parseKeySet ($ rawJwks , ' ES384 ' );
56+ $ jwks = JWK ::parseKeySet ($ rawJwks , JwkService:: PEM_SIG_KEY_ALGORITHM );
5757 $ jwtPayload = JWT ::decode ($ signedJwtToken , $ jwks );
5858 $ jwtPayloadArray = json_decode (json_encode ($ jwtPayload ), true );
5959 $ this ->assertEquals ($ initialPayload , $ jwtPayloadArray );
@@ -62,7 +62,23 @@ public function testSignatureKeyAndJwt() {
6262 $ jwtParts = explode ('. ' , $ signedJwtToken , 3 );
6363 $ jwtHeader = json_decode (JWT ::urlsafeB64Decode ($ jwtParts [0 ]), true );
6464 $ this ->assertEquals ('JWT ' , $ jwtHeader ['typ ' ]);
65- $ this ->assertEquals (' ES384 ' , $ jwtHeader ['alg ' ]);
65+ $ this ->assertEquals (JwkService:: PEM_SIG_KEY_ALGORITHM , $ jwtHeader ['alg ' ]);
6666 $ this ->assertEquals ($ jwkId , $ jwtHeader ['kid ' ]);
6767 }
68+
69+ public function testEncryptionKey () {
70+ $ myPemEncryptionKey = $ this ->jwkService ->getMyEncryptionKey ();
71+ $ sslEncryptionKey = openssl_pkey_get_private ($ myPemEncryptionKey );
72+ $ sslEncryptionKeyDetails = openssl_pkey_get_details ($ sslEncryptionKey );
73+ $ encJwk = $ this ->jwkService ->getJwkFromSslKey ($ sslEncryptionKeyDetails , isEncryptionKey: true );
74+
75+ $ pemPrivateKeyExpiresAt = $ this ->appConfig ->getAppValueInt (JwkService::PEM_ENC_KEY_EXPIRES_AT_SETTINGS_KEY , lazy: true );
76+ $ encJwkId = 'enc_key_ ' . $ pemPrivateKeyExpiresAt ;
77+
78+ $ this ->assertEquals ('EC ' , $ encJwk ['kty ' ]);
79+ $ this ->assertEquals ('enc ' , $ encJwk ['use ' ]);
80+ $ this ->assertEquals ($ encJwkId , $ encJwk ['kid ' ]);
81+ $ this ->assertEquals (JwkService::PEM_ENC_KEY_CURVE , $ encJwk ['crv ' ]);
82+ $ this ->assertEquals (JwkService::PEM_ENC_KEY_ALGORITHM , $ encJwk ['alg ' ]);
83+ }
6884}
0 commit comments