Skip to content

Instantly share code, notes, and snippets.

@bshambaugh
Created November 27, 2023 17:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bshambaugh/9953749a2d1d985b8eea5d6bb2405b43 to your computer and use it in GitHub Desktop.
Save bshambaugh/9953749a2d1d985b8eea5d6bb2405b43 to your computer and use it in GitHub Desktop.
error.log.did-jwt-295-ephemeralKeyError?
src/__tests__/xc20pEncryption.test.ts (11.306 s)
● xc20pEncryption › resolveP256Encrypters › correctly resolves encrypters for DIDs
second arg must be public key
37 | const ephemeral = ephemeralKeyPair ? generateKeyPairFromSeed(ephemeralKeyPair.secretKey) : generateKeyPair()
38 | const epk = { kty: 'EC', crv, x: bytesToBase64url(ephemeral.publicKey) }
> 39 | const sharedSecret = p256.getSharedSecret(ephemeral.secretKey, recipientPublicKey)
| ^
40 | // Key Encryption Key
41 | const consumerInfo = base64ToBytes(apv ?? '')
42 | const kek = concatKDF(sharedSecret, keyLen, alg, undefined, consumerInfo)
at Object.getSharedSecret (node_modules/@noble/curves/src/abstract/weierstrass.ts:908:36)
at Object.createP256EcdhEsKek [as createKek] (src/encryption/P256-ECDH-ES.ts:39:29)
at encryptCek (src/encryption/createEncrypter.ts:31:43)
at Object.encrypt (src/encryption/createEncrypter.ts:67:40)
at createJWE (src/encryption/JWE.ts:57:50)
at Object.<anonymous> (src/__tests__/xc20pEncryption.test.ts:459:25)
● xc20pEncryption › resolveP256Encrypters › correctly resolves encrypters for DIDs
expect.assertions(6)
Expected six assertions to be called but received zero assertion calls.
454 |
455 | it('correctly resolves encrypters for DIDs', async () => {
> 456 | expect.assertions(6)
| ^
457 | const encrypters = await resolveP256Encrypters([did1, did2], resolver)
458 | const cleartext = randomBytes(8)
459 | const jwe = await createJWE(cleartext, encrypters)
at Object.<anonymous> (src/__tests__/xc20pEncryption.test.ts:456:14)
● xc20pEncryption › resolveP256Encrypters › resolves encrypters for DIDs with multiple valid keys
second arg must be public key
37 | const ephemeral = ephemeralKeyPair ? generateKeyPairFromSeed(ephemeralKeyPair.secretKey) : generateKeyPair()
38 | const epk = { kty: 'EC', crv, x: bytesToBase64url(ephemeral.publicKey) }
> 39 | const sharedSecret = p256.getSharedSecret(ephemeral.secretKey, recipientPublicKey)
| ^
40 | // Key Encryption Key
41 | const consumerInfo = base64ToBytes(apv ?? '')
42 | const kek = concatKDF(sharedSecret, keyLen, alg, undefined, consumerInfo)
at Object.getSharedSecret (node_modules/@noble/curves/src/abstract/weierstrass.ts:908:36)
at Object.createP256EcdhEsKek [as createKek] (src/encryption/P256-ECDH-ES.ts:39:29)
at encryptCek (src/encryption/createEncrypter.ts:31:43)
at Object.encrypt (src/encryption/createEncrypter.ts:67:40)
at createJWE (src/encryption/JWE.ts:57:50)
at Object.<anonymous> (src/__tests__/xc20pEncryption.test.ts:509:25)
● xc20pEncryption › resolveP256Encrypters › resolves encrypters for DIDs with multiple valid keys
expect.assertions(8)
Expected eight assertions to be called but received zero assertion calls.
480 |
481 | it('resolves encrypters for DIDs with multiple valid keys ', async () => {
> 482 | expect.assertions(8)
| ^
483 |
484 | const secondKp1 = generateKeyPair()
485 | const secondKp2 = generateKeyPair()
at Object.<anonymous> (src/__tests__/xc20pEncryption.test.ts:482:14)
● xc20pEncryption › resolveP256Encrypters › resolves encrypters for DIDs where only controllers have valid key exchange keys
second arg must be public key
37 | const ephemeral = ephemeralKeyPair ? generateKeyPairFromSeed(ephemeralKeyPair.secretKey) : generateKeyPair()
38 | const epk = { kty: 'EC', crv, x: bytesToBase64url(ephemeral.publicKey) }
> 39 | const sharedSecret = p256.getSharedSecret(ephemeral.secretKey, recipientPublicKey)
| ^
40 | // Key Encryption Key
41 | const consumerInfo = base64ToBytes(apv ?? '')
42 | const kek = concatKDF(sharedSecret, keyLen, alg, undefined, consumerInfo)
at Object.getSharedSecret (node_modules/@noble/curves/src/abstract/weierstrass.ts:908:36)
at Object.createP256EcdhEsKek [as createKek] (src/encryption/P256-ECDH-ES.ts:39:29)
at encryptCek (src/encryption/createEncrypter.ts:31:43)
at Object.encrypt (src/encryption/createEncrypter.ts:67:40)
at createJWE (src/encryption/JWE.ts:57:50)
at Object.<anonymous> (src/__tests__/xc20pEncryption.test.ts:525:25)
● xc20pEncryption › resolveP256Encrypters › resolves encrypters for DIDs where only controllers have valid key exchange keys
expect.assertions(3)
Expected three assertions to be called but received zero assertion calls.
520 |
521 | it('resolves encrypters for DIDs where only controllers have valid key exchange keys', async () => {
> 522 | expect.assertions(3)
| ^
523 | const encrypters = await resolveP256Encrypters([did5], resolver)
524 | const cleartext = randomBytes(8)
525 | const jwe = await createJWE(cleartext, encrypters)
at Object.<anonymous> (src/__tests__/xc20pEncryption.test.ts:522:14)
● xc20pEncryption › resolveP256Encrypters › resolved encrypters for DIDs where controller's controller has valid key exchange keys
second arg must be public key
37 | const ephemeral = ephemeralKeyPair ? generateKeyPairFromSeed(ephemeralKeyPair.secretKey) : generateKeyPair()
38 | const epk = { kty: 'EC', crv, x: bytesToBase64url(ephemeral.publicKey) }
> 39 | const sharedSecret = p256.getSharedSecret(ephemeral.secretKey, recipientPublicKey)
| ^
40 | // Key Encryption Key
41 | const consumerInfo = base64ToBytes(apv ?? '')
42 | const kek = concatKDF(sharedSecret, keyLen, alg, undefined, consumerInfo)
at Object.getSharedSecret (node_modules/@noble/curves/src/abstract/weierstrass.ts:908:36)
at Object.createP256EcdhEsKek [as createKek] (src/encryption/P256-ECDH-ES.ts:39:29)
at encryptCek (src/encryption/createEncrypter.ts:31:43)
at Object.encrypt (src/encryption/createEncrypter.ts:67:40)
at createJWE (src/encryption/JWE.ts:57:50)
at Object.<anonymous> (src/__tests__/xc20pEncryption.test.ts:535:25)
● xc20pEncryption › resolveP256Encrypters › resolved encrypters for DIDs where controller's controller has valid key exchange keys
expect.assertions(3)
Expected three assertions to be called but received zero assertion calls.
530 |
531 | it("resolved encrypters for DIDs where controller's controller has valid key exchange keys", async () => {
> 532 | expect.assertions(3)
| ^
533 | const encrypters = await resolveP256Encrypters([did6], resolver)
534 | const cleartext = randomBytes(8)
535 | const jwe = await createJWE(cleartext, encrypters)
at Object.<anonymous> (src/__tests__/xc20pEncryption.test.ts:532:14)
● xc20pEncryption › resolveP256Encrypters › does not enter an infinite loop when DIDs controllers refer each other
second arg must be public key
37 | const ephemeral = ephemeralKeyPair ? generateKeyPairFromSeed(ephemeralKeyPair.secretKey) : generateKeyPair()
38 | const epk = { kty: 'EC', crv, x: bytesToBase64url(ephemeral.publicKey) }
> 39 | const sharedSecret = p256.getSharedSecret(ephemeral.secretKey, recipientPublicKey)
| ^
40 | // Key Encryption Key
41 | const consumerInfo = base64ToBytes(apv ?? '')
42 | const kek = concatKDF(sharedSecret, keyLen, alg, undefined, consumerInfo)
at Object.getSharedSecret (node_modules/@noble/curves/src/abstract/weierstrass.ts:908:36)
at Object.createP256EcdhEsKek [as createKek] (src/encryption/P256-ECDH-ES.ts:39:29)
at encryptCek (src/encryption/createEncrypter.ts:31:43)
at Object.encrypt (src/encryption/createEncrypter.ts:67:40)
at createJWE (src/encryption/JWE.ts:57:50)
at Object.<anonymous> (src/__tests__/xc20pEncryption.test.ts:545:25)
● xc20pEncryption › resolveP256Encrypters › does not enter an infinite loop when DIDs controllers refer each other
expect.assertions(4)
Expected four assertions to be called but received zero assertion calls.
540 |
541 | it('does not enter an infinite loop when DIDs controllers refer each other', async () => {
> 542 | expect.assertions(4)
| ^
543 | const encrypters = await resolveP256Encrypters([did9], resolver)
544 | const cleartext = randomBytes(8)
545 | const jwe = await createJWE(cleartext, encrypters)
at Object.<anonymous> (src/__tests__/xc20pEncryption.test.ts:542:14)
(node:24481) ExperimentalWarning: VM Modules is an experimental feature and might change at any time
@bshambaugh
Copy link
Author

after fixes:

src/tests/xc20pEncryption.test.ts
● xc20pEncryption › resolveP256Encrypters › correctly resolves encrypters for DIDs

second arg must be public key

  37 |   const ephemeral = ephemeralKeyPair ? generateKeyPairFromSeed(ephemeralKeyPair.secretKey) : generateKeyPair()
  38 |   const epk = { kty: 'EC', crv, x: bytesToBase64url(ephemeral.publicKey) }
> 39 |   const sharedSecret = p256.getSharedSecret(ephemeral.secretKey, recipientPublicKey)
     |                             ^
  40 |   // Key Encryption Key
  41 |   const consumerInfo = base64ToBytes(apv ?? '')
  42 |   const kek = concatKDF(sharedSecret, keyLen, alg, undefined, consumerInfo)

  at Object.getSharedSecret (node_modules/@noble/curves/src/abstract/weierstrass.ts:908:36)
  at Object.createP256EcdhEsKek [as createKek] (src/encryption/P256-ECDH-ES.ts:39:29)
  at encryptCek (src/encryption/createEncrypter.ts:48:43)
  at Object.encrypt (src/encryption/createEncrypter.ts:84:40)
  at createJWE (src/encryption/JWE.ts:57:50)
  at Object.<anonymous> (src/__tests__/xc20pEncryption.test.ts:459:25)

● xc20pEncryption › resolveP256Encrypters › correctly resolves encrypters for DIDs

expect.assertions(6)

Expected six assertions to be called but received zero assertion calls.

  454 |
  455 |     it('correctly resolves encrypters for DIDs', async () => {
> 456 |       expect.assertions(6)
      |              ^
  457 |       const encrypters = await resolveP256Encrypters([did1, did2], resolver)
  458 |       const cleartext = randomBytes(8)
  459 |       const jwe = await createJWE(cleartext, encrypters)

  at Object.<anonymous> (src/__tests__/xc20pEncryption.test.ts:456:14)

● xc20pEncryption › resolveP256Encrypters › resolves encrypters for DIDs with multiple valid keys

second arg must be public key

  37 |   const ephemeral = ephemeralKeyPair ? generateKeyPairFromSeed(ephemeralKeyPair.secretKey) : generateKeyPair()
  38 |   const epk = { kty: 'EC', crv, x: bytesToBase64url(ephemeral.publicKey) }
> 39 |   const sharedSecret = p256.getSharedSecret(ephemeral.secretKey, recipientPublicKey)
     |                             ^
  40 |   // Key Encryption Key
  41 |   const consumerInfo = base64ToBytes(apv ?? '')
  42 |   const kek = concatKDF(sharedSecret, keyLen, alg, undefined, consumerInfo)

  at Object.getSharedSecret (node_modules/@noble/curves/src/abstract/weierstrass.ts:908:36)
  at Object.createP256EcdhEsKek [as createKek] (src/encryption/P256-ECDH-ES.ts:39:29)
  at encryptCek (src/encryption/createEncrypter.ts:48:43)
  at Object.encrypt (src/encryption/createEncrypter.ts:84:40)
  at createJWE (src/encryption/JWE.ts:57:50)
  at Object.<anonymous> (src/__tests__/xc20pEncryption.test.ts:509:25)

● xc20pEncryption › resolveP256Encrypters › resolves encrypters for DIDs with multiple valid keys

expect.assertions(8)

Expected eight assertions to be called but received zero assertion calls.

  480 |
  481 |     it('resolves encrypters for DIDs with multiple valid keys ', async () => {
> 482 |       expect.assertions(8)
      |              ^
  483 |
  484 |       const secondKp1 = generateKeyPair()
  485 |       const secondKp2 = generateKeyPair()

  at Object.<anonymous> (src/__tests__/xc20pEncryption.test.ts:482:14)

● xc20pEncryption › resolveP256Encrypters › resolves encrypters for DIDs where only controllers have valid key exchange keys

second arg must be public key

  37 |   const ephemeral = ephemeralKeyPair ? generateKeyPairFromSeed(ephemeralKeyPair.secretKey) : generateKeyPair()
  38 |   const epk = { kty: 'EC', crv, x: bytesToBase64url(ephemeral.publicKey) }
> 39 |   const sharedSecret = p256.getSharedSecret(ephemeral.secretKey, recipientPublicKey)
     |                             ^
  40 |   // Key Encryption Key
  41 |   const consumerInfo = base64ToBytes(apv ?? '')
  42 |   const kek = concatKDF(sharedSecret, keyLen, alg, undefined, consumerInfo)

  at Object.getSharedSecret (node_modules/@noble/curves/src/abstract/weierstrass.ts:908:36)
  at Object.createP256EcdhEsKek [as createKek] (src/encryption/P256-ECDH-ES.ts:39:29)
  at encryptCek (src/encryption/createEncrypter.ts:48:43)
  at Object.encrypt (src/encryption/createEncrypter.ts:84:40)
  at createJWE (src/encryption/JWE.ts:57:50)
  at Object.<anonymous> (src/__tests__/xc20pEncryption.test.ts:525:25)

● xc20pEncryption › resolveP256Encrypters › resolves encrypters for DIDs where only controllers have valid key exchange keys

expect.assertions(3)

Expected three assertions to be called but received zero assertion calls.

  520 |
  521 |     it('resolves encrypters for DIDs where only controllers have valid key exchange keys', async () => {
> 522 |       expect.assertions(3)
      |              ^
  523 |       const encrypters = await resolveP256Encrypters([did5], resolver)
  524 |       const cleartext = randomBytes(8)
  525 |       const jwe = await createJWE(cleartext, encrypters)

  at Object.<anonymous> (src/__tests__/xc20pEncryption.test.ts:522:14)

● xc20pEncryption › resolveP256Encrypters › resolved encrypters for DIDs where controller's controller has valid key exchange keys

second arg must be public key

  37 |   const ephemeral = ephemeralKeyPair ? generateKeyPairFromSeed(ephemeralKeyPair.secretKey) : generateKeyPair()
  38 |   const epk = { kty: 'EC', crv, x: bytesToBase64url(ephemeral.publicKey) }
> 39 |   const sharedSecret = p256.getSharedSecret(ephemeral.secretKey, recipientPublicKey)
     |                             ^
  40 |   // Key Encryption Key
  41 |   const consumerInfo = base64ToBytes(apv ?? '')
  42 |   const kek = concatKDF(sharedSecret, keyLen, alg, undefined, consumerInfo)

  at Object.getSharedSecret (node_modules/@noble/curves/src/abstract/weierstrass.ts:908:36)
  at Object.createP256EcdhEsKek [as createKek] (src/encryption/P256-ECDH-ES.ts:39:29)
  at encryptCek (src/encryption/createEncrypter.ts:48:43)
  at Object.encrypt (src/encryption/createEncrypter.ts:84:40)
  at createJWE (src/encryption/JWE.ts:57:50)
  at Object.<anonymous> (src/__tests__/xc20pEncryption.test.ts:535:25)

● xc20pEncryption › resolveP256Encrypters › resolved encrypters for DIDs where controller's controller has valid key exchange keys

expect.assertions(3)

Expected three assertions to be called but received zero assertion calls.

  530 |
  531 |     it("resolved encrypters for DIDs where controller's controller has valid key exchange keys", async () => {
> 532 |       expect.assertions(3)
      |              ^
  533 |       const encrypters = await resolveP256Encrypters([did6], resolver)
  534 |       const cleartext = randomBytes(8)
  535 |       const jwe = await createJWE(cleartext, encrypters)

  at Object.<anonymous> (src/__tests__/xc20pEncryption.test.ts:532:14)

● xc20pEncryption › resolveP256Encrypters › does not enter an infinite loop when DIDs controllers refer each other

second arg must be public key

  37 |   const ephemeral = ephemeralKeyPair ? generateKeyPairFromSeed(ephemeralKeyPair.secretKey) : generateKeyPair()
  38 |   const epk = { kty: 'EC', crv, x: bytesToBase64url(ephemeral.publicKey) }
> 39 |   const sharedSecret = p256.getSharedSecret(ephemeral.secretKey, recipientPublicKey)
     |                             ^
  40 |   // Key Encryption Key
  41 |   const consumerInfo = base64ToBytes(apv ?? '')
  42 |   const kek = concatKDF(sharedSecret, keyLen, alg, undefined, consumerInfo)

  at Object.getSharedSecret (node_modules/@noble/curves/src/abstract/weierstrass.ts:908:36)
  at Object.createP256EcdhEsKek [as createKek] (src/encryption/P256-ECDH-ES.ts:39:29)
  at encryptCek (src/encryption/createEncrypter.ts:48:43)
  at Object.encrypt (src/encryption/createEncrypter.ts:84:40)
  at createJWE (src/encryption/JWE.ts:57:50)
  at Object.<anonymous> (src/__tests__/xc20pEncryption.test.ts:545:25)

● xc20pEncryption › resolveP256Encrypters › does not enter an infinite loop when DIDs controllers refer each other

expect.assertions(4)

Expected four assertions to be called but received zero assertion calls.

  540 |
  541 |     it('does not enter an infinite loop when DIDs controllers refer each other', async () => {
> 542 |       expect.assertions(4)
      |              ^
  543 |       const encrypters = await resolveP256Encrypters([did9], resolver)
  544 |       const cleartext = randomBytes(8)
  545 |       const jwe = await createJWE(cleartext, encrypters)

  at Object.<anonymous> (src/__tests__/xc20pEncryption.test.ts:542:14)

PASS src/tests/JWE.test.ts
(node:11472) ExperimentalWarning: VM Modules is an experimental feature and might change at any time
(Use node --trace-warnings ... to show where the warning was created)
PASS src/tests/ConditionalAlgorithm.test.ts (12.168 s)
(node:11471) ExperimentalWarning: VM Modules is an experimental feature and might change at any time
(Use node --trace-warnings ... to show where the warning was created)
PASS src/tests/JWT.test.ts (12.282 s)

Test Suites: 1 failed, 14 passed, 15 total
Tests: 5 failed, 321 passed, 326 total
Snapshots: 20 passed, 20 total
Time: 12.77 s, estimated 16 s
Ran all test suites.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment