NodeJS - Получить цепочку сертификатов из файла P7B

Я пытаюсь взять строку в кодировке CMS base64, преобразовать ее в файл pkcs7 и извлечь листовые и промежуточные сертификаты с помощью javascript/nodejs, аналогично следующей команде openssl:

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer

Я прочитал почти каждую статью и вижу решения на других языках, но не для узла. Я понимаю, что вы можете достичь того, что мне нужно, с помощью node-forge, но node-forge не поддерживает алгоритмы ECC. Кто-нибудь знает какие-либо другие решения / пакеты npm, которые могут помочь мне в этом? Пожалуйста, помогите мне. Я очень новичок в этом.

1 ответ

Решение

Вы видели PKI.js для Node.js? Это чистая библиотека JavaScript, реализующая форматы, используемые в приложениях PKI. Он основан на W3C API веб-криптографии с полной поддержкой всех алгоритмов "Suite B" в сообщениях CMS. Фрагмент кода, представленный OP:

const cmsSignedBuffer = stringToArrayBuffer(fromBase64(token.signature)); 
const asn1 = asn1js.fromBER(cmsSignedBuffer); 
const cmsContentSimpl = new pkijs.ContentInfo({ schema: asn1.result }); 
const cmsSignedSimpl = new pkijs.SignedData({ schema: cmsContentSimpl.content })

Другой подход заключается в использовании оболочки для openssl, например, openssl-nodejs. Оболочка просто порождает дочерний процесс для вызова openssl. Таким образом, openssl должен быть установлен в системе, где развернуто приложение Node.js.

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