Здравствуйте, у нас возникла проблема с cadesplugin от CryptoPRO Browser plug-in. При попытке подписи прилетает исключение на строке с return await...
async function GetSignature(oData, strThumbprint) {
//создаем объекты для подписи данных
var oSignedData = await cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
var oSigner = await cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner");
await oSignedData.propset_ContentEncoding(cadesplugin.CADESCOM_ENCODE_BASE64)
await oSignedData.propset_Content(oData);
try {
//получаем сертификат для подписи
var oSignCert = await GetSignCertByThumb(strThumbprint); //GetSignCert()
if (oSignCert == null) return null;
await oSigner.propset_Certificate(oSignCert);
// await oSigner.propset_SignatureTimeStampTime(Date.now())
await oSigner.propset_TSAAddress("https://testca2012.cryptopro.ru/tsp/tsp.srf")
//второй параметр:
// false - подписываемые данные включаются в выходную строку
// true - подписываемые данные НЕ включаются в выходную строку
return await oSignedData.Sign(oSigner, false, cadesplugin.CADESCOM_ENCODE_BASE64);
} catch (e) {
console.log(e)
if (e.number != CAPICOM_E_CANCELLED) {
alert("Ошибка при подписи данных (" + e.number + ", " + e.description + ")");
return null;
}
}
}
Находимся в процессе перехода с CAPICOM, где ранее использовался просто Sign без третьего аргумента. Секция catch еще не трогалась, там неверный хэндлинг, это известно.
Ошибка такая: Внутренняя ошибка. (0x8007045A)
Сертификат выпущен на тестовом УЦ
http://testca2012.cryptopro.ru/ui/