2012-09-06 77 views
7

我正在尝试使用keyalg ECC使用keytool来创建密钥库。Java 7 keytool椭圆曲线加密

这应该是可能的根据Oracle。 我引述:

地区:工具

梗概:keytooljarsigner工具现在支持在密钥对生成和JAR签名的ECC算法。

RFE:6870812

我使用的是32位版本1.7.0_07,我尝试了密钥工具与-keyalg ECC,ECIES,ECDSA,......但我总是Cannot derive signature algorithm

我使用错误的Java版本吗?我是否使用了错误的ECC名称?

回答

8

这里是source为算法选择。允许的值是DSA,RSAEC。据我所知,这些值没有记录在任何地方。

4

我相信你必须安装JCE的无限强度策略来处理所有的算法。如果你还没有这样做,它在这个页面的底部:http://www.oracle.com/technetwork/java/javase/downloads/index.html

+0

对不起,但我已经安装了这些(并通过创建一个RSA密钥库进行测试),所以我一定还有其他东西丢失了。 –

+0

好的,我发现了这个问题,但这是一个奇怪的问题。当我做“java -version”时,我得到java版本“1.7.0_07”,但显然,当我使用keytool时,我在我的机器上使用来自不同JDK的keytool。我通过将“keytool”改成“./keytool.exe”找到了。奇怪...正确的命令是:keytool -genkeypair -keyalg EC -keysize 160 -keystore .keystore –

+0

一般来说,ECC可以安全使用较小的密钥大小,但160位推动它。我宁愿去256,反正ECC速度够快。 –