纠正我,如果我是错误的地方,因为我是新的密码领域。
我使用以下命令在Java 7中生成EC键盘:
As:docs.oracle.com/javase/7/docs/technotes/tools/windows/keytool.html#Commands
密钥工具 -genkeypair -alias MyServerPair -keyalg EC -keysize 571 -sigalg SHA512withECDSA -keypass 123456 -validity 365 -storetype JKS -keystore MyServerStore -storepass 123456
行刑后,
Keystore在目录中生成。之后,我尝试使用以下命令导出证书:
密钥工具 -exportcert -alias MyServerPair -file MyServer.crt -storetype JKS -keystore MyServerStore -storepass 123456
然后生成MyServer.crt。
但是当我打开MyServer.crt文件并检查证书状态时,我发现,“此证书具有无效的数字签名”。
此外,在证书细节中,当我看到公钥值时,它会显示ECC (0位)。
为什么是这样?我哪里出问题了?我猜我使用了错误的签名。
我指的是,docs.oracle.com/javase/7/docs/technotes/gui4des/security/SunProviders.html#SunEC
一些截图是这里
编辑:
当我使用像571这样的二进制字段值作为-keysize时,它就会发生,但是如果我使用与像521这样的二进制字段值相对应的素数字段值,它就可以正常工作,而不存在上述问题。
编辑2:
即使使用其他-sigalg值和键大小571以及其他二进制值,也存在问题。
我想素数字段值只能使用。
发布于 2014-04-14 13:36:45
您不能在ECC中使用任意大小的密钥,但您可以选择在其上执行加密操作的椭圆曲线。521被映射到NIST P-521曲线,没有映射键大小571,所以它将无法工作。名称键大小在这里是错误的,它最好是ecc的曲线名称。
https://stackoverflow.com/questions/22399892
复制相似问题