diff --git a/src/main/java/com/trilead/ssh2/auth/AuthenticationManager.java b/src/main/java/com/trilead/ssh2/auth/AuthenticationManager.java index 4bd5e9ac..76410cfb 100644 --- a/src/main/java/com/trilead/ssh2/auth/AuthenticationManager.java +++ b/src/main/java/com/trilead/ssh2/auth/AuthenticationManager.java @@ -1,6 +1,7 @@ package com.trilead.ssh2.auth; +import com.trilead.ssh2.crypto.PublicKeyUtils; import com.trilead.ssh2.crypto.keys.Ed25519PrivateKey; import com.trilead.ssh2.signature.RSASHA256Verify; import com.trilead.ssh2.signature.RSASHA512Verify; @@ -316,7 +317,7 @@ else if (publicKey instanceof ECPublicKey) tm.sendMessage(ua.getPayload()); } - else if ("EdDSA".equals(publicKey.getAlgorithm())) + else if (PublicKeyUtils.isEd25519Key(publicKey)) { final String algo = Ed25519Verify.ED25519_ID; diff --git a/src/main/java/com/trilead/ssh2/crypto/PublicKeyUtils.java b/src/main/java/com/trilead/ssh2/crypto/PublicKeyUtils.java index 89509b3f..187451e2 100644 --- a/src/main/java/com/trilead/ssh2/crypto/PublicKeyUtils.java +++ b/src/main/java/com/trilead/ssh2/crypto/PublicKeyUtils.java @@ -102,7 +102,7 @@ public static byte[] extractPublicKeyBlob(PublicKey publicKey) * (e.g., JDK, Conscrypt/Google Play Services) which may use different algorithm names or * class names for Ed25519 keys. */ - static boolean isEd25519Key(PublicKey publicKey) { + public static boolean isEd25519Key(PublicKey publicKey) { String algorithm = publicKey.getAlgorithm(); if ("EdDSA".equals(algorithm) || "Ed25519".equals(algorithm) || "1.3.101.112".equals(algorithm)) { return true;