При вызове метода ru.CryptoPro.CAdES.EnvelopedSignature::decrypt(ByteArrayInputStream) на одной из машин вылетает ошибка:
ru.CryptoPro.CAdES.exception.EnvelopedException: Decoding of encrypted context failed
at ru.CryptoPro.CAdES.EnvelopedSignature.decryptOne(Unknown Source)
at ru.CryptoPro.CAdES.EnvelopedSignature.decrypt(Unknown Source)
at ru.id_sys.ds_server.crypto.CryptTools.decrypt(CryptTools.java:52)
at ru.id_sys.ds_server.processors.IScriptProcessor.processRequest(IScriptProcessor.java:59)
at ru.id_sys.ds_server.DSServer.processArrivedData(DSServer.java:80)
at ru.id_sys.ds_server.DSServer.access$0(DSServer.java:60)
at ru.id_sys.ds_server.DSServer$1.processData(DSServer.java:39)
at ru.id_sys.ds_server.socket_exchange.IncomingMessageHandler$DataProcessor.run(IncomingMessageHandler.java:61)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: ru.CryptoPro.CAdES.exception.EnvelopedException: Input cipher initiation failed
at ru.CryptoPro.CAdES.pc_1.pc_0.cl_0.<init>(Unknown Source)
at ru.CryptoPro.CAdES.pc_1.pc_0.cl_1.getRecipientOperator(Unknown Source)
at org.bouncycastle.cms.KeyAgreeRecipientInformation.getRecipientOperator(Unknown Source)
at org.bouncycastle.cms.RecipientInformation.getContentStream(Unknown Source)
at org.bouncycastle.cms.RecipientInformation.getContent(Unknown Source)
... 13 more
Caused by: java.lang.IllegalArgumentException: ru.CryptoPro.JCSP.MSCAPI.MSException: MSCAPI ERROR: 0x80090003
at ru.CryptoPro.JCSP.MSCAPI.cl_6.importSessionSecretKey(Unknown Source)
at ru.CryptoPro.JCSP.Key.cl_9.unwrap(Unknown Source)
at ru.CryptoPro.JCSP.Cipher.GostCipher.engineUnwrap(Unknown Source)
at javax.crypto.Cipher.unwrap(Cipher.java:2549)
... 18 more
Caused by: ru.CryptoPro.JCSP.MSCAPI.MSException: MSCAPI ERROR: 0x80090003
at ru.CryptoPro.JCSP.MSCAPI.MSException.procCode(Unknown Source)
at ru.CryptoPro.JCSP.MSCAPI.cl_6.importKey(Unknown Source)
... 22 more
При этом на других машинах (на той же ОС -
AstraLinux и
gosJava) программа работает корректно.
История данной машины:
Изначально была установлена версия java csp 5.0.40424
Сформировали на ней ключевые пары для подписи и шифрования, ошибок не было.
На второй машине, с которой производился обмен шифрованными данными, также стояла версия java csp 5.0.40424, но на ней не проходило шифрование на открытом ключе, сгенерированном на первой машине.
На вторую машину поставили версию 40055 и шифрование прошло, однако первая машина не смогла расшифровать данные с ошибкой, приложенной выше.
Тогда на первую машину также поставили версию 40055, однако ошибка расшифрования осталась.
Попробовали на версии 40055 на первой машине сгенерировать новые контейнеры, но при установке открытого ключа в новые контейнеры появилась ошибка о неверной длине ключа подписи.
(на версии 5.0.40424 такой ошибки не было).
Переустановили на первой машине КриптоПРО на последнюю версию (4.0.0.0.9963) - ошибка не ушла. Попробовали после переустановки КриптоПРО сгенерировать новые контейнеры командой:
keytool -J-Dkeytool.compat=true -genkey -alias serverSignKey2019 -keysize 512 -providername JCSP -storetype HSMDB -dname CN=serverSignKey2019,O=IDSystems,C=RU -keystore NONE -storepass 1 -keyalg GOST3410_2012_256 -sigalg GOST3411_2012_256withGOST3410_2012_256 -keypass ******
стали получать ошибку:
кт 23, 2019 6:21:13 PM ru.CryptoPro.JCSP.MSCAPI.cl_6 enumInstalledProviders
WARNING: Provider with type of 24 not found.
окт 23, 2019 6:21:14 PM ru.CryptoPro.JCSP.MSCAPI.cl_6 enumInstalledProviders
WARNING: Provider with type of 24 not found.
окт 23, 2019 6:21:20 PM ru.CryptoPro.JCSP.Starter check
INFO: Loading JCSP 5.0.40055
окт 23, 2019 6:21:20 PM ru.CryptoPro.JCSP.Starter check
INFO: JCSP loaded.
окт 23, 2019 6:21:20 PM ru.CryptoPro.JCSP.Key.GostKeyPairGenerator throwEx
SEVERE: ERROR
java.security.ProviderException: Ошибка создания ключей
at ru.CryptoPro.JCSP.Key.GostKeyPairGenerator.throwEx(Unknown Source)
at ru.CryptoPro.JCSP.Key.GostKeyPairGenerator.generateKeyPair(Unknown Source)
at sun.security.tools.keytool.CertAndKeyGen.generate(CertAndKeyGen.java:149)
at sun.security.tools.keytool.Main.doGenKeyPair(Main.java:1739)
at sun.security.tools.keytool.Main.doCommands(Main.java:1007)
at sun.security.tools.keytool.Main.run(Main.java:366)
at sun.security.tools.keytool.Main.main(Main.java:359)
Caused by: java.security.UnrecoverableKeyException: No such key
at ru.CryptoPro.JCSP.MSCAPI.cl_2.a(Unknown Source)
at ru.CryptoPro.JCSP.Key.AbstractKeySpec.create(Unknown Source)
... 6 more
Caused by: java.security.UnrecoverableKeyException: Acquire or Release Context ERROR: 0x80090016
at ru.CryptoPro.JCSP.MSCAPI.cl_6.createContainerWithSetPin(Unknown Source)
... 8 more
Caused by: ru.CryptoPro.JCSP.MSCAPI.MSContextException: Acquire or Release Context ERROR: 0x80090016
at ru.CryptoPro.JCSP.MSCAPI.MSContextException.procCode(Unknown Source)
at ru.CryptoPro.JCSP.MSCAPI.cl_6.acquireContext(Unknown Source)
at ru.CryptoPro.JCSP.MSCAPI.cl_6.a(Unknown Source)
... 9 more
Пробовали удалять JCSP и ставить заново, но ошибка при создании контейнера и при попытке расшифровки не уходит.
В чём может быть дело? Как можно решить эту проблему на конкретной машине без переустановки ОС и настройки окружения с нуля?