我们正在建立一个数字签名平台。每个用户在高速移动机器中生成一个RSA 2048密钥对,并发出一个X509数字证书。在PAdEs或CAdES数字签名(信封)过程中,我们得到SHa256散列32字节,需要用用户的RSA私钥加密才能完成签名操作。
我们应该使用什么PKCS11机制和功能来加密带有RSA私钥的散列?
使用CKM_SHA256_RSA_PKCS和C_Sign()似乎会散列哈希,然后对其进行签名/加密。这不是我们想要的除非我弄错了。
这有用吗: C_Encrypt(CKM_RSA_PKCS,privateKeyHandle,hashBytes)?根据文档,CKM_RSA_PKCS使用公钥。
非常感谢
发布于 2022-10-23 11:56:25
是。签名方法是您所需要的。
在PKCS11Interop GitHub项目页面中,有一个名为“_20_signAndVerifyTest.cs”的示例,其中使用了一个具有此签名的方法:
byte[] Sign(IMechanism mechanism, IObjectHandler privateKeyHandle, byte[] sourceData)这种论证机制是通过以下方式提出的:
Factories.MechansimFactory.Create(CKM.CKM_SHA1_RSA_PKCS)这是一个RSA机制。要设置它的长度,您应该创建一个具有2048模数长度的私钥。
这就是你需要的吗?
https://stackoverflow.com/questions/72752183
复制相似问题