Комментарии 5
Просто для справки.
В Bouncy Castle есть функционал работы с гостовой подписью.
Signature.getInstance("GOST3411_2012_512withGOST3410_2012_512", "JCP");
и
Signature.getInstance("GOST3411WITHECGOST3410-2012-512", "BC");
Дадут одинаковый результат по использованию.
Одно "но". Сертификация. Операции с EC в JCP как бы проверены и сказано "это сертифицированное ПО". А те же самые операции в BC "не сертифицированы" (да еще и с открытым кодом).
Но хотя бы для тестов с покупкой/установкой лицензии на JСP возится не нужно.
Очень полезная статья, спасибо автору за подробное объяснение!
Совсем недавно тоже пришлось внедрять к себе ГОСТ TLS, для тех у кого не получается правильно построить цепочку сертификатов, а нужно отлаживать код (примеров много у них на сайте) обратите внимание на проверку статуса цепочки сертификатов online, которую можно отключить:
System.setProperty("com.sun.security.enableCRLDP", "true");
System.setProperty("com.ibm.security.enableCRLDP", "true");
и еще параметр требующий строгое использование ГОСТ алгоритмов в цепочке сертификатов другой стороны:
System.setProperty("tls_prohibit_disabled_validation", "true");
Спасибо за статью!
Скажите, пожалуйста, почему для получения значений сабжекта не пользуетесь библиотекой декодирования х509-сертификатов?
Если потребуется извлекать наименование организации, такое регулярное выражение не годится.
Да и для ФИО тоже. У французов в ФИО бывает запятая.
Библиотека позволит получить прямой доступ к значению поля. Понятно, что её использование более трудоëмко, но с регуляркой в серьëзной организации попросту не примут продукт.
Если вы говорите про этот метод:
x500name.getRDN()
то все просто — на момент разработки этого кода мы только начинали свое знакомство с электронными подписями и просто не знали об его существовании. Наше решение покрывало наши потребности, поэтому не было необходимости использовать что-то другое.
А вообще соглашусь, что, например, через
x500name.getRDNs(BCStyle.SURNAME)
получать фамилию проще
На что способен КриптоПро JCP? Туториал по валидации отсоединенной электронной подписи