Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.09.2014(UTC) Сообщений: 123  Сказал «Спасибо»: 5 раз Поблагодарили: 2 раз в 2 постах
|
Добрый день! Для подписей ГОСТ все давно работает отлично, за что спасибо!) Появилась необходимость сделать подпись RSA, для подписантов других стран. Примера в документации прямого не нашел, попробовали сделать вот так (если вырезать весь "лишний" код): Код:
var oSignedData = cadesplugin.CreateObject("CAdESCOM.CadesSignedData");
var oHashedData = cadesplugin.CreateObject("CAdESCOM.HashedData");
oHashedData.Algorithm = CADESCOM_HASH_ALGORITHM_SHA1;
oHashedData.DataEncoding = CADESCOM_BASE64_TO_BINARY;
oHashedData.Hash(documentdata[docId][C_DATA]);
var sHashValue = oHashedData.Value;
signer = cadesplugin.CreateObject("CAdESCOM.CPSigner");
signer.Options = CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN;
signer.Certificate = SelectedCertificate;
var sSignedMessage = oSignedData.SignHash(oHashedData, signer, CADESCOM_CADES_BES);
На последней строчке падает с ошибкой " Указан неправильный тип поставщика. (80090014)" Пробовали подписывать двумя сертификатами. 1м - самоподписанным, тестовым все работает. Подписываем вот этим сертификатом  dmitriy.zip (1kb) загружен 3 раз(а). все работает, подпись создается. Подписываем вот этим, реальным сертификатом,  dubrovin.zip (2kb) загружен 3 раз(а). - возникает описанная выше ошибка. В крипто арм тоже возникает ошибка http://take.ms/RoTDQ при выборе сертификата. Нo, например, (не знаю относится ли это к делу), Word, создает подпись этим сертификатом, подписывая документы. Не знаю чем это поможет... Подскажите, в чем может быть дело? или ссылку на пример по теме
|
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,423  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 38 раз Поблагодарили: 734 раз в 632 постах
|
Боюсь, что дело не в сертификате. Нужно посмотреть ссылки на ключ в установленных в хранилище сертификатах. Сделать можно вот так: start /b csptest -certkey -store My -nochange -provtype 1 -verbose Но нужно знать тип провайдера. |
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.09.2014(UTC) Сообщений: 123  Сказал «Спасибо»: 5 раз Поблагодарили: 2 раз в 2 постах
|
Эта команда не выдала "реального" сертификата. Тестовый отобразился http://take.ms/RTQ8OoА как узнать тип провайдера? и что с этим делать дальше?))
|
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,423  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 38 раз Поблагодарили: 734 раз в 632 постах
|
В новых версиях CSP есть более удобная утилита. "\Program Files\Crypto Pro\CSP\certmgr.exe" -list |
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.09.2014(UTC) Сообщений: 123  Сказал «Спасибо»: 5 раз Поблагодарили: 2 раз в 2 постах
|
Да, эта утилита нашла нужный сертификат и выдала следующее: 1------- Issuer : C=PL, O=Unizeto Technologies S.A., OU=Certum Certification Authority, CN=Certum Level III CA Subject : C=RU, O=Code Control llc, OU=Administration, CN=Dubrovin I gor, E=<убрал емейл> Serial : 0x7D689460B958A7F8A30B83ECEE72EC39 SHA1 Hash : 0xedd8935da94260dd4833e1bd993d37c5b699b2ec Signature Algorithm : sha1RSA PublicKey Algorithm : RSA (2048 bits) Not valid before : 02/12/2016 09:47:13 UTC Not valid after : 02/12/2017 09:47:13 UTC PrivateKey Link : Yes Container : {EDF835FF-2508-4E97-AB25-FCCD2BCD5141} Provider Name : Microsoft Software Key Storage Provider Provider Info : ProvType: 0, KeySpec: 0, Flags: 0x0 RFC #822 Name : <убрал емейл> Extended Key Usage : 1.3.6.1.5.5.7.3.2 1.3.6.1.5.5.7.3.4 Отредактировано пользователем 9 декабря 2016 г. 11:47:57(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,423  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 38 раз Поблагодарили: 734 раз в 632 постах
|
Как я и предполагал - используется CNG. Наш плагин потребует доработки для поддержки таких сертификатов. Нужно перерегистрировать сертификат с привязкой к контейнеру CSP. |
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.09.2014(UTC) Сообщений: 123  Сказал «Спасибо»: 5 раз Поблагодарили: 2 раз в 2 постах
|
А когда может быть проведена такая доработка вами? Свой сертификат мы можем теоретически перевыпустить, но вот другие клиентские сертификаты у каждого, думаю будет невозможно перевыпустить.
Возможно ли как-то еще решить эту проблему?
|
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,423  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 38 раз Поблагодарили: 734 раз в 632 постах
|
Доработку начали планировать. Я же пишу - нужно перерегистрировать контейнер. В данном случае можно сделать с помощью утилиты csptest: start /b csptest -ipsec -reg -mycert файл_сертификата.cert -autocont
|
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.09.2014(UTC) Сообщений: 123  Сказал «Спасибо»: 5 раз Поблагодарили: 2 раз в 2 постах
|
Сорри, если я сильно туплю, но при выполнении этой команды получаю ошибку http://take.ms/Cs3ScНужно ли сертификат удалять предварительно? У меня он с закрытым ключом находится в файле pfx, а dubrovin.cer - это открытая часть сертификата, тот файлик, что я прицеплял в 1 посте.
|
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,423  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 38 раз Поблагодарили: 734 раз в 632 постах
|
Функциональность csptest протестирована с RSA провайдерами недостаточно. Попробуйте указать имя контейнера start /b csptest -ipsec -reg -mycert файл_сертификата.cert -key "{EDF835FF-2508-4E97-AB25-FCCD2BCD5141}" |
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close