Статус: Новичок
Группы: Участники
Зарегистрирован: 10.02.2013(UTC) Сообщений: 3
Сказал(а) «Спасибо»: 1 раз
|
Добрый день! Возникли трудности с использованием добавленных возможностей в новой версии дистрибутива КриптоПро ЭЦП Browser plug-in для Windows - версия 1.05.1229. Пробовал использовать метод SignHash объекта CAdESCOM.RawSignature. При выполнении метода возникает ошибка: "Keyset does not exist (0x80090016)". Закрытые ключи сертификатов лежат не в реестре, а на носителе rutoken/etoken. Не могли бы подсказать причину возникновения и решение данной ошибки, пожалуйста. (При создании CMS-подписи, при помощи метода SignCades объекта CAdESCOM.CadesSignedData, с использованием того же сертификата, операция выполнялась успешно, ошибок не возникало) Отредактировано пользователем 21 февраля 2013 г. 15:42:41(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 10.12.2008(UTC) Сообщений: 924 Откуда: Крипто-Про Поблагодарили: 99 раз в 95 постах
|
Здравствуйте!
А каким образом вы инициализируете сертификат? Достаете из хранилища?
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 10.02.2013(UTC) Сообщений: 3
Сказал(а) «Спасибо»: 1 раз
|
Здравствуйте!
При помощи свойства Certificates объекта CAPICOM.store, как в примерах. Вот код: var thumbprint = getValue('certificateList');
thumbprint = thumbprint.split(" ").reverse().join("").replace(/\s/g, "").toUpperCase();
try { var oStore = Form.ObjCreator("CAPICOM.store"); oStore.Open(); } catch (err) {}
var CAPICOM_CERTIFICATE_FIND_SHA1_HASH = 0; var oCerts = oStore.Certificates.Find(CAPICOM_CERTIFICATE_FIND_SHA1_HASH, thumbprint); var oCert = oCerts.Item(1);
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 10.12.2008(UTC) Сообщений: 924 Откуда: Крипто-Про Поблагодарили: 99 раз в 95 постах
|
Сертификат установлен в хранилище со ссылкой на закрытый ключ? И на этой же машине с этим же сертификатом создание подписи при помощи метода SignCades работает?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 07.08.2012(UTC) Сообщений: 123
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 6 раз в 6 постах
|
Не подскажете, какая может быть причина ошибки, возвращаемую плагином во время подписывания: Unknown error code (0x80880902)
Получили заявку от пользователя. Повторить пока не получилось, поэтому кроме кода ошибки дополнительной информации нет.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,320 Сказал «Спасибо»: 549 раз Поблагодарили: 2207 раз в 1722 постах
|
Автор: dmishin Не подскажете, какая может быть причина ошибки, возвращаемую плагином во время подписывания: Unknown error code (0x80880902)
Получили заявку от пользователя. Повторить пока не получилось, поэтому кроме кода ошибки дополнительной информации нет. Возможно поможет... Поиск по коду ошибки "0x80880902" выдает: Цитата: CAPICOM_E_CANCELLED 0x80880902 The operation has been canceled by the user. This happens when the user is prompted for permission to carry out certain operation, such as accessing the private key, and the user cancels the operation.
http://msdn.microsoft.co...p/aa375685(v=vs.85).aspx |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 07.08.2012(UTC) Сообщений: 123
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 6 раз в 6 постах
|
В описании ошибки от пользователя не упоминалось о том, что он отменял действие. Если это единственная возможная причина, то будем уточнять... Отредактировано пользователем 10 марта 2013 г. 8:49:05(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 10.12.2008(UTC) Сообщений: 924 Откуда: Крипто-Про Поблагодарили: 99 раз в 95 постах
|
Автор: dmishin Не подскажете, какая может быть причина ошибки, возвращаемую плагином во время подписывания: Unknown error code (0x80880902)
Получили заявку от пользователя. Повторить пока не получилось, поэтому кроме кода ошибки дополнительной информации нет. Скорее всего криптопровайдер выдал окно с поиском ключевого носителя, где пользователь нажал кнопку "Отмена". Поскольку другой информации об ошибке нет, то сложно сказать точно, чем она была вызвана.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 07.08.2012(UTC) Сообщений: 123
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 6 раз в 6 постах
|
Автор: Новожилова Елена Автор: dmishin Не подскажете, какая может быть причина ошибки, возвращаемую плагином во время подписывания: Unknown error code (0x80880902)
Получили заявку от пользователя. Повторить пока не получилось, поэтому кроме кода ошибки дополнительной информации нет. Скорее всего криптопровайдер выдал окно с поиском ключевого носителя, где пользователь нажал кнопку "Отмена". Поскольку другой информации об ошибке нет, то сложно сказать точно, чем она была вызвана. Да, спасибо. Пытаемся связаться с клиентом.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.10.2011(UTC) Сообщений: 61
Сказал(а) «Спасибо»: 2 раз
|
Добрый день! Внезапно запутался =) Осуществляю подпись: Код:sign: function (data, certificate) {
try {
var signer = this.createCryptoObject(this.getSignerString());
}
catch (e) {
this.alert('Ошибка', 'Ошибка получения объекта для подписания: ' + e.message);
return null;
}
if (signer && certificate) {
signer.Certificate = certificate;
}
else {
this.alert('Ошибка', 'Не удалось получить сертификато либо объект для подписания');
}
var signedData = this.createCryptoObject(this.getSignedDataString());
if (!this.isIE()) {
signedData.ContentEncoding = this.constants.cryptoPro.CADESCOM_BASE64_TO_BINARY;
}
signedData.Content = data;
try {
var signature = this.isIE() ?
signedData.Sign(signer, true /*detached*/, this.constants.encodingType.CAPICOM_ENCODE_BASE64)
: signedData.SignCades(signer, this.constants.cryptoPro.CADES_BES, true /*detached*/, this.constants.encodingType.CAPICOM_ENCODE_BASE64);
return signature;
}
catch (e) {
this.alert('Ошибка подписания документа: ' + e.message);
return null;
}
}
Проверка:
verify: function (signed, detached, content) {
var signedData = this.createCryptoObject(this.getSignedDataString());
if (detached) {
signedData.Content = content;
}
if (this.isIE()) {
try {
signedData.Verify(signed, detached, this.constants.verifyFlag.CAPICOM_VERIFY_SIGNATURE_ONLY);
return true;
}
catch (e) {
return false;
}
}
else {
try {
signedData.ContentEncoding = this.constants.cryptoPro.CADESCOM_BASE64_TO_BINARY;
signedData.VerifyCades(signed, this.constants.cryptoPro.CADES_BES, detached);
return true;
}
catch (e) {
return false;
}
}
}
Подпись: var sign = Crypto.sign("dGVzdA==" /*test*/, cert); Вызов после пердыдущей подписи: var result = Crypto.verify(sign, true, 'dGVzdA=='); Падает с ошибкой "Неверный хеш". Странно, подскажите пожалуйста! Отредактировано пользователем 22 марта 2013 г. 12:11:40(UTC)
| Причина: Не указана
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close