c++调用CryptVerifyMessageSignature发生错误,返回NTE_BAD_SIGNATURE错误信息,不知道设么原因?
是在第一次调用CryptVerifyMessageSignature时发生的错误,现在截取代码片段CRYPT_VERIFY_MESSAGE_PARA VerifyParams;
// Initialize the VerifyParams data structure.
VerifyParams.cbSize = sizeof(CRYPT_VERIFY_MESSAGE_PARA);
VerifyParams.dwMsgAndCertEncodingType = ENCODING_TYPE;
VerifyParams.hCryptProv = 0;
VerifyParams.pfnGetSignerCertificate = CryptGetSignerCertificateCallback;
VerifyParams.pvGetArg = NULL;
g_strCert = strCerB64;
if(CryptVerifyMessageSignature(
&VerifyParams,
0,
pSignedMessageBlob.pbData,
pSignedMessageBlob.cbData,
NULL,
&cbDecodedMessageBlob,
NULL))
{
if((pbDecodedMessageBlob = (BYTE*)malloc(cbDecodedMessageBlob+1)))
{
memset(pbDecodedMessageBlob,0,cbDecodedMessageBlob+1);
if(CryptVerifyMessageSignature(
&VerifyParams,
0,
pSignedMessageBlob.pbData,
pSignedMessageBlob.cbData,
pbDecodedMessageBlob,
&cbDecodedMessageBlob,
NULL))
{
if (strSourceData == (string)(char*)pbDecodedMessageBlob)
{
nRet = SIGNSUCC;
}
}
}
}
希望大家能帮我解决此棘手问题!
谢谢!!!
[解决办法]
能不能说的明白点?我没看懂.