Статус: Участник
Группы: Участники
Зарегистрирован: 26.03.2020(UTC) Сообщений: 25
|
Автор: Андрей *  Результат - электронная подпись+исходные данные, т.к. в Sign указали 0 - присоединенная подпись => исходный файл не нужен. p.s. при подписании файлов - обычно используется отсоединенная ЭП. Скажите, а какой параметр надо передать для отсоединенной подписи? Нигде не могу найти подходящую документацию...
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,686   Сказал «Спасибо»: 572 раз Поблагодарили: 2303 раз в 1804 постах
|
Автор: Дмитрий (LV)  Автор: Андрей *  Результат - электронная подпись+исходные данные, т.к. в Sign указали 0 - присоединенная подпись => исходный файл не нужен. p.s. при подписании файлов - обычно используется отсоединенная ЭП. Скажите, а какой параметр надо передать для отсоединенной подписи? Нигде не могу найти подходящую документацию... по документации из CPDN: Цитата: sSignedMessage = oSignedData.SignCades(oSigner, CADESCOM_CADES_BES, true);
Для варианта с SignЦитата: SignedData.Sign( _ [ ByVal Signer ], _ [ ByVal bDetached ], _ [ ByVal EncodingType ] _ )
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 26.03.2020(UTC) Сообщений: 25
|
Еще вопрос - мне кажется или подпись включает в себя сертификат? или публичный ключ... у меня просто подпись 1.5 килобайта занимает для любой маленькой строчки. Хотя в документации Tinkoff API в примерах подписи очень короткие...
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,686   Сказал «Спасибо»: 572 раз Поблагодарили: 2303 раз в 1804 постах
|
Автор: Дмитрий (LV)  Еще вопрос - мне кажется или подпись включает в себя сертификат? или публичный ключ... у меня просто подпись 1.5 килобайта занимает для любой маленькой строчки. Верно. Создается CMS, с сертификатом внутри. Автор: Дмитрий (LV)  Хотя в документации Tinkoff API в примерах подписи очень короткие...
- нужно использовать другой объект - RawSignature |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 26.03.2020(UTC) Сообщений: 25
|
Автор: Андрей *  - нужно использовать другой объект - RawSignature
Никак не удается найти, как в таком случае передавать пароль на контейнер... как в случае с CPSigner->set_KeyPin
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 26.03.2020(UTC) Сообщений: 25
|
Я вижу по исходникам плагина, что есть метод set_Key() который вроде как принимает строку, но при вызове валится "The parameter is incorrect. (0x80070057)"
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,686   Сказал «Спасибо»: 572 раз Поблагодарили: 2303 раз в 1804 постах
|
Автор: Дмитрий (LV)  Я вижу по исходникам плагина, что есть метод set_Key() который вроде как принимает строку, но при вызове валится "The parameter is incorrect. (0x80070057)" т.е. если не вызывать set_KeyPin - то работает после указания пароля в диалоге? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 26.03.2020(UTC) Сообщений: 25
|
Автор: Андрей *  т.е. если не вызывать set_KeyPin - то работает после указания пароля в диалоге? Да, возвращает base64
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 26.03.2020(UTC) Сообщений: 25
|
Добрый день, есть такой вопрос:
для создания подписи использую код
$raw = new CPRawSignature(); $hd = new CPHashedData(); $hd->set_Algorithm(CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512);
$hd->Hash("какой-то текст для подписи"); $digest = $hd->get_Value();
$signature = $raw->SignHash($hd, $cert);
Получаю ошибку: Invalid algorithm specified. (0x80090008)
При этом в информации о сертификате у меня:
Signature Algorithm : GOST R 34.11-2012/34.10-2012 512 bit Signature Hash Algorithm : GOST R 34.11-2012 512 bit
Однако если я в коде установлю 256: $hd->set_Algorithm(CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256); То ошибки нету и подпись создается.
Правда, принимающая сторона жалуется на неверную подпись ) Куда можно посмотреть?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,686   Сказал «Спасибо»: 572 раз Поблагодарили: 2303 раз в 1804 постах
|
Цитата:$hd->set_Algorithm(CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512);
256 нужно указывать. Цитата: $hd->Hash("какой-то текст для подписи");
Указать DataEncoding CADESCOM_BASE64_TO_BINARY Передать в Hash(base64(данные)) Получить правильный хеш. Интерфейс ICPHashedData Свойство ICPHashedData:: DataEncodingЦитата: Данное свойство задает кодировку данных, передаваемых в метод Hash, и должно быть задано до того, как будет впервые вызван метод Hash.
По умолчанию свойство имеет значение CADESCOM_STRING_TO_UCS2LE.
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close