Kenshin Опубликовано 28 Мая 2013 Жалоба Поделиться Опубликовано 28 Мая 2013 Добрый день!Согласно документу http://egov.samregion.ru/external/elgov/files/c_11087/Spetsifikatsiya_trebovanij_k_mehanizmam_postanovki_i_proverki_EP.pdf можно использовать VipNet CSP для подписи XML-документов по стандарту OASIS Standard 200401. Подскажите, как это сделать (из командной строки или какую кнопку нажать).Заранее спасибо за ответ. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
slavanchuk Опубликовано 28 Мая 2013 Жалоба Поделиться Опубликовано 28 Мая 2013 Сомневаюсь, что VipNet CSP это умеет в режиме командной строки, да и вовсе это не функция криптопровайдера. Эта функция прикладного уровня. То есть, в том же .NET, JAVA или на другой платформе разработки Вам нужно просто заставить использовать именно данный криптопровайдер (или данный алгоритм шифрования), чтобы прикладная библиотека сформировала подпись через VipNet CSP. Но никак не из консоли. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Ranmoro Опубликовано 2 Декабря 2013 Жалоба Поделиться Опубликовано 2 Декабря 2013 Добрый день. Изучаю ваш пример реализации логики на C# https://github.com/Infotecs/CSharpViPNetCSPинтересует момент взаимодействия с электронным сертификатомможно его получать с помощью контейнера ключей?или предполагается использовать системное хранилище Windows и т.п. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
pisarev.aa Опубликовано 2 Декабря 2013 Жалоба Поделиться Опубликовано 2 Декабря 2013 CryptAcquireContextДобрый день.Изучаю ваш пример реализации логики на C#https://github.com/I...CSharpViPNetCSPинтересует момент взаимодействия с электронным сертификатомможно его получать с помощью контейнера ключей?или предполагается использовать системное хранилище Windows и т.п.CryptAcquireContextCryptGetUserKeyCryptGetKeyParam( .. KP_CERTIFICATE .., cb )выделить память cb для pbCertificateCryptGetKeyParam( .. KP_CERTIFICATE, pbCertificate, cb )pCertContext = CertCreateCertificateContext( X509_ASN_ENCODING, pbCertificate, cb ) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Ranmoro Опубликовано 3 Декабря 2013 Жалоба Поделиться Опубликовано 3 Декабря 2013 pisarev.aaочень помогло, спасибо.ещё вопрос по теме подписи:возникает ошибка `Ключ не существует` при создании сигнатуры подписиif (!CryptoApi.CryptSignHash(handler, (int)keyNumber, null, flags, null, ref signatureSize))смущает то, что с контейнером ключей из примера всё прекрасно работает,а контейнер созданный утилитой `Создание запроса на сертификат` радует этой ошибкой.завтра проверю на других версиях Vipnet Csp Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Ranmoro Опубликовано 3 Декабря 2013 Жалоба Поделиться Опубликовано 3 Декабря 2013 если в окне `Создание запроса на сертификат` в группе `параметры сертификата`для пункта `Назначение` установить только подпись ошибка не возникает.почему так? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
pre Опубликовано 4 Декабря 2013 Жалоба Поделиться Опубликовано 4 Декабря 2013 В контейнере может быть два ключа. Значение keyNumber в вызове должно соответствовать номеру того ключа, который есть в контейнере (1 или 2). В примере используется ключ только подписи с номером 2. Если вы начинаете использовать контейнер, в котором ключа с номером 2 нет, происходит такая ошибка. См. AT_SIGNATURE в MSDN. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Ranmoro Опубликовано 4 Декабря 2013 Жалоба Поделиться Опубликовано 4 Декабря 2013 В контейнере может быть два ключа. Значение keyNumber в вызове должно соответствовать номеру того ключа, который есть в контейнере (1 или 2). В примере используется ключ только подписи с номером 2. Если вы начинаете использовать контейнер, в котором ключа с номером 2 нет, происходит такая ошибка. См. AT_SIGNATURE в MSDN.с видами ключей понятно. спасибо.мучает ещё один момент:когда получаю из контейнера публичный ключметодом CryptoApi.CryptExportKey(.. PublicKeyBlob..он на совпадает с открытым ключём из сертификата этого же контейнерав запросе на сертификат код совпадает с сертификатом. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Ranmoro Опубликовано 6 Декабря 2013 Жалоба Поделиться Опубликовано 6 Декабря 2013 Разобрался. в сертификате хранится сжатая версия открытого ключа.для получения полной версии нужно создать контейнер ключей, и импортировать туда ключ из сертификата.работающий пример реализации: https://github.com/Ranmoro/CSharpViPNetCSPогромное спасибо всем тем, кто помогал.на этом всё. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
NickOne Опубликовано 24 Сентября 2014 Жалоба Поделиться Опубликовано 24 Сентября 2014 Добрый день.Помогите, пожалуйста, разобраться в следующей проблеме:В системе установлена ViPNet CSP 3.2 (11.16035).Подписываю XML при помощи контейнера (№1) ключей, в котором указано, что алгоритм закрытого ключа - ГОСТ Р 34.10-2001. Всё успешно.Далее пробую подписывать XML при помощи контейнера (№2), в котором алгоритм - ГОСТ Р 34.10-2001 DH. Но получаю ошибку "Ключ не существует" при вызове метода CryptSignHash.В обоих случаях указываю имя провайдера - Infotecs Cryptographic Service Provider, а тип провайдера - 2.Использую пример из https://github.com/Infotecs/CSharpViPNetCSP.При этом программа ViPNet CryptoFile успешно подписывает файл используя контейнер №2.Что я делаю неправильно? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
vepr85 Опубликовано 20 Мая 2015 Жалоба Поделиться Опубликовано 20 Мая 2015 У меня такая ситуация: проект на java + jna + MS Crypto API работает отлично с криптопро.Випнет тоже реализует MS Crypto API, но при этом падает при подписании хеша. И магическим образом может инициализироваться с типом 2 и 75(на тестовой машине криптопро не стояло ни разу)Ошибка - Error "0x80090022 Provider could not perform the action since the context was acquired as silent. Как будто випнет хочет открыть какое-то окно...что делать? Если контекст делать не тихим, то валится с ошибкойне может найти ключ. В чём проблема? Проект на шарпе недоступен Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.