Я пытаюсь создать хранилище ключей с помощью Keytool с моими алгоритмами.Keytool с пользовательскими алгоритмами
Я создал пользовательский java.security.provider с расширенными классами SignatureSPI, MessagedigestSPI и KeyPairGeneratorSPI и статически установил его.
Проблема я столкнулся, когда я пытаюсь создать хранилище с помощью:
keytool -alias something -genkeypair -keyalg GOST2001KeyPairGenerator -sigalg GOST2001Signature -providerclass ru.test.security.test_provider -storetype pkcs12 -keystore test_keystore
Я получаю мои сообщения отладки и ошибка:
GOST2001KeyPairGenerator initialize
GOST2001KeyPairGenerator generateKeyPair
GOST2001Signature engineInitSign
keytool error: java.lang.RuntimeException: internal error! unrecognized algorithm name: GOST2001Signature
Странно то, что алгоритм действительно начинает выполнять но называемый впоследствии непризнанным. Не могу понять, что происходит не так.
Вы попробовали сначала запустить его с помощью простой Java-программы? Я не думаю, что ваш провайдер будет признан, если он не будет подписан Oracle. –
сделал. 1. Я тестировал все свои классы, используя addProvider. 2. Затем я добавил его статически и просто назвал стандартные методы, используя экземпляры моих алгоритмов из java-программы еще раз. Все работает отлично, пока я не использую Keytool, вот и проблема. –
Спасибо, можете ли вы отправить полную трассировку стека? Это [ссылка] (http://bouncy-castle.1462172.n4.nabble.com/Unable-to-create-GOST3410-keypair-with-keytool-td1463711.html) может указывать на некоторые плохие новости. –