Как расшифровать зашифрованный секретный ключ PKCS # 8 в JavaScript - PullRequest
0 голосов
/ 30 ноября 2018

Я работаю над интеграцией ServiceNow - BOX с использованием rest API.для генерации токенов доступа мне нужно сгенерировать JWT.

Мне нужен личный ключ для подписи этого JWT.

Они предоставили закрытый ключ, но он находится в зашифрованном формате.

-----BEGIN ENCRYPTED PRIVATE KEY-----
*******Key here********** 
-----END ENCRYPTED PRIVATE KEY-----

Мне также был предоставлен пароль для его расшифровки.

Яне уверен, как расшифровать вышеупомянутый закрытый ключ в ServiceNow.

Они привели примеры на других языках здесь: https://developer.box.com/docs/construct-jwt-claim-manually#section-2-decrypt-private-key

Пожалуйста, помогите мне сделать это в чистой реализации javascript.

Спасибо,

Али

1 Ответ

0 голосов
/ 30 ноября 2018

Из того, что вы опубликовали выше, похоже, что вы получаете ключ в формате PKCS#8 https://en.wikipedia.org/wiki/PKCS_8

Из некоторых быстрых поисков в Google эта библиотека может быть вашим лучшим выбором для извлечения этого значения.https://github.com/kjur/jsrsasign

Вот код в этой библиотеке, который декодирует это:

https://github.com/kjur/jsrsasign/blob/d282c71cee92000c4807bcbf2212fedf3f22bd84/src/keyutil-1.0.js#L77

https://github.com/kjur/jsrsasign/blob/d282c71cee92000c4807bcbf2212fedf3f22bd84/src/keyutil-1.0.js#L557-L571

Здесь они используются в модулетестовое задание.Наверное, похоже, как вам нужно будет позвонить.

https://github.com/kjur/jsrsasign/blob/d282c71cee92000c4807bcbf2212fedf3f22bd84/test/qunit-do-crypto-sigini.html#L222

...