From bbc42fd8e4eb9c6fba1da2e13e2e80c2e6969957 Mon Sep 17 00:00:00 2001 From: Paul Schaub Date: Mon, 10 Jan 2022 14:51:17 +0100 Subject: [PATCH] Document workaround for BCs ECUtil.getCurveName() returning null for ed25519 keys See https://github.com/bcgit/bc-java/issues/1087 --- .../src/main/java/org/pgpainless/key/info/KeyInfo.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pgpainless-core/src/main/java/org/pgpainless/key/info/KeyInfo.java b/pgpainless-core/src/main/java/org/pgpainless/key/info/KeyInfo.java index 1cc4b6c8..a37eda24 100644 --- a/pgpainless-core/src/main/java/org/pgpainless/key/info/KeyInfo.java +++ b/pgpainless-core/src/main/java/org/pgpainless/key/info/KeyInfo.java @@ -89,12 +89,19 @@ public class KeyInfo { public static String getCurveName(ECPublicBCPGKey key) { ASN1ObjectIdentifier identifier = key.getCurveOID(); + String curveName = ECUtil.getCurveName(identifier); + if (curveName != null) { + return curveName; + } + // Workaround for ECUtil not recognizing ed25519 + // see https://github.com/bcgit/bc-java/issues/1087 + // TODO: Remove once BC 1.71 gets released and contains a fix if (identifier.equals(GNUObjectIdentifiers.Ed25519)) { return EdDSACurve._Ed25519.getName(); } - return ECUtil.getCurveName(identifier); + return null; } /**