У меня есть аппаратное обеспечение, которое я использую для генерации ключей RSA и подписей. Мне нужны две вещи:Как использовать openssl с аппаратным чипом шифрования?
1) Создайте запрос сертификата. С помощью аппаратного обеспечения я могу получить открытый ключ для сертификата и сделать часть подписи. Мне нужен код для создания сертификата, т. Е. Делайте материал ASN.1/DER/PEM.
2) Подпишите данные, используя S/MIME. Опять же, я буду использовать аппаратное обеспечение для части подписи, но мне нужен код для части формата: PKCS # 7 для конвертации как подписи, так и сертификата x509 в результате предыдущей задачи.
Поэтому я мог бы использовать openssl как для генерации CSR, так и для S/MIME-форматов, но openssl требует для таких задач закрытого ключа для подписывания, и, как я уже сказал, подписание я делаю с помощью аппаратного обеспечения. Я знаю, что есть механизм, называемый «двигателями» для подключения аппаратных функций к openssl, но он использует динамические библиотеки, которые не поддерживаются на моей платформе (ранний uClinux для ARM).
Итак, вопрос в том, есть ли другой способ заставить openssl принять внешний ключ и, что более важно, делегировать подписку на мое оборудование? В противном случае, вы бы порекомендовали другую библиотеку C/C++, которую я мог бы использовать для этого? Мне действительно не нужна криптографическая библиотека, ей будет достаточно библиотеки, которая знает, как создавать эти форматы (запросы на сертификаты и S/MIME).