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

Уведомление

Icon
Error

5 Страницы<12345>
Опции
К последнему сообщению К первому непрочитанному
Offline deniska68  
#21 Оставлено : 27 февраля 2015 г. 18:06:03(UTC)
deniska68

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

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

Поблагодарили: 1 раз в 1 постах
У вас вероятно Interop.CAdESCOM.dll не соответствует cadescom.dll.

В шапке форума обновленный Interop.CAdESCOM.dll, попробуйте с ним. Также когда будете подключать его, убедитесь, что в свойствах референса Interop.CAdESCOM Embed Interop Types = False.
Offline bazooka  
#22 Оставлено : 2 марта 2015 г. 11:51:50(UTC)
bazooka

Статус: Активный участник

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

Сказал «Спасибо»: 5 раз
Поблагодарили: 2 раз в 2 постах
Да, помогло, спасибо!
Offline dronlinux  
#23 Оставлено : 24 марта 2015 г. 9:29:05(UTC)
dronlinux

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

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

Всех Приветствую!

Скачал dll из шапки форума.
В проекте VS 2013 .NET 4.5 подсоединил обе.

Пытаюсь подписать файл:

Код:

  try
     {
     CPSigner signer = new CPSignerClass();
     signer.Certificate = GetSignerCertificateBySerialNum(certSerialNum);

     CadesSignedData signedData = new CadesSignedDataClass();

     //Если я выберу здесь CADESCOM_BASE64_TO_BINARY
     //И буду передавать массив byte[] переведенный в BASE64
     //signedData.ContentEncoding = CADESCOM_CONTENT_ENCODING_TYPE.CADESCOM_BASE64_TO_BINARY;
     //Здесь ОШИБКА: неверные данные
     signedData.Content = content;
     byte[] signCades = signedData.SignCades(
                    signer,
                    CADESCOM_CADES_TYPE.CADESCOM_CADES_BES,
                    false,
                    CAPICOM_ENCODING_TYPE.CAPICOM_ENCODE_BASE64
                    );


                return signCades;
            }
            catch (Exception ex)
            {
                throw new CryptoException(GetErrorString(ex.Message));
            }


Если я передаю простой массив байт из файла - Все хорошо. Подпись накладывается. НО не проходит проверку в КритоАрм - Ошибка: неверный тег ASN.1
Если передаю массив байт, закодированный в BASE64 - Ошибка здесь:

Код:

signedData.Content = content;


Неверный данные.

На выходе с обычным массивом байт получается BASE64 закодированное сообщение в кодировке UCS-2 little endian.

Почему нельзя поменять кодировку у CadesSignedData ?

Как на выходе получить подписанный файл, чтобы КриптоАрм понимал теги ASN.1 ?

P.S.

Не судите строго, с подобной задачей впервые...

Отредактировано пользователем 24 марта 2015 г. 9:29:41(UTC)  | Причина: Не указана

Offline deniska68  
#24 Оставлено : 27 марта 2015 г. 16:21:24(UTC)
deniska68

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

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

Поблагодарили: 1 раз в 1 постах
Давайте по порядку, сначала разберемся с кодировками.

Проверьте, верно ли вы делаете. Сначала необходимо задать ContentEncoding - кодировку в которой будет передаваться content. После установки ContentEncoding, передавать Content. После установки Content менять кодировку нельзя. Если вы хотите подписать бинарные данные и указали ContentEncoding = CADESCOM_BASE64_TO_BINARY, то перед передачей Content данные необходимо перевести в BASE64. Подпишутся при этом бинарные данные. По умолчанию, если не задан ContentEncoding считается, что ContentEncoding имеет значение CADESCOM_STRING_TO_UCS2LE. Соответствтенно, при ContentEncoding == CADESCOM_STRING_TO_UCS2LE передавать следует бинарные данные.
Offline ruskiy1  
#25 Оставлено : 10 июня 2016 г. 15:59:34(UTC)
ruskiy1

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

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

поправьте ссылки на скачивание в шапке. они не работают!
Offline florentii  
#26 Оставлено : 23 ноября 2016 г. 16:53:14(UTC)
florentii

Статус: Активный участник

Группы: Участники
Зарегистрирован: 17.04.2015(UTC)
Сообщений: 31
Молдова
Откуда: Тирасполь

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 2 раз в 2 постах
Добрый день, мы пытаемся использовать CPHashedData из Interop.CAdESCOM, но возникает проблема, у объекта типа CPHashedData почему-то поле Algorithm является полем типа CAPICOM_HASH_ALGORITHM, а не CADESCOM_HASH_ALGORITHM, как подразумевается. При этом поле DataEncoding является полем CADESCOM_CONTENT_ENCODING_TYPE.
Кроме того функции CoSignHash и SignHash в качестве первого параметра хотят получать объект типа HashedData, а не CPHashedData, хотя при этом функция VerifyHash принимает как раз таки аргумент типа CPHashedData.

