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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Alex Alexeev  
#1 Оставлено : 19 декабря 2022 г. 13:05:58(UTC)
Alex Alexeev

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

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

Здравствуйте!
Пробую улучшить подпись с CAdES-BES до CAdES-A, на JDK 11.0.17, OpenJDK 64-Bit Server VM, 11.0.17+7-LTS и JCP 2.0.41940-A

Ориентируюсь по теме на форуме https://www.cryptopro.ru...aspx?g=posts&t=19137

Подпись улучшить удалось, штамп времени (ETSI TS 101 733 V2.2.1)

Цитата:
id-aa-ets-archiveTimestampV3 OBJECT IDENTIFIER ::= { itu-t(0) identified-organization(4) etsi(0)
electronic-signature-standard(1733) attributes(2) 4 }

присутствует.

У меня вопрос - каким образом можно добавить новый архивный штамп времени id-aa-ets-archiveTimestampV3 в отсоединённую ЭЦП?

Пробовал добавить по примеру в руководстве программиста (ЖТЯИ.00091-04 33 01), через cadesSignature.addSigner - не работает, не проходит валидацию
Цитата:
Timestamp is invalid
; error codes: [34] 'Timestamp is invalid', {Archive-timestamp-V3 has invalid imprint (digest); error codes: [120] 'Archive-timestamp-V3 has invalid imprint (digest)', }
at ru.CryptoPro.CAdES.CAdESSignerAImpl.f(Unknown Source)
at ru.CryptoPro.CAdES.CAdESSignerAImpl.verify(Unknown Source)
at ru.CryptoPro.CAdES.cl_1.verify(Unknown Source)


Пробовал вот таким образом
CAdESSignature signature = new CAdESSignature(signatureBytes, contentBytes, null);
CAdESSigner signer = signature.getCAdESSignerInfo(0);
String digestAlgOID = signer.getSignerInfo().getDigestAlgOID();

// добавляем подписанта с новой CAdES-A
signature.addSigner(
JCP.PROVIDER_NAME,
null,
digestAlgOID,
(PrivateKey) key,
Arrays.asList(xChain),
CAdESType.CAdES_A,
"", // path to TSP
false);

ByteArrayOutputStream signatureStream = new ByteArrayOutputStream();

signature.open(signatureStream); // подготовка контекста
signature.update(contentBytes); // вычисление хэш-кода
signature.close(); // создание подписи с выводом в signatureStream

signatureStream.close();

byte[] result = signatureStream.toByteArray();
Offline Евгений Афанасьев  
#2 Оставлено : 19 декабря 2022 г. 15:53:58(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Здравствуйте.
Создайте, пожалуйста, запрос в портале техподдержки и приложите там полученную после усовершенствования подпись.
Offline Alex Alexeev  
#3 Оставлено : 19 декабря 2022 г. 17:09:12(UTC)
Alex Alexeev

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

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

Создал, спасибо!
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.