diff --git a/sshd-common/src/main/java/org/apache/sshd/common/util/security/eddsa/EdDSASecurityProviderUtils.java b/sshd-common/src/main/java/org/apache/sshd/common/util/security/eddsa/EdDSASecurityProviderUtils.java index 4e6cfb3b2..6d63916b2 100644 --- a/sshd-common/src/main/java/org/apache/sshd/common/util/security/eddsa/EdDSASecurityProviderUtils.java +++ b/sshd-common/src/main/java/org/apache/sshd/common/util/security/eddsa/EdDSASecurityProviderUtils.java @@ -55,14 +55,6 @@ private EdDSASecurityProviderUtils() { throw new UnsupportedOperationException("No instance"); } - public static Class getEDDSAPublicKeyType() { - return EdDSAPublicKey.class; - } - - public static Class getEDDSAPrivateKeyType() { - return EdDSAPrivateKey.class; - } - public static boolean isEDDSAKey(Key key) { return getEDDSAKeySize(key) == KEY_SIZE; } diff --git a/sshd-common/src/main/java/org/apache/sshd/common/util/security/eddsa/NetI2pCryptoEdDSASupport.java b/sshd-common/src/main/java/org/apache/sshd/common/util/security/eddsa/NetI2pCryptoEdDSASupport.java index e88f5bdc0..098442879 100644 --- a/sshd-common/src/main/java/org/apache/sshd/common/util/security/eddsa/NetI2pCryptoEdDSASupport.java +++ b/sshd-common/src/main/java/org/apache/sshd/common/util/security/eddsa/NetI2pCryptoEdDSASupport.java @@ -64,13 +64,13 @@ public int getEDDSAKeySize(Key key) { } @Override - public Class getEDDSAPublicKeyType() { - return EdDSASecurityProviderUtils.getEDDSAPublicKeyType(); + public Class getEDDSAPublicKeyType() { + return EdDSAPublicKey.class; } @Override - public Class getEDDSAPrivateKeyType() { - return EdDSASecurityProviderUtils.getEDDSAPrivateKeyType(); + public Class getEDDSAPrivateKeyType() { + return EdDSAPrivateKey.class; } @Override diff --git a/sshd-common/src/main/java/org/apache/sshd/common/util/security/eddsa/bouncycastle/BouncyCastleEdDSASupport.java b/sshd-common/src/main/java/org/apache/sshd/common/util/security/eddsa/bouncycastle/BouncyCastleEdDSASupport.java index 6663c2e45..cc2659bff 100644 --- a/sshd-common/src/main/java/org/apache/sshd/common/util/security/eddsa/bouncycastle/BouncyCastleEdDSASupport.java +++ b/sshd-common/src/main/java/org/apache/sshd/common/util/security/eddsa/bouncycastle/BouncyCastleEdDSASupport.java @@ -75,12 +75,12 @@ public int getEDDSAKeySize(Key key) { } @Override - public Class getEDDSAPublicKeyType() { + public Class getEDDSAPublicKeyType() { return EdDSAPublicKey.class; } @Override - public Class getEDDSAPrivateKeyType() { + public Class getEDDSAPrivateKeyType() { return EdDSAPrivateKey.class; } diff --git a/sshd-common/src/main/java/org/apache/sshd/common/util/security/eddsa/generic/EdDSASupport.java b/sshd-common/src/main/java/org/apache/sshd/common/util/security/eddsa/generic/EdDSASupport.java index a8ed9ac54..162ffc09a 100644 --- a/sshd-common/src/main/java/org/apache/sshd/common/util/security/eddsa/generic/EdDSASupport.java +++ b/sshd-common/src/main/java/org/apache/sshd/common/util/security/eddsa/generic/EdDSASupport.java @@ -108,12 +108,12 @@ static PrivateKey decodeEdDSAPrivateKey(byte[] keyData) throws IOException, Gene /** * @return the public key class type associated with the security provider. */ - Class getEDDSAPublicKeyType(); + Class getEDDSAPublicKeyType(); /** * @return the private key class type associated with the security provider. */ - Class getEDDSAPrivateKeyType(); + Class getEDDSAPrivateKeyType(); /** * @param k1 the first key diff --git a/sshd-putty/src/main/java/org/apache/sshd/putty/EdDSAPuttyKeyDecoder.java b/sshd-putty/src/main/java/org/apache/sshd/putty/EdDSAPuttyKeyDecoder.java index c4270027e..efc0c9997 100644 --- a/sshd-putty/src/main/java/org/apache/sshd/putty/EdDSAPuttyKeyDecoder.java +++ b/sshd-putty/src/main/java/org/apache/sshd/putty/EdDSAPuttyKeyDecoder.java @@ -29,23 +29,22 @@ import java.util.Collections; import java.util.Map; -import net.i2p.crypto.eddsa.EdDSAPrivateKey; -import net.i2p.crypto.eddsa.EdDSAPublicKey; import org.apache.sshd.common.NamedResource; import org.apache.sshd.common.keyprovider.KeyPairProvider; import org.apache.sshd.common.util.security.SecurityUtils; -import org.apache.sshd.common.util.security.eddsa.EdDSASecurityProviderUtils; /** * TODO Add javadoc * * @author Apache MINA SSHD Project */ -public class EdDSAPuttyKeyDecoder extends AbstractPuttyKeyDecoder { +public class EdDSAPuttyKeyDecoder extends AbstractPuttyKeyDecoder { public static final EdDSAPuttyKeyDecoder INSTANCE = new EdDSAPuttyKeyDecoder(); public EdDSAPuttyKeyDecoder() { - super(EdDSAPublicKey.class, EdDSAPrivateKey.class, Collections.singletonList(KeyPairProvider.SSH_ED25519)); + super((Class) SecurityUtils.getEdDSASupport().get().getEDDSAPublicKeyType(), + (Class) SecurityUtils.getEdDSASupport().get().getEDDSAPrivateKeyType(), + Collections.singletonList(KeyPairProvider.SSH_ED25519)); } @Override @@ -63,9 +62,9 @@ public Collection loadKeyPairs( } byte[] seed = pubReader.read(Short.MAX_VALUE); // reasonable max. allowed size - PublicKey pubKey = EdDSASecurityProviderUtils.generateEDDSAPublicKey(seed); + PublicKey pubKey = SecurityUtils.getEdDSASupport().get().generateEDDSAPublicKey(seed); seed = prvReader.read(Short.MAX_VALUE); // reasonable max. allowed size - PrivateKey prvKey = EdDSASecurityProviderUtils.generateEDDSAPrivateKey(seed); + PrivateKey prvKey = SecurityUtils.getEdDSASupport().get().generateEDDSAPrivateKey(seed); return Collections.singletonList(new KeyPair(pubKey, prvKey)); } }