【发布时间】:2020-11-18 07:26:34
【问题描述】:
我正在使用 Pkcs11Interop 库并尝试使用 RSA_PKCS_OAEP 机制测试加密和解密。
CK_RSA_PKCS_OAEP_PARAMS p = new CK_RSA_PKCS_OAEP_PARAMS();
p.HashAlg = (uint)CKM.CKM_SHA_1;
p.Mgf = (uint)CKG.CKG_MGF1_SHA1;
p.Source = (uint)CKZ.CKZ_DATA_SPECIFIED;
p.SourceData = IntPtr.Zero;
p.SourceDataLen = 0;
CK_MECHANISM mech = CkmUtils.CreateMechanism(CKM.CKM_RSA_PKCS_OAEP, p);
上述机制一切正常,但如果我将哈希算法更改为 SHA-256,如下所示:
CK_RSA_PKCS_OAEP_PARAMS p = new CK_RSA_PKCS_OAEP_PARAMS();
p.HashAlg = (uint)CKM.CKM_SHA256;
p.Mgf = (uint)CKG.CKG_MGF1_SHA256;
p.Source = (uint)CKZ.CKZ_DATA_SPECIFIED;
p.SourceData = IntPtr.Zero;
p.SourceDataLen = 0;
CK_MECHANISM mech = CkmUtils.CreateMechanism(CKM.CKM_RSA_PKCS_OAEP, p);
然后我得到CKR_ARGUMENTS_BAD 异常。我已经搜索和调试了一段时间,但一无所获。
【问题讨论】:
-
你真的应该包含语言标签。
-
您是否尝试过为 MGF1 保留 SHA-1 并且仅将哈希算法更改为 SHA-256,因为这不会产生任何不利的安全影响?
标签: encryption cryptography pkcs#11 pkcs11interop