#java #cryptography
#java #криптография
Вопрос:
Я получаю следующее исключение, когда пытаюсь получить экземпляр ECDSA от KeyFactory java.security.Исключение NoSuchAlgorithmException: ECDSA KeyFactory недоступен
Я пытаюсь таким образом
X9ECParameters curve = SECNamedCurves.getByName("secp256r1");
ECPoint point = curve.getCurve().decodePoint(decode(PublicKey));
pubKey = KeyFactory.getInstance("ECDSA")
.generatePublic(
new ECPublicKeySpec(point,
new ECParameterSpec(curve.getCurve(),curve.getG(),curve.getN(),curve.getH())
)
);
Комментарии:
1. Да, поставщик BC имеет фабрики ECDSA (также ECDH и ECDHC, а также обычный EC) как минимум с 1.42. Вы уверены, что поставщик BC есть в вашем списке поставщиков на момент этого вызова? Что произойдет, если вы укажете это явно
getInstance("ECDSA","BC")
?2. Я пробовал, что у меня нет такого поставщика в качестве исключения
3. Тогда поставщика нет в вашем списке поставщиков. Вы (пытались) поместить его туда, либо настроив в
java.security
файле, либо вызвавjava.security.Security.{addProvider,insertProvider}
?4. Спасибо, проблема была решена путем добавления поставщика