Art*_*aev 7 java linux cryptography keytool
我正在尝试使用我的算法使用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
Run Code Online (Sandbox Code Playgroud)
我收到调试消息和错误:
GOST2001KeyPairGenerator initialize
GOST2001KeyPairGenerator generateKeyPair
GOST2001Signature engineInitSign
keytool error: java.lang.RuntimeException: internal error! unrecognized algorithm name: GOST2001Signature
Run Code Online (Sandbox Code Playgroud)
奇怪的是,算法实际上开始执行但后来被称为无法识别.无法弄清楚出了什么问题.
小智 1
好吧,如果无法查看程序在算法中取得的进展,就很难判断发生了什么。尝试跟踪程序中实际与调试消息等一起工作的部分,以便您知道哪些有效,哪些无效。
如果存在 RuntimeException,可能会陷入循环。如果算法 GOST2001Signature 无法识别,则可能存在问题。如果它工作过一次,也许你不会第二次初始化它。通常,当我编写的程序的一部分工作一次但不能第二次工作时,我忘记初始化某些东西,导致它改变结果等。
祝你好运。我希望我的建议有所帮助。