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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline stepa113  
#1 Оставлено : 8 февраля 2023 г. 11:42:29(UTC)
stepa113

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

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

Доброго дня суток. Третий день ищу решение, но никак не могу найти информацию ни в документации, ни samples-sources.jar
Мне необходимо реализовать метод, который будет принимать две закодированные в Base64 строки. Первая строка - открепленная УСИЛЕННАЯ подпись PKCS7, вторая строка это сам документ.
Метод должен валидировать подпись: соответствие документа подписи, что срок годности у сертификата не закончен и т.д.. и вытаскивать информацию о пользователе из сертификата подписи.
На выходе я должен выдать какую-нибудь информацию о владельце подписи, которая может его идентифицировать(к примеру ИНН или ФИО, метод используется в логике авторизации)

Как создать объект подписи из строки и как вытащить из подписи сам сертификат?
Спасибо, буду очень рад помощи

Отредактировано пользователем 8 февраля 2023 г. 12:10:54(UTC)  | Причина: Не указана

Offline TolikTipaTut1  
#2 Оставлено : 8 февраля 2023 г. 18:48:03(UTC)
TolikTipaTut1

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

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

Сказал(а) «Спасибо»: 43 раз
Поблагодарили: 69 раз в 61 постах
Base64.getDecoder().decode(base64String) не подходит ?
Offline stepa113  
#3 Оставлено : 9 февраля 2023 г. 9:00:57(UTC)
stepa113

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

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

По сути мне просто нужно подсказать какие методы я могу использовать для создания объекта усиленной подписи из строки Base64 и проверить соответствие. Мне нужна реализация либо для подписи типа PKCS7 либо CAdES-X Long Type 1. Но для каждого типа я сталкивался с проблемами. К примеру для PKCS7: использую метод checkPKCS7(byte[] cms, boolean detached, byte[] data,String contentFile), в который с помощью Decoder подаю преобразованный в der формат подпись в котором используется deprecated метод CMSVerifyEx, при выполнении которого вылетает Exception от том что файл моей подписи слишком большой.
Для CAdES попробовал следующее:


Цитата:
final Decoder decoder = new Decoder();
final byte[] cmsDer = decoder.decodeBuffer(new ByteArrayInputStream(cmsBase));
CAdESSignature s = new CAdESSignature(cmsDer, null, null);

В итоге получаю:
Цитата:
фев 08, 2023 5:32:26 PM ru.CryptoPro.CAdES.tools.CAdESUtility initJCPAlgorithms
INFO: Replacement of the BouncyCastle GOST algorithms.
Exception in thread "main" IOException reading content.; error codes: [-2] 'Application error',
at ru.CryptoPro.CAdES.CAdESSignature.<init>(Unknown Source)
at ru.CryptoPro.CAdES.CAdESSignature.<init>(Unknown Source)
at ru.CryptoPro.CAdES.CAdESSignature.<init>(Unknown Source)
at org.example.Main.main(Main.java:27)
Caused by: org.bouncycastle.cms.CMSException: IOException reading content.
at org.bouncycastle.cms.CMSContentInfoParser.<init>(Unknown Source)
at org.bouncycastle.cms.CMSSignedDataParser.<init>(Unknown Source)
at org.bouncycastle.cms.CMSSignedDataParser.<init>(Unknown Source)
... 4 more
Caused by: java.io.IOException: DER length more than 4 bytes: 127
at org.bouncycastle.asn1.ASN1InputStream.readLength(Unknown Source)
at org.bouncycastle.asn1.ASN1StreamParser.readObject(Unknown Source)
... 7 more


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