描述:
用java api 生成的一对密钥
其编码格式是PKCS8,和X509
怎么用vc进行签名和验签。比较着急。。。。。。。。。。
不会用CryptoAPI 体系吧。
解决方案1:
随便下个加密库就可以了, cryptlib 或者 openssl 都行。
解决方案2:高手到那里去了,快来帮帮他吧!真的太难了,我不会,我再去问一下!如果搞出来请给的说一声!谢谢!
解决方案3:顶一把。
解决方案4:库里有帮助文件和演示签名。验证的例子程序,也可到他的网站下载用户手册,网址在readme之类的文件中
解决方案5: http://www.winmsg.com/download/crypt32_cl31.zip
是cryptlib
帮楼主顶一下,关注!
解决方案7: // 读取 CA 证书文件
if (NULL == (fp = fopen("C:\\gpkcs11_install\\xdrv.cert", "rb")))
{
printf("File can not be opened.");
exit(1);
}
buf = malloc(6000);
c1 = fread(buf,1 , 5999, fp);
fclose(fp);
/*
if (NULL == (pCertContext = CertCreateCertificateContext(X509_ASN_ENCODING, (const unsigned char *)buf, c1)))
{
printf("Can not resolve.");
exit(1);
}
else
{
printf("cert read ok!\n");
}
*/
{
/*
CK_OBJECT_CLASS class = CKO_CERTIFICATE;
CK_CERTIFICATE_TYPE certType = CKC_X_509;
CK_CHAR label[]={"ssdfsdfsdf"};
CK_BYTE subject[200]={0};
// CK_BYTE id[50] = {0};
CK_BYTE certificate[4000]={0};
CK_BYTE issuer[100]={0};
CK_BYTE serial_number[100]={0};
CK_BBOOL true = TRUE;
CK_ATTRIBUTE certificateTemplate[] = {
{CKA_CLASS, &class, sizeof(class)},
{CKA_CERTIFICATE_TYPE, &certType, sizeof(certType)},
{CKA_TOKEN, &true, sizeof(true)},
{CKA_LABEL, label, sizeof(label)},
{CKA_SUBJECT, pCertContext->pCertInfo->Subject.pbData, pCertContext->pCertInfo->Subject.cbData},
//{CKA_ID, pCertContext->pCertInfo->SignatureAlgorithm.pszObjId, strlen(pCertContext->pCertInfo->SignatureAlgorithm.pszObjId)},
{CKA_ISSUER, pCertContext->pCertInfo->Issuer.pbData, pCertContext->pCertInfo->Issuer.cbData},
{CKA_SERIAL_NUMBER, pCertContext->pCertInfo->SerialNumber.pbData, pCertContext->pCertInfo->SerialNumber.cbData},
{CKA_VALUE, pCertContext->pbCertEncoded, pCertContext->cbCertEncoded}
};
我也想知道。用CryptoAPI好象在98下不行