Пример проверки подписанного XML сообщения с помощью функций КриптоПро ЭЦП SDK Полный текст примера см. SDK файл SimplifiedSignVerifyXadesBes.cpp.
C++
XADES_VERIFICATION_PARA xadesVerifyPara = { sizeof(xadesVerifyPara) }; xadesVerifyPara.dwSignatureType = XADES_BES; // Указываем тип проверяемой подписи XADES_BES XADES_VERIFY_MESSAGE_PARA verifyPara = { sizeof(verifyPara) }; verifyPara.pXadesVerifyPara = &xadesVerifyPara; PXADES_VERIFICATION_INFO_ARRAY pVerifyInfo = 0; // Проверяем подпись if (!XadesVerify(&verifyPara, NULL, &message[0], (unsigned long)message.size(), &pVerifyInfo)) { XadesFreeVerificationInfoArray(pVerifyInfo); cout << "XadesVerify() failed" << endl; return -1; } // Выводим результат проверки for (unsigned int i = 0; i < pVerifyInfo->cbCount; ++i) { if (pVerifyInfo->pXadesVerificationInfo[i].dwStatus != XADES_VERIFY_SUCCESS) cout << "XML signature #" << i << " is not verified successfully." << endl; else cout << "XML signature #" << i << " verified successfully." << endl; } // Освобождаем ресурсы if (!XadesFreeVerificationInfoArray(pVerifyInfo)) { cout << "XadesFreeVerificationInfoArray() failed" << endl; return -1; } return 0;