You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by lg...@apache.org on 2018/03/05 12:38:33 UTC

[1/2] mina-sshd git commit: Activated a few more checkstyle rules

Repository: mina-sshd
Updated Branches:
  refs/heads/master b8301774d -> f38e14df3


Activated a few more checkstyle rules


Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/f38e14df
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/f38e14df
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/f38e14df

Branch: refs/heads/master
Commit: f38e14df34b5d1de3ea738abb5ee6fc945171b90
Parents: fdb98ac
Author: Goldstein Lyor <ly...@c-b4.com>
Authored: Mon Mar 5 14:05:14 2018 +0200
Committer: Goldstein Lyor <ly...@c-b4.com>
Committed: Mon Mar 5 14:38:22 2018 +0200

----------------------------------------------------------------------
 sshd-checkstyle.xml                                             | 5 +++++
 .../src/main/java/org/apache/sshd/agent/SshAgentConstants.java  | 1 +
 .../src/main/java/org/apache/sshd/agent/unix/AprLibrary.java    | 1 +
 .../apache/sshd/client/auth/hostbased/UserAuthHostBased.java    | 2 +-
 4 files changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/f38e14df/sshd-checkstyle.xml
----------------------------------------------------------------------
diff --git a/sshd-checkstyle.xml b/sshd-checkstyle.xml
index 0067bb8..e95e89c 100644
--- a/sshd-checkstyle.xml
+++ b/sshd-checkstyle.xml
@@ -124,6 +124,7 @@
         <module name="GenericWhitespace"/>
         <module name="OperatorWrap" />
         <module name="ParenPad" />
+        <module name="NoLineWrap" />
         <module name="TypecastParenPad" />
         <module name="WhitespaceAfter">
             <property name="tokens" value="COMMA, SEMI" />
@@ -173,6 +174,7 @@
         <!--<module name="MagicNumber" />-->
         <module name="MissingSwitchDefault" />
         <!--module name="ModifiedControlVariable"/-->
+        <module name="NoFinalizer" />
         <module name="SimplifyBooleanExpression" />
         <module name="SimplifyBooleanReturn" />
         <module name="StringLiteralEquality" />
@@ -207,6 +209,9 @@
         <!--<module name="MissingCtor" />-->
         <module name="FallThrough" />
         <!--<module name="MultipleStringLiterals" />-->
