Home java CryptoPro JCP doesn't want to run from jar

CryptoPro JCP doesn’t want to run from jar

Author

Date

Category

I’m using JCP because I’m making an https client using GostTLS.
The problem is that the code from the IDE (IDEA) works correctly, as soon as I put the project into a jar file, everything stops working. Maybe someone has worked with JCP and will be able to suggest. Thank you in advance.
I attach the logs below:

Jun. 10, 2021 3:34:54 PM ru.CryptoPro.ssl.Provider b
INFO: JCP license isServer: true
june 10, 2021 3:34:55 PM ru.CryptoPro.ssl.Provider b
INFO: JCP license isServer: true
JCP version 0.0
Crypto version 0.0
RevCheck version 0.0
june 10, 2021 3:34:55 PM ru.CryptoPro.ssl.SSLContextImpl engineInit
INFO: SSLContextImpl init.
june 10, 2021 3:34:55 PM ru.CryptoPro.ssl.SSLContextImpl engineInit
INFO: trigger seeding of SecureRandom
june 10, 2021 3:34:55 PM ru.CryptoPro.ssl.SSLContextImpl engineInit
INFO: done seeding SecureRandom
june 10, 2021 3:34:55 PM ru.CryptoPro.ssl.SSLContextImpl engineInit
INFO: SSLContextImpl initialized.
june 10, 2021 3:34:56 PM en.CryptoPro.Crypto.Starter & lt; init & gt;
INFO: Loading Crypto 0.0.0.0.0 [crypto module]
june 10, 2021 3:34:56 PM en.CryptoPro.Crypto.Starter & lt; init & gt;
INFO: Crypto has been loaded.
june 10, 2021 3:35:05 PM ru.CryptoPro.JCP.tools.SelfTesterBase c
SEVERE: [main] :: [ru.CryptoPro.Crypto.tools.SelfTester_Crypt] :: test 11 crashed twice!
june 10, 2021 3:35:05 PM en.CryptoPro.JCP.tools.SelfTesterBase checkClassInternal
SEVERE: [main] :: [ru.CryptoPro.Crypto.tools.SelfTester_Crypt] :: Corrupted: ru.CryptoPro.Crypto.Key.GostKeyGenerator
ru.CryptoPro.JCP.tools.SelfTesterException
    at ru.CryptoPro.JCP.tools.TestVerifyClassJar.run (Unknown Source)
    at ru.CryptoPro.JCP.tools.SelfTesterBase.b (Unknown Source)
    at ru.CryptoPro.JCP.tools.SelfTesterBase.a (Unknown Source)
    at ru.CryptoPro.JCP.tools.SelfTesterBase.checkClassInternal (Unknown Source)
    at ru.CryptoPro.Crypto.tools.SelfTester_Crypt.checkClass (Unknown Source)
    at ru.CryptoPro.Crypto.Starter.a (Unknown Source)
    at ru.CryptoPro.Crypto.Starter.check (Unknown Source)
    at ru.CryptoPro.Crypto.Key.GostKeyGenerator. & lt; init & gt; (Unknown Source)
    at java.base / jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0 (Native Method)
    at java.base / jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:64)
    at java.base / jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:45)
    at java.base / java.lang.reflect.Constructor.newInstanceWithCaller (Constructor.java:500)
    at java.base / java.lang.reflect.Constructor.newInstance (Constructor.java:481)
    at java.base / java.security.Provider.newInstanceUtil (Provider.java:155)
    at java.base / java.security.Provider $ Service.newInstance (Provider.java:1893)
    at java.base / sun.security.jca.GetInstance.getInstance (GetInstance.java:236)
    at java.base / javax.crypto.JceSecurity.getInstance (JceSecurity.java:136)
    at java.base / javax.crypto.KeyGenerator.getInstance (KeyGenerator.java:286)
    at ru.CryptoPro.ssl.cl_36. & lt; init & gt; (Unknown Source)
    at ru.CryptoPro.ssl.cl_18.a (Unknown Source)
    at ru.CryptoPro.ssl.cl_18.a (Unknown Source)
    at ru.CryptoPro.ssl.cl_60.t (Unknown Source)
    at ru.CryptoPro.ssl.cl_60.a (Unknown Source)
    at ru.CryptoPro.ssl.SSLSocketImpl.a (Unknown Source)
    at ru.CryptoPro.ssl.SSLSocketImpl.o (Unknown Source)
    at ru.CryptoPro.ssl.SSLSocketImpl.b (Unknown Source)
    at ru.CryptoPro.ssl.SSLSocketImpl.startHandshake (Unknown Source)
    at java.base / sun.net.www.protocol.https.HttpsClient.afterConnect (HttpsClient.java:567)
    at java.base / sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect (AbstractDelegateHttpsURLConnection.java:183)
    at java.base / sun.net.www.protocol.https.HttpsURLConnectionImpl.connect (HttpsURLConnectionImpl.java:142)
    at ru.rs.registerextract.client.HttpsClient.doGet (HttpsClient.java:41)
    at ru.rs.registerextract.requester.ZakupkiRequester.getFormLinkFromSearch (ZakupkiRequester.java:40) 
