Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline NOX  
#1 Оставлено : 14 марта 2012 г. 20:13:01(UTC)
NOX

Статус: Новичок

Группы: Участники
Зарегистрирован: 14.03.2012(UTC)
Сообщений: 3

Доброго времени суток.

Посредством КриптоПРО ЭЦП browser plug-in мне необходимо подписать сообщение и вернуть его обратно на сервер.

Код:
 function SignCreate(certSubjectName, dataToSign) {
    var oStore = CreateObject("CAPICOM.Store");
    oStore.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_ROOT_STORE,
    CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);

    var oCertificates = oStore.Certificates.Find(
    CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, certSubjectName);
    if (oCertificates.Count == 0) {
        alert("Certificate not found");
        return;
    }
    var oCertificate = oCertificates.Item(1);

    var oSigner = CreateObject("CAdESCOM.CPSigner");
    oSigner.Certificate = oCertificate;
    
    var oSignedData = CreateObject("CAdESCOM.CadesSignedData");
    oSignedData.Content = dataToSign;

    try {
    	var sSignedMessage = oSignedData.SignCades(oSigner, CADESCOM_CADES_TYPE.CADESCOM_CADES_BES, true, CAPICOM_ENCODE_BASE64);
    } catch (err) {
        alert("Failed to create signature. Error: " + GetErrorMessage(err));
        return;
    }

    oStore.Close();

    return sSignedMessage;
}


при вызове функции SignCades выдается такая ошибка: Cannot find the certificate and private key for decryption (0x8009200B).
Сертификат находится корректно. Пробовал использовать разные сертификаты и разные типы подписей. Результат такой же.

С чем может быть связана данная проблема?
Offline Андрей Писарев  
#2 Оставлено : 14 марта 2012 г. 20:20:16(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,340
Мужчина
Российская Федерация

Сказал «Спасибо»: 550 раз
Поблагодарили: 2212 раз в 1727 постах
возможно поможет
http://www.cryptopro.ru/....aspx?g=posts&t=1556

повторно привязать сертификат к контейнеру


CryptAcquireCertificatePrivateKey fails with CRYPT_E_NO_KEY_PROPERTY (0x8009200B )

Отредактировано пользователем 14 марта 2012 г. 20:26:11(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
Offline NOX  
#3 Оставлено : 20 марта 2012 г. 17:21:41(UTC)
NOX

Статус: Новичок

Группы: Участники
Зарегистрирован: 14.03.2012(UTC)
Сообщений: 3

Спасибо, Андрей.
Сообщение удалось подписать. Проблема разрешилась подключением рутокена с контейнером сертификата. Однако при валидации подписанного сообщения возникла новая проблема:
The revocation process could not continue - the certificate(s) could not be checked. (0x800B010E)
Использую тип подписи CADES_BES. Подпись совмещённая.

Код:
var sSignedMessage = oSignedData.SignCades(oSigner, CADESCOM_CADES_BES, false, CAPICOM_ENCODE_BASE64);
oSignedData.VerifyCades(sSignedMessage, CADESCOM_CADES_BES, false);
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (3)
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.