Разделить операцию построения подписанного сообщения на две части - PullRequest
0 голосов
/ 03 марта 2020

У меня есть задача подписать определенные данные с данным секретным ключом и сертификатом и вывести подписанное сообщение (в кодировке DER). Это соответствует стандарту CMS согласно RF C 3370, подпись RSASSA_PKCS1_V1_5.

Я могу выполнить эту операцию, используя openssl из командной строки:

openssl cms -sign -in indata -nodetach -inkey private.key -signer public.cert -out outdata.der -outform DER

Моя проблема в том, что я хотел бы разделить акт подписания и акт построения сообщения. AFAIK для подписи нам нужен закрытый ключ, а для построения сообщения нам нужны данные из сертификата. Поэтому в идеале я хочу сделать это:

openssl cms -sign -step 1 -in indata -inkey private.key -out signature.bin 
openssl cms -sign -step 2 -in indata -signature signature.bin -signer public.cert -out outdata.der -outform DER

Есть ли способ сделать это в любой из библиотек cryptographi c, используемых в C, C ++ или Java?

...