Здравствуйте,
не удалось создать подпись по Первому примеру использования CAdES browser plugin и руководства с примерами
CAdES error 0x800B010A:
Не хочу загружать полностью кодом, поскольку место возникновения ошибки найдено, предварительно причины хочется уточнить, ибо возможно это не так:
Попробовать сделать подпись я решил по самому первому примеру синхронного подписания из вашего руководства
http://cpdn.cryptopro.ru...plugin-installation.htmlОшибка возникает в функции SignCreate(certSubjectName, dataToSign)
try {
var sSignedMessage = oSignedData.SignCades(oSigner, CADESCOM_CADES_X_LONG_TYPE_1);
} catch (err) {
alert("Failed to create signature. Error: " + cadesplugin.getLastError(err));
return;
}
При этом
var CADESCOM_CADES_X_LONG_TYPE_1 = 0x5d;
и как я понимаю это код усовершенствованной ЭП.
У меня два обозревателя - Opera и MSIE 8.0 и, чтобы IE входил в рекурсию создания CAdES объектов, мне пришлось сохранить на локальном диске cadesplugin_api.js и добавить в функцию is_IE() имя 8.0 версии обозревателя "MSIE",
в противном случае pluginObject был не определен и функция CreateObject(name) из cadesplugin_api не возвращала цепочку объектов CAdES.
После этих изменений, стали создаваться объекты в цепочке функции CreateObject(name) для старой версии плагина:
try {
var objWebClassFactory = (typeof document.all!="undefined")?document.all("webClassFactory"):document.getElementById("webClassFactory");
alert("objWebClassFactory "+ objWebClassFactory);
return objWebClassFactory.CreateObject(name);
}
catch (e) {
// Для версий плагина ниже 2.0.12538
alert("new ActiveXObject("+name+");");
return new ActiveXObject(name);
}
Видимо MSIE 8.0 не работает с webClassFactory или ваше усовершенствование ie_eventlistner_polyfill.js, найденное мною в тестовом примере и локально сохраненное на диск не находит объект. Я в этом месте решил попробовать document.all, с которым MSIE работает, но это не помогло.
Таким образом, объекты CAdES создаются для плагина старой версии, а плагин на самом деле версии2.0.12888.
Возможно это всё равно должно работать, я не знаю, но к тому же мой сертификат использует алгоритм неусовершенствованной ЭП по ГОСТ Р 34.10-2001, а константа стоит для работы с усовершенствованной ЭП.
Какую константу надо использовать с ГОСТ Р 34.10-2001? Opera - не находит cadesplugin, нужно куда-то включать её расширения.
К сожалению в Руководстве по использования CAdES плагина не нашел информации по особенностям работы с броузерами.
========
Сегодня нашел ваш тестовый пример создания усовершенствованной ЭП
https://www.cryptopro.ru.../cades_xlong_sample.htmlИ он также выдал такой же код ошибки. Вот сообщение полностью:
"Не удалось создать подпись из-за ошибки: An internal certificate chaining error has occurred. (0x800B010A)"
при этом адрес службы штампа времени:
http://testca.cryptopro.ru/tsp/tsp.srfИнформация о сертификате
Владелец: CN=****************************
Издатель: CN="УЦ ЗАО ""ПФ ""СКБ Контур"""
Выдан: 07.06.2017 14:18:00
Действителен до: 07.06.2018 14:28:00
Криптопровайдер: Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider
Алгоритм ключа: ГОСТ Р 34.10-2001
Какова может быть причина этой ошибки? Что не хватает в сертификате, чтобы подписание усовершенствованной ЭП завершалось успешно?