有很长一段时间,我使用奇尔卡特来签署密室,...没有任何问题。但现在我在Windows10 (64b)上用它制作带有比利时id的签名文件时遇到了一些问题(它在Windows1032b上有效)。软件不要求提供PIN码,所以不可能签名。
我试图升级到最新版本的chilkat (我有一个旧版本的许可证),我更新了eid中间件,但没有成功。我用另一个软件试过了,签名没有问题。
下面是我的代码:
CkCrypt2 crypt;
CkCsp csp;
crypt.UnlockComponent("Start my 30-day Trial");
CkCreateCS ccs;
CkCertStore *p_certStore = 0;
ccs.put_ReadOnly(true);
p_certStore = ccs.OpenCurrentUserStore();
CkCert *p_cert = 0;
CkString ckS1;
CkString ckS2;
p_cert = p_certStore->FindCertBySerial(csCertSerialNumber);
delete p_certStore;
success = csp.SetProviderMicrosoftEnhanced();
success = csp.SetProviderMicrosoftStrong();
success = csp.SetProviderMicrosoftRsaAes();
iCount = csp.SetHashAlgorithm("sha-1");
//crypt.SetCSP(&csp);
crypt.SetCSP(csp);
crypt.put_IncludeCertChain(false);
iCount = csp.get_NumSignatureAlgorithms();
for(i=0;i<iCount;i++)
{
csp.NthSignatureAlgorithm(i,ckS1);
csAlgorithm.Format("%s",ckS1);
}
crypt.SetSigningCert(*p_cert);
success = crypt.CreateP7S(csFileToSign,csSignatureFile);在Windows1064b上,我无法输入PIN码,加密失败
作为错误,我收到:签名失败。secStatus: 0x106谁有办法帮我?
发布于 2019-07-24 19:20:58
尝试使用带有CkCert::LoadFromSmartcard方法的最新版本的Chilkat。
https://www.example-code.com/cpp/load_certificate_on_smartcard_in_reader.asp
您也可以通过编程方式设置个人识别码,如下所示:https://www.example-code.com/cpp/cades_bes_smartcard.asp
https://stackoverflow.com/questions/57179809
复制相似问题