Get Start with BouncyCastle crypto dll c#

Оставлено
:
18 марта 2021 г. 3:43:10(UTC)

Добрый день.

Необходимо сделать подпись PDF на java. Наткнулся на проблему, что itextpdf не поддерживает GOST3411_2012_256. Нашёл патч itextpdf_patched-5. jar, но он работает странно:

В DigestAlgorithms. getDigest(DigestAlgorithms. getAllowedDigests(hashAlgorithm)) был добавлен этот алгоритм, в итоге, я получаю hashAlgorithm для PrivateKeySignature: ExternalSignature pks = new PrivateKeySignature(this. getPrivateKey(), JCP. GOST_DIGEST_2012_256_NAME, JCP. PROVIDER_NAME);

Но далее, при вызове ExternalDigest digest = new BouncyCastleDigest(); заметил, что в BouncyCastleDigest() в getMessageDigest(String hashAlgorithm) отсутствует поддержка GOST3411_2012_256, а есть только для GOST3411.

В итоге при вызове MakeSignature. signDetached(sap, digest, pks, chain, crlList, null, null, 0, MakeSignature. CryptoStandard. CMS); я натыкаюсь на ошибку NoSuchAlgorithm.

А если попробую передать GOST3411, то нарвусь на ошибку NoSuchAlgorithm GOST3411withGOST3410DH_2012_256.

Версия JCP 2. 40035.

Оставлено
:
22 марта 2021 г. 10:19:31(UTC)

Здравствуйте. В составе последних дистрибутивов JCP есть папка itextpdf, в ней разные версии пропатченного itextpdf, попробуйте их. А примеры – в папке PDF в архиве samples-sources. jar.

I put together this little example for another question here on #SO, but it applies to you as well:

Hope this helps.

I also posted it on my blog.

TolikTipaTut1
Оставлено
:
17 февраля 2022 г. 11:47:18(UTC)

Добрый. Да, проверить можно.

Санчир Момолдаев
Оставлено
:
17 февраля 2022 г. 12:54:33(UTC)

Добрый день!для проверки подписей лицензия JCP не требуется. вы не хотите его (jcp) использовать только из-за лицензий?

Евгений Афанасьев
Оставлено
:
26 октября 2021 г. 17:06:51(UTC)

((X509Certificate)certificate). getSigAlgName() – это алгоритм подписи сертификата (как он был подписан), а не алгоритм подписи, соответствующий ключу. Пока везет, что проверяется.

oleg172
Оставлено
:
27 октября 2021 г. 9:56:35(UTC)

Евгений, посмотрел примеры в samples-source CAdES. Я так понимаю что валидировать подпись лучше через CAdESSignature? Пытался создать объект CAdESSignature:Код:
InputStream cadesCmsStream;
cadesCmsStream = new ByteArrayInputStream(jwtDecoder. getSignatureInBytes());
new CAdESSignature(cadesCmsStream, null, null);
В результате имею ошибку: org. bouncycastle. cms. CMSException: Unexpected object reading content. Евгений, можете подсказать что я делаю не так?

Читайте также:  Не установлен сертификат ключа подписи, совместимый с "КриптоПро

Евгений Афанасьев
Оставлено
:
27 октября 2021 г. 11:07:52(UTC)

Возможно, вы продаёте данные в base64, а надо предварительно их декодировать из base64. Проверять подпись с помощью CAdESSignature рекомендуется, так как эта проверка высокоуровневая и скрывает детали.

Евгений Афанасьев
Оставлено
:
27 октября 2021 г. 15:54:59(UTC)

Приложите содержимое jwtBytes после декодирования тут в виде файл или попробуйте сами содержимое jwtBytes декодировать на lapo

Евгений Афанасьев
Оставлено
:
11 ноября 2020 г. 11:59:49(UTC)

Здравствуйте. Не строится цепочка. Цепочка более чем из двух сертификатов? Промежуточные сертификаты тоже есть в certChain, сертификаты не просрочены, корневой установлен в cacerts?

Ann1_2020
Оставлено
:
11 ноября 2020 г. 12:08:05(UTC)

Нет, цепочка из одного сертификата. У меня есть несколько сертификатов, с помощью одного я могу подписать все без ошибок, а вот со вторым возникает ошибка. Какие именно промежуточные и корневые сертификаты нужны? У меня есть папка с названием SomeCert. 001, в которой лежат файлы header. key, masks. key, masks2. key, name. key, primary. key, primary2. key. И аналогичная папка для второго сертификата AnotherCert. 001. До этого я выполняла:Код:# Добавление корневого сертификата Минкомсвязи в список доверенных
RUN keytool -import -cacerts -storepass changeit -noprompt -alias minkomsvyaz -file /guc_gost12. crt
# Тестовый УЦ КриптоПро
RUN keytool -import -cacerts -storepass changeit -noprompt -alias cryptopro-test -file /cryptopro-test-ca. cer

Ann1_2020
Оставлено
:
16 ноября 2020 г. 15:31:07(UTC)

Спасибо, перевыпустили сертификаты, ошибка пропала. Теперь другая ошибка:Код:ru. CryptoPro. CAdES. exception. CAdESException: For online validation by CRLDP parameter ‘com. sun. security. enableCRLDP’ (Oracle) or ‘com. ibm. security. enableCRLDP’ (IBM) must be set ‘true’ to enable or ‘ocsp. enable’ must be set ‘true’ (OCSP), or CRL passed for offline validationХотя проверка вкючена:Код:System. setProperty(“com. sun. security. enableCRLDP”, “true”);
System. setProperty(“com. sun. security. enableAIAcaIssuers”, “true”);
System. setProperty(“com. ibm. security. enableCRLDP”, “true”);

Читайте также:  уфк криптопро лицензия

Евгений Афанасьев
Оставлено
:
16 ноября 2020 г. 16:20:08(UTC)

Could not determine revocation status – не удаётся проверить цепочку сертификатов подписанта на отзыв. Может, в сертификате подписи или в промежуточных сертификатах нет CRLDP (точек распространения crl) для проверки статуса сертификата?

Ann1_2020
Оставлено
:
16 ноября 2020 г. 16:22:11(UTC)

А как это можно посмотреть?

Ann1_2020
Оставлено
:
16 ноября 2020 г. 18:18:43(UTC)

Ann1_2020
Оставлено
:
18 ноября 2020 г. 12:03:03(UTC)

Ann1_2020
Оставлено
:
18 ноября 2020 г. 12:15:34(UTC)

А какие значения нужно указывать для Код:java. lang. String digestAlgorithm,
java. lang. String encryptionAlgorithm

Оцените статью
ЭЦП Эксперт
Добавить комментарий