| ||||
| ||||
Пытаюсь создать ключи как указано в примере: try { java.security.KeyPairGenerator keyGen = java.security.KeyPairGenerator.getInstance("GOST3410"); java.security.KeyPair keys = keyGen.generateKeyPair(); } catch ... Выдает сообщение: java.security.NoSuchAlgorithmException: GOST3410 KeyPairGenerator not available Почему недоступен? Пишу в Sun Java Studio Enterprise 8. JCP установлен, контрольная панель работает. | ||||
Ответы: | ||||
| ||||
Сделал по другому. Вместо: java.security.KeyPairGenerator keyGen = java.security.KeyPairGenerator.getInstance("GOST3410"); Написал ru.CryptoPro.JCP.Key.GostKeyPairGenerator = new ru.CryptoPro.JCP.Key.GostKeyPairGenerator(); Не знаю на сколько правильно, но заработало. Запускается биологический ДСЧ, ключи генерятся. Возникла другая проблема. При генерации самоподписанного сертификата (писал по вашему примеру из документации): byte[] encodedCert = Request.getEncodedSelfCert( keypair, certName); Выскакивает исключение java.security.NoSuchAlgorithmException: CPRandom SecureRandom not available В чем же дело. Пишу программу прямо как в примере, нифига не работает. Объяните, либо я в чем то не прав, либо "Руководство программиста JCP" не актуально. | ||||
| ||||
Приношу свои извенения за резкость. Вопрос решен, то был абсолютно мой баг :) | ||||
| ||||
Можно java.security.KeyPairGenerator keyGen = java.security.KeyPairGenerator.getInstance("GOST3410"); так и так ru.CryptoPro.JCP.Key.GostKeyPairGenerator = new ru.CryptoPro.JCP.Key.GostKeyPairGenerator(); Разница в том как Вы дальше будете эти классы использовать. В первом случае Вы будите работать через интерфейс java верхнего уровня, во втором через интерфейс провайдера, смешивать эти два подхода, за редким исключением, нельзя. Лучше использовать java.security. | ||||