+        <!--<module name="VariableDeclarationUsageDistance">
+            <property name="allowedDistance" value="8" />
+        </module>-->
         <module name="MultipleVariableDeclarations" />
         <!--<module name="RequireThis" />-->
         <module name="UnnecessaryParentheses" />

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/f38e14df/sshd-core/src/main/java/org/apache/sshd/agent/SshAgentConstants.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/SshAgentConstants.java b/sshd-core/src/main/java/org/apache/sshd/agent/SshAgentConstants.java
index 83443ff..e7692db 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/SshAgentConstants.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/SshAgentConstants.java
@@ -78,6 +78,7 @@ public final class SshAgentConstants {
     public static final byte SSH_AGENT_OPERATION_COMPLETE = 105;
 
     private SshAgentConstants() {
+        throw new UnsupportedOperationException("N/A instance");
     }
 
     private static class LazyMessagesMapHolder {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/f38e14df/sshd-core/src/main/java/org/apache/sshd/agent/unix/AprLibrary.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/unix/AprLibrary.java b/sshd-core/src/main/java/org/apache/sshd/agent/unix/AprLibrary.java
index 2c0bfb8..7d408ae 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/unix/AprLibrary.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/unix/AprLibrary.java
@@ -103,6 +103,7 @@ public final class AprLibrary {
     }
 
     @Override
+    @SuppressWarnings("checkstyle:NoFinalizer")
     protected void finalize() throws Throwable {
         library = null;
         Pool.destroy(pool);

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/f38e14df/sshd-core/src/main/java/org/apache/sshd/client/auth/hostbased/UserAuthHostBased.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/auth/hostbased/UserAuthHostBased.java b/sshd-core/src/main/java/org/apache/sshd/client/auth/hostbased/UserAuthHostBased.java
index 17d090c..d19dcfe 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/auth/hostbased/UserAuthHostBased.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/auth/hostbased/UserAuthHostBased.java
@@ -144,9 +144,9 @@ public class UserAuthHostBased extends AbstractUserAuth implements SignatureFact
                 buffer.putRawBytes(c.getEncoded());
             }
         }
-        byte[] keyBytes = buffer.getCompactData();
         verifier.initSigner(kp.getPrivate());
 
+        byte[] keyBytes = buffer.getCompactData();
         buffer = session.prepareBuffer(SshConstants.SSH_MSG_USERAUTH_REQUEST, BufferUtils.clear(buffer));
         buffer.putString(username);
         buffer.putString(service);


[2/2] mina-sshd git commit: Using encapsulating getter/setter(s) for Moduli.DhGroup members

Posted by lg...@apache.org.
Using encapsulating getter/setter(s) for Moduli.DhGroup members


Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/fdb98ac0
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/fdb98ac0
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/fdb98ac0

Branch: refs/heads/master
Commit: fdb98ac0198c36604a5fe199e86bf437bcc62fcc
Parents: b830177
Author: Goldstein Lyor <ly...@c-b4.com>
Authored: Mon Mar 5 13:40:21 2018 +0200
Committer: Goldstein Lyor <ly...@c-b4.com>
Committed: Mon Mar 5 14:38:22 2018 +0200

----------------------------------------------------------------------
 .../org/apache/sshd/client/kex/DHGEXClient.java |  3 +-
 .../org/apache/sshd/common/kex/DHGroupData.java |  3 +-
 .../org/apache/sshd/server/kex/DHGEXServer.java | 34 ++++++++++++-----
 .../java/org/apache/sshd/server/kex/Moduli.java | 39 +++++++++++++++-----
 4 files changed, 58 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/fdb98ac0/sshd-core/src/main/java/org/apache/sshd/client/kex/DHGEXClient.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/kex/DHGEXClient.java b/sshd-core/src/main/java/org/apache/sshd/client/kex/DHGEXClient.java
index 5a93609..0b01638 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/kex/DHGEXClient.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/kex/DHGEXClient.java
@@ -141,7 +141,8 @@ public class DHGEXClient extends AbstractDHClientKeyExchange {
 
             buffer = new ByteArrayBuffer(k_s);
             serverKey = buffer.getRawPublicKey();
-            final String keyAlg = KeyUtils.getKeyType(serverKey);
+
+            String keyAlg = KeyUtils.getKeyType(serverKey);
             if (GenericUtils.isEmpty(keyAlg)) {
                 throw new SshException("Unsupported server key type");
             }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/fdb98ac0/sshd-core/src/main/java/org/apache/sshd/common/kex/DHGroupData.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/kex/DHGroupData.java b/sshd-core/src/main/java/org/apache/sshd/common/kex/DHGroupData.java
index 2b584af..ee0be8a 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/kex/DHGroupData.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/kex/DHGroupData.java
@@ -23,6 +23,7 @@ import java.io.IOError;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.stream.Collectors;
 
@@ -130,7 +131,7 @@ public final class DHGroupData {
             if (is == null) {
                 throw new IOException("Resource not found: " + name);
             }
-            try (BufferedReader br = new BufferedReader(new InputStreamReader(is))) {
+            try (BufferedReader br = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8))) {
                 String str = br.lines()
                         .filter(s -> !s.startsWith("#"))
                         .map(s -> s.replaceAll("\\s", ""))

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/fdb98ac0/sshd-core/src/main/java/org/apache/sshd/server/kex/DHGEXServer.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/kex/DHGEXServer.java b/sshd-core/src/main/java/org/apache/sshd/server/kex/DHGEXServer.java
index 39e93ca..a27e7dc 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/kex/DHGEXServer.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/kex/DHGEXServer.java
@@ -103,7 +103,8 @@ public class DHGEXServer extends AbstractDHServerKeyExchange {
     @Override
     public boolean next(int cmd, Buffer buffer) throws Exception {
         ServerSession session = getServerSession();
-        if (log.isDebugEnabled()) {
+        boolean debugEnabled = log.isDebugEnabled();
+        if (debugEnabled) {
             log.debug("next({})[{}] process command={}", this, session, KeyExchange.getGroupKexOpcodeName(cmd));
         }
 
@@ -122,7 +123,7 @@ public class DHGEXServer extends AbstractDHServerKeyExchange {
             hash = dh.getHash();
             hash.init();
 
-            if (log.isDebugEnabled()) {
+            if (debugEnabled) {
                 log.debug("next({})[{}] send SSH_MSG_KEX_DH_GEX_GROUP", this, session);
             }
 
@@ -148,7 +149,7 @@ public class DHGEXServer extends AbstractDHServerKeyExchange {
             hash = dh.getHash();
             hash.init();
 
-            if (log.isDebugEnabled()) {
+            if (debugEnabled) {
                 log.debug("next({})[{}] Send SSH_MSG_KEX_DH_GEX_GROUP", this, session);
             }
             buffer = session.createBuffer(SshConstants.SSH_MSG_KEX_DH_GEX_GROUP);
@@ -219,7 +220,7 @@ public class DHGEXServer extends AbstractDHServerKeyExchange {
             }
 
             // Send response
-            if (log.isDebugEnabled()) {
+            if (debugEnabled) {
                 log.debug("next({})[{}] Send SSH_MSG_KEX_DH_GEX_REPLY", this, session);
             }
 
@@ -234,7 +235,7 @@ public class DHGEXServer extends AbstractDHServerKeyExchange {
         return false;
     }
 
-    private DHG chooseDH(int min, int prf, int max) throws Exception {
+    protected DHG chooseDH(int min, int prf, int max) throws Exception {
         List<Moduli.DhGroup> groups = loadModuliGroups();
 
         min = Math.max(min, SecurityUtils.MIN_DHGEX_KEY_SIZE);
@@ -243,15 +244,28 @@ public class DHGEXServer extends AbstractDHServerKeyExchange {
         max = Math.min(max, SecurityUtils.getMaxDHGroupExchangeKeySize());
         int bestSize = 0;
         List<Moduli.DhGroup> selected = new ArrayList<>();
+        boolean traceEnabled = log.isTraceEnabled();
         for (Moduli.DhGroup group : groups) {
-            if (group.size < min || group.size > max) {
+            int size = group.getSize();
+            if ((size < min) || (size > max)) {
+                if (traceEnabled) {
+                    log.trace("chooseDH - skip group={} - size not in range [{}-{}]", group, min, max);
+                }
                 continue;
             }
-            if ((group.size > prf && group.size < bestSize) || (group.size > bestSize && bestSize < prf)) {
-                bestSize = group.size;
+
+            if (((size > prf) && (size < bestSize)) || ((size > bestSize) && (bestSize < prf))) {
+                bestSize = size;
+                if (traceEnabled) {
+                    log.trace("chooseDH(prf={}, min={}, max={}) new best size={} from group={}", prf, min, max, bestSize, group);
+                }
                 selected.clear();
             }
-            if (group.size == bestSize) {
+
+            if (size == bestSize) {
+                if (traceEnabled) {
+                    log.trace("chooseDH(prf={}, min={}, max={}) selected {}", prf, min, max, group);
+                }
                 selected.add(group);
             }
         }
@@ -267,7 +281,7 @@ public class DHGEXServer extends AbstractDHServerKeyExchange {
         Random random = Objects.requireNonNull(factory.create(), "No random generator");
         int which = random.random(selected.size());
         Moduli.DhGroup group = selected.get(which);
-        return getDH(group.p, group.g);
+        return getDH(group.getP(), group.getG());
     }
 
     protected List<Moduli.DhGroup> loadModuliGroups() throws IOException {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/fdb98ac0/sshd-core/src/main/java/org/apache/sshd/server/kex/Moduli.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/kex/Moduli.java b/sshd-core/src/main/java/org/apache/sshd/server/kex/Moduli.java
index 79bf988..adb7098 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/kex/Moduli.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/kex/Moduli.java
@@ -26,6 +26,7 @@ import java.net.URL;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * Helper class to load DH group primes from a file.
@@ -38,9 +39,32 @@ public final class Moduli {
     public static final int MODULI_TESTS_COMPOSITE = 0x01;
 
     public static class DhGroup {
-        int size;
-        BigInteger g;
-        BigInteger p;
+        private final int size;
+        private final BigInteger g;
+        private final BigInteger p;
+
+        public DhGroup(int size, BigInteger g, BigInteger p) {
+            this.size = size;
+            this.g = Objects.requireNonNull(g, "No G value provided");
+            this.p = Objects.requireNonNull(p, "No P value provided");
+        }
+
+        public int getSize() {
+            return size;
+        }
+
+        public BigInteger getG() {
+            return g;
+        }
+
+        public BigInteger getP() {
+            return p;
+        }
+
+        @Override
+        public String toString() {
+            return "[size=" + getSize() + ",G=" + getG() + ",P=" + getP() + "]";
+        }
     }
 
     // Private constructor
@@ -69,9 +93,9 @@ public final class Moduli {
                     continue;
                 }
 
-                // Discard untested modulis
+                // Discard untested moduli
                 int tests = Integer.parseInt(parts[2]);
-                if ((tests & MODULI_TESTS_COMPOSITE) != 0 || (tests & ~MODULI_TESTS_COMPOSITE) == 0) {
+                if (((tests & MODULI_TESTS_COMPOSITE) != 0) || ((tests & ~MODULI_TESTS_COMPOSITE) == 0)) {
                     continue;
                 }
 
@@ -81,10 +105,7 @@ public final class Moduli {
                     continue;
                 }
 
-                DhGroup group = new DhGroup();
-                group.size = Integer.parseInt(parts[4]) + 1;
-                group.g = new BigInteger(parts[5], 16);
-                group.p = new BigInteger(parts[6], 16);
+                DhGroup group = new DhGroup(Integer.parseInt(parts[4]) + 1, new BigInteger(parts[5], 16), new BigInteger(parts[6], 16));
                 groups.add(group);
             }