Keytool EC KeyPairGenerator不可用
当我使用keytool生成ECC密钥时,我收到此错误 :
错误keytool:java.security.NoSuchAlgorithmException:EC KeyPairGenerator不可用
然后用于生成密钥的语法是:
keytool -genkey -alias testing -keyalg EC -keysize 256 -keystore try.jks -dname "CN=localhost,OU=dep,O=lks,L=ny,ST=ny,C=USA"
我有这个Java版本:
openjdk version "1.8.0_60" OpenJDK Runtime Environment (build 1.8.0_60-b16) OpenJDK 64-Bit Server VM (build 25.60-b16, mixed mode)
此错误表示您的EC安全提供程序丢失,请执行以下操作添加它:
- 编辑文件“jdk1.8.0_65 \ lib \ security \ java.security”
- 搜索“提供商列表及其优先顺序”
- 将“security.provider。[Last security provider id +1] = sun.security.ec.SunEC”添加到安全提供程序列表中。
有关sunEC安全提供程序的更多详细信息,请参阅此链接 。
我在Ubuntu 16.04上与pepk (Play Encrypt Private Key)
有同样的错误。
我用一个接近CipherX答案的解决方案解决了这个问题:
- 下载Java Oracle (tar.gz)
- 提取文件
- 而不是启动系统上安装的
java
从提取的文件中启动java
:
~/Downloads/android/jdk-9.0.1/bin/java -jar pepk.jar --keystore=acme.keystore \ --alias=acme --output=encrypted_private_key_path --encryptionkey=eb…
Error: EC KeyPairGenerator not available
错误消失。
我解决了阅读本文的问题(由用户@QuakeCore链接)。 如果有人遇到此问题,您可以按照我的步骤解决:
- 下载Java Oracle (tar.gz);
- 将
jdk1.8.0_*/jre/lib/amd64/libsunec.so
压缩文件夹中的文件jdk1.8.0_*/jre/lib/amd64/libsunec.so
复制到/usr/lib/jvm/java-1.8.0-openjdk.x86_64/jre/lib/amd64/libsunec.so
; - 使用我原始问题中编写的语法生成密钥。