我正在嘗試使用Keytool和我的算法創建密鑰存儲。使用自定義算法的鍵工具
我已經構建了具有SignatureSPI,MessagedigestSPI和KeyPairGeneratorSPI擴展類的自定義java.security.provider,並將其靜態安裝。
問題我遇到的是當我嘗試使用創建存儲:
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程序算法實例調用standart方法。一切正常,直到我使用Keytool,這就是問題出現的地方。 –
謝謝,能否請您發佈完整的堆棧跟蹤?這[鏈接](http://bouncy-castle.1462172.n4.nabble.com/Unable-to-create-GOST3410-keypair-with-keytool-td1463711。html)可能會顯示一些壞消息。 –