как сгенерировать JWE в узле с помощью enc A256GCM и alg RSA-OAEP

Я хочу создать JWE с

  • контент, зашифрованный с помощью A256GM
  • Ключ шифрования, зашифрованный с помощью RSA-OAEP

Насколько я понял, мне нужны следующие поля заголовка JWE:

      {“alg”:”RSA-OAEP”,”enc”:”A256GCM”}

Итак, я сгенерировал ключ:

      const props = {
    kid: 'gBdaS-G8RLax2qgObTD94w',
    alg: 'RSA-OAEP',
    use: 'enc',
    enc: 'A256GCM',
};
  
keyStore.generate('oct', 256, props).then(function (result) {
    // generate a RSA public/private key too
    // write the keys
}

а затем я зашифровал/расшифровал свой контент:

      const encrypted = await JWE.createEncrypt(
    keyStore.get(process.env.JWE_KID ?? '')
)
.update(JSON.stringify(myContentToEncrypt))
.final();

...

const decryptedContent = await JWE.createDecrypt(
    keyStore.get(process.env.JWE_KID ?? '')
).decrypt(contentToDecrypt ?? '{}');

Это работает, но когда я смотрю на расшифрованный заголовок, происходит следующее:

      { enc: 'A256GCM', alg: 'dir', kid: 'gBdaS-G8RLax2qgObTD94w' }

в algявляется dir. Я предполагаю, что я неправильно генерирую ключ (ключи) или пропускаю некоторую информацию, которую я должен установить при шифровании. Как я могу получить зашифрованный контент с помощью сгенерированного AES ключа шифрования, зашифрованного с помощью RSA-OAEP?

0 ответов

Другие вопросы по тегам