Java (JCP) загружает мультимедийные файлы Рутокен

Java (JCP) загружает мультимедийные файлы Рутокен Электронная цифровая подпись


Offline

MikhailWork42

Оставлено
:

18 апреля 2022 г. 15:39:02(UTC)

Добрый день,
Подскажите пожалуйста, можно ли как-то использовать JCP 2.0 для иностранных алгоритмов, например AES или RSA вместо Bouncy Castle?
При установке Java CSP совместно с Крипто Про CSP такая возможность есть, а для JCP я этого не нашел ни в документации ни в примерах кода.


Offline

Евгений Афанасьев

Оставлено
:

18 апреля 2022 г. 15:43:34(UTC)

Здравствуйте. Именно в JCP нет и не планируется поддержка иностранных алгоритмов. В Java CSP она (частично) есть благодаря CSP.

Купить КриптоПро JavaCSP в интернет-магазине:

Внимание! В интернет-магазине представлены наиболее популярные варианты поставки лицензий КриптоПро JavaCSP. Если вам нужна другая позиция/версия, полный прайс-лист, у вас большой заказ, в заявке есть другое ПО, вопросы по ценам/скидкам и т.п., вы можете написать нашему ОНЛАЙН-КОНСУЛЬТАНТУ, оформить ЗАПРОС или связаться любым удобным способом. Приятных покупок на SNABSOFT.ru!

<!–

Сортировать по
ID товара +/-
Производитель:
КриптоПро

–>

2bcad0a29d834893dea8d3fd2d58fa11

КриптоПро JavaCSP на одном сервере

Артикул: cryptoPro_id_0071

НДС (20%):
Не облагается

Тип лицензии:
Серверная

Срок лицензии:
Бессрочная

Тип поставки:
Коробочная

Срок комплектации (раб. дней):
7-10

<!–

Описание товара

–>


Offline

Алексей Черенцов

Оставлено
:

31 июля 2020 г. 9:35:08(UTC)

Здравствуйте!
1) Правильно ли я понял, что для построения систем криптографической защиты класса КС3 использовать JCP нельзя?
2) Можно ли использовать для построения систем криптографической защиты класса КС3 “КриптоПро Java CSP и JTLS”? Потому как не совсем понятно, сертификат ФСБ для “КриптоПро CSP 5.0 КС3” на КС3 есть, а распространяется ли он на “КриптоПро Java CSP и JTLS”?
3) Можно ли работать с “КриптоПро HSM” используя JCP или для этого нужн “КриптоПро Java CSP и JTLS”?

Отредактировано пользователем 31 июля 2020 г. 9:37:11(UTC)
| Причина: Не указана


Offline

Александр Лавник

Оставлено
:

1 августа 2020 г. 17:49:07(UTC)

Автор: Алексей Черенцов Перейти к цитате

Здравствуйте!
1) Правильно ли я понял, что для построения систем криптографической защиты класса КС3 использовать JCP нельзя?
2) Можно ли использовать для построения систем криптографической защиты класса КС3 “КриптоПро Java CSP и JTLS”? Потому как не совсем понятно, сертификат ФСБ для “КриптоПро CSP 5.0 КС3” на КС3 есть, а распространяется ли он на “КриптоПро Java CSP и JTLS”?
3) Можно ли работать с “КриптоПро HSM” используя JCP или для этого нужн “КриптоПро Java CSP и JTLS”?

Здравствуйте.

1) КриптоПро JCP 2.0 не сертифицирован по KC3.

2) КриптоПро Java CSP 5.0 также не сертифицирован с КриптоПро CSP 5.0 по КС3.

3) Для работы с КриптоПро HSM можно использовать КриптоПро Java CSP 5.0, при использовании КриптоПро JCP 2.0 такой возможности нет.


Offline

biff

Оставлено
:

20 января 2022 г. 17:02:21(UTC)

Java 11
JCSP java-csp-5.0.42119-A
JCP jcp-2.0.41940-A

При попытке получить сертификат или ключ с носителя Rutoken из java вылетает exception (пробовал и JCP и JCSP)

Цитата:

java.lang.IncompatibleClassChangeError: Class ru.CryptoPro.JCP.KeyStore.Rutoken.RutokenContainerReader does not implement the requested interface ru.CryptoPro.JCP.KeyStore.ContainerReaderInterface
at ru.CryptoPro.JCP.KeyStore.cl_10.b(Unknown Source)
at ru.CryptoPro.JCP.KeyStore.cl_10.b(Unknown Source)
at ru.CryptoPro.JCP.KeyStore.cl_12.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at ru.CryptoPro.JCP.KeyStore.cl_10.c(Unknown Source)
at ru.CryptoPro.JCP.KeyStore.cl_10.<init>(Unknown Source)
at ru.CryptoPro.JCP.KeyStore.ContainerStore.b(Unknown Source)
at ru.CryptoPro.JCP.KeyStore.ContainerStore.engineGetCertificate(Unknown Source)
at ru.CryptoPro.JCP.KeyStore.JCPKeyStore.engineGetCertificate(Unknown Source)
at java.base/java.security.KeyStore.getCertificate(KeyStore.java:1115)

Каким образом можно достать ключ и сертификат? Сама ControlPanel из JCP каким-то образом их читает.


Offline

biff

Оставлено
:

21 января 2022 г. 20:26:42(UTC)

Вопрос снят. Т.к. это мавен проект в зависимости добавлялись не все jar из JCP, а только Rutoken JCP JCryptoP asn1rt и asn1p, поэтому при запуске из мавен проекта вылетал этот эксепшен. Если добавить все jar из JCP, то всё работает нормально. Но всё равно не понятно почему RutokenStoreReader не совместим с JCP провайдером.

Отредактировано пользователем 21 января 2022 г. 20:27:48(UTC)
| Причина: Не указана

КриптоПро Java CSP является очередным средством криптографической защиты информации, разработанным компанией КриптоПро. Оно реализует российские криптографические стандарты, разработанные в соответствии со спецификацией JCA — Java Cryptography Architecture.

КриптоПро Java CSP представляет собой модуль, выполняющий все криптографические операции с использованием КриптоПро CSP. Криптопровайдер сочетает в себе высокую скорость нативного кода с удобством разработки и использования JCE интерфейсов в Java приложениях.

КриптоПро Java CSP позволяет использовать стандартные процедуры, в том числе создание и проверку ЭЦА, шифрование, генерацию ключей, вычисление кодов аутентификации в JCE в соответствии со спецификациями.

Говоря конкретнее, модуль КриптоПро Java CSP предназначен для:

  • Обеспечения аутентичности, конфиденциальности и имитозащиты TLS соединений.
  • Контроля целостности, системного и прикладного ПО для его защиты от несанкционированных изменений или от нарушений правильности функционирования.
  • Авторизации и обеспечения юридической значимости электронных документов при обмене ими между пользователями посредством использования процедур формирования проверки ЭЦП в соответствии с отечественными стандартами.
  • Обеспечения конфиденциальности и контроля целостности информации посредством ее шифрования и имитозащиты (в соответствии с ГОСТ 28147-89).
  • Управления ключевыми элементами системы в соответствии с регламентом средств защиты.

Если вы хотите узнать о продукте больше, посетите официальный сайт КриптоПро. На странице описания модуля есть вся необходимая информация о нем.


Offline

Владимир Карсанов

Оставлено
:

18 октября 2021 г. 14:45:20(UTC)

Всем добрый день!

У меня, наверное, совсем ламерский вопрос, но чот я совсем подвис и не могу разобраться.

У меня стоит задача подписать xml. Есть сертификат (*.cer-файл), есть 6 файлов, извлечённого из сертификата private key. Примеров в сети, как поженить эти штуки с xml, достаточно. Вроде всё запилил, но валюсь на ошибке:

Цитата:

org.apache.xml.security.signature.XMLSignatureException: Алгоритм ключа не соответствует алгоритму подписи.

И действительно если посмотреть privateKey.getAlgorithm(), то там GOST3410DH_2012_256, а если посмотреть certificate.getSigAlgName(), то там GOST3411_2012_256withGOST3410_2012_256.

Но, что с этим делать, я вообще сообразить не могу. Буду благодарен за подсказку, куда копать, что читать, что вообще происходит))


Offline

Евгений Афанасьев

Оставлено
:

18 октября 2021 г. 15:13:55(UTC)

Здравствуйте.
Приложите сертификат и приведите кусок кода создания подписи с именами алгоритмов.

thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.


Offline

Владимир Карсанов

Оставлено
:

18 октября 2021 г. 15:48:51(UTC)

Да, конечно. Сертификат в base64 приложил, расширение на txt поменял из-за ограничений на загрузку.

Так мы эти штуки загружаем с диска:

Цитата:

HDImageStore.setDir(“./imagestore/”);
KeyStore hdImageStore = getKeyStore(null, null, JCP.HD_STORE_NAME, JCP.PROVIDER_NAME);
PrivateKey privateKey = (PrivateKey) hdImageStore.getKey(“alias”, “pwd”.toCharArray());
X509Certificate certificate = getCertificate(“cert.cer”); //certificateFactory.engineGenerateCertificate(FileInputStream)

Собственно сразу после загрузки можно посмотреть, что там в загруженных объектах с алгоритмами:

Цитата:

System.out.println(privateKey.getAlgorithm()); //GOST3410DH_2012_256
System.out.println(certificate.getSigAlgName()); //GOST3411_2012_256withGOST3410_2012_256

Код создания подписи:

Цитата:

public static final String XMLDSIG_SIGN_METHOD = “urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256”;
private static final String XMLDSIG_DETACHED_TRANSFORM_METHOD = Transforms.TRANSFORM_C14N_EXCL_OMIT_COMMENTS;

XMLSignature xmlSignature = new XMLSignature(argDocument, “”, XMLDSIG_SIGN_METHOD, XMLDSIG_DETACHED_TRANSFORM_METHOD);

Падаем на последней строке этого куска:

Цитата:

XMLSignature xmlSignature = new XMLSignature(argDocument, “”, XMLDSIG_SIGN_METHOD, XMLDSIG_DETACHED_TRANSFORM_METHOD);

if (argSignatureId != null) {
xmlSignature.setId(argSignatureId);
}

//Transforms

// создание внутри узла подписи узла <ds:KeyInfo> информации об открытом ключе на основе сертификата
xmlSignature.addKeyInfo(argCertificate);

// создание подписи XML-документа
xmlSignature.sign(argPrivateKey);

Спасибо, что откликнулись!

Отредактировано пользователем 18 октября 2021 г. 18:34:07(UTC)
| Причина: удалил ссыль на сертификат, потому что так сказало руководство))


Offline

Владимир Карсанов

Оставлено
:

18 октября 2021 г. 18:33:16(UTC)

Тему можно закрывать. Спасибо всем, кто уделил ей внимание. Оказалось, что есть такой замечательный джарник как samples-sources.jar. И, как следствие, не было необходимости изобретать велосипед. Немного адаптировав код из XMLSignDoc я таки получил подписанный xml.

Хотя задачу я ещё не допилил, но конкретно этой проблемы больше нет. Ещё раз всем спасибо и хорошего вечера!


Offline

Евгений Афанасьев

Оставлено
:

18 октября 2021 г. 18:41:35(UTC)

Добавлю, что указанная ошибка может возникнуть при подписи/проверке_подписи, если алгоритм закрытого/открытого ключа не соответствует алгоритму подписи, например, ключ с алгоритмом ГОСТ 2012 (256) не может быть использован для создания подписи с алгоритмом ГОСТ 2001 (или с его представлением в xml).


Offline

squadgazzz

Оставлено
:

10 сентября 2021 г. 9:26:23(UTC)

Здравствуйте! Подскажите, с помощью JCSP на алгоритмах GOST28147 и GOST3412_2015_K возможно осуществить потоковое шифрование и последующую верификацию больших файлов без загрузки их целиком в оперативную память? Существуют ли готовые примеры?

Отредактировано пользователем 10 сентября 2021 г. 9:44:14(UTC)
| Причина: Не указана


Offline

Евгений Афанасьев

Оставлено
:

14 сентября 2021 г. 23:34:39(UTC)

Здравствуйте. Посмотрите EnvelopedSignature из состава CAdES.jar (описание в javadoc/CAdES-javadoc.jar дистрибутива), примеры в пакете CAdES/enveloped архива samples-sources.jar. В EnvelopedSignature есть потоковое шифрование.

thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.


Offline

Алексей Н.

Оставлено
:

13 октября 2021 г. 14:41:00(UTC)

Здравствуйте! Использую JCP jcp-2.0.41940-A, требуется реализовать шифрование с помощью алгоритма GOST3412_2015_M, но его нет в списке доступных

Цитата:

– JCP – =========== CryptoPro Java Provider ===========
– AlgorithmParameters – GOST_PARAM_VALIDATOR
– KeyFactory – GOST3410DHEL
– KeyFactory – GOST3410DH_2012_256
– KeyFactory – GOST3410DH_2012_512
– KeyFactory – GOST3410EL
– KeyFactory – GOST3410_2012_256
– KeyFactory – GOST3410_2012_512
– KeyPairGenerator – GOST3410EL
– KeyPairGenerator – GOST3410ELEPH
– KeyPairGenerator – GOST3410EPH_2012_256
– KeyPairGenerator – GOST3410EPH_2012_512
– KeyPairGenerator – GOST3410_2012_256
– KeyPairGenerator – GOST3410_2012_512
– KeyStore – CertStore
– KeyStore – FloppyStore
– KeyStore – HDImageStore
– KeyStore – MemoryStore
– KeyStore – MemoryStore0
– KeyStore – MemoryStore1
– KeyStore – MemoryStore2
– KeyStore – MemoryStore3
– KeyStore – MemoryStore4
– KeyStore – MemoryStore5
– KeyStore – MemoryStore6
– KeyStore – MemoryStore7
– KeyStore – MemoryStore8
– KeyStore – MemoryStore9
– MessageDigest – GOST3411
– MessageDigest – GOST3411_2012_256
– MessageDigest – GOST3411_2012_512
– SecureRandom – CPRandom
– Signature – CryptoProSignature
– Signature – CryptoProSignature_2012_256
– Signature – CryptoProSignature_2012_512
– Signature – GOST3411_2012_256withGOST3410DH_2012_256
– Signature – GOST3411_2012_256withGOST3410_2012_256
– Signature – GOST3411_2012_512withGOST3410DH_2012_512
– Signature – GOST3411_2012_512withGOST3410_2012_512
– Signature – GOST3411withGOST3410DHEL
– Signature – GOST3411withGOST3410EL
– Signature – NONEwithCryptoProSignature
– Signature – NONEwithCryptoProSignature_2012_256
– Signature – NONEwithCryptoProSignature_2012_512
– Signature – NONEwithGOST3410DHEL
– Signature – NONEwithGOST3410DH_2012_256
– Signature – NONEwithGOST3410DH_2012_512
– Signature – NONEwithGOST3410EL
– Signature – NONEwithGOST3410_2012_256
– Signature – NONEwithGOST3410_2012_512
– Crypto – =========== CryptoPro Java Cipher Provider. ===========
– Cipher – GOST28147
– Cipher – GOST28147Clear
– Cipher – GostJCE
– Cipher – GostJCEClear
– Cipher – GostTransport
– Cipher – XmlGostTransport2001
– Cipher – XmlGostTransport2012_256
– Cipher – XmlGostTransport2012_512
– KeyAgreement – GOST3410DHEL
– KeyAgreement – GOST3410DH_2012_256
– KeyAgreement – GOST3410DH_2012_512
– KeyAgreement – GOST3410EL
– KeyAgreement – GOST3410_2012_256
– KeyAgreement – GOST3410_2012_512
– KeyFactory – GOST28147
– KeyGenerator – GOST28147
– KeyGenerator – SYMMETRIC512
– KeyPairGenerator – GOST3410DHEL
– KeyPairGenerator – GOST3410DHELEPH
– KeyPairGenerator – GOST3410DHEPH_2012_256
– KeyPairGenerator – GOST3410DHEPH_2012_512
– KeyPairGenerator – GOST3410DH_2012_256
– KeyPairGenerator – GOST3410DH_2012_512
– Mac – GOST28147
– Mac – GOST28147Clear
– Mac – HMAC_GOSTR3411
– Mac – HMAC_GOSTR3411_2012_256
– Mac – HMAC_GOSTR3411_2012_512
– SecretKeyFactory – GOST28147
– SecretKeyFactory – MASTER_KEY
– RevCheck – =========== CryptoPro Java Revocation Checker. ===========
– CertPathBuilder – CPPKIX
– CertPathValidator – CPPKIX

Однако в продукте он указан https://www.cryptopro.ru/products/csp/jcp
Это проблема некорректного “подключения” jcp или он отсутствует в поставке?

КриптоПро Java CSP – средство криптографической защиты информации, реализующее российские криптографические стандарты, разработанное в соответствии со спецификацией JCA (Java Cryptography Architecture).

КриптоПро Java CSP представляет собой Java модуль который выполняет все криптографические операции используя КриптоПро CSP. Данный криптопровайдер сочетает в себе высокую скорость нативного кода с удобством разработки и использования JCE интерфейсов в Java приложениях.

Интеграция КриптоПро Java CSP с архитектурой Java позволяет использовать стандартные процедуры, такие как создание и проверка ЭЦП (в том числе XMLdsig, CAdES, XAdES) , шифрование, генерацию ключей, вычисление кодов аутентификации (Message Authentication Code – MAC) в JavaTM Cryptography Extension (JCE) в соответствии со спецификациями JavaTM Cryptography Extension (JCE) на различных операционных системах и аппаратных платформах.

Реализация API КриптоПро Java CSP совместима с API КриптоПро JCP 2.0. Для работы КриптоПро Java CSP требуется установить криптопровайдер КриптоПро CSP версии 5.0.

    Назначение:

    КриптоПро Java CSP предназначен для:

    • авторизации и обеспечения юридической значимости электронных документов при обмене ими между пользователями, посредством использования процедур формирования и проверки электронной цифровой подписи (ЭЦП) в соответствии с отечественными стандартами ГОСТ Р 34.11-94/ГОСТ Р 34.11-2012 и ГОСТ Р 34.10-2001/ГОСТ Р 34.10-2012;
    • обеспечения конфиденциальности и контроля целостности информации посредством ее шифрования и имитозащиты, в соответствии с ГОСТ 28147-89 и ГОСТ 34.12-2015;
    • обеспечение аутентичности, конфиденциальности и имитозащиты соединений TLS;
    • контроля целостности, системного и прикладного программного обеспечения для его защиты от несанкционированного изменения или от нарушения правильности функционирования;
    • управления ключевыми элементами системы в соответствии с регламентом средств защиты.

    Реализуемые алгоритмы:

    Поддерживаемые КриптоПро Java CSP алгоритмы зависят от версии используемого КриптоПро CSP, в частности, только в КриптоПро CSP версии 4.0 и выше реализованы алгоритмы стандарта ГОСТ Р 34.10-2012.

    Алгоритм выработки значения хэш-функции реализован в соответствии с требованиями ГОСТ Р 34.11 94 “Информационная технология. Криптографическая защита информации. Функция хэширования” и ГОСТ Р 34.11 2012 “Информационная технология. Криптографическая защита информации. Функция хэширования”.

    Алгоритмы формирования и проверки ЭЦП реализованы в соответствии с требованиями:

    • ГОСТ Р 34.10-2001 “Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи”;

    • ГОСТ Р 34.10-2012 “Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи”.

    Алгоритм зашифрования/расшифрования данных и вычисление имитовставки реализованы в соответствии с требованиями ГОСТ 28147-89 “Системы обработки информации. Защита криптографическая” и ГОСТ 34.12-2015 “Информационная технология. Криптографическая защита информации”.

    При генерации закрытых и открытых ключей обеспечена возможность генерации с различными параметрами в соответствии с ГОСТ Р 34.10-2001/ГОСТ Р 34.10-2012.

    При выработке значения хэш-функции и шифровании обеспечена возможность использования различных узлов замены в соответствии с ГОСТ Р 34.11-94/ГОСТ Р 34.11-2012 и ГОСТ 28147-89.

    Провайдер Java CSP RSA (требует установки компонента провайдера КриптоПро CSP 5.0 с реализацией иностранных алгоритмов: Crypto-Pro Enhanced RSA and AES CSP) также поддерживает зарубежные алгоритмы: SHA-1, SHA-2, AES (128/192/256), 3DES, 3DES-112, DES, RSA.

    Поддерживаемые платформы:

    КриптоПро Java CSP разработан в соответствии с требованиями интерфейса JCA и может быть использован в операционных системах с установленной виртуальной машиной Java версии 7 и выше или Google Android (версии 7.0 и выше).
    Поддерживаемые операционные системы:

    • Microsoft Windows (win32/x64)
    • Linux (x86/x64)
    • Android (ARM7/ARMv8-A, x86, x86_64)
    • AIX 7 (ppc/ppc64)
    • Mac OS

    Системные требования:

    В соответствии с КриптоПро JCP, КриптоПро Java CSP функционирует в следующем окружении:

    • виртуальная машина Java версии 7 (удовлетворяющая спецификации Java 7 ™ Virtual Machine) и выше или виртуальная машина операционной системы Google Android (ART) (версии 7.0 и выше);
    • предустановленный провайдер КриптоПро JCP версии 2.0;
    • предустановленный провайдер КриптоПро CSP версии 5.0.
    • Необходимость лицензии на КриптоПро Java CSP зависит от операционной системы. Для клиентской ОС лицензия КриптоПро Java CSP не требуется.

    Основные характеристики:

    Длина ключей электронной цифровой подписи (ГОСТ Р 34.10-2001):

    • закрытый ключ – 256 бит;
    • открытый ключ – 512 бит при использовании алгоритма ГОСТ Р 34.10-2001;

    Длина ключей электронной цифровой подписи (ГОСТ Р 34.10-2012, 256 бит):

    • закрытый ключ – 256 бит;
    • открытый ключ – 512 бит при использовании алгоритма ГОСТ Р 34.10-2012, 256 бит;

    Длина ключей электронной цифровой подписи (ГОСТ Р 34.10-2012, 512 бит):

    • закрытый ключ – 512 бит;
    • открытый ключ – 1024 бит при использовании алгоритма ГОСТ Р 34.10-2012, 512 бит;

    Длина ключей, используемых при шифровании:

    • закрытый ключ – 256 бит на базе алгоритма ГОСТ Р 34.10-2001;
    • закрытый ключ – 256 бит на базе алгоритма ГОСТ Р 34.10-2012, 256 бит;
    • закрытый ключ – 512 бит на базе алгоритма ГОСТ Р 34.10-2012, 512 бит;
    • открытый ключ – 512 бит на базе алгоритма ГОСТ Р 34.10-2001;
    • открытый ключ – 512 бит на базе алгоритма ГОСТ Р 34.10-2012, 256 бит;
    • открытый ключ – 1024 бит на базе алгоритма ГОСТ Р 34.10-2012, 512 бит;
    • симметричный ключ – 256 бит;

    Типы ключевых носителей: см. ключевые носители в КриптоПро CSP

    Использование:

    Криптографическая архитектура Java 7 и выше
    Стандартные спецификации Java 7 предоставляют стройную систему криптографической защиты информации (ПКЗИ). Более подробно эта архитектура развёрнута по следующим ссылкам:

    • JDK 7.0 Security;
    • JavaTM Cryptography Architecture.
    • Страница для печатиСтраница для печати

    Java (JCP) загружает мультимедийные файлы Рутокен

    КриптоПро CSP 5.0 — новое поколение криптопровайдера, развивающее три основные продуктовые линейки компании КриптоПро: КриптоПро CSP (классические токены и другие пассивные хранилища секретных ключей), КриптоПро ФКН CSP/Рутокен CSP (неизвлекаемыe ключи на токенах с защищенным обменом сообщениями) и КриптоПро DSS (ключи в облаке).

    Все преимущества продуктов этих линеек не только сохраняются, но и приумножаются в КриптоПро CSP 5.0: шире список поддерживаемых платформ и алгоритмов, выше быстродействие, удобнее пользовательский интерфейс. Но главное — работа со всеми ключевыми носителями, включая ключи в облаке, теперь единообразна. Для перевода прикладной системы, в которой работал КриптоПро CSP любой из версий, на поддержку ключей в облаке или на новые носители с неизвлекаемыми ключами, не потребуется какая-либо переработка ПО — интерфейс доступа остаётся единым, и работа с ключом в облаке будет происходить точно таким же образом, как и с классическим ключевым носителем.

    Скачать КриптоПро CSP
    с ознакомительной полнофункциональной 90-дневной лицензией

    Назначение КриптоПро CSP

    • Формирование и проверка электронной подписи.
    • Обеспечение конфиденциальности и контроля целостности информации посредством ее шифрования и имитозащиты.
    • Обеспечение аутентичности, конфиденциальности и имитозащиты соединений по протоколам TLS, и IPsec.
    • Контроль целостности системного и прикладного программного обеспечения для его защиты от несанкционированных изменений и нарушений доверенного функционирования.

    Поддерживаемые алгоритмы

    В КриптоПро CSP 5.0 наряду с российскими реализованы зарубежные криптографические алгоритмы. Теперь пользователи имеют возможность использовать привычные носители ключей для хранения секретных ключей RSA и ECDSA.

    Электронная подпись

    ГОСТ Р 34.10-2012 (ГОСТ 34.10-2018), ECDSA, RSA

    Хэш-функции

    ГОСТ Р 34.11-2012 (ГОСТ 34.11-2018), SHA-1, SHA-2

    Шифрование

    ГОСТ Р 34.12-2015 (ГОСТ 34.12-2018), ГОСТ Р 34.13-2015 (ГОСТ 34.13-2018), ГОСТ 28147-89, AES (128/192/256), 3DES, 3DES-112, DES, RC2, RC4

    Таблица алгоритмов, поддерживаемых разными версиями КриптоПро CSP.

    Поддерживаемые технологии хранения ключей

    Java (JCP) загружает мультимедийные файлы Рутокен

    Облачный токен

    В криптопровайдере КриптоПро CSP 5.0 впервые появилась возможность использования ключей, хранящихся на облачном сервисе КриптоПро DSS, через интерфейс CryptoAPI. Теперь ключи, хранимые в облаке, могут быть легко использованы как любыми пользовательскими приложениями, так и большинством приложений компании Microsoft.

    Java (JCP) загружает мультимедийные файлы Рутокен

    Носители с неизвлекаемыми ключами и защищенным обменом сообщениями

    В КриптоПро CSP 5.0 добавлена поддержка носителей с неизвлекаемыми ключами, реализующих протокол SESPAKE, позволяющий провести аутентификацию, не передавая в отрытом виде пароль пользователя, и установить шифрованный канал для обмена сообщений между криптопровайдером и носителем. Нарушитель, находящийся в канале между носителем и приложением пользователя, не может ни украсть пароль при аутентификации, ни подменить подписываемые данные. При использовании подобных носителей полностью решается проблема безопасной работы с неизвлекаемыми ключами.

    Компании Актив, ИнфоКрипт и СмартПарк разработали новые защищенные токены, которые поддерживают данный протокол.

    Список производителей и моделей поддерживаемых КриптоПро CSP 5.0 R2
    Список производителей и моделей носителей с неизвлекаемыми ключами и защищенным обменом сообщениями поддерживаемых КриптоПро CSP 5.0 R2
    Компания Носитель
    Актив Рутокен ЭЦП 2.0 3000 (USB, Type-C, micro)
    Смарт-карта Рутокен ЭЦП 3.0
    Инфокрипт InfoCrypt Token++
    СмартПарк Форос 2. Базис

    Java (JCP) загружает мультимедийные файлы Рутокен

    Носители с неизвлекаемыми ключами

    Многие пользователи хотят иметь возможность работать с неизвлекаемыми ключами, но при этом не обновлять токены до уровня ФКН. Специально для них в провайдер добавлена поддержка популярных ключевых носителей Рутокен ЭЦП 2.0, JaCarta-2 ГОСТ и InfoCrypt VPN-Key-TLS.

    Список производителей и моделей поддерживаемых КриптоПро CSP 5.0 R2
    Список производителей и моделей носителей с неизвлекаемыми ключами поддерживаемых КриптоПро CSP 5.0 R2
    Компания Носитель
    ISBC Esmart Token ГОСТ
    Актив Рутокен PINPad
    Рутокен ЭЦП (USB, micro, Flash)
    Рутокен ЭЦП 2.0 (USB, micro, Flash, Touch)
    Рутокен ЭЦП 2.0 2100 (USB, Type-C, micro)
    Рутокен ЭЦП 2.0 2151
    Рутокен ЭЦП PKI (USB, Type-C, micro)
    Рутокен ЭЦП 2.0 Bluetooth
    Рутокен TLS (исполнение 1)
    Смарт-карта Рутокен ЭЦП SC
    Смарт-карта Рутокен ЭЦП 2.0 2100
    Смарт-карта Рутокен ЭЦП 2.0 2151
    Аладдин Р.Д.JaCarta-2 ГОСТ, JaСarta SF/ГОСТ
    JaCarta-2 SE/PKI/ГОСТ
    Инфокрипт InfoCrypt Token++ TLS
    InfoCrypt VPN-Key-TLS

    Java (JCP) загружает мультимедийные файлы Рутокен

    Классические пассивные USB-токены и смарт-карты

    Большинство пользователей предпочитает быстрые, дешевые и удобные решения для хранения ключей. Как правило, предпочтение отдаётся токенам и смарт-картам без криптографических сопроцессоров. Как и в предыдущих версиях провайдера, в КриптоПро CSP 5.0 сохранена поддержка всех совместимых носителей производства компаний Актив, Аладдин Р.Д., Gemalto/SafeNet, Multisoft, NovaCard, Rosan, Alioth, MorphoKST и СмартПарк.

    Кроме того, конечно, как и раньше поддерживаются способы хранения ключей в реестре Windows, на жестком диске, на флеш-накопителях на всех платформах.

    Список производителей и моделей поддерживаемых КриптоПро CSP 5.0 R2
    Список производителей и моделей классических пассивных USB-токенов и смарт-карт поддерживаемых КриптоПро CSP 5.0 R2
    Компания Носитель
    AliothSCOne Series (v5/v6)
    GemaltoOptelio Contactless Dxx Rx
    Optelio Dxx FXR3 Java
    Optelio G257
    Optelio MPH150
    ISBCEsmart Token
    MorphoKSTMorphoKST
    NovaCardCosmo
    RosanG&D element V14 / V15
    G&D 3.45 / 4.42 / 4.44 / 4.45 / 4.65 / 4.80
    Kona 2200s / 251 / 151s / 261 / 2320
    Kona2 S2120s / C2304 / D1080
    SafeNeteToken Java Pro JC
    eToken 4100
    eToken 5100
    eToken 5110
    eToken 5105
    eToken 5205
    АктивРутокен S
    Рутокен КП
    Рутокен Lite
    Смарт-карта Рутокен Lite
    Аладдин Р.Д.JaCarta ГОСТ
    JaCarta PKI
    JaCarta PRO
    JaCarta LT
    DallasTouch Memory (iButton) DS199x
    ИнфокриптInfoCrypt Token++ lite
    МультисофтMS_Key исп.8 Ангара
    MS_Key ESMART исп.5
    СмартПаркФорос
    Форос 2
    R301 Форос
    Оскар
    Оскар 2
    Рутокен Магистра

    Инструменты КриптоПро

    В составе КриптоПро CSP 5.0 появилось кроссплатформенное (Windows/Linux/macOS) графическое приложение — «Инструменты КриптоПро» («CryptoPro Tools»).

    Основная идея — предоставить возможность пользователям удобно решать типичные задачи. Все основные функции доступны в простом интерфейсе — при этом мы реализовали и режим для опытных пользователей, открывающий дополнительные возможности.

    С помощью Инструментов КриптоПро решаются задачи управления контейнерами, смарт-картами и настройками криптопровайдеров, а также мы добавили возможность создания и проверки электронной подписи PKCS#7.

    Java (JCP) загружает мультимедийные файлы Рутокен

    Поддерживаемое программное обеспечение

    КриптоПро CSP позволяет быстро и безопасно использовать российские криптографические алгоритмы в следующих стандартных приложениях:

    • Офисный пакет Microsoft Office
    • Почтовый сервер Microsoft Exchange и клиент Microsoft Outlook
    • Продукты Adobe
    • Браузеры Яндекс.Браузер, Спутник, Internet Explorer, Chromium GOST
    • Средство формирования и проверки подписи приложений Microsoft Authenticode
    • Веб-серверы Microsoft IIS, nginx, Apache
    • Средства удаленных рабочих столов Microsoft Remote Desktop Services
    • Microsoft Active Directory

    Java (JCP) загружает мультимедийные файлы Рутокен

    Интеграция с платформой КриптоПро

    С первого же релиза обеспечивается поддержка и совместимость со всеми нашими продуктами:

    • КриптоПро УЦ
    • Службы УЦ
    • КриптоПро ЭЦП
    • КриптоПро IPsec
    • КриптоПро EFS
    • КриптоПро .NET
    • КриптоПро Java CSP
    • КриптоПро NGate

    Операционные системы и аппаратные платформы

    Традиционно мы работаем в непревзойдённо широком спектре систем:

    • Microsoft Windows
    • macOS
    • Linux
    • FreeBSD
    • Solaris
    • AIX
    • iOS
    • Android
    • Sailfish OS
    • Аврора

    аппаратных платформ:

    • Intel, AMD
    • PowerPC
    • ARM (в т.ч. Байкал-М, Apple M1)
    • MIPS (Байкал-Т)
    • VLIW (Эльбрус)
    • Sparc

    и виртуальных сред:

    • Microsoft Hyper-V
    • VMWare
    • Oracle Virtual Box
    • RHEV

    Таблица операционных систем, поддерживаемых разными версиями КриптоПро CSP.

    Классификация операционных систем для использования КриптоПро CSP c лицензией на рабочее место и сервер.

    Интерфейсы для встраивания

    Для встраивания в приложения на всех платформах КриптоПро CSP доступен через стандартные интерфейсы для криптографических средств:

    • Microsoft CryptoAPI
    • PKCS#11
    • OpenSSL engine
    • Java CSP (Java Cryptography Architecture)
    • Qt SSL

    Java (JCP) загружает мультимедийные файлы Рутокен

    Производительность на любой вкус

    Многолетний опыт разработки позволяет нам охватить все решения от миниатюрных ARM-плат, таких как Raspberry PI, до многопроцессорных серверов на базе Intel Xeon, AMD EPYC и PowerPC, отлично масштабируя производительность.

    Java (JCP) загружает мультимедийные файлы Рутокен

    Регулирующие документы


    Offline

    crazz

    Оставлено
    :

    29 декабря 2021 г. 11:46:07(UTC)

    добрый день, может кто то сталкивался и есть рабочее решение:
    проблема воспроизводится на Win Server 2012 R2 Standart
    (на Win10 Professional – работает)

    окружение JCSP 5.0.42109, CSP 5.0.12330, служба кеширования ключей

    сценарий кеширования в хранилище MY (Personal)
    сертификаты с носителя (вирт дискеты) устанавливаются в Личные
    для кеширования приватного ключа – средствами CSP делаем попытку поменять пароль,
    проверяем подписание в CSP – ок
    отключаем носитель
    еще раз проверяем подписание в CSP – ок

    запускаем java приложение, пробуем в нем подписать – первая вторая попытки работают нормально, подписывается,
    а после начинается непонятное – следующая попытка выдает ошибку

    Код:

    java.lang.IllegalArgumentException: Hash or Sign ERROR: 0x57
    	at ru.CryptoPro.JCSP.MSCAPI.MSHashNSignException.procCode(Unknown Source)
    	at ru.CryptoPro.JCSP.MSCAPI.cl_5.createHash(Unknown Source)
    	at ru.CryptoPro.JCSP.MSCAPI.cl_5.a(Unknown Source)
    	at ru.CryptoPro.JCSP.MSCAPI.cl_5.initHashGR3411(Unknown Source)
    	at ru.CryptoPro.JCSP.MSCAPI.cl_4.a(Unknown Source)
    	at ru.CryptoPro.JCSP.Key.AbstractKeySpec.prepareHash(Unknown Source)
    	at ru.CryptoPro.JCSP.Digest.BaseGostDigest.prepare(Unknown Source)
    	at ru.CryptoPro.JCSP.Digest.BaseGostDigest.engineUpdate(Unknown Source)
    	at ru.CryptoPro.JCSP.Sign.CryptoProSign.engineUpdate(Unknown Source)
    	at java.security.Signature.update(Unknown Source)
    	at java.security.Signature.update(Unknown Source)
    	at ru.soi.service.crypto.SigningService.signAndVerify(SigningService.java:159)
    	at ru.soi.service.crypto.SigningService.signingFile(SigningService.java:268)
    	at ru.soi.controller.v1.signature.SignatureServiceController.normalSignFile(SignatureServiceController.java:247)
    	at ru.soi.controller.v1.signature.SignatureServiceController$$FastClassBySpringCGLIB$$e441f2bc.invoke(<generated>)

    а следующая попытка снова подписывает без ошибок

    проблема – подписание работает не стабильно, и куда копать не понятно
    код

    Код:

    
    
                FileAsByteArrayManager fileAsByteArrayManager = new FileAsByteArrayManager();
                byte[] fileInByte = fileAsByteArrayManager.readfileAsBytes(inFile);
                byte[] signInByte = signAndVerify(JCP.GOST_SIGN_2012_256_NAME, alias,
                        "".toCharArray(), cryptoParams.getAsk_pin_in_window(), fileInByte);
    
                String fileNameSig = inFile.getAbsolutePath() + ".sig";
                fileAsByteArrayManager.writeFile(signInByte, fileNameSig);
                return fileNameSig;
    
    
     public byte[] signAndVerify(String signAlgName, String alias,
                                    char[] password, boolean askPinInWindow, byte[] fileInByte) throws Exception {
    
            KeyStore keyStore = getKS(alias);
    
            PrivateKey privateKey;
            PublicKey publicKey;
            Certificate certificate;
    
    // askPinInWindow = true
            if (askPinInWindow) {
                privateKey = (PrivateKey) keyStore.getKey(alias, null);
                certificate = keyStore.getCertificate(alias);
                publicKey = certificate.getPublicKey();
            } else {
                KeyStore.ProtectionParameter protectedParam =
                        new KeyStore.PasswordProtection(password);
                JCPPrivateKeyEntry entry = (JCPPrivateKeyEntry) keyStore.getEntry(alias, protectedParam);
                privateKey = entry.getPrivateKey();
                certificate = entry.getCertificate();
                publicKey = certificate.getPublicKey();
            }
            if (isNull(privateKey)) throw new NotFoundException("not found private key for alias: " + alias);
            Signature signer = Signature.getInstance(signAlgName, JCSP.PROVIDER_NAME);
    
            signer.initSign(privateKey);
            signer.update(fileInByte);
    
            byte[] signature = signer.sign();
    
            Encoder encoder = new Encoder();
            log.info("Signature: " + encoder.encode(signature));
    
            Signature validator = Signature.getInstance(signAlgName, JCSP.PROVIDER_NAME);
            validator.initVerify(publicKey);
            validator.update(fileInByte);
    
            boolean valid = validator.verify(signature);
            log.info("Signature verified: " + valid);
            if (!valid)
                throw new Exception();
            signature = (new SignatureChecker()).cmsSignature((X509Certificate) certificate, signature);
    
            return signature;
        }
    
        public static KeyStore getKS(String alias) throws Exception {
            // только хранилище MY
            KeyStoreConfig.getInstance().getNames();
            KeyStore store = KeyStore.getInstance(MY, JCSP.PROVIDER_NAME);
            store.load(null, null);
            Object c = store.getCertificate(alias);
            if (null != c) {
                log.info(MY);
                return store;
            }
            throw new Exception("no store found for " + alias);
        }
    
    


    Offline

    azxsdcvfjk

    Оставлено
    :

    12 января 2022 г. 20:23:27(UTC)

    Добрый день.

    У меня тоже похожая проблема возникает в следующем сценарии:
    CSP 5.0.12000 + JCSP (java-csp-5.0.42119-A)

    Цель
    1) сгенерировать ключевую пару на смарткарте (в данном случае самую обычную — псевдо не извлекаемую, которая и с криптопро 4.0 работает)

    Код:

    
    
    
            KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("GOST3410DH_2012_256", "JCSP");
            keyPairGenerator.initialize(new NameAlgIdSpec("\SCARD\ESMART_0000000*cardSerial*0000000\\test_alias"));
            keyPairGenerator.initialize(new PasswordParamsSpec("12345678"));
      KeyPair pair = keyPairGenerator.generateKeyPair();
    


    (где-то тут генерируем временный сертификат, потом запрос на сертификат, потом заменяем на постоянный из УЦ)

    2) сменить пароль от токена

    тут я пробовал менять через PKCS11 или

    как-то так , (тут результат более предсказуемый и обычно всё работает, вроде)

    Код:

    
            KeyStore keyStore = KeyStore.getInstance(readerName, provider);
            keyStore.load(null, null);
            KeyStore.ProtectionParameter param = null;
    
            if (password != null)
                param = new KeyStore.PasswordProtection(password);
            KeyStore.Entry entry =  keyStore.getEntry(alias , param);
            keyStore.setEntry(alias + ContainerStore.PASSWORD_PREFIX + new String(newPassword), entry, new KeyStore.PasswordProtection(newPassword));
    
    

    3) проверить, что всё работает с новым паролем
    — тут и возникает проблема, пока не перезагрузиль сервис криптоПро sudo systemctl restart cprocsp ни один пароль от токена не подходит

    Код:

    
            KeyStore keyStore = KeyStore.getInstance(readerName, provider);
            keyStore.load(null, null);
            KeyStore.ProtectionParameter param = null;
            if (password != null)
                param = new KeyStore.PasswordProtection(password); 
            JCPPrivateKeyEntry entry = (JCPPrivateKeyEntry) ((Object) keyStore.getEntry(alias , param));
    

    и вылазит ошибка, если перед этим шагом прибить криптопро sudo systemctl restart cprocsp, то ошибки не будет и всё пройдёт успешно.

    Код:

    
    Caused by: ru.CryptoPro.JCP.KeyStore.InvalidPasswordException
    	at ru.CryptoPro.JCSP.MSCAPI.cl_2.a(Unknown Source)
    	at ru.CryptoPro.JCSP.Key.AbstractKeySpec.read(Unknown Source)
    	at ru.CryptoPro.JCSP.KeyStore.CSPStore.a(Unknown Source)
    	at ru.CryptoPro.JCSP.KeyStore.CSPStore.a(Unknown Source)
    	at ru.CryptoPro.JCSP.KeyStore.CSPStore.engineGetEntry(Unknown Source)
    	at ru.CryptoPro.JCSP.KeyStore.MetaCSPStore.engineGetEntry(Unknown Source)
    	at java.base/java.security.KeyStore.getEntry(KeyStore.java:1555)
    	at test.javaCsp.JcspHelper.getJCPPrivateKeyEntry(JcspHelper.java:158)
    	at test.JcspHelper.validateTokenContainer(JcspHelper.java:205)
    	at test.JcspService.validateToken(JcspService.java:123)
    	... 65 more
    Caused by: java.security.AccessControlException: ProvParam ERROR: 0x8010006b
    	at ru.CryptoPro.JCSP.MSCAPI.cl_5.setPassword(Unknown Source)
    	at ru.CryptoPro.JCSP.MSCAPI.cl_5.a(Unknown Source)
    	at ru.CryptoPro.JCSP.MSCAPI.cl_5.openContainerWithSetPin(Unknown Source)
    	... 75 more
    Caused by: ru.CryptoPro.JCSP.MSCAPI.MSProvParamException: ProvParam ERROR: 0x8010006b
    	at ru.CryptoPro.JCSP.MSCAPI.MSProvParamException.procCode(Unknown Source)
    	at ru.CryptoPro.JCSP.MSCAPI.cl_5.setProvParam(Unknown Source)
    	... 78 more

    Если отформатировать карту и снова сменить пароль на по умолчанию, то при генерации ключа возникнет анологичная ошибка

    Код:

    
    
    Caused by: java.security.ProviderException: Error in key creation
    	at ru.CryptoPro.JCSP.Key.GostKeyPairGenerator.throwEx(Unknown Source)
    	at ru.CryptoPro.JCSP.Key.GostKeyPairGenerator.generateKeyPair(Unknown Source)
    	at test.JcspHelper.generateKeyPairOnToken(JcspHelper.java:100)
    	at test.JcspService.generateKeyPair(JcspService.java:90)
    	... 65 more
    Caused by: java.security.UnrecoverableKeyException: Wrong Password
    	at ru.CryptoPro.JCSP.MSCAPI.cl_2.a(Unknown Source)
    	at ru.CryptoPro.JCSP.Key.AbstractKeySpec.create(Unknown Source)
    	... 68 more
    Caused by: java.security.AccessControlException: ProvParam ERROR: 0x8010006b
    	at ru.CryptoPro.JCSP.MSCAPI.cl_5.setPassword(Unknown Source)
    	at ru.CryptoPro.JCSP.MSCAPI.cl_5.a(Unknown Source)
    	at ru.CryptoPro.JCSP.MSCAPI.cl_5.createContainerWithSetPin(Unknown Source)
    	... 70 more
    Caused by: ru.CryptoPro.JCSP.MSCAPI.MSProvParamException: ProvParam ERROR: 0x8010006b
    	at ru.CryptoPro.JCSP.MSCAPI.MSProvParamException.procCode(Unknown Source)
    	at ru.CryptoPro.JCSP.MSCAPI.cl_5.setProvParam(Unknown Source)
    	... 73 more
    

    Вопрос: как убрать это странное кэширование паролей в “cprocsp”, мне кажется, что проблема примерно та же и связана с каким-то кэшированием чего-то в недрах криптоПро CSP?

    Отредактировано пользователем 12 января 2022 г. 20:59:32(UTC)
    | Причина: Не указана


    Offline

    biff

    Оставлено
    :

    15 апреля 2022 г. 16:22:08(UTC)

    Мне лично помогло следущее:

    1. При старте удаляем провайдер JCP через Security.removeProvider (т.к. он идет вместе с JCSP и регистрируется)
    2. Всегда создаем новый экземпляр JCSP перед поиском KeyStore, т.к. иначе он не видит usb токены или не может обновлять их список динамически

    Документации никакой нет, поэтому не в курсе, на сколько такие действия правильные, по крайней мере, так оно работает.


    Offline

    wastsy

    Оставлено
    :

    20 декабря 2021 г. 10:52:24(UTC)

    При попытке вызвать

    Цитата:

    Signature.getInstance(getSignatureAlgorithm().name(), JCP.PROVIDER_NAME);

    возникает исключение:

    Цитата:

    Caused by: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: GOST3411_2012_256withGOST3410_2012_256, provider: JCP, class: ru.CryptoPro.JCP.Sign.GostElSign2012_256)
    at java.base/java.security.Provider$Service.newInstance(Provider.java:1901)
    at java.base/sun.security.jca.GetInstance.getInstance(GetInstance.java:236)
    at java.base/sun.security.jca.GetInstance.getInstance(GetInstance.java:206)
    at java.base/java.security.Signature.getInstance(Signature.java:404)
    Caused by: ru.CryptoPro.JCP.tools.SelfTesterException: SelfTester Error: some test crashed twice in a row, usage of JCP is no longer available
    at ru.CryptoPro.JCP.tools.SelfTester.check(Unknown Source)
    at ru.CryptoPro.JCP.tools.SelfTester.checkClass(Unknown Source)
    at ru.CryptoPro.JCP.tools.Starter.check(Unknown Source)
    at ru.CryptoPro.JCP.Sign.cl_0.<init>(Unknown Source)
    at ru.CryptoPro.JCP.Sign.GostElSign.<init>(Unknown Source)
    at ru.CryptoPro.JCP.Sign.GostElSign2012_256.<init>(Unknown Source)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at java.base/java.security.Provider.newInstanceUtil(Provider.java:154)
    at java.base/java.security.Provider$Service.newInstance(Provider.java:1894)
    … 129 common frames omitted

    При этом локально на машине Windows работает корректно, ошибка происходит только на сервере (Linux).
    Используются Java 11, jcp-2.0.41940-A для JVM 10+
    Подскажите, пожалуйста, с чем может быть связано?


    Offline

    Санчир Момолдаев

    Оставлено
    :

    20 декабря 2021 г. 19:42:50(UTC)

    Добрый день!
    на винде работает в IDE?
    если собираете fat jar то все наши jar-ники должны быть импортированы полностью. т.к. они подписаны

    thanks 1 пользователь поблагодарил Санчир Момолдаев за этот пост.

    wastsy

    оставлено 25.12.2021(UTC)


    Offline

    wastsy

    Оставлено
    :

    21 декабря 2021 г. 9:40:07(UTC)

    Добрый день!
    Всё верно, работаю в IDE.
    Собирается fat jar. Получается, нужно вынести все ваши jar-ники во внешние зависимости для проекта или можно просто импортировать в проект все jar-ники и собирать fat jar?


    Offline

    wastsy

    Оставлено
    :

    21 декабря 2021 г. 9:50:31(UTC)

    Вот скрин: UserPostedImage

    Подскажите, пожалуйста, это весь список необходимых jar-ников?


    Offline

    wastsy

    Оставлено
    :

    21 декабря 2021 г. 13:04:28(UTC)

    Автор: Санчир Момолдаев Перейти к цитате

    Добрый день!
    на винде работает в IDE?
    если собираете fat jar то все наши jar-ники должны быть импортированы полностью. т.к. они подписаны

    Чуть выше задал вам вопросы уточняющие.

    Ещё попробовал собрать fat jar со всеми jar-никами и запустить его локально, но, к сожалению, появилась вот такая проблема (такая же проблема возникает и при запуске fat jar без всех дополнительных jar-ников):

    Цитата:

    Caused by: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: GOST3411_2012_256withGOST3410_2012_256, provider: JCP, class: ru.CryptoPro.JCP.Sign.GostElSign2012_256)
    at java.base/java.security.Provider$Service.newInstance(Provider.java:1895)
    at java.base/sun.security.jca.GetInstance.getInstance(GetInstance.java:236)
    at java.base/sun.security.jca.GetInstance.getInstance(GetInstance.java:206)
    at java.base/java.security.Signature.getInstance(Signature.java:404)
    Caused by: ru.CryptoPro.JCP.tools.SelfTesterException: URI is not hierarchical
    at ru.CryptoPro.JCP.tools.SelfTester.checkClass(Unknown Source)
    at ru.CryptoPro.JCP.tools.Starter.check(Unknown Source)
    at ru.CryptoPro.JCP.Sign.cl_0.<init>(Unknown Source)
    at ru.CryptoPro.JCP.Sign.GostElSign.<init>(Unknown Source)
    at ru.CryptoPro.JCP.Sign.GostElSign2012_256.<init>(Unknown Source)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at java.base/java.security.Provider.newInstanceUtil(Provider.java:154)
    at java.base/java.security.Provider$Service.newInstance(Provider.java:1888)
    … 129 common frames omitted
    Caused by: ru.CryptoPro.JCP.tools.SelfTesterException: URI is not hierarchical
    at ru.CryptoPro.JCP.tools.TestVerifyClassJar.run(Unknown Source)
    at ru.CryptoPro.JCP.tools.SelfTester.b(Unknown Source)
    at ru.CryptoPro.JCP.tools.SelfTester.a(Unknown Source)
    … 140 common frames omitted
    Caused by: java.lang.IllegalArgumentException: URI is not hierarchical
    at java.base/java.io.File.<init>(File.java:420)
    at ru.CryptoPro.JCP.tools.JarChecker.checkURLSign(Unknown Source)
    at ru.CryptoPro.JCP.tools.cl_36.run(Unknown Source)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    … 143 common frames omitted

    Попробовал этот же fat jar со всеми jar-никами запустить на сервере: ошибка та же, что и указывалась ранее:

    Цитата:

    Caused by: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: GOST3411_2012_256withGOST3410_2012_256, provider: JCP, class: ru.CryptoPro.JCP.Sign.GostElSign2012_256)
    at java.base/java.security.Provider$Service.newInstance(Provider.java:1901)
    at java.base/sun.security.jca.GetInstance.getInstance(GetInstance.java:236)
    at java.base/sun.security.jca.GetInstance.getInstance(GetInstance.java:206)
    at java.base/java.security.Signature.getInstance(Signature.java:404)
    Caused by: ru.CryptoPro.JCP.tools.SelfTesterException: SelfTester Error: some test crashed twice in a row, usage of JCP is no longer available
    at ru.CryptoPro.JCP.tools.SelfTester.check(Unknown Source)
    at ru.CryptoPro.JCP.tools.SelfTester.checkClass(Unknown Source)
    at ru.CryptoPro.JCP.tools.Starter.check(Unknown Source)
    at ru.CryptoPro.JCP.Sign.cl_0.<init>(Unknown Source)
    at ru.CryptoPro.JCP.Sign.GostElSign.<init>(Unknown Source)
    at ru.CryptoPro.JCP.Sign.GostElSign2012_256.<init>(Unknown Source)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at java.base/java.security.Provider.newInstanceUtil(Provider.java:154)
    at java.base/java.security.Provider$Service.newInstance(Provider.java:1894)
    … 129 common frames omitted

    Отредактировано пользователем 21 декабря 2021 г. 17:00:43(UTC)
    | Причина: Не указана


    Offline

    Евгений Афанасьев

    Оставлено
    :

    21 декабря 2021 г. 18:11:06(UTC)

    Здравствуйте.
    У вас точно

    Автор: wastsy Перейти к цитате

    jcp-2.0.41940-A для JVM 10

    ?
    В changelog JCP есть исправление ошибки вида URI is not hierarchical в JCP 2.0.40363-A и выше. Либо у вас как-то по-особенному собран jar.

    Отредактировано пользователем 21 декабря 2021 г. 18:11:45(UTC)
    | Причина: Не указана

    thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.

    wastsy

    оставлено 25.12.2021(UTC)


    Offline

    wastsy

    Оставлено
    :

    22 декабря 2021 г. 12:17:05(UTC)

    Автор: Евгений Афанасьев Перейти к цитате

    Здравствуйте.
    У вас точно

    Автор: wastsy Перейти к цитате

    jcp-2.0.41940-A для JVM 10

    ?
    В changelog JCP есть исправление ошибки вида URI is not hierarchical в JCP 2.0.40363-A и выше. Либо у вас как-то по-особенному собран jar.

    Перепроверил версию. Действительно, стояла версия jcp-2.0.40132-A. Сейчас попробую новую 5.0.42119-A

    Отредактировано пользователем 23 декабря 2021 г. 11:48:50(UTC)
    | Причина: Не указана


    Offline

    wastsy

    Оставлено
    :

    22 декабря 2021 г. 14:46:29(UTC)

    Импортировал все jar-ники из java-csp-5.0.42119-A (КриптоПро CSP 5.0 R2) в проект:
    ASN1P.jar,
    asn1rt.jar,
    JCPRevTools.jar,
    JCP.jar,
    XMLDSigRI.jar,
    JCSP.jar,
    AdES-core.jar,
    CAdES.jar,
    cmsutil.jar,
    cpSSL.jar,
    forms_rt.jar,
    J6CF.jar,
    J6Oscar.jar,
    JCPControlPane.jar,
    JCPRequest.jar,
    JCPRevCheck.jar,
    JCPxml.jar,
    JCryptoP.jar,
    Rutoken.jar,
    samples.jar,
    samples-sources.jar,
    tls_proxy.jar,
    XAdES.jar.

    Собрал fat jar, все проблемы ушли при запуске этого jar-ника локально.
    Но на сервера возникла новая проблема (прошлая ушла, возможно, или просто возникла дополнительная к предыдущей):

    Цитата:

    Caused by: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: GOST3411_2012_256withGOST3410_2012_256, provider: JCP, class: ru.CryptoPro.JCP.Sign.GostElSign2012_256)
    at java.base/java.security.Provider$Service.newInstance(Provider.java:1901)
    at java.base/sun.security.jca.GetInstance.getInstance(GetInstance.java:236)
    at java.base/sun.security.jca.GetInstance.getInstance(GetInstance.java:206)
    at java.base/java.security.Signature.getInstance(Signature.java:404)
    … 121 common frames omitted
    Caused by: java.lang.NoClassDefFoundError: Could not initialize class ru.CryptoPro.JCP.tools.cl_33
    at ru.CryptoPro.JCP.tools.Starter.getInstance(Unknown Source)
    at ru.CryptoPro.JCP.tools.Starter.check(Unknown Source)
    at ru.CryptoPro.JCP.Sign.cl_0.<init>(Unknown Source)
    at ru.CryptoPro.JCP.Sign.GostElSign.<init>(Unknown Source)
    at ru.CryptoPro.JCP.Sign.GostElSign2012_256.<init>(Unknown Source)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at java.base/java.security.Provider.newInstanceUtil(Provider.java:154)
    at java.base/java.security.Provider$Service.newInstance(Provider.java:1894)
    … 129 common frames omitted

    jar-ник JCP.jar подключен, что подтверждается тем, что локально отрабатывает нормально тот джарник, который вызывает исключение на сервере.
    Подскажите, пожалуйста, с чем может быть связана? Вызывается исключение всё в той же строчке кода, которую описал выше в первом сообщении.

    Отредактировано пользователем 23 декабря 2021 г. 13:50:29(UTC)
    | Причина: Не указана

    Купить КриптоПро JavaCSP в СНАБСОФТ

    Покупая лицензию КриптоПро Java CSP, за уникальную цену вы получаете чрезвычайно полезное средство криптографической защиты информации, реализующее российские криптографические стандарты, разработанное в соответствии со спецификацией JCA (Java Cryptography Architecture).

    Программа КриптоПро Java CSP представляет собой Java модуль который выполняет все криптографические операции используя КриптоПро CSP. Данный криптопровайдер сочетает в себе высокую скорость нативного кода с удобством разработки и использования JCE интерфейсов в Java приложениях.

    Если Вы не нашли необходимую лицензию на программу КриптоПро JavaCSP, планируете купить другую версию программы или Вас не устраивает стоимость лицензии КриптоПро JavaCSP, уточняйте возможность поставки, наличие и цены по телефонам:

    info@snabsoft.ru

    Наши специалисты подберут для Вас оптимальное решение!

    Читайте также:  АЦСК Приватбанк: инструкции по работе ЭЦП и сертификатами |ProKey
    Оцените статью
    ЭЦП Эксперт
    Добавить комментарий

    Adblock
    detector