Comments (19)
Здравствуйте. Библиотека представляет собой обёртку над криптопровайдером - CryptoPro или VipNet. Т.е. реализует часть абстракций из System.Security.Cryptography на базе этих криптопровайдеров. Соответственно, в большинстве случаев нужно наличие установленного CryptoPro или VipNet. Можете привести пример кода, который возвращает исключение?
from gostcryptography.
Сам метод Decode(fileName) возвращает ошибку.
from gostcryptography.
В случае, если криптопровайдер не установлен?
from gostcryptography.
Нет, даже когда установлен.
from gostcryptography.
Я постараюсь воспроизвести ошибку. Пока могу предложить посмотреть примеры, может что-то удастся найти https://github.com/AlexMAS/GostCryptography/tree/master/Source/GostCryptography.Tests/Pkcs
from gostcryptography.
Проверил на своей машине, все должно работать. Сертификат установлен нормально? Может проблема с поиском самого сертификата.
Сам метод Decode(fileName) возвращает ошибку.
Не могу найти такую перегрузку.
from gostcryptography.
Сертификат в данном случае не нужен. Метод декодирует зашифрованное сообщение.
from gostcryptography.
Видимо, мы говорим про разные вещи. Можете всё-таки привести пример кода.
from gostcryptography.
Ну в принципе я уже выше писал:
GostSignedCms gostSignedCms = new GostSignedCms();
gostSignedCms.Decode(fileName);
В fileName массив байтов файла bin или p7s
from gostcryptography.
Я попробовал возможные варианты, но не могу получить подобного исключения. На основе этого есть предположение, что проблема с данными. Вы уверены, что с ними все нормально? Как вы получаете быйты для декодирования? Согласно примеру, который вы привели, содержимое сообщения должно быть включено (detached=false
).
В этой версии также есть одна особенность, нужно явно установить тип криптопровайдера. В вашем случае это не должно играть роли, тем не менее:
// ViPNet CSP (by default)
GostCryptoConfig.ProviderType = ProviderTypes.VipNet;
// CryptoPro CSP
GostCryptoConfig.ProviderType = ProviderTypes.CryptoPro;
from gostcryptography.
Для информации.
Выпустил v2.0.0, которая включает поддержку алгоритмов 2012
года, а также исправление известных ошибок совместимости с ViPNet CSP 4.2
. Версия была протестирована на конфигурациях:
- Windows 10 x64, CryptoPro CSP 4.0.9963
- Windows 10 x64, ViPNet CSP 4.2.8.51670
В случае с CryptoPro CSP
важно установить версию не ниже 4.0.9963
(на момент тестирования последний private-релиз), поскольку она содержит исправление критической ошибки при работе с сертификатами ГОСТ Р 34.10-2012/1024
.
Также нужно отметить, что ViPNet CSP
до последней на данный момент версии 4.2.8.51670
(включительно) не поддерживает создание производных симметричных ключей на основе хэш-функций ГОСТ Р 34.11-2012
. Ничего критичного в этом нет, это оказывает влияние только на возможность генереции случайных симметричных ключей с использованием методов Gost_R3411_2012_256_PRF.DeriveKey()
и Gost_R3411_2012_512_PRF.DeriveKey()
.
Наконец, в ходе добавления поддержки алгоритмов 2012
года были произведены крупные изменения, включающие перенос/переименование существующих классов. Для перехода с v1.0
на v2.0
нужно воспользоваться следующей иструкцией.
from gostcryptography.
@frantic0589 Здравствуйте. Получилось решить проблему?
from gostcryptography.
@AlexMAS Добрый день. К сожалению пока нет.
from gostcryptography.
@frantic0589, а вы пробовали проверять подпись с помощью утилиты cryptcp от Крипто-Про? Скорее всего, что-то не так с подписью в файле.
from gostcryptography.
А причем здесь вообще КриптоПро или любой другой криптопровайдер?
Сообщение в формате Pkcs7 декодируется из структуры ASN.1. Вы же не подпись у сообщения проверяете и не расшифровываете его.
Вангую, что формат сообщения не соответствует указываемому формату при декодировании.
Лучше воспользоваться Certenroll API.
from gostcryptography.
@frantic0589 Получилось решить проблему? :)
from gostcryptography.
К сожалению нет. Вы спрашивали при чем здесь криптопровайдер, сообщение закодировано по РФ ГОСТу. Windows без криптопро не знает про наш ГОСТ. И только после установки криптопровайдер в реест записывается значения типа хэш и ключ, после чего он может по нашему ГОСТу шифровать и читать эти сообщения.
from gostcryptography.
@frantic0589 Правильно ли я понимаю, что указанная вами ошибка возникает только когда не установлен криптопровайдер?
from gostcryptography.
Идет подмена понятий. Сообщение м.б.зашифровано по ГОСТу, а не закодировано. По ГОСТу также может быть вычислена эцп или хэш. ASN.1 это формат кодирования сообщения
from gostcryptography.
Related Issues (20)
- Не проверяется подпись от ПФР (но проверяется онлайн на КриптоПро DSS) HOT 2
- Smev.Verify. Обнаружено неизвестное преобразование. HOT 2
- Верефикация нескольких сигнатур в файле
- Расшифровка с помощью сертификата HOT 2
- Подпись сообщений в веб-приложении (IIS) HOT 5
- Утечки памяти в GostCryptography HOT 4
- .netcore HOT 7
- Ошибка подписания при работе с КриптоПРО
- ЭЛН 2.0 HOT 90
- Реализация под Net 5 HOT 7
- VipNet 4.4.2 создает провайдеры с типом 75, 80 и 81 HOT 1
- Поддержка префиксов в xmldsig
- Верификация подписи ГОСТ Р 34.10-2012, 256 бит. HOT 3
- Принудительное шифрование XML по ГОСТ 2001 HOT 3
- Отправка запроса на получение "Уведомление об изменении ЭЛН".
- ComputeSignature Exception HOT 8
- Создание симметричных ключей для тестов HOT 5
- Алгоритм ключа сертификата не поддерживается HOT 1
- Взаимодействие с федеральными сервисами. Формирование jwt токена с использованием GOST3410. HOT 7
- Как расшифровать текст при помощи алгоритма ассиметричного ключа HOT 10
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gostcryptography.