Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро ЭЦП (усовершенствованная ЭЦП)
»
Как проверить и вытащить несколько подписей из одного документа с помощью упрощенных функций
Статус: Активный участник
Группы: Участники
Зарегистрирован: 12.07.2021(UTC) Сообщений: 39 Сказал(а) «Спасибо»: 10 раз
|
Необходимо проверить присединеные/отсоединеные подписи, в одном документе может содержаться от одной до нескольких подписей, с проверкой одной подписи вопросов нет, но как проверить несколько если она там есть? Написал вот такое: В файле есть 2 подписи, но проверяется только одна, до второй не доходит. Код:
bool VerifyCadesBesSign(const std::string& file) {
CRYPT_VERIFY_MESSAGE_PARA cryptVerifyPara = { sizeof(cryptVerifyPara) };
cryptVerifyPara.dwMsgAndCertEncodingType = X509_ASN_ENCODING | PKCS_7_ASN_ENCODING;
CADES_VERIFICATION_PARA cadesVerifyPara = { sizeof(cadesVerifyPara) };
cadesVerifyPara.dwCadesType = CADES_BES;
CADES_VERIFY_MESSAGE_PARA verifyPara = { sizeof(verifyPara) };
verifyPara.pVerifyMessagePara = &cryptVerifyPara;
verifyPara.pCadesVerifyPara = &cadesVerifyPara;
PCADES_VERIFICATION_INFO pVerifyInfo = 0;
std::vector<unsigned char> data;
ReadFileToVector(file.c_str(), data);
PCRYPT_DATA_BLOB pContent = 0;
DWORD signerIndex = 0;
while (CadesVerifyMessage(&verifyPara, signerIndex, &data[0], (DWORD)data.size(), &pContent, &pVerifyInfo)) {
if (pVerifyInfo->dwStatus == CADES_VERIFY_SUCCESS) {
auto *pCert = pVerifyInfo->pSignerCert->pCertInfo;
cout << std::string((char*)pCert->Issuer.pbData, pCert->Issuer.cbData);
} else {
std::cout << "CAdES-BES message verified failed." << std::endl;
}
if (!CadesFreeVerificationInfo(pVerifyInfo)) {
CadesFreeBlob(pContent);
std::cout << "CadesFreeVerificationInfo() failed" << std::endl;
}
}
return true;
}
|
|
|
|
Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро ЭЦП (усовершенствованная ЭЦП)
»
Как проверить и вытащить несколько подписей из одного документа с помощью упрощенных функций
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close