Пример усовершенствования подписи CAdES-BES до подписи CAdES-X Long Type 1 с помощью упрощённых функций КриптоПро ЭЦП SDK
C++
CADES_SIGN_PARA cadesSignPara = { sizeof(cadesSignPara) }; cadesSignPara.dwCadesType = CADES_X_LONG_TYPE_1; CADES_ENHANCE_MESSAGE_PARA para = { sizeof(para) }; para.dwMsgEncodingType = X509_ASN_ENCODING | PKCS_7_ASN_ENCODING; para.pCadesSignPara = &cadesSignPara; PCRYPT_DATA_BLOB pSignedMessage = 0; if(!CadesEnhanceMessage(¶, 0, &message[0],(DWORD)message.size(), &pSignedMessage)) { std::cout << "CadesEnhanceMessage() failed" << std::endl; return empty; } message.resize(pSignedMessage->cbData); std::copy(pSignedMessage->pbData, pSignedMessage->pbData + pSignedMessage->cbData,message.begin()); if(!CadesFreeBlob(pSignedMessage)) { std::cout << "CadesFreeBlob() failed" << std::endl; return empty; } std::cout << "Signature was enhanced successfully." << std::endl; return message;