Java 将构造签名消息的操作分为两部分
我的任务是使用给定的私钥和证书对给定的数据进行签名,并输出签名消息(DER编码)。根据RFC 3370,它遵循CMS标准,签名为RSASSA_PKCS1_V1_5 我可以使用命令行中的Java 将构造签名消息的操作分为两部分,java,c,openssl,rsa,pkcs#1,Java,C,Openssl,Rsa,Pkcs#1,我的任务是使用给定的私钥和证书对给定的数据进行签名,并输出签名消息(DER编码)。根据RFC 3370,它遵循CMS标准,签名为RSASSA_PKCS1_V1_5 我可以使用命令行中的openssl实现此操作: openssl cms -sign -in indata -nodetach -inkey private.key -signer public.cert -out outdata.der -outform DER 我的问题是,我想将签名行为和消息构造行为分开。为了签名,我们需要私钥,
openssl
实现此操作:
openssl cms -sign -in indata -nodetach -inkey private.key -signer public.cert -out outdata.der -outform DER
我的问题是,我想将签名行为和消息构造行为分开。为了签名,我们需要私钥,为了构造消息,我们需要来自证书的数据。因此,理想情况下,我想这样做:
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
在C、C++或java中使用的任何密码库中有一种方法可以做到吗?< /P> OpenSSL是用C编写的;因此,您可以使用它的库。我一直在逐步了解openssl,openssl库的使用方式如下:查看CMS库API,我看不出如何与CMS\u add1\u signer做得不同,CMS\u add1\u signer只是一次接受所有内容。我将更深入地挖掘,但我只是想问,我是否可以在不深入挖掘libcrypto API的情况下完成这项工作