Вопрос в том, что это проблемы с dll или мы просто не правильно пытаемся использовать её функции?

PS Ссылки на скачивание в первом посте действительно не работают.
Offline florentii  
#27 Оставлено : 25 ноября 2016 г. 12:26:07(UTC)
florentii

Статус: Активный участник

Группы: Участники
Зарегистрирован: 17.04.2015(UTC)
Сообщений: 31
Молдова
Откуда: Тирасполь

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 2 раз в 2 постах
В продолжение к предыдущему посту:

Вроде как разобрались как правильно использовать SignHash:
Необходимо просто использовать приведение типов:
Algorithm = (CAPICOM_HASH_ALGORITHM)CADESCOM_HASH_ALGORITHM.CADESCOM_HASH_ALGORITHM_MD5
и
signature = oSignedData.SignHash((HashedData)myHesh, oSigner, CADESCOM_CADES_TYPE.CADESCOM_CADES_BES);

Полный код функции приведу ниже:

Код:

 private static string LongMakeCadesBesSign(string dataToSign, Certificate certObject, string oldSignature = "")
        {
            string signature = "";
            try
            {
                CPSigner oSigner = new CPSigner
                {
                    Certificate = certObject,
                    Options = CAPICOM_CERTIFICATE_INCLUDE_OPTION.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN
                };

                CadesSignedData oSignedData = new CadesSignedData
                {
                    DisplayData = CADESCOM_DISPLAY_DATA.CADESCOM_DISPLAY_DATA_CONTENT,
                    ContentEncoding = CADESCOM_CONTENT_ENCODING_TYPE.CADESCOM_BASE64_TO_BINARY
                };

                if (!string.IsNullOrEmpty(dataToSign))
                {
                    byte[] bytes = Encoding.UTF8.GetBytes(dataToSign);
                    string base64String = Convert.ToBase64String(bytes);

                    CPHashedData myHesh = new CPHashedData
                    {
                        Algorithm = (CAPICOM_HASH_ALGORITHM)CADESCOM_HASH_ALGORITHM.CADESCOM_HASH_ALGORITHM_MD5,
                        DataEncoding = CADESCOM_CONTENT_ENCODING_TYPE.CADESCOM_BASE64_TO_BINARY
                    };

                    myHesh.Hash(base64String);
                
                    try
                    {
                        signature = oSignedData.SignHash((HashedData)myHesh, oSigner, CADESCOM_CADES_TYPE.CADESCOM_CADES_BES);
                    }
                    catch (Exception err)
                    {
                        MessageBox.Show("Не удалось создать подпись из-за ошибки: " + err.Message);
                    }
                }
            }
            catch (Exception err)
            {
                MessageBox.Show("Не удалось получить доступ к криптопровайдеру: " + err.Message);
            }
            return signature;
        }

Отредактировано пользователем 25 ноября 2016 г. 14:57:27(UTC)  | Причина: Не указана

Offline Павел Смирнов  
#28 Оставлено : 25 ноября 2016 г. 17:04:41(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
Ссылки поправили, спасибо.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline kaper_75  
#29 Оставлено : 29 октября 2018 г. 20:57:24(UTC)
kaper_75

Статус: Участник

Группы: Участники
Зарегистрирован: 12.09.2018(UTC)
Сообщений: 16
Российская Федерация
Откуда: Киров

Сказал(а) «Спасибо»: 2 раз
Добрый день.
Посоветовали обратиться в общие вопросы.

Плагин IE на тестовой странице формирует усовершенствованную подпись формата CADES-T
Но при попытке программного формирования ЭЦП этого формата - получаю ошибку 80072EE6. Как я понимаю - проблема именно с доступом к службе штампов времени - TimeOut
Файерволы отключены, антивирусы отключены. галка в настройках IE "Автоматическое определение параметров" - снята. Лицензии действующие. Прокси серверов нет.
Что еще может быть не так, может что-то необходимо установить или отключить. OC WIN7, тое самое на WIN8
Обращение идет к тестовому серверу службы
https://testca.cryptopro.ru/tsp/tsp.srf
https://www.cryptopro.ru/tsp/tsp.srf

Перепробовал кажется все, может кто сталкивался с проблемой, подскажете.
Спасибо

Отредактировано пользователем 29 октября 2018 г. 20:58:19(UTC)  | Причина: Не указана

Offline qleech  
#30 Оставлено : 24 января 2019 г. 11:31:33(UTC)
qleech

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

Группы: Участники
Зарегистрирован: 24.01.2019(UTC)
Сообщений: 1
Российская Федерация
Откуда: Perm

Добрый день.

Подскажите, пожалуйста, возможное решение проблемы.
У нас на проекте решили перейти на подписание по ГОСТ'у 2012-го года.
При верификации подписанного хэша алгоритмом "CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256" выпадает ошибка "Процесс отмены не может быть продолжен - проверка сертификатов недоступна.".
Может кто-нибудь сталкивался с данной проблемой?
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
5 Страницы<12345>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.