Статус: Участник
Группы: Участники
Зарегистрирован: 18.07.2018(UTC) Сообщений: 12  Откуда: Москва
|
Код:private KeyStore gostCertStore;
Из К сожалению. хранилище сертификатов приложить не смогу. Они корпоративные. Сейчас дебагом посмотрю.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Автор: Kirill1499  Код:private KeyStore gostCertStore;
- нужен код инициализации. Опираясь на то, что в load() передаются параметры, предполагаю, что это CertStore (т.к. для контейнеров в load ненужно ничего передавать). |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 18.07.2018(UTC) Сообщений: 12  Откуда: Москва
|
Код:private void initGostCertStore() throws Exception {
gostCertStore = KeyStore.getInstance(JCP.HD_STORE_NAME, JCP.PROVIDER_NAME);
if (isDebugEnabled()) {
if(gostCertPath.startsWith("/")){
logDebug("---gost cert store path (in resources): " + getClass().getResource(gostCertPath).getPath());
} else {
logDebug("---gost cert store path (in directory): " + gostCertPath);
}
}
logDebug("---gost cert store certificates----");
gostCertStore.load(getResourceorFileAsStream(gostCertPath), GOST_STORE_PASSWORD.toCharArray());
if (isDebugEnabled()) {
Enumeration<String> en = gostCertStore.aliases();
while (en.hasMoreElements()) {
logDebug("---alias: " + en.nextElement());
}
logDebug("------------------------------------");
}
}
Следующим сообщением приложу скрины дебага.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 18.07.2018(UTC) Сообщений: 12  Откуда: Москва
|
 2018-07-23_15-42-51.png (50kb) загружен 9 раз(а). 2018-07-23_15-40-41.png (52kb) загружен 7 раз(а).Как я и говорил, в старой версии при поиске в хранилище 10 алиасов, а в новой версии в этом же месте дебага, у хранилища размер 0!
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Попробуем заменить JCP.HD_STORE_NAME на JCP.CERT_STORE_NAME? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 18.07.2018(UTC) Сообщений: 12  Откуда: Москва
|
Не дошло даже до NPE (по-прежнему возвращается null, просто не дошло до вызова getEncoded()). Упало раньше с Код:java.security.UnrecoverableKeyException: Key can't be saved in certificate store.
at ru.CryptoPro.JCP.KeyStore.TrustStore.engineGetKey(Unknown Source)
at java.security.KeyStore.getKey(KeyStore.java:1023)
at org.occ.rugateway.jcp.KeyStoreService.getPrivateKey(KeyStoreService.java:152)
На методе: Код:public PrivateKey getPrivateKey(String pkAlias, String storePassword) throws Exception {
return (PrivateKey) gostCertStore.getKey(pkAlias, storePassword == null ? null : storePassword.toCharArray());
}
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Понятно, это keyStore используется и как CertStore, и HDImageStore (для ключей). Постараюсь воспроизвести. |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Пока не удалось воспроизвести, указал тип HDImageStore, но передал хранилище сертификатов (как у вас), все сертификаты в нем перечислились: Код:
keyStore = {java.security.KeyStore@921}
type = {java.lang.String@1306} "HDImageStore"
provider = {ru.CryptoPro.JCP.JCP@1307} size = 111
keyStoreSpi = {ru.CryptoPro.JCP.KeyStore.HDImage.HDImageStore@1308} "hdimageru.CryptoPro.JCP.KeyStore.TrustStore@54c5a2ff"
containerStore = {ru.CryptoPro.JCP.KeyStore.ContainerStore@1310} "hdimage"
trustStore = {ru.CryptoPro.JCP.KeyStore.TrustStore@1311}
nullPass = false
entries = {java.util.Hashtable@1313} size = 8
0 = {java.util.Hashtable$Entry@1316} "prob_ca_20_ui.cer" ->
1 = {java.util.Hashtable$Entry@1317} "rootuc" ->
2 = {java.util.Hashtable$Entry@1318} "cryptopro_root_ca" ->
3 = {java.util.Hashtable$Entry@1319} "new_test_ca" ->
4 = {java.util.Hashtable$Entry@1320} "roottestcp" ->
5 = {java.util.Hashtable$Entry@1321} "roottestca" ->
6 = {java.util.Hashtable$Entry@1322} "test_us_tls_2012gost" ->
7 = {java.util.Hashtable$Entry@1323} "uc_tls_serv.cer" ->
storeName = {java.lang.String@1306} "HDImageStore"
Нельзя ли поподробнее про default_Store: "Возможно я видел ошибку при дебаге, когда он перечисляет сертификаты, он их берёт из указанного store D:/nbki_new, а уже метод engineGetCertificate(String alias) лезет в какое-то D:/default_Store" И проверьте, пожалуйста, с помощью Код:
>"<JRE>\bin\keytool" -list -keystore "<store>" -storepass <password> -storetype CertStore -providername JCP
>"<JRE>\bin\keytool" -list -keystore "<store>" -storepass <password> -storetype HDImageStore -providername JCP
В первом случае должны быть выведены только алиасы хранилища сертификатов store, а во втором - и его алиасы, и алиасы контейнеров. Отредактировано пользователем 23 июля 2018 г. 16:41:51(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 18.07.2018(UTC) Сообщений: 12  Откуда: Москва
|
Похоже так и есть:  2018-07-24_12-01-38.png (36kb) загружен 7 раз(а). 2018-07-24_12-07-18.png (47kb) загружен 5 раз(а).
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
keytool, по идее, выполняет тот же код, что и у вас. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close