Статус: Новичок
Группы: Участники
Зарегистрирован: 08.02.2023(UTC) Сообщений: 4
|
Доброго дня суток. Третий день ищу решение, но никак не могу найти информацию ни в документации, ни samples-sources.jar Мне необходимо реализовать метод, который будет принимать две закодированные в Base64 строки. Первая строка - открепленная УСИЛЕННАЯ подпись PKCS7, вторая строка это сам документ. Метод должен валидировать подпись: соответствие документа подписи, что срок годности у сертификата не закончен и т.д.. и вытаскивать информацию о пользователе из сертификата подписи. На выходе я должен выдать какую-нибудь информацию о владельце подписи, которая может его идентифицировать(к примеру ИНН или ФИО, метод используется в логике авторизации) Как создать объект подписи из строки и как вытащить из подписи сам сертификат? Спасибо, буду очень рад помощи Отредактировано пользователем 8 февраля 2023 г. 12:10:54(UTC)
| Причина: Не указана
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 05.07.2018(UTC) Сообщений: 467
Сказал(а) «Спасибо»: 43 раз Поблагодарили: 69 раз в 61 постах
|
Base64.getDecoder().decode(base64String) не подходит ? |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 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
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close