Меню

Газпромбанк код ошибки 99 java security keystoreexception empty signature


Offline

ArthurKh

 


#1
Оставлено
:

2 сентября 2015 г. 11:39:33(UTC)

ArthurKh

Статус: Активный участник

Группы: Участники

Зарегистрирован: 02.09.2015(UTC)
Сообщений: 33

Сказал(а) «Спасибо»: 4 раз

Привет.

Скачал с https://www.cryptopro.ru…oducts/csp/jcp/downloads Загрузить КриптоПро JCP и JTLS версии 2.0.38481, распаковал скачанный файл, запустил setup.exe из-под Администратора (правой кнопкой мыши). Выделил все галочки для установки.
Он что-то там своё понаставил в «мою» JRE/JDK (jdk1.8.0_60).
Далее, пытаюсь запустить простейший код:

Код:


package javaapplication2;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.security.Security;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.net.ssl.HttpsURLConnection;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import sun.security.ssl.SSLSocketFactoryImpl;

/**
*
* @author wwwdev
*/
public class JavaApplication2 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        try {
            
            System.setProperty("javax.net.ssl.supportGVO", "true");
            System.setProperty("javax.net.ssl.trustStoreType", "CertStore");
            System.setProperty("javax.net.ssl.trustStore", "cacerts");
            System.setProperty("javax.net.ssl.trustStorePassword", "qwerty");
            final SSLSocketFactoryImpl sslFact = new SSLSocketFactoryImpl();
            HttpsURLConnection.setDefaultSSLSocketFactory(sslFact);
            URL url = new URL("https://icrs.demo.nbki.ru/");
            HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
            connection.connect();
            InputStream is = connection.getInputStream();
            BufferedReader rd = new BufferedReader(new InputStreamReader(is));
            String line;
            String response = "";
            while ((line = rd.readLine()) != null) {
                response += line + "rn";
            }
            rd.close();
            is.close();
            System.out.println(response);
            connection.disconnect();
        } catch (Exception ex) {
            Logger.getLogger(JavaApplication2.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
}

Код взят с https://www.cryptopro.ru….aspx?g=posts&t=4259 , из thread, в котором описывается схожая проблема.

Выдаёт ошибку:

сен 01, 2015 8:14:19 PM javaapplication2.JavaApplication2 main
SEVERE: null
java.security.KeyStoreException: Default store provider (keyStore) is SUN but default config provider (cpSSL) is JCSP. Check settings on the tab ‘Algorithms’ of JCP Pane.
at ru.CryptoPro.ssl.r.<init>(Unknown Source)
at ru.CryptoPro.ssl.KeyManagerFactoryImpl.engineInit(Unknown Source)
at javax.net.ssl.KeyManagerFactory.init(KeyManagerFactory.java:256)
at sun.security.ssl.SSLContextImpl$DefaultSSLContext.getDefaultKeyManager(SSLContextImpl.java:874)
at sun.security.ssl.SSLContextImpl$DefaultSSLContext.<init>(SSLContextImpl.java:732)
at sun.security.ssl.SSLContextImpl$DefaultSSLContext.getDefaultImpl(SSLContextImpl.java:755)
at sun.security.ssl.SSLSocketFactoryImpl.<init>(SSLSocketFactoryImpl.java:54)
at javaapplication2.JavaApplication2.main(JavaApplication2.java:35)

Проверил – в закладке ‘Algorithms’ JCP Pane стояло Java Crypto… Provider … . Переставил на Java CSP – не помогло, выдаёт тот же Exception.
Ошибка толком не гуглится, видать слишком специфичная. Единственное, что нашёл схожее — https://www.cryptopro.ru…aspx?g=posts&m=60425 . В том forum thread человек решил вопрос методом «Переименовал все jks-контейнеры какие были в JRE и в user.home, «, но Я не могу найти, есть ли вообще jks контейнеры или нет по указанным путям.

Подскажите, пожалуйста, как исправить?


Вверх


Offline

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

 


#2
Оставлено
:

2 сентября 2015 г. 11:50:08(UTC)

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

Статус: Сотрудник

Группы: Участники

Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,740
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 647 раз в 610 постах

Здравствуйте.
cacerts — это ваше созданное хранилище?

Отредактировано пользователем 2 сентября 2015 г. 11:51:08(UTC)
 | Причина: Не указана

Тех. поддержка
База знаний
Логирование JCP
Логирование JTLS
Тест JCP и сбор диаг. информации
Скачать JCP, JCSP и JTLS
Скачать Android CSP + SDK


Вверх


Offline

ArthurKh

 


#3
Оставлено
:

2 сентября 2015 г. 11:53:25(UTC)

ArthurKh

Статус: Активный участник

Группы: Участники

Зарегистрирован: 02.09.2015(UTC)
Сообщений: 33

Сказал(а) «Спасибо»: 4 раз

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

Здравствуйте.
cacerts — это ваше созданное хранилище?

Да.
Пробовал создать хранилище как через keytool, так и через JCP Control Panel.
На данный момент хранилище то, что создано через JCP Control Panel. Файл хранилища лежит в папке проекта Java приложения.


Вверх


Offline

ArthurKh

 


#4
Оставлено
:

2 сентября 2015 г. 12:06:28(UTC)

ArthurKh

Статус: Активный участник

Группы: Участники

Зарегистрирован: 02.09.2015(UTC)
Сообщений: 33

Сказал(а) «Спасибо»: 4 раз

Полный log выполнения программы:

run:
сен 02, 2015 11:56:27 AM ru.CryptoPro.JCSP.JCSP <init>
INFO: Loading JCSP 4.0 38481
сен 02, 2015 11:56:27 AM ru.CryptoPro.JCSP.KeyStore.KeyStoreConfig enumInstalledProviders
WARNING: No provider with type of 80 found.
сен 02, 2015 11:56:27 AM ru.CryptoPro.JCSP.KeyStore.KeyStoreConfig enumInstalledProviders
WARNING: No provider with type of 81 found.
сен 02, 2015 11:56:27 AM ru.CryptoPro.JCSP.JCSP <init>
INFO: JCSP loaded.
сен 02, 2015 11:56:28 AM ru.CryptoPro.JCP.tools.Starter check
INFO: Loading JCP 2.0 38481
сен 02, 2015 11:56:28 AM ru.CryptoPro.JCP.tools.Starter check
INFO: JCP loaded.
сен 02, 2015 11:56:28 AM javaapplication2.JavaApplication2 main
SEVERE: null
java.security.KeyStoreException: Default store provider (keyStore) is JCP but default config provider (cpSSL) is JCSP. Check settings on the tab ‘Algorithms’ of JCP Pane.
at ru.CryptoPro.ssl.r.<init>(Unknown Source)
at ru.CryptoPro.ssl.KeyManagerFactoryImpl.engineInit(Unknown Source)
at javax.net.ssl.KeyManagerFactory.init(KeyManagerFactory.java:256)
at sun.security.ssl.SSLContextImpl$DefaultSSLContext.getDefaultKeyManager(SSLContextImpl.java:874)
at sun.security.ssl.SSLContextImpl$DefaultSSLContext.<init>(SSLContextImpl.java:732)
at sun.security.ssl.SSLContextImpl$DefaultSSLContext.getDefaultImpl(SSLContextImpl.java:755)
at sun.security.ssl.SSLSocketFactoryImpl.<init>(SSLSocketFactoryImpl.java:54)
at javaapplication2.JavaApplication2.main(JavaApplication2.java:37)

СБОРКА УСПЕШНО ЗАВЕРШЕНА (общее время: 4 секунды)

Смущают вот такие warnings:
WARNING: No provider with type of ************
Это нормально?


Вверх


Offline

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

 


#5
Оставлено
:

2 сентября 2015 г. 12:07:17(UTC)

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

Статус: Сотрудник

Группы: Участники

Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,740
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 647 раз в 610 постах

Скачал и поставил oracle jre 1.8.0_60, снял ограничения, скачал jcp-2.0.38481, установил с помощью setup: jcp, модуль шифрования и jtls, создал в панели JCP хранилище nbki.store, добавил туда 1 корневой сертификат с сайта https://icrs.demo.nbki.ru/main/, запустил ваш слегка модифицированный пример, получил страницу:

Код:


public static void main(String[] args) {
        try {

            System.setProperty("com.sun.security.enableCRLDP", "true");
            System.setProperty("com.ibm.security.enableCRLDP", "true");

            System.setProperty("javax.net.ssl.supportGVO", "true");
            System.setProperty("javax.net.ssl.trustStoreType", "CertStore");
            System.setProperty("javax.net.ssl.trustStore", "C:/nbki.store"); // <- другое хранилище
            System.setProperty("javax.net.ssl.trustStorePassword", "1"); // <- другой пароль

            final SSLSocketFactoryImpl sslFact = new SSLSocketFactoryImpl();

            HttpsURLConnection.setDefaultSSLSocketFactory(sslFact);
            URL url = new URL("https://icrs.demo.nbki.ru/");

            HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
            connection.connect();

            InputStream is = connection.getInputStream();
            BufferedReader rd = new BufferedReader(new InputStreamReader(is));

            String line;
            String response = "";

            while ((line = rd.readLine()) != null) {
                response += line + "rn";
            }

            rd.close();
            is.close();

            System.out.println(response);
            connection.disconnect();

        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

Код:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html lang="ru">
<head>
<title>
NBCH Credit Reporting System:
</title>
...

Тех. поддержка
База знаний
Логирование JCP
Логирование JTLS
Тест JCP и сбор диаг. информации
Скачать JCP, JCSP и JTLS
Скачать Android CSP + SDK


Вверх


Offline

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

 


#6
Оставлено
:

2 сентября 2015 г. 12:08:27(UTC)

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

Статус: Сотрудник

Группы: Участники

Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,740
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 647 раз в 610 постах

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

Полный log выполнения программы:
INFO: Loading JCSP 4.0 38481
сен 02, 2015 11:56:27 AM ru.CryptoPro.JCSP.KeyStore.KeyStoreConfig enumInstalledProviders
WARNING: No provider with type of 80 found.
сен 02, 2015 11:56:27 AM ru.CryptoPro.JCSP.KeyStore.KeyStoreConfig enumInstalledProviders
WARNING: No provider with type of 81 found.
сен 02, 2015 11:56:27 AM ru.CryptoPro.JCSP.JCSP <init>
INFO: JCSP loaded.

JCSP специально ставили, будете его использовать?
cacerts формата CertStore (открывается в панели JCP)?

P.S. Поставил JCSP, страница успешно грузится (в алгоритмах в панели JCP в списке провайдеров выбран JCP, а не JCSP).

Отредактировано пользователем 2 сентября 2015 г. 12:13:05(UTC)
 | Причина: Не указана

Тех. поддержка
База знаний
Логирование JCP
Логирование JTLS
Тест JCP и сбор диаг. информации
Скачать JCP, JCSP и JTLS
Скачать Android CSP + SDK


Вверх


Offline

ArthurKh

 


#7
Оставлено
:

2 сентября 2015 г. 12:13:03(UTC)

ArthurKh

Статус: Активный участник

Группы: Участники

Зарегистрирован: 02.09.2015(UTC)
Сообщений: 33

Сказал(а) «Спасибо»: 4 раз

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

снял ограничения,

Подскажите, пожалуйста, с чего сняты ограничения?


Вверх


Offline

ArthurKh

 


#8
Оставлено
:

2 сентября 2015 г. 12:17:41(UTC)

ArthurKh

Статус: Активный участник

Группы: Участники

Зарегистрирован: 02.09.2015(UTC)
Сообщений: 33

Сказал(а) «Спасибо»: 4 раз

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

JCSP специально ставили, будете его использовать?
cacerts формата CertStore?

P.S. Поставил JCSP, страница успешно грузится (в алгоритмах в панели JCP в списке провайдеров выбран JCP, а не JCSP).

Я понятия не имею, что такое JCSP :). Я при установке через setup.exe выставил все галочки на установку. Возможно, что он (JCSP ) мне и не нужен.
Какого формата cacerts — Я понятия не имею. Создавал через CryptoPro JCP Settings — Keys and certificates stores — Certificate Stores — Find/Create .
Полагаю, что формата CertStore…


Вверх


Offline

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

 


#9
Оставлено
:

2 сентября 2015 г. 12:21:44(UTC)

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

Статус: Сотрудник

Группы: Участники

Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,740
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 647 раз в 610 постах

Попробуйте удалить его, и потом проверить снова.

Тех. поддержка
База знаний
Логирование JCP
Логирование JTLS
Тест JCP и сбор диаг. информации
Скачать JCP, JCSP и JTLS
Скачать Android CSP + SDK


Вверх


Offline

ArthurKh

 


#10
Оставлено
:

2 сентября 2015 г. 12:32:00(UTC)

ArthurKh

Статус: Активный участник

Группы: Участники

Зарегистрирован: 02.09.2015(UTC)
Сообщений: 33

Сказал(а) «Спасибо»: 4 раз

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

Попробуйте удалить его, и потом проверить снова.

Снёс всё, поставил заново

Код:

$$ Arguments $$
exec arg: C:Javajdk1.8.0_60jrebinjava
exec arg: -cp
exec arg: .;C:tempjcp-2.0.38481JCP.jar;C:tempjcp-2.0.38481ASN1P.jar;C:tempjcp-2.0.38481forms_rt.jar;C:tempjcp-2.0.38481asn1rt.jar;C:tempjcp-2.0.38481JCPControlPane.jar;C:tempjcp-2.0.38481Oscar.jar;C:tempjcp-2.0.38481JCryptoP.jar;C:tempjcp-2.0.38481JCPinst.jar;C:tempjcp-2.0.38481JCPRequest.jar;C:tempjcp-2.0.38481cpSSL.jar;C:tempjcp-2.0.38481JCPxml.jar;C:tempjcp-2.0.38481OCF.jar;C:tempjcp-2.0.38481JCPRevCheck.jar;C:tempjcp-2.0.38481JCPRevTools.jar;C:tempjcp-2.0.38481CAdES.jar;C:tempjcp-2.0.38481XMLDSigRI.jar;C:tempjcp-2.0.38481JCSP.jar;C:tempjcp-2.0.38481J6Oscar.jar;C:tempjcp-2.0.38481J6CF.jar;
exec arg: ru.CryptoPro.Install.VariantTwo
exec arg: -uninstall
exec arg: all
exec arg: -verbose
Determined encoding IBM866 not supported.
Use English locale.
Start list known packages:
Loading package ru.CryptoPro.JCP.Install.JCPInstaller
Loading package ru.CryptoPro.JCPRequest.RequestInstall
Loading package ru.CryptoPro.JCP.Install.JCPAsnInstaller
Loading package ru.CryptoPro.Install.SelfInstaller
Loading package ru.CryptoPro.reprov.Install
Loading package ru.CryptoPro.Crypto.JCryptoPInstaller
Loading package ru.CryptoPro.JCPxml.XMLInstall
Known packages list:
Installer
JCP
JCPRevCheck
JCPxml
JCPRequest
JCPAsn
JCryptoP

Start list installed packages:
Action packages list:

Executing commands:
Installed packages list was cleaned.
Tests list was cleaned.
Setting in java.security was cleaned.
Uninstall successful.
Installation completed
Файл C:Javajdk1.8.0_60jrelibextJCP.jar не найден.
Файл C:Javajdk1.8.0_60jrelibextASN1P.jar не найден.
Файл C:Javajdk1.8.0_60jrelibextforms_rt.jar не найден.
Файл C:Javajdk1.8.0_60jrelibextasn1rt.jar не найден.
Файл C:Javajdk1.8.0_60jrelibextJCPControlPane.jar не найден.
Файл C:Javajdk1.8.0_60jrelibextOscar.jar не найден.
Файл C:Javajdk1.8.0_60jrelibextJCryptoP.jar не найден.
Файл C:Javajdk1.8.0_60jrelibextJCPinst.jar не найден.
Файл C:Javajdk1.8.0_60jrelibextJCPRequest.jar не найден.
Файл C:Javajdk1.8.0_60jrelibextcpSSL.jar не найден.
Файл C:Javajdk1.8.0_60jrelibextJCPxml.jar не найден.
Файл C:Javajdk1.8.0_60jrelibextOCF.jar не найден.
Файл C:Javajdk1.8.0_60jrelibextJCPRevCheck.jar не найден.
Файл C:Javajdk1.8.0_60jrelibextJCPRevTools.jar не найден.
Файл C:Javajdk1.8.0_60jrelibextCAdES.jar не найден.
Файл C:Javajdk1.8.0_60jrelibextXMLDSigRI.jar не найден.
Файл C:Javajdk1.8.0_60jrelibextJCSP.jar не найден.
Файл C:Javajdk1.8.0_60jrelibextJ6Oscar.jar не найден.
Файл C:Javajdk1.8.0_60jrelibextJ6CF.jar не найден.
$$ Arguments $$
exec arg: C:Javajdk1.8.0_60jrebinjava
exec arg: -cp
exec arg: .;C:tempjcp-2.0.38481JCP.jar;C:tempjcp-2.0.38481ASN1P.jar;C:tempjcp-2.0.38481forms_rt.jar;C:tempjcp-2.0.38481asn1rt.jar;C:tempjcp-2.0.38481JCPControlPane.jar;C:tempjcp-2.0.38481Oscar.jar;C:tempjcp-2.0.38481JCryptoP.jar;C:tempjcp-2.0.38481JCPinst.jar;C:tempjcp-2.0.38481JCPRequest.jar;C:tempjcp-2.0.38481cpSSL.jar;C:tempjcp-2.0.38481JCPxml.jar;C:tempjcp-2.0.38481OCF.jar;C:tempjcp-2.0.38481JCPRevCheck.jar;C:tempjcp-2.0.38481JCPRevTools.jar;C:tempjcp-2.0.38481CAdES.jar;C:tempjcp-2.0.38481XMLDSigRI.jar;C:tempjcp-2.0.38481JCSP.jar;C:tempjcp-2.0.38481J6Oscar.jar;C:tempjcp-2.0.38481J6CF.jar;
exec arg: ru.CryptoPro.ssl.JTLSInstall
exec arg: -uninstall
exec arg: -verbose
Получение списка известных пакетов:
Загрузка пакета ru.CryptoPro.ssl.JTLSInstall.
Список известных пакетов:
cpSSL

Получение списка установленных пакетов:
Список пакетов для выполнения операций:
cpSSL

Выполнение операций:
Пакет cpSSL не установлен. Удаление пакета игнорируется.
Список установленных пакетов был очищен.
Список тестов был очищен.
Настройки в java.security были очищены.
Удаление пакетов завершено успешно.
Файл C:Javajdk1.8.0_60jrelibextcpSSL.jar не найден.
$$ Arguments $$
exec arg: C:Javajdk1.8.0_60jrebinjava
exec arg: -cp
exec arg: .;C:tempjcp-2.0.38481JCP.jar;C:tempjcp-2.0.38481ASN1P.jar;C:tempjcp-2.0.38481forms_rt.jar;C:tempjcp-2.0.38481asn1rt.jar;C:tempjcp-2.0.38481JCPControlPane.jar;C:tempjcp-2.0.38481Oscar.jar;C:tempjcp-2.0.38481JCryptoP.jar;C:tempjcp-2.0.38481JCPinst.jar;C:tempjcp-2.0.38481JCPRequest.jar;C:tempjcp-2.0.38481cpSSL.jar;C:tempjcp-2.0.38481JCPxml.jar;C:tempjcp-2.0.38481OCF.jar;C:tempjcp-2.0.38481JCPRevCheck.jar;C:tempjcp-2.0.38481JCPRevTools.jar;C:tempjcp-2.0.38481CAdES.jar;C:tempjcp-2.0.38481XMLDSigRI.jar;C:tempjcp-2.0.38481JCSP.jar;C:tempjcp-2.0.38481J6Oscar.jar;C:tempjcp-2.0.38481J6CF.jar;
exec arg: ru.CryptoPro.Install.VariantTwo
exec arg: -install
exec arg: -verbose
Determined encoding IBM866 not supported.
Use English locale.
Start list known packages:
Loading package ru.CryptoPro.JCP.Install.JCPInstaller
Loading package ru.CryptoPro.JCPRequest.RequestInstall
Loading package ru.CryptoPro.JCP.Install.JCPAsnInstaller
Loading package ru.CryptoPro.Install.SelfInstaller
Loading package ru.CryptoPro.reprov.Install
Loading package ru.CryptoPro.Crypto.JCryptoPInstaller
Loading package ru.CryptoPro.JCPxml.XMLInstall
Known packages list:
Installer
JCP
JCPRevCheck
JCPxml
JCPRequest
JCPAsn
JCryptoP

Start list installed packages:
Action packages list:
Installer
JCP
JCPRevCheck
JCPxml
JCPRequest
JCPAsn
JCryptoP

Executing commands:
Copy C:tempjcp-2.0.38481JCPinst.jar -> C:Javajdk1.8.0_60jrelibextJCPinst.jar
47,115 bytes coped.
Package Installer installed successfully.
Check signature of module: file:C:tempjcp-2.0.38481JCP.jar
Copy C:tempjcp-2.0.38481JCP.jar -> C:Javajdk1.8.0_60jrelibextJCP.jar
721,716 bytes coped.
Check signature of module: file:C:tempjcp-2.0.38481JCPControlPane.jar
Copy C:tempjcp-2.0.38481JCPControlPane.jar -> C:Javajdk1.8.0_60jrelibextJCPControlPane.jar
140,742 bytes coped.
Check signature of module: file:C:tempjcp-2.0.38481asn1rt.jar
Copy C:tempjcp-2.0.38481asn1rt.jar -> C:Javajdk1.8.0_60jrelibextasn1rt.jar
252,208 bytes coped.
Check signature of module: file:C:tempjcp-2.0.38481forms_rt.jar
Copy C:tempjcp-2.0.38481forms_rt.jar -> C:Javajdk1.8.0_60jrelibextforms_rt.jar
344,654 bytes coped.
Sep 02, 2015 12:28:09 PM ru.CryptoPro.JCP.tools.Starter check
INFO: Loading JCP 2.0 38481
Sep 02, 2015 12:28:09 PM ru.CryptoPro.JCP.tools.Starter check
INFO: JCP loaded.
Package JCP installed successfully.
Check signature of module: file:C:tempjcp-2.0.38481JCPRevCheck.jar
Copy C:tempjcp-2.0.38481JCPRevCheck.jar -> C:Javajdk1.8.0_60jrelibextJCPRevCheck.jar
93,173 bytes coped.
Check signature of module: file:C:tempjcp-2.0.38481JCPRevTools.jar
Copy C:tempjcp-2.0.38481JCPRevTools.jar -> C:Javajdk1.8.0_60jrelibextJCPRevTools.jar
248,234 bytes coped.
Package JCPRevCheck installed successfully.
Check signature of module: file:C:tempjcp-2.0.38481JCPxml.jar
Copy C:tempjcp-2.0.38481JCPxml.jar -> C:Javajdk1.8.0_60jrelibextJCPxml.jar
26,665 bytes coped.
Check signature of module: file:C:tempjcp-2.0.38481XMLDSigRI.jar
Copy C:tempjcp-2.0.38481XMLDSigRI.jar -> C:Javajdk1.8.0_60jrelibextXMLDSigRI.jar
156,691 bytes coped.
Package JCPxml installed successfully.
Check signature of module: file:C:tempjcp-2.0.38481JCPRequest.jar
Copy C:tempjcp-2.0.38481JCPRequest.jar -> C:Javajdk1.8.0_60jrelibextJCPRequest.jar
106,718 bytes coped.
Package JCPRequest installed successfully.
Check signature of module: file:C:tempjcp-2.0.38481ASN1P.jar
Copy C:tempjcp-2.0.38481ASN1P.jar -> C:Javajdk1.8.0_60jrelibextASN1P.jar
962,235 bytes coped.
Package JCPAsn installed successfully.
Check signature of module: file:C:tempjcp-2.0.38481JCryptoP.jar
Copy C:tempjcp-2.0.38481JCryptoP.jar -> C:Javajdk1.8.0_60jrelibextJCryptoP.jar
59,568 bytes coped.
Package JCryptoP installed successfully.
Install successful.
Installation completed
$$ Arguments $$
exec arg: C:Javajdk1.8.0_60jrebinjava
exec arg: -cp
exec arg: .;C:tempjcp-2.0.38481JCP.jar;C:tempjcp-2.0.38481ASN1P.jar;C:tempjcp-2.0.38481forms_rt.jar;C:tempjcp-2.0.38481asn1rt.jar;C:tempjcp-2.0.38481JCPControlPane.jar;C:tempjcp-2.0.38481Oscar.jar;C:tempjcp-2.0.38481JCryptoP.jar;C:tempjcp-2.0.38481JCPinst.jar;C:tempjcp-2.0.38481JCPRequest.jar;C:tempjcp-2.0.38481cpSSL.jar;C:tempjcp-2.0.38481JCPxml.jar;C:tempjcp-2.0.38481OCF.jar;C:tempjcp-2.0.38481JCPRevCheck.jar;C:tempjcp-2.0.38481JCPRevTools.jar;C:tempjcp-2.0.38481CAdES.jar;C:tempjcp-2.0.38481XMLDSigRI.jar;C:tempjcp-2.0.38481JCSP.jar;C:tempjcp-2.0.38481J6Oscar.jar;C:tempjcp-2.0.38481J6CF.jar;
exec arg: ru.CryptoPro.ssl.JTLSInstall
exec arg: -install
exec arg: -verbose
Получение списка известных пакетов:
Загрузка пакета ru.CryptoPro.ssl.JTLSInstall.
Список известных пакетов:
cpSSL

Получение списка установленных пакетов:
Загрузка пакета ru.CryptoPro.JCP.Install.JCPInstaller.
Загрузка пакета ru.CryptoPro.JCPRequest.RequestInstall.
Загрузка пакета ru.CryptoPro.JCP.Install.JCPAsnInstaller.
Загрузка пакета ru.CryptoPro.Install.SelfInstaller.
Загрузка пакета ru.CryptoPro.reprov.Install.
Загрузка пакета ru.CryptoPro.Crypto.JCryptoPInstaller.
Загрузка пакета ru.CryptoPro.JCPxml.XMLInstall.
Список установленных пакетов:
Installer
JCP
JCPRevCheck
JCPxml
JCPRequest
JCPAsn
JCryptoP

Список пакетов для выполнения операций:
cpSSL

Выполнение операций:
сен 02, 2015 12:28:13 PM ru.CryptoPro.ssl.JTLSInstall a
INFO: JTLSInstall checkInstallLicense isServer: true
Проверка подписи модуля: file:C:tempjcp-2.0.38481cpSSL.jar
Копирование файла C:tempjcp-2.0.38481cpSSL.jar в C:Javajdk1.8.0_60jrelibextcpSSL.jar
178 692 байт скопировано.
Установка пакета cpSSL завершилась успешно.
Установка пакетов завершена успешно.

Теперь в панели управления есть только Java Crypto… Provider … , Java CSP — нет. Добавил в панели управления заново созданный ранее ключ.

Теперь лог приложения укоротился, но ошибка осталась:

Код:

run:
сен 02, 2015 12:32:35 PM javaapplication2.JavaApplication2 main
SEVERE: null
java.security.KeyStoreException: Default store provider (keyStore) is SUN but default config provider (cpSSL) is JCP. Check settings on the tab 'Algorithms' of JCP Pane.
	at ru.CryptoPro.ssl.r.<init>(Unknown Source)
	at ru.CryptoPro.ssl.KeyManagerFactoryImpl.engineInit(Unknown Source)
	at javax.net.ssl.KeyManagerFactory.init(KeyManagerFactory.java:256)
	at sun.security.ssl.SSLContextImpl$DefaultSSLContext.getDefaultKeyManager(SSLContextImpl.java:874)
	at sun.security.ssl.SSLContextImpl$DefaultSSLContext.<init>(SSLContextImpl.java:732)
	at sun.security.ssl.SSLContextImpl$DefaultSSLContext.getDefaultImpl(SSLContextImpl.java:755)
	at sun.security.ssl.SSLSocketFactoryImpl.<init>(SSLSocketFactoryImpl.java:54)
	at javaapplication2.JavaApplication2.main(JavaApplication2.java:37)

СБОРКА УСПЕШНО ЗАВЕРШЕНА (общее время: 2 секунды)

Вверх

Пользователи, просматривающие эту тему

Guest

Быстрый переход
 

Вы не можете создавать новые темы в этом форуме.

Вы не можете отвечать в этом форуме.

Вы не можете удалять Ваши сообщения в этом форуме.

Вы не можете редактировать Ваши сообщения в этом форуме.

Вы не можете создавать опросы в этом форуме.

Вы не можете голосовать в этом форуме.

У меня возникают некоторые проблемы при кодировании класса для шифрования для моего приложения. Этот класс сначала проверяет, существует ли пустое хранилище ключей. Это хранилище ключей существует исключительно для хранения симметричных ключей шифрования только для моего приложения. Если нет, он запускает этот код

    private void createKeyStore() throws Exception
    {
        KeyStore newKeyStore = KeyStore.getInstance(KeyStore.getDefaultType());
        newKeyStore.load(null, password.toCharArray());
        newKeyStore.store(outputStream, password.toCharArray());
    }

Этот код создает файл KeyStore с использованием формата JKS (Java Keystore) по умолчанию. Затем он сохраняет указанный файл KeyStore с помощью функции .store() в каталоге, который инкапсулирует outputStream. После создания нового файла KeyStore он пытается загрузить его снова.

    private void loadKeyStore() throws Exception
    {
        keyStore = KeyStore.getInstance(new File(keyStoreAddress), password.toCharArray());
        keyStore.load(inputStream, password.toCharArray());
        System.out.println("Key stored loaded");
    }

Проблема в том, что всякий раз, когда я пытаюсь его загрузить, я сталкиваюсь с ошибкой KeyStoreException: нераспознанный формат хранилища ключей. Ошибка находится в первой строке этой функции. Я не уверен, почему программа Java не распознает формат JKS по умолчанию для Java, но я думаю, что, возможно, что-то напортачил в коде.

Пожалуйста, порекомендуйте.

ПРИМЕЧАНИЯ:

Я не использую KeyTool. Я не знаком с KeyTool и предпочитаю не тратить время на изучение нового инструмента.

Я также новичок в кодировании в криптографии. Заранее извините, если мой запрос кажется простым для решения.

** РЕДАКТИРОВАТЬ 1: ** Вот полный код, который вызывает ошибку, с удалением всего ненужного кода.

import java.security.*;
import java.io.*;

public final class Cryptographer
{
    private final String keyStoreAddress = "C:\Users\LeafarYart\Desktop\tempDirectory\lmskeystore";
    private final String password = "%x9~SK5XS9xz9zK`";

    private KeyStore keyStore;
    private InputStream inputStream;
    private OutputStream outputStream;

    public static void main(String[] args) throws Exception
    {
        Cryptographer crypt = new Cryptographer();
    }

    public Cryptographer() throws Exception
    {
        try
        {
            setInputStream();
        } catch(Exception e)
            {
                //Intentionally left blank.
            }

        setOutputStream();

        File keyStoreFile = new File(keyStoreAddress);
        if (keyStoreFile.exists())
        {
            loadKeyStore();
        } else
            {
                createKeyStore();
                setInputStream();
                loadKeyStore();
            }
    }

    private void createKeyStore() throws Exception
    {
        KeyStore newKeyStore = KeyStore.getInstance(KeyStore.getDefaultType());
        newKeyStore.load(null, password.toCharArray());
        newKeyStore.store(outputStream, password.toCharArray());
    }
    
    private void loadKeyStore() throws Exception
    {
        keyStore = KeyStore.getInstance(new File(keyStoreAddress), password.toCharArray());
        keyStore.load(inputStream, password.toCharArray());
        System.out.println("Key stored loaded");
    }

    private void setInputStream() throws FileNotFoundException
    {
        inputStream = new FileInputStream(keyStoreAddress);
    }
    
    private void setOutputStream() throws FileNotFoundException
    {
        outputStream = new FileOutputStream(keyStoreAddress);
    }
}

1 ответ

Лучший ответ

Решено. Я сам разобрался в проблеме. Как упоминалось в @ user207421 и @ dave_thompson_085, моя ошибка заключалась в неправильной настройке экземпляра KeyStore с использованием PKCS12. PKCS12 кажется единственным форматом KeyStore, который поддерживает Java, не полагаясь на внешний Provider для криптографии.

Я также установил для файла KeyStore расширение «ks». Это расширение для всех файлов KeyStore.

Спасибо всем, кто помог мне отладить мою программу.

См. Код ниже.


import javax.crypto.*;
import java.security.*;
import java.io.*;

public final class Cryptographer
{
    private final String keyStoreAddress = "C:\Users\LeafarYart\Desktop\tempDirectory\lmskeystore.ks";
    private final String password = "%x9~SK5XS9xz9zK`";

    private SecretKey key;
    private KeyStore keyStore;

    public static void main(String[] args) throws Exception
    {
        Cryptographer crypt = new Cryptographer();
    }

    public Cryptographer() throws Exception
    {
        File targetFile = new File(keyStoreAddress);
        if(targetFile.exists())
        {
            loadKeyStore();
        }
        else
            {
                createKeyStore();
                loadKeyStore();
            }
    }
    
    //creation and loading of key stores
    private void createKeyStore() throws Exception
    {
        OutputStream outputStream = new FileOutputStream(keyStoreAddress);

        keyStore = KeyStore.getInstance("PKCS12");
        keyStore.load(null, password.toCharArray());
        keyStore.store(outputStream, password.toCharArray());
        System.out.println("Key stored created");
    }

    private void loadKeyStore() throws Exception
    {
        InputStream inputStream = new FileInputStream(keyStoreAddress);

        keyStore = KeyStore.getInstance("PKCS12");
        keyStore.load(inputStream, password.toCharArray());
        System.out.println("Key stored loaded");
    }
}



0

LeafarYar T
14 Авг 2021 в 07:04

Icon Ex Номер ошибки: Ошибка 99
Название ошибки: Java Error 99
Описание ошибки: Ошибка 99: Возникла ошибка в приложении Java. Приложение будет закрыто. Приносим извинения за неудобства.
Разработчик: Oracle Corporation
Программное обеспечение: Java
Относится к: Windows XP, Vista, 7, 8, 10, 11

Описание «Java Error 99»

Эксперты обычно называют «Java Error 99» «ошибкой времени выполнения». Чтобы убедиться, что функциональность и операции работают в пригодном для использования состоянии, разработчики программного обеспечения, такие как Oracle Corporation, выполняют отладку перед выпусками программного обеспечения. К сожалению, иногда ошибки, такие как ошибка 99, могут быть пропущены во время этого процесса.

Ошибка 99 также отображается как «Java Error 99». Это распространенная ошибка, которая может возникнуть после установки программного обеспечения. Когда появится ошибка, пользователи компьютеров смогут уведомить разработчика о наличии ошибки 99 через отчеты об ошибках. Затем Oracle Corporation может исправить эти ошибки в исходном коде и подготовить обновление для загрузки. Если есть запрос на обновление Java, это обычно обходной путь для устранения проблем, таких как ошибка 99 и другие ошибки.

Когда происходит ошибка 99?

Сбой во время запуска Java или во время выполнения, как правило, когда вы столкнетесь с «Java Error 99». Три распространенные причины, по которым ошибки во время выполнения, такие как всплывающее окно ошибки 99:

Ошибка 99 Crash — Ошибка 99 является хорошо известной, которая происходит, когда неправильная строка кода компилируется в исходный код программы. Как правило, это результат того, что Java не понимает входные данные или не знает, что выводить в ответ.

Утечка памяти «Java Error 99» — ошибка 99 приводит к постоянной утечке памяти Java. Потребление памяти напрямую пропорционально загрузке ЦП. Потенциальным фактором ошибки является код Oracle Corporation, так как ошибка предотвращает завершение программы.

Ошибка 99 Logic Error — «логическая ошибка», как говорят, генерируется, когда программное обеспечение получает правильный ввод, но генерирует неверный вывод. Это происходит, когда исходный код Oracle Corporation вызывает уязвимость при обработке информации.

Большинство ошибок Java Error 99 являются результатом отсутствия или повреждения версии файла, установленного Java. Большую часть проблем, связанных с данными файлами, можно решить посредством скачивания и установки последней версии файла Oracle Corporation. Помимо прочего, в качестве общей меры по профилактике и очистке мы рекомендуем использовать очиститель реестра для очистки любых недопустимых записей файлов, расширений файлов Oracle Corporation или разделов реестра, что позволит предотвратить появление связанных с ними сообщений об ошибках.

Ошибки Java Error 99

Эти проблемы Java, связанные с Java Error 99, включают в себя:

  • «Ошибка программы Java Error 99. «
  • «Недопустимый файл Java Error 99. «
  • «Возникла ошибка в приложении Java Error 99. Приложение будет закрыто. Приносим извинения за неудобства.»
  • «Файл Java Error 99 не найден.»
  • «Java Error 99 не может быть найден. «
  • «Ошибка запуска программы: Java Error 99.»
  • «Java Error 99 не работает. «
  • «Java Error 99 остановлен. «
  • «Java Error 99: путь приложения является ошибкой. «

Эти сообщения об ошибках Oracle Corporation могут появляться во время установки программы, в то время как программа, связанная с Java Error 99 (например, Java) работает, во время запуска или завершения работы Windows, или даже во время установки операционной системы Windows. Выделение при возникновении ошибок Java Error 99 имеет первостепенное значение для поиска причины проблем Java и сообщения о них вOracle Corporation за помощью.

Java Error 99 Истоки проблем

Проблемы Java Error 99 могут быть отнесены к поврежденным или отсутствующим файлам, содержащим ошибки записям реестра, связанным с Java Error 99, или к вирусам / вредоносному ПО.

В первую очередь, проблемы Java Error 99 создаются:

  • Недопустимая (поврежденная) запись реестра Java Error 99.
  • Файл Java Error 99 поврежден от вирусной инфекции.
  • Java Error 99 злонамеренно удален (или ошибочно) другим изгоем или действительной программой.
  • Java Error 99 конфликтует с другой программой (общим файлом).
  • Java/Java Error 99 поврежден от неполной загрузки или установки.

Продукт Solvusoft

Загрузка
WinThruster 2022 — Проверьте свой компьютер на наличие ошибок.

Совместима с Windows 2000, XP, Vista, 7, 8, 10 и 11

Установить необязательные продукты — WinThruster (Solvusoft) | Лицензия | Политика защиты личных сведений | Условия | Удаление

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Галочка какая это ошибка
  • Газон некст скинуть ошибку абс