使用来自 SunEC 提供商的 generateKeyPair 时获取运行时异常
Getting Runtime Exception when using generateKeyPair from SunEC provider
我正在尝试使用来自 JDK 的 SunEC 提供程序生成 ECC 密钥对。
这是我的代码:
String name = paceInfo.getDomainName();
KeyPairGenerator kpg = null;
try {
kpg = KeyPairGenerator.getInstance("EC");
} catch (NoSuchAlgorithmException e) {
LOG.error("Unsupported Algorithm for KeyPairGenerator : EC - Exception : " + e.getMessage());
return;
}
ECGenParameterSpec ecps = new ECGenParameterSpec(name);
try {
kpg.initialize(ecps);
} catch (InvalidAlgorithmParameterException e) {
LOG.error("KeyPairGenerator initialization failed. ECGenParameterSpec : " + ecps.getName() + " - Exception : " + e.getMessage());
return;
}
KeyPair kp = kpg.generateKeyPair();
paceInfo.getDomainName()
returns 一个字符串,其中包含我要使用的指定曲线的名称。在这种情况下,"brainpoolP256r1".
我检查了调用 KeyPairGenerator.getInstance("EC")
时是否选择了 SunEC 提供程序,并且提供程序支持指定的曲线。
当我 运行 此代码时,出现以下错误:
Caused by: java.security.InvalidAlgorithmParameterException
at sun.security.ec.ECKeyPairGenerator.generateECKeyPair(Native Method)
at sun.security.ec.ECKeyPairGenerator.generateKeyPair(ECKeyPairGenerator.java:128)
我想弄清楚这段代码有什么问题。
我正在使用 Java 8 (JDK 8u192) 和 Eclipse 2018-09。
我做错了什么吗?如果有人能提供帮助,将不胜感激。
谢谢
从 ticket on Oracle bugs site 开始,Java 11 中的 SunEC 对 Brainpool 曲线的支持是 added/fixed,因此它可用于 Java 11+。
我正在尝试使用来自 JDK 的 SunEC 提供程序生成 ECC 密钥对。
这是我的代码:
String name = paceInfo.getDomainName();
KeyPairGenerator kpg = null;
try {
kpg = KeyPairGenerator.getInstance("EC");
} catch (NoSuchAlgorithmException e) {
LOG.error("Unsupported Algorithm for KeyPairGenerator : EC - Exception : " + e.getMessage());
return;
}
ECGenParameterSpec ecps = new ECGenParameterSpec(name);
try {
kpg.initialize(ecps);
} catch (InvalidAlgorithmParameterException e) {
LOG.error("KeyPairGenerator initialization failed. ECGenParameterSpec : " + ecps.getName() + " - Exception : " + e.getMessage());
return;
}
KeyPair kp = kpg.generateKeyPair();
paceInfo.getDomainName()
returns 一个字符串,其中包含我要使用的指定曲线的名称。在这种情况下,"brainpoolP256r1".
我检查了调用 KeyPairGenerator.getInstance("EC")
时是否选择了 SunEC 提供程序,并且提供程序支持指定的曲线。
当我 运行 此代码时,出现以下错误:
Caused by: java.security.InvalidAlgorithmParameterException
at sun.security.ec.ECKeyPairGenerator.generateECKeyPair(Native Method)
at sun.security.ec.ECKeyPairGenerator.generateKeyPair(ECKeyPairGenerator.java:128)
我想弄清楚这段代码有什么问题。 我正在使用 Java 8 (JDK 8u192) 和 Eclipse 2018-09。
我做错了什么吗?如果有人能提供帮助,将不胜感激。
谢谢
从 ticket on Oracle bugs site 开始,Java 11 中的 SunEC 对 Brainpool 曲线的支持是 added/fixed,因此它可用于 Java 11+。