Пример проверки подписанного сообщения с помощью упрощённых функций КриптоПро ЭЦП SDK
C++
CRYPT_VERIFY_MESSAGE_PARA cryptVerifyPara = { sizeof(cryptVerifyPara) }; cryptVerifyPara.dwMsgAndCertEncodingType = X509_ASN_ENCODING | PKCS_7_ASN_ENCODING; CADES_VERIFY_MESSAGE_PARA verifyPara = { sizeof(verifyPara) }; verifyPara.pVerifyMessagePara = &cryptVerifyPara; PCADES_VERIFICATION_INFO pVerifyInfo = 0; PCRYPT_DATA_BLOB pContent = 0; if(!CadesVerifyMessage(&verifyPara,0, &message[0],(DWORD)message.size(),&pContent,&pVerifyInfo)) { CadesFreeVerificationInfo(pVerifyInfo); std::cout << "CadesVerifyMessage() failed" << std::endl; return; } if(pVerifyInfo->dwStatus != CADES_VERIFY_SUCCESS ) std::cout << "Message is not verified successfully." << std::endl; else std::cout << "Message verified successfully." << std::endl; if(!CadesFreeVerificationInfo(pVerifyInfo)) { CadesFreeBlob(pContent); std::cout << "CadesFreeVerificationInfo() failed" << std::endl; return; } if(!CadesFreeBlob(pContent)) { std::cout << "CadesFreeBlob() failed" << std::endl; return; } // Конец проверки сообщения