Как указать сертификат JWKS для шифрования в node-jose - PullRequest
0 голосов
/ 05 ноября 2019

Я пытаюсь настроить node-jose для использования сертификата jwks из пункта назначения, но я пытаюсь заставить узел-jose использовать сертификат. Сертификат jwks выглядит следующим образом:

{
    "kid": "aaaa",
    "kty": "RSA",
    "alg": "RS384",
    "exp": REDACTEDNUMBER10YEARSAWAY,
    "n": "q_REDACTED",
    "e": "AXXX",
    "use" : "enc",
    "x5c": ["MIIDAzREDACTED"]
},

Вот как я пытаюсь настроить узел-jose и зашифровать jwt (в асинхронной функции):

ks = await jose.JWK.asKeyStore([{
  kid: "aaaa",
  kty: "RSA",
  alg: "RS384",
  use: "enc",
  n: "q_REDACTED",
  e: "AXXX",
  x5c: ["MIIDAzREDACTED"]
}]);

ejwt = await jose.JWE.createEncrypt(
  {format: 'compact'},
  {
    key: ks.get("aaaa"),
    header: {alg: "RS384", use: "enc" }
  }
);
// createEncrypt doesn't resolve key.

Использование этогодля хранилища ключей работает:

ks = await jose.JWK.asKeyStore([{
    kid: 'mykey',
    kty: 'oct',
    k: 'randomkey',
    use: 'enc'
}]);
// works with createEncrypt using header: { alg: 'dir', use: 'enc' }
...