#node.js #pdf #digital-signature #pkcs#7 #google-cloud-kms
#node.js #PDF #цифровая подпись #pkcs#7 #google-облако-kms
Вопрос:
Я пытаюсь подписать PDF-файл цифровой подписью, используя подпись в формате PKCS # 7 в NodeJS.
Настройка:
Node-forge отлично справляется с созданием формата PKCS # 7. Я уже подтвердил, что конечный результат библиотеки соответствует моим потребностям. По умолчанию pkcs7 требует ввода:
- Сертификат, содержащий открытый ключ подписавшего
- Двоичное содержимое, подлежащее подписи
- Закрытый ключ подписывающего
Проблема:
Я хочу сгенерировать и сохранить ключи моего подписывающего (пользователя) в HSM, чтобы закрытый ключ не был доступен мне напрямую. Таким образом, вместо подписываемого содержимого (2.) и закрытого ключа подписывающего (3.) Я могу предоставить конечный результат — подписанный контент в качестве входных данных. Я не смог найти возможность сделать это в node-forge или любой другой библиотеке javascript.
Для справки, для команды openssl требуются те же 3 параметра.
Я нашел решение для java, используя библиотеку bouncycastle. Это дает возможность реализовать интерфейс ContentSigner. В принципе, вы можете сообщить библиотеке: «получайте подпись отсюда всякий раз, когда вы подписываете файл», поэтому теоретически должно быть возможно создать PKCS # 7 только с сертификатами и подписанным содержимым.
Вопрос:
Как я могу сгенерировать PKCS # 7 или любой другой допустимый формат подписи PDF, используя только сертификат и подписанное содержимое файла?
Комментарии:
1. Пожалуйста, предоставьте дополнительную информацию со ссылкой на ваш тег для Google-cloud-kms. Вы ищете решение для применения pkcs7 по умолчанию с GCP KMS / HSM для вашего PDF-файла?
2. Да, я использую клиентскую библиотеку nodejs-kms для создания подписи . Я хочу применить эту подпись к формату подписанных данных pkcs7, который позже будет встроен в мой PDF-файл.
3. Использовали ли вы поддерживаемый Google документ о цифровой подписи и создании и проверке подлинности цифровых подписей ? Наблюдали ли вы ошибку при применении этой подписи к формату подписанных данных pkcs7? Не могли бы вы, пожалуйста, предоставить мне дополнительную информацию и скриншоты любого сообщения об ошибке?
4. Да, я использую kms через клиентскую библиотеку для nodejs. Я создаю цифровую подпись с помощью знакосимметричной функции. Проблема в том, что я не могу поместить эти подписанные данные непосредственно в pdf. Согласно спецификации pdf, сначала мне нужно встроить его в формат PKCS # 7, и я не уверен точно, как это сделать.