at ru.rs.registerextract.controller.controller.main (Controller.java:78)
CauseD by: java.security.privilegedActionException: java.io.ioException
    at java.base / java.security.accesscontroller.doprivileged (accesscontroller.java:58)
    ... 33 more
CauseD by: java.io.ioException
    at ru.cryptopro.jcp.tools.jarchecker.Checkurlsign (Unknown Source)
    at ru.cryptopro.jcp.tools.cl_34.run (Unknown Source)
    at java.base / java.security.accesscontroller.doprivileged (accesscontroller.java:54)
    ... 33 more
Caused by: java.io.ioException: Hash on the contents of the file is missing or wrong. File manifest is distorted
    at ru.cryptopro.jcp.tools.jarchecker.B (Unknown Source)
    at ru.cryptopro.jcp.tools.jarchecker.c (Unknown Source)
    at ru.cryptopro.jcp.tools.jarchecker.ChackJarsign (Unknown Source)
    ... 36 more
Jun. 10, 2021 3:35:05 PM Ru.Cryptopro.ssl.sslsocketImpl A
Warning: Main, Handling Exception: Java.Security.providerException: Encryption / Decryption Provider Not Installed
2021-06-10 15:35:05 Error Controller: Main - Message: Java.Security.providerException: Encryption / Decryption Provider Not Installed
Jun. 10, 2021 3:35:05 PM RU.CRYPTOPRO.JCP.Tools.selftesterBase C
Severe: [Selftester-JCP] :: [ru.cryptopro.jcp.tools.selftester_jcp] :: Test 29 Crashed Twice!
Jun. 10, 2021 3:35:05 PM ru.cryptopro.jcp.tools.selftesterbase Run
Warning: [Selftester-JCP] :: [ru.cryptopro.jcp.tools.selftester_jcp] :: Test №29 Failed!
Jun. 10, 2021 3:35:05 PM ru.cryptopro.jcp.tools.selftesterbase Run
Warning: Error.
ru.cryptopro.jcp.tools.selftesterException
    AT RU.CRYPTOPRO.JCP.Tools.TestverifyClassJar.run (Unknown Source)
    AT RU.CRYPTOPRO.JCP.Tools.SelftesterBase.B (Unknown Source)
    at ru.cryptopro.jcp.tools.selftesterbase.a (Unknown Source)
    at ru.cryptopro.jcp.tools.selftesterbase.run (UNKNOWN SOURCE)
    at java.base / java.lang.thread.run (thread.java:832)
CauseD by: java.security.privilegedActionException: java.io.ioException
    at java.base / java.security.accesscontroller.doprivileged (accesscontroller.java:58)
    ... 5 more
CauseD by: java.io.ioException
    at ru.cryptopro.jcp.tools.jarchecker.Checkurlsign (Unknown Source)
    at ru.cryptopro.jcp.tools.cl_34.run (Unknown Source)
    at java.base / java.security.accesscontroller.doprivileged (accesscontroller.java:54)
    ... 5 more
Caused by: java.io.ioException: Hash on the contents of the file is missing or wrong. File manifest is distorted
    at ru.cryptopro.jcp.tools.jarchecker.B (Unknown Source)
    at ru.cryptopro.jcp.tools.jarchecker.c (Unknown Source)
    at ru.cryptopro.jcp.tools.jarchecker.ChackJarsign (Unknown Source)
    ... 8 more
Jun. 10, 2021 3:35:05 PM RU.CRYPTOPRO.JCP.Tools.selftesterBase C
Severe: [Selftester-Crypt] :: [ru.cryptopro.crypto.tools.selftester_crypt] :: Test 11 Crashed Twice!
Jun. 10, 2021 3:35:05 PM ru.cryptopro.jcp.tools.selftesterbase Run
Warning: [Selftester-Crypt] :: [ru.cryptopro.crypto.tools.selftester_crypt] :: Test №11 Failed!
Jun. 10, 2021 3:35:05 PM ru.cryptopro.jcp.tools.selftesterbase Run
Warning: Error.
ru.cryptopro.jcp.tools.selftesterException: [Selftester-Crypt] :: [ru.cryptopro.jcp.tools.selftester_jcp] :: Selftester Error: Some Test Crashed Twice In A Row, Usage of Class Ru.Cryptopro.jcp. Tools.selftester_jcp is no longer Available!
    AT RU.CRYPTOPRO.JCP.Tools.TestverifyClassJar.run (Unknown Source)
    AT RU.CRYPTOPRO.JCP.Tools.SelftesterBase.B (Unknown Source)
    at ru.cryptopro.jcp.tools.selftesterbase.a (Unknown Source)
    at ru.cryptopro.jcp.tools.selftesterbase.run (UNKNOWN SOURCE)
    at java.base / java.lang.thread.run (thread.java:832)
Caused by: ru.cryptopro.jcp.tools.selftester-crypt :: [selftester-crypt] :: [ru.cryptopro.jcp.tools.selftester_jcp] :: SELFTESTER_JCP] :: SELFTESTER ERROR: SOME TEST CRASHED TWICE IN A ROW, USAGE OF CLASS RU.CRYPTOPRO .Jcp.tools.selftester_jcp is no Longer Available!
    at ru.cryptopro.jcp.tools.selftesterbase.CheckInternal (Unknown Source)
    at ru.cryptopro.jcp.tools.selftester_JCP.Check (Unknown Source)
    at ru.cryptopro.jcp.tools.selftester_JCP.Check (Unknown Source) 
at ru.cryptopro.jcp.digest.gostdigest.enginedigest (Unknown Source)
    at java.base / java.security.messagedigest.digest (Messagedigest.java:391)
    at ru.cryptopro.jcp.tools.jarchecker.a (Unknown Source)
    at ru.cryptopro.jcp.tools.jarchecker.a (Unknown Source)
    at ru.cryptopro.jcp.tools.jarchecker.c (Unknown Source)
    at ru.cryptopro.jcp.tools.jarchecker.ChackJarsign (Unknown Source)
    at ru.cryptopro.jcp.tools.jarchecker.Checkurlsign (Unknown Source)
    at ru.cryptopro.jcp.tools.cl_34.run (Unknown Source)
    at java.base / java.security.accesscontroller.doprivileged (accesscontroller.java:54)
    ... 5 more
Jun. 10, 2021 3:35:05 PM Ru.Cryptopro.ssl.sslContextimpl Engineinit
Info: sslcontextimpl init.
Exception in Thread "Main" java.security.keymanagementException: java.security.nosuchalgorithMexception: Error Constructing Implementation (Algorithm: CPrandom, Provider: JCP, Class: ru.cryptopro.jcp.random.cprandom)
    AT RU.CRYPTOPRO.SSL.CL_68.D (Unknown Source)
    at ru.cryptopro.ssl.sslcontextimpl.engineinit (Unknown Source)
    at java.base / javax.net.ssl.sslcontext.init (sslcontext.java:31)
    at ru.rs.registextract.client.httpsclient.setsslsetting (httpsclient.java:102)
    at ru.rs.registerextract.client.httpsClient.GetConnection (httpsclient.java :1)
    at ru.rs.registerextract.requester.zakupkirequester.getFromLinkFromSearch (Zakupkirequester.java: 6)
    at ru.rs.registerextract.controller.controller.main (Controller.java:78)
Caused by: java.security.nosuchalgorithMexception: Error Constructing Implementation (Algorithm: Cprandom, Provider: JCP, Class: ru.cryptopro.jcp.random.cprandom)
    at java.base / java.security.provider $ service.newinstance (provider.java:1900)
    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.securerandom.getinstance (securandom.java:428)
    ... 7 more
Caused by: ru.cryptopro.jcp.random.randomrefuseException
    at ru.cryptopro.jcp.random.certifiedrandom.b (Unknown Source)
    at ru.cryptopro.jcp.random.certifiedrandom.a (Unknown Source)
    at ru.cryptopro.jcp.random.certifiedrandom. & lt; init & gt; (Unknown Source)
    at ru.cryptopro.jcp.random.cprandom. & lt; Init & gt; (Unknown Source)
    at ru.cryptopro.jcp.random.cprandom. & lt; Init & gt; (Unknown Source)
    at java.base / jdk.internal.reflect.nativeconstructoraccessorimepl.newinstance0 (Native Method)
    at java.base / jdk.internal.reflect.nativeconstructoraccessorimepl.newinstance (nativeconstructoraccessorimepl.java:64)
    at java.base / jdk.internal.reflectorccessorimpl.newinstance (delegatingconstructoCessorImpl.java:45)
    at java.base / java.lang.reflect.constructor.newinstancewithcaller (Constructor.java:nd00)
    at java.base / java.lang.reflect.constructor.newinstance (constructor.java:481)
    at java.base / java.security.provider.newinstanceutil (provider.java:177)
    at java.base / java.security.provider $ service.newinstance (provider.java:1893)
    ... 10 more
Caused by: ru.cryptopro.jcp.tools.selftesterException: [Main] :: [ru.cryptopro.jcp.tools.selftester_jcp] :: Selftester Error: Some Test Crashed Twice In A Row, Usage of Class ru.cryptopro.jcp .tools.selftester_jcp is no Longer Available!
    at ru.cryptopro.jcp.tools.selftesterbase.CheckInternal (Unknown Source)
    at ru.cryptopro.jcp.tools.selftester_JCP.Check (Unknown Source)
    at ru.cryptopro.jcp.tools.selftester_JCP.Check (Unknown Source)
    ... 22 more

Answer 1

generally figured out.
The problem was that JCP checks the libraries on the integrity of the data. The project I collected in Fat Jar, respectively, the integrity of the libraries was broken.
The decision was the project assembly in Executable Jar and separately folder with libraries.

Programmers, Start Your Engines!

Why spend time searching for the correct question and then entering your answer when you can find it in a second? That's what CompuTicket is all about! Here you'll find thousands of questions and answers from hundreds of computer languages.

Recent questions