Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline jihe  
#1 Оставлено : 21 октября 2019 г. 12:42:13(UTC)
jihe

Статус: Новичок

Группы: Участники
Зарегистрирован: 21.10.2019(UTC)
Сообщений: 2

Сказал(а) «Спасибо»: 1 раз
После обновления токена ява начала ругаться на несоотвествие алгоритмов сертификата и закрытого ключа:
Код:

java.lang.IllegalArgumentException: private key algorithm does not match algorithm of public key in end entity certificate (at index 0)


Пример для воспроизведения ошибки: https://github.com/Crutchmaster/CPKeyTester

Trusted java засунуть в ~/.m2/repository/com/digt/trustedJava/2.0/trustedJava-2.0.jar
Собирать: mvn package
Запускать: java -jar target/KeyTester-0.0.1-SNAPSHOT-jar-with-dependencies.jar

Весь его выхлоп:
Код:

Keystory type: CryptoProCSPKeyStore
Keystore provider: DIGT
Private keys:
Private key:
cert #0 public key algorithm:GOST3410v12256
cert #1 public key algorithm:GOST3410v12256
cert #2 public key algorithm:GOST3410v12256
Private key algorithm:GOST3410
java.lang.IllegalArgumentException: private key algorithm does not match algorithm of public key in end entity certificate (at index 0)
	at java.security.KeyStore$PrivateKeyEntry.<init>(Unknown Source)
	at java.security.KeyStore$PrivateKeyEntry.<init>(Unknown Source)
	at java.security.KeyStoreSpi.engineGetEntry(Unknown Source)
	at java.security.KeyStore.getEntry(Unknown Source)
	at com.ric.gis.keyTester.App.run(App.java:70)
	at com.ric.gis.keyTester.App.main(App.java:26)

Собственно, "GOST340" !equals "GOST3410v12256" вот она и встала в позу, вместе со всем шифровальным стеком.
Если не сложно потестируйте на своих токенах, заменив path и password в сорцах, ну и пожелайте что-нибудь хорошего.
Offline Aleksandr G*  
#2 Оставлено : 21 октября 2019 г. 12:47:52(UTC)
Aleksandr G*

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

Группы: Участники
Зарегистрирован: 13.09.2016(UTC)
Сообщений: 126

Сказал(а) «Спасибо»: 8 раз
Поблагодарили: 35 раз в 28 постах
С keyStore.getEntry на 2012 не работает, можно переписать на использование getKey/getCertificate. Что то вида:

//KeyLoader.java
Код:
public static PrivateKey getPrivateKey(KeyStore keyStore, String alias, char[] keyPassword) throws KeyStoreException, NoSuchAlgorithmException, UnrecoverableKeyException {
        return (PrivateKey) keyStore.getKey(alias, keyPassword);
    }

    public static X509Certificate getX509Certificate(KeyStore keyStore, String alias) throws CertificateException, KeyStoreException {
        X509Certificate certificate = (X509Certificate) keyStore.getCertificate(alias);
        if (certificate == null)
            return null;
        return (X509Certificate) CertificateFactory.getInstance("X509").generateCertificate(new ByteArrayInputStream(certificate.getEncoded()));
}


//SignSoap.java
Код:
 KeyingDataProvider kp = new DirectKeyingDataProvider((X509Certificate) KeyLoader.getX509Certificate(keyStore, parameters.getAlias()), KeyLoader.getPrivateKey(keyStore, parameters.getAlias(), keyPassword));
thanks 2 пользователей поблагодарили Aleksandr G* за этот пост.
jihe оставлено 21.10.2019(UTC), clueless оставлено 02.08.2022(UTC)
Offline jihe  
#3 Оставлено : 22 октября 2019 г. 5:11:26(UTC)
jihe

Статус: Новичок

Группы: Участники
Зарегистрирован: 21.10.2019(UTC)
Сообщений: 2

Сказал(а) «Спасибо»: 1 раз
Спасибо, добрый человек.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.