[SSHD-846] Added AbstractDH derived classes 'toString' implementation
Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/29d77123 Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/29d77123 Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/29d77123 Branch: refs/heads/master Commit: 29d77123269047ada7e317ff6f1c9da0592399b7 Parents: dd542ce Author: Goldstein Lyor <[email protected]> Authored: Tue Oct 2 09:23:40 2018 +0300 Committer: Lyor Goldstein <[email protected]> Committed: Wed Oct 3 20:05:17 2018 +0300 ---------------------------------------------------------------------- .../java/org/apache/sshd/common/kex/AbstractDH.java | 16 ++++++++++++++++ .../main/java/org/apache/sshd/common/kex/DHG.java | 11 +++++++++++ .../main/java/org/apache/sshd/common/kex/ECDH.java | 9 +++++++++ 3 files changed, 36 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/29d77123/sshd-core/src/main/java/org/apache/sshd/common/kex/AbstractDH.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/kex/AbstractDH.java b/sshd-core/src/main/java/org/apache/sshd/common/kex/AbstractDH.java index 77b0a85..0bba382 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/kex/AbstractDH.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/kex/AbstractDH.java @@ -38,6 +38,10 @@ public abstract class AbstractDH { public abstract void setF(byte[] f); + public boolean isPublicDataAvailable() { + return e_array != null; + } + /** * Lazy-called by {@link #getE()} if the public key data has not * been generated yet. @@ -60,6 +64,10 @@ public abstract class AbstractDH { return e_array; } + public boolean isSharedSecretAvailable() { + return k_array != null; + } + /** * Lazy-called by {@link #getK()} if the shared secret data has * not been calculated yet @@ -102,6 +110,14 @@ public abstract class AbstractDH { public abstract Digest getHash() throws Exception; + @Override + public String toString() { + return getClass().getSimpleName() + + "[publicDataAvailable=" + isPublicDataAvailable() + + ", sharedSecretAvailable=" + isSharedSecretAvailable() + + "]"; + } + /** * The shared secret returned by {@link javax.crypto.KeyAgreement#generateSecret()} * is a byte array, which can (by chance, roughly 1 out of 256 times) begin http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/29d77123/sshd-core/src/main/java/org/apache/sshd/common/kex/DHG.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/kex/DHG.java b/sshd-core/src/main/java/org/apache/sshd/common/kex/DHG.java index 97f69be..a67929f 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/kex/DHG.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/kex/DHG.java @@ -65,6 +65,7 @@ public class DHG extends AbstractDH { KeyPair myKpair = myKpairGen.generateKeyPair(); myKeyAgree.init(myKpair.getPrivate()); + DHPublicKey pubKey = (DHPublicKey) myKpair.getPublic(); BigInteger e = pubKey.getY(); return e.toByteArray(); @@ -117,4 +118,14 @@ public class DHG extends AbstractDH { public Digest getHash() throws Exception { return factory.create(); } + + @Override + public String toString() { + return super.toString() + + "[p=" + p + + ", g=" + g + + ", f=" + f + + ", digest=" + factory + + "]"; + } } http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/29d77123/sshd-core/src/main/java/org/apache/sshd/common/kex/ECDH.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/kex/ECDH.java b/sshd-core/src/main/java/org/apache/sshd/common/kex/ECDH.java index 16f9b25..f30924a 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/kex/ECDH.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/kex/ECDH.java @@ -69,6 +69,7 @@ public class ECDH extends AbstractDH { Objects.requireNonNull(params, "No ECParameterSpec(s)"); KeyPairGenerator myKpairGen = SecurityUtils.getKeyPairGenerator(KeyUtils.EC_ALGORITHM); myKpairGen.initialize(params); + KeyPair myKpair = myKpairGen.generateKeyPair(); myKeyAgree.init(myKpair.getPrivate()); @@ -108,4 +109,12 @@ public class ECDH extends AbstractDH { return curve.getDigestForParams(); } + + @Override + public String toString() { + return super.toString() + + "[curve=" + curve + + ", f=" + f + + "]"; + } }
