Статус: Новичок
Группы: Участники
Зарегистрирован: 12.03.2020(UTC) Сообщений: 6  Сказал(а) «Спасибо»: 5 раз
|
Добрый день. Помогите, пожалуйста, решить проблему. Формирую отсоединенную подпись с помощью плагина. Пробовал с разными параметрами. Проверка подписи упорно показывает "Одна или несколько подписей некорректна или нет доверия". Если подписывать вручную, проверка нормальная. Также вижу, что не добавляются атрибуты (время подписи, название и описание). Использую: Версия плагина: 2.0.14590 Версия криптопровайдера: 4.0.9963 Криптопровайдер: Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider Платформа: Windows UserAgent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36 КриптоАРМ 5.4.4.4 (для проверки) Вырезка кода JS: Код:
let oStoreCerts = yield oStore.Certificates;
let oCertificates = yield oStoreCerts.Find(0x01, certSubjectName); // CADESCOM_CERTIFICATE_FIND_SUBJECT_NAME
var certsCount = yield oCertificates.Count;
if (certsCount === 0) {
return "Certificate not found: " + certSubjectName;
}
var oCertificate = yield oCertificates.Item(1);
let oSigner = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner");
let attributes = yield oSigner.AuthenticatedAttributes2;
let oDocumentNameAttr = yield cadesplugin.CreateObjectAsync("CADESCOM.CPAttribute");
yield oDocumentNameAttr.propset_Name(0x01); // CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME
yield oDocumentNameAttr.propset_Value("test.zip");
yield attributes.Add(oDocumentNameAttr);
let oDocumentDescriptionAttr = yield cadesplugin.CreateObjectAsync("CADESCOM.CPAttribute");
yield oDocumentDescriptionAttr.propset_Name(0x02); // CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION
yield oDocumentDescriptionAttr.propset_Value("");
yield attributes.Add(oDocumentDescriptionAttr);
let oSigningTimeAttr = yield cadesplugin.CreateObjectAsync("CADESCOM.CPAttribute");
let oTimeNow = new Date();
yield oSigningTimeAttr.propset_Name(0x00); // CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME
yield oSigningTimeAttr.propset_Value(oTimeNow);
yield attributes.Add(oSigningTimeAttr);
yield oSigner.propset_Certificate(oCertificate);
yield oSigner.propset_CheckCertificate(true);
yield oSigner.propset_Options(0x01); // CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN
var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
yield oSignedData.propset_ContentEncoding(0x01); // CADESCOM_BASE64_TO_BINARY
yield oSignedData.propset_Content(dataInBase64);
const cadesType = 0xffff; //CADESCOM_PKCS7_TYPE;
const encodingType = 0x00; // CADESCOM_ENCODE_BASE64;
let sSignedMessage = "";
try {
sSignedMessage = yield oSignedData.SignCades(oSigner, cadesType, true, encodingType);
} catch (err) {
return cadesplugin.getLastError(err);
}
return sSignedMessage;
Отредактировано пользователем 5 сентября 2022 г. 18:31:49(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,159   Сказал «Спасибо»: 618 раз Поблагодарили: 2389 раз в 1880 постах
|
Здравствуйте.
вместо cadesType = 0xffff; //CADESCOM_PKCS7_TYPE;
укажите CAdES BES = 0x01
поддержка CADESCOM_PKCS7_TYPE - для проверки. |
|
 1 пользователь поблагодарил Андрей * за этот пост.
|
hooper оставлено 05.09.2022(UTC)
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,159   Сказал «Спасибо»: 618 раз Поблагодарили: 2389 раз в 1880 постах
|
Автор: hooper  Проверка подписи упорно показывает "Одна или несколько подписей некорректна или нет доверия". Если подписывать вручную, проверка нормальная. Также вижу, что не добавляются атрибуты (время подписи, название и описание).
в атрибутах указан хеш: C6F2B8604AA996E8C25333059D27DE412B12D2164ED6A6FC36567974F3630484 у файла: arch_1077760329305_ep_nso_aif_uk_m_q_30d_20220531.zip хеш: F49007E7332F0004286B93F0E55F2A2CFC083B151654F7D0E4A53851C25D1A9A кодируете, читаете бинарные данные как? |
|
 1 пользователь поблагодарил Андрей * за этот пост.
|
hooper оставлено 05.09.2022(UTC)
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 12.03.2020(UTC) Сообщений: 6  Сказал(а) «Спасибо»: 5 раз
|
Автор: Андрей *  Автор: hooper  Проверка подписи упорно показывает "Одна или несколько подписей некорректна или нет доверия". Если подписывать вручную, проверка нормальная. Также вижу, что не добавляются атрибуты (время подписи, название и описание).
в атрибутах указан хеш: C6F2B8604AA996E8C25333059D27DE412B12D2164ED6A6FC36567974F3630484 у файла: arch_1077760329305_ep_nso_aif_uk_m_q_30d_20220531.zip хеш: F49007E7332F0004286B93F0E55F2A2CFC083B151654F7D0E4A53851C25D1A9A кодируете, читаете бинарные данные как? Из бэка отдаем содержание: Код:
byte[] bytes;
using (var memoryStream = new MemoryStream())
{
await file.FileStream.CopyToAsync(memoryStream);
bytes = memoryStream.ToArray();
}
var strBase64 = Convert.ToBase64String(bytes);
return Ok(strBase64);
во фронте используем: Код:
yield oSignedData.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY);
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,159   Сказал «Спасибо»: 618 раз Поблагодарили: 2389 раз в 1880 постах
|
zip файл в примере получается выгружен с сервера или с клиента? Пробовали strBase64 декодировать? можете в console перед подписанием, на клиентской стороне, вывести strBase64 и прислать (вложить в архиве txt файл)?
Где-то же портится... |
|
 1 пользователь поблагодарил Андрей * за этот пост.
|
hooper оставлено 05.09.2022(UTC)
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 12.03.2020(UTC) Сообщений: 6  Сказал(а) «Спасибо»: 5 раз
|
Автор: Андрей *  zip файл в примере получается выгружен с сервера или с клиента? Пробовали strBase64 декодировать? можете в console перед подписанием, на клиентской стороне, вывести strBase64 и прислать (вложить в архиве txt файл)?
Где-то же портится... Спасибо! Нашли у себя такое место. Получилось создать корректную подпись. КриптоПРО подтвердил.
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close