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 2015/12/02 11:00:33 UTC

[1/7] mina-sshd git commit: Fixed KeyReExchangeTest outputDebugMessage format

Repository: mina-sshd
Updated Branches:
  refs/heads/master 3802e5212 -> 23ac5e3bd


Fixed KeyReExchangeTest outputDebugMessage format


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

Branch: refs/heads/master
Commit: d74fae196a086d86871f4459299375201be2efba
Parents: 3802e52
Author: Lyor Goldstein <lg...@vmware.com>
Authored: Wed Dec 2 11:54:03 2015 +0200
Committer: Lyor Goldstein <lg...@vmware.com>
Committed: Wed Dec 2 11:54:03 2015 +0200

----------------------------------------------------------------------
 sshd-core/src/test/java/org/apache/sshd/KeyReExchangeTest.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/d74fae19/sshd-core/src/test/java/org/apache/sshd/KeyReExchangeTest.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/test/java/org/apache/sshd/KeyReExchangeTest.java b/sshd-core/src/test/java/org/apache/sshd/KeyReExchangeTest.java
index a1b62b6..323e131 100644
--- a/sshd-core/src/test/java/org/apache/sshd/KeyReExchangeTest.java
+++ b/sshd-core/src/test/java/org/apache/sshd/KeyReExchangeTest.java
@@ -552,7 +552,7 @@ public class KeyReExchangeTest extends BaseTestSupport {
 
                         // no need to wait until the packets limit is reached if a re-key occurred
                         if (exchanges.get() > 0) {
-                            outputDebugMessage("Stop sending after % packets and %d bytes - exchanges=%s",
+                            outputDebugMessage("Stop sending after %d packets and %d bytes - exchanges=%s",
                                                (index + 1), (index + 1L) * data.length, exchanges);
                             break;
                         }


[7/7] mina-sshd git commit: Lazy calculate BaseMac#toString() value

Posted by lg...@apache.org.
Lazy calculate BaseMac#toString() value


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

Branch: refs/heads/master
Commit: 23ac5e3bd1b8292f4a98f4036226e648812a7fb5
Parents: 00a5eb6
Author: Lyor Goldstein <lg...@vmware.com>
Authored: Wed Dec 2 12:00:11 2015 +0200
Committer: Lyor Goldstein <lg...@vmware.com>
Committed: Wed Dec 2 12:00:11 2015 +0200

----------------------------------------------------------------------
 .../main/java/org/apache/sshd/common/mac/BaseMac.java   | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/23ac5e3b/sshd-core/src/main/java/org/apache/sshd/common/mac/BaseMac.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/mac/BaseMac.java b/sshd-core/src/main/java/org/apache/sshd/common/mac/BaseMac.java
index 5c9fc82..f5e89c7 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/mac/BaseMac.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/mac/BaseMac.java
@@ -35,6 +35,7 @@ public class BaseMac implements Mac {
     private final int bsize;
     private final byte[] tmp;
     private javax.crypto.Mac mac;
+    private String s;
 
     public BaseMac(String algorithm, int bsize, int defbsize) {
         this.algorithm = algorithm;
@@ -107,8 +108,13 @@ public class BaseMac implements Mac {
 
     @Override
     public String toString() {
-        return getClass().getSimpleName() + "[" + getAlgorithm() + "] - "
-             + " block=" + getBlockSize() + "/" + getDefaultBlockSize() + " bytes";
-    }
+        synchronized (this) {
+            if (s == null) {
+                s = getClass().getSimpleName() + "[" + getAlgorithm() + "] - "
+                    + " block=" + getBlockSize() + "/" + getDefaultBlockSize() + " bytes";
+            }
+        }
 
+        return s;
+    }
 }


[2/7] mina-sshd git commit: [SSHD-533] Add support for SHA-224 (builtin) digest

Posted by lg...@apache.org.
[SSHD-533] Add support for SHA-224 (builtin) digest

* Detecting the support for the digest in a standard way for ALL built-in ones


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

Branch: refs/heads/master
Commit: 0fcccf6421ce526f1a4866ef5812373ade32b81f
Parents: d74fae1
Author: Lyor Goldstein <lg...@vmware.com>
Authored: Wed Dec 2 11:55:46 2015 +0200
Committer: Lyor Goldstein <lg...@vmware.com>
Committed: Wed Dec 2 11:55:46 2015 +0200

----------------------------------------------------------------------
 .../apache/sshd/common/digest/BaseDigest.java   | 22 ++++++++++++---
 .../sshd/common/digest/BuiltinDigests.java      | 28 ++++++++------------
 .../apache/sshd/common/digest/DigestUtils.java  | 17 ++++++++++++
 3 files changed, 46 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/0fcccf64/sshd-core/src/main/java/org/apache/sshd/common/digest/BaseDigest.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/digest/BaseDigest.java b/sshd-core/src/main/java/org/apache/sshd/common/digest/BaseDigest.java
index 793f571..221dc0c 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/digest/BaseDigest.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/digest/BaseDigest.java
@@ -35,8 +35,8 @@ public class BaseDigest implements Digest {
 
     private final String algorithm;
     private final int bsize;
-    private final int h;
-    private final String s;
+    private int h;
+    private String s;
     private MessageDigest md;
 
     /**
@@ -51,8 +51,6 @@ public class BaseDigest implements Digest {
         this.algorithm = ValidateUtils.checkNotNullAndNotEmpty(algorithm, "No algorithm");
         ValidateUtils.checkTrue(bsize > 0, "Invalid block size: %d", bsize);
         this.bsize = bsize;
-        this.s = getClass().getSimpleName() + "[" + algorithm + ":" + bsize + "]";
-        this.h = Objects.hashCode(algorithm) + bsize;
     }
 
     @Override
@@ -94,9 +92,19 @@ public class BaseDigest implements Digest {
 
     @Override
     public int hashCode() {
+        synchronized (this) {
+            if (h == 0) {
+                h = Objects.hashCode(getAlgorithm()) + getBlockSize();
+                if (h == 0) {
+                    h = 1;
+                }
+            }
+        }
+
         return h;
     }
 
+
     @Override
     public int compareTo(Digest that) {
         if (that == null) {
@@ -138,6 +146,12 @@ public class BaseDigest implements Digest {
 
     @Override
     public String toString() {
+        synchronized (this) {
+            if (s == null) {
+                s = getClass().getSimpleName() + "[" + getAlgorithm() + ":" + getBlockSize() + "]";
+            }
+        }
+
         return s;
     }
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/0fcccf64/sshd-core/src/main/java/org/apache/sshd/common/digest/BuiltinDigests.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/digest/BuiltinDigests.java b/sshd-core/src/main/java/org/apache/sshd/common/digest/BuiltinDigests.java
index 19cd28c..01ed09a 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/digest/BuiltinDigests.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/digest/BuiltinDigests.java
@@ -26,9 +26,6 @@ import java.util.Set;
 import org.apache.sshd.common.NamedFactory;
 import org.apache.sshd.common.NamedResource;
 import org.apache.sshd.common.util.GenericUtils;
-import org.apache.sshd.common.util.OsUtils;
-import org.apache.sshd.common.util.SecurityUtils;
-import org.apache.sshd.common.util.VersionInfo;
 
 /**
  * Provides easy access to the currently implemented digests
@@ -38,18 +35,7 @@ import org.apache.sshd.common.util.VersionInfo;
 public enum BuiltinDigests implements DigestFactory {
     md5(Constants.MD5, "MD5", 16),
     sha1(Constants.SHA1, "SHA-1", 20),
-    sha224(Constants.SHA224, "SHA-224", 28) {
-        @Override
-        public boolean isSupported() {
-            if (SecurityUtils.isBouncyCastleRegistered()) {
-                return true;
-            }
-
-            // SHA-224 was introduced in Java-8
-            VersionInfo version = OsUtils.getJavaVersion();
-            return version.getMinorVersion() >= 8;
-        }
-    },
+    sha224(Constants.SHA224, "SHA-224", 28),
     sha256(Constants.SHA256, "SHA-256", 32),
     sha384(Constants.SHA384, "SHA-384", 48),
     sha512(Constants.SHA512, "SHA-512", 64);
@@ -60,11 +46,19 @@ public enum BuiltinDigests implements DigestFactory {
     private final String algorithm;
     private final int blockSize;
     private final String factoryName;
+    private final boolean supported;
 
     BuiltinDigests(String factoryName, String algorithm, int blockSize) {
         this.factoryName = factoryName;
         this.algorithm = algorithm;
         this.blockSize = blockSize;
+        /*
+         * This can be done once since in order to change the support the JVM
+         * needs to be stopped, some unlimited-strength files need be installed
+         * and then the JVM re-started. Therefore, the answer is not going to
+         * change while the JVM is running
+         */
+        this.supported = DigestUtils.checkSupported(algorithm);
     }
 
     @Override
@@ -93,8 +87,8 @@ public enum BuiltinDigests implements DigestFactory {
     }
 
     @Override
-    public boolean isSupported() {
-        return true;
+    public final boolean isSupported() {
+        return supported;
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/0fcccf64/sshd-core/src/main/java/org/apache/sshd/common/digest/DigestUtils.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/digest/DigestUtils.java b/sshd-core/src/main/java/org/apache/sshd/common/digest/DigestUtils.java
index fdf9adc..e54ceeb 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/digest/DigestUtils.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/digest/DigestUtils.java
@@ -21,6 +21,7 @@ package org.apache.sshd.common.digest;
 
 import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
+import java.security.MessageDigest;
 import java.util.Collection;
 import java.util.Comparator;
 
@@ -28,6 +29,7 @@ import org.apache.sshd.common.Factory;
 import org.apache.sshd.common.util.Base64;
 import org.apache.sshd.common.util.GenericUtils;
 import org.apache.sshd.common.util.NumberUtils;
+import org.apache.sshd.common.util.SecurityUtils;
 import org.apache.sshd.common.util.ValidateUtils;
 import org.apache.sshd.common.util.buffer.BufferUtils;
 
@@ -40,6 +42,21 @@ public final class DigestUtils {
     }
 
     /**
+     * @param algorithm The digest algorithm - never {@code null}/empty
+     * @return {@code true} if this digest algorithm is supported
+     * @see SecurityUtils#getMessageDigest(String)
+     */
+    public static boolean checkSupported(String algorithm) {
+        ValidateUtils.checkNotNullAndNotEmpty(algorithm, "No algorithm");
+        try {
+            MessageDigest digest = SecurityUtils.getMessageDigest(algorithm);
+            return digest != null;  // just in case
+        } catch (Exception e) {
+            return false;
+        }
+    }
+
+    /**
      * @param <D> The generic type of digest factory
      * @param algo The required algorithm name - ignored if {@code null}/empty
      * @param comp The {@link Comparator} to use to compare algorithm names


[3/7] mina-sshd git commit: Expose more information about the cipher via its CipherFactory as well

Posted by lg...@apache.org.
Expose more information about the cipher via its CipherFactory as well

* Also exposed the "checkSupported" method as a Utils one


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

Branch: refs/heads/master
Commit: c437270b6044cca55071f5eba97819d74dc463f1
Parents: 0fcccf6
Author: Lyor Goldstein <lg...@vmware.com>
Authored: Wed Dec 2 11:57:03 2015 +0200
Committer: Lyor Goldstein <lg...@vmware.com>
Committed: Wed Dec 2 11:57:03 2015 +0200

----------------------------------------------------------------------
 .../apache/sshd/common/cipher/BaseCipher.java   | 19 ++++---
 .../sshd/common/cipher/BuiltinCiphers.java      | 29 +++-------
 .../org/apache/sshd/common/cipher/Cipher.java   | 57 ++++++++++++--------
 .../sshd/common/cipher/CipherFactory.java       |  4 +-
 .../sshd/common/cipher/CipherInformation.java   | 45 ++++++++++++++++
 5 files changed, 102 insertions(+), 52 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/c437270b/sshd-core/src/main/java/org/apache/sshd/common/cipher/BaseCipher.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/cipher/BaseCipher.java b/sshd-core/src/main/java/org/apache/sshd/common/cipher/BaseCipher.java
index 381825d..546685e 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/cipher/BaseCipher.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/cipher/BaseCipher.java
@@ -38,6 +38,7 @@ public class BaseCipher implements Cipher {
     private final int bsize;
     private final String algorithm;
     private final String transformation;
+    private String s;
 
     public BaseCipher(int ivsize, int bsize, String algorithm, String transformation) {
         this.ivsize = ivsize;
@@ -102,11 +103,17 @@ public class BaseCipher implements Cipher {
 
     @Override
     public String toString() {
-        return getClass().getSimpleName()
-             + "[" + getAlgorithm()
-             + "," + getIVSize()
-             + "," + getBlockSize()
-             + "," + getTransformation()
-             + "]";
+        synchronized (this) {
+            if (s == null) {
+                s = getClass().getSimpleName()
+                    + "[" + getAlgorithm()
+                    + "," + getIVSize()
+                    + "," + getBlockSize()
+                    + "," + getTransformation()
+                    + "]";
+            }
+        }
+
+        return s;
     }
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/c437270b/sshd-core/src/main/java/org/apache/sshd/common/cipher/BuiltinCiphers.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/cipher/BuiltinCiphers.java b/sshd-core/src/main/java/org/apache/sshd/common/cipher/BuiltinCiphers.java
index f2cc3ef..3b236bd 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/cipher/BuiltinCiphers.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/cipher/BuiltinCiphers.java
@@ -96,9 +96,9 @@ public enum BuiltinCiphers implements CipherFactory {
          * This can be done once since in order to change the support the JVM
          * needs to be stopped, some unlimited-strength files need be installed
          * and then the JVM re-started. Therefore, the answer is not going to
-         * change while the JVM is running 
+         * change while the JVM is running
          */
-        this.supported = checkSupported(this.transformation, this.keysize);
+        this.supported = Constants.NONE.equals(factoryName) || Cipher.Utils.checkSupported(this.transformation, this.keysize);
     }
 
     @Override
@@ -121,15 +121,6 @@ public enum BuiltinCiphers implements CipherFactory {
         return supported;
     }
 
-    private static boolean checkSupported(String xform, int keyLength) {
-        try {
-            int maxKeyLength = javax.crypto.Cipher.getMaxAllowedKeyLength(xform);
-            return maxKeyLength >= keyLength;
-        } catch (Exception e) {
-            return false;
-        }
-    }
-
     /**
      * @return The key size (in bits) for the cipher
      */
@@ -137,30 +128,22 @@ public enum BuiltinCiphers implements CipherFactory {
         return keysize;
     }
 
-    /**
-     * @return The size of the initialization vector
-     */
+    @Override
     public int getIVSize() {
         return ivsize;
     }
 
-    /**
-     * @return The block size for this cipher
-     */
+    @Override
     public int getBlockSize() {
         return blocksize;
     }
 
-    /**
-     * @return The algorithm for this cipher
-     */
+    @Override
     public String getAlgorithm() {
         return algorithm;
     }
 
-    /**
-     * @return The transformation for this cipher
-     */
+    @Override
     public String getTransformation() {
         return transformation;
     }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/c437270b/sshd-core/src/main/java/org/apache/sshd/common/cipher/Cipher.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/cipher/Cipher.java b/sshd-core/src/main/java/org/apache/sshd/common/cipher/Cipher.java
index 9e53cc9..20f1267 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/cipher/Cipher.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/cipher/Cipher.java
@@ -18,39 +18,21 @@
  */
 package org.apache.sshd.common.cipher;
 
+import org.apache.sshd.common.util.ValidateUtils;
+
 /**
  * Wrapper for a cryptographic cipher, used either for encryption
  * or decryption.
  *
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
  */
-public interface Cipher {
+public interface Cipher extends CipherInformation {
 
     enum Mode {
         Encrypt, Decrypt
     }
 
     /**
-     * @return The cipher's algorithm
-     */
-    String getAlgorithm();
-
-    /**
-     * @return The actual transformation used - e.g., AES/CBC/NoPadding
-     */
-    String getTransformation();
-
-    /**
-     * @return Size of the initialization vector (in bytes)
-     */
-    int getIVSize();
-
-    /**
-     * @return The block size (in bytes) for this cipher
-     */
-    int getBlockSize();
-
-    /**
      * Initialize the cipher for encryption or decryption with
      * the given key and initialization vector
      *
@@ -80,4 +62,37 @@ public interface Cipher {
      */
     void update(byte[] input, int inputOffset, int inputLen) throws Exception;
 
+    /**
+     * Utility class to help using {@link Cipher}s
+     */
+    // CHECKSTYLE:OFF
+    final class Utils {
+    // CHECKSTYLE:ON
+
+        private Utils() {
+            throw new UnsupportedOperationException("No instance allowed");
+        }
+
+        /**
+         * @param xform The full cipher transformation - e.g., AES/CBC/NoPadding -
+         * never {@code null}/empty
+         * @param keyLength The required key length in bits - always positive
+         * @return {@code true} if the cipher transformation <U>and</U> required
+         * key length are supported
+         * @see {@link javax.crypto.Cipher#getMaxAllowedKeyLength(String)}
+         */
+        public static boolean checkSupported(String xform, int keyLength) {
+            ValidateUtils.checkNotNullAndNotEmpty(xform, "No transformation");
+            if (keyLength <= 0) {
+                throw new IllegalArgumentException("Bad key length (" + keyLength + ") for cipher=" + xform);
+            }
+
+            try {
+                int maxKeyLength = javax.crypto.Cipher.getMaxAllowedKeyLength(xform);
+                return maxKeyLength >= keyLength;
+            } catch (Exception e) {
+                return false;
+            }
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/c437270b/sshd-core/src/main/java/org/apache/sshd/common/cipher/CipherFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/cipher/CipherFactory.java b/sshd-core/src/main/java/org/apache/sshd/common/cipher/CipherFactory.java
index 3cafe49..36909f3 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/cipher/CipherFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/cipher/CipherFactory.java
@@ -25,7 +25,7 @@ import org.apache.sshd.common.BuiltinFactory;
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
  */
 // CHECKSTYLE:OFF
-public interface CipherFactory extends BuiltinFactory<Cipher> {
-
+public interface CipherFactory extends BuiltinFactory<Cipher>, CipherInformation {
+    // nothing extra
 }
 //CHECKSTYLE:ON

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/c437270b/sshd-core/src/main/java/org/apache/sshd/common/cipher/CipherInformation.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/cipher/CipherInformation.java b/sshd-core/src/main/java/org/apache/sshd/common/cipher/CipherInformation.java
new file mode 100644
index 0000000..f17fd16
--- /dev/null
+++ b/sshd-core/src/main/java/org/apache/sshd/common/cipher/CipherInformation.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.sshd.common.cipher;
+
+/**
+ * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
+ */
+public interface CipherInformation {
+    /**
+     * @return The cipher's algorithm
+     */
+    String getAlgorithm();
+
+    /**
+     * @return The actual transformation used - e.g., AES/CBC/NoPadding
+     */
+    String getTransformation();
+
+    /**
+     * @return Size of the initialization vector (in bytes)
+     */
+    int getIVSize();
+
+    /**
+     * @return The block size (in bytes) for this cipher
+     */
+    int getBlockSize();
+}


[6/7] mina-sshd git commit: Made KeyExchange a NamedResource

Posted by lg...@apache.org.
Made KeyExchange a NamedResource


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

Branch: refs/heads/master
Commit: 00a5eb61a02df4870342d6fdadd80f8de1159b67
Parents: 76fc62f
Author: Lyor Goldstein <lg...@vmware.com>
Authored: Wed Dec 2 11:59:41 2015 +0200
Committer: Lyor Goldstein <lg...@vmware.com>
Committed: Wed Dec 2 11:59:41 2015 +0200

----------------------------------------------------------------------
 .../main/java/org/apache/sshd/client/kex/DHGClient.java   | 10 +++++-----
 .../main/java/org/apache/sshd/client/kex/DHGEXClient.java | 10 +++++-----
 .../main/java/org/apache/sshd/common/kex/KeyExchange.java |  3 ++-
 .../apache/sshd/common/kex/dh/AbstractDHKeyExchange.java  |  5 +++++
 .../main/java/org/apache/sshd/server/kex/DHGEXServer.java | 10 +++++-----
 .../main/java/org/apache/sshd/server/kex/DHGServer.java   | 10 +++++-----
 6 files changed, 27 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/00a5eb61/sshd-core/src/main/java/org/apache/sshd/client/kex/DHGClient.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/kex/DHGClient.java b/sshd-core/src/main/java/org/apache/sshd/client/kex/DHGClient.java
index 9ffdb9c..430c296 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/kex/DHGClient.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/kex/DHGClient.java
@@ -50,6 +50,11 @@ public class DHGClient extends AbstractDHClientKeyExchange {
         this.factory = ValidateUtils.checkNotNull(factory, "No factory");
     }
 
+    @Override
+    public final String getName() {
+        return factory.getName();
+    }
+
     public static final KeyExchangeFactory newFactory(final DHFactory delegate) {
         return new KeyExchangeFactory() {
             @Override
@@ -139,9 +144,4 @@ public class DHGClient extends AbstractDHClientKeyExchange {
         }
         return true;
     }
-
-    @Override
-    public String toString() {
-        return getClass().getSimpleName() + "[" + factory.getName() + "]";
-    }
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/00a5eb61/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 8548dff..dca86aa 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
@@ -60,6 +60,11 @@ public class DHGEXClient extends AbstractDHClientKeyExchange {
         this.prf = Math.min(SecurityUtils.PREFERRED_DHGEX_KEY_SIZE, max);
     }
 
+    @Override
+    public final String getName() {
+        return factory.getName();
+    }
+
     public static KeyExchangeFactory newFactory(final DHFactory delegate) {
         return new KeyExchangeFactory() {
             @Override
@@ -179,9 +184,4 @@ public class DHGEXClient extends AbstractDHClientKeyExchange {
     protected AbstractDH getDH(BigInteger p, BigInteger g) throws Exception {
         return factory.create(p, g);
     }
-
-    @Override
-    public String toString() {
-        return getClass().getSimpleName() + "[" + factory.getName() + "]";
-    }
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/00a5eb61/sshd-core/src/main/java/org/apache/sshd/common/kex/KeyExchange.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/kex/KeyExchange.java b/sshd-core/src/main/java/org/apache/sshd/common/kex/KeyExchange.java
index 73c2c21..24fcd57 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/kex/KeyExchange.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/kex/KeyExchange.java
@@ -21,6 +21,7 @@ package org.apache.sshd.common.kex;
 import java.security.PublicKey;
 import java.util.Map;
 
+import org.apache.sshd.common.NamedResource;
 import org.apache.sshd.common.SshConstants;
 import org.apache.sshd.common.digest.Digest;
 import org.apache.sshd.common.session.AbstractSession;
@@ -33,7 +34,7 @@ import org.apache.sshd.common.util.logging.LoggingUtils;
  *
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
  */
-public interface KeyExchange {
+public interface KeyExchange extends NamedResource {
 
     /**
      * Initialize the key exchange algorithm.

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/00a5eb61/sshd-core/src/main/java/org/apache/sshd/common/kex/dh/AbstractDHKeyExchange.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/kex/dh/AbstractDHKeyExchange.java b/sshd-core/src/main/java/org/apache/sshd/common/kex/dh/AbstractDHKeyExchange.java
index 6cbb376..666e2b7 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/kex/dh/AbstractDHKeyExchange.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/kex/dh/AbstractDHKeyExchange.java
@@ -73,4 +73,9 @@ public abstract class AbstractDHKeyExchange extends AbstractLoggingBean implemen
     public byte[] getK() {
         return k;
     }
+
+    @Override
+    public String toString() {
+        return getClass().getSimpleName() + "[" + getName() + "]";
+    }
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/00a5eb61/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 667db11..4694de4 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
@@ -68,6 +68,11 @@ public class DHGEXServer extends AbstractDHServerKeyExchange {
         this.factory = ValidateUtils.checkNotNull(factory, "No factory");
     }
 
+    @Override
+    public final String getName() {
+        return factory.getName();
+    }
+
     public static KeyExchangeFactory newFactory(final DHFactory factory) {
         return new KeyExchangeFactory() {
             @Override
@@ -309,9 +314,4 @@ public class DHGEXServer extends AbstractDHServerKeyExchange {
     protected DHG getDH(BigInteger p, BigInteger g) throws Exception {
         return (DHG) factory.create(p, g);
     }
-
-    @Override
-    public String toString() {
-        return getClass().getSimpleName() + "[" + factory.getName() + "]";
-    }
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/00a5eb61/sshd-core/src/main/java/org/apache/sshd/server/kex/DHGServer.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/kex/DHGServer.java b/sshd-core/src/main/java/org/apache/sshd/server/kex/DHGServer.java
index 7e1757c..8a9704a 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/kex/DHGServer.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/kex/DHGServer.java
@@ -48,6 +48,11 @@ public class DHGServer extends AbstractDHServerKeyExchange {
         this.factory = ValidateUtils.checkNotNull(factory, "No factory");
     }
 
+    @Override
+    public final String getName() {
+        return factory.getName();
+    }
+
     public static KeyExchangeFactory newFactory(final DHFactory factory) {
         return new KeyExchangeFactory() {
             @Override
@@ -146,9 +151,4 @@ public class DHGServer extends AbstractDHServerKeyExchange {
         session.writePacket(buffer);
         return true;
     }
-
-    @Override
-    public String toString() {
-        return getClass().getSimpleName() + "[" + factory.getName() + "]";
-    }
 }


[5/7] mina-sshd git commit: Added remark to avoid undocumented blocks

Posted by lg...@apache.org.
Added remark to avoid undocumented blocks


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

Branch: refs/heads/master
Commit: 76fc62f8962ab07d69fa7bdcdeeb52f6c282d210
Parents: 6bd17ce
Author: Lyor Goldstein <lg...@vmware.com>
Authored: Wed Dec 2 11:58:53 2015 +0200
Committer: Lyor Goldstein <lg...@vmware.com>
Committed: Wed Dec 2 11:58:53 2015 +0200

----------------------------------------------------------------------
 .../src/main/java/org/apache/sshd/client/auth/UserAuthFactory.java | 2 +-
 .../src/main/java/org/apache/sshd/common/io/IoHandlerFactory.java  | 2 +-
 .../main/java/org/apache/sshd/common/kex/KeyExchangeFactory.java   | 2 +-
 .../src/main/java/org/apache/sshd/common/random/RandomFactory.java | 2 +-
 .../java/org/apache/sshd/common/signature/SignatureFactory.java    | 2 +-
 .../src/main/java/org/apache/sshd/server/auth/UserAuthFactory.java | 2 +-
 .../java/org/apache/sshd/server/subsystem/SubsystemFactory.java    | 2 +-
 7 files changed, 7 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/76fc62f8/sshd-core/src/main/java/org/apache/sshd/client/auth/UserAuthFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/auth/UserAuthFactory.java b/sshd-core/src/main/java/org/apache/sshd/client/auth/UserAuthFactory.java
index d77fa16..af77bb5 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/auth/UserAuthFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/auth/UserAuthFactory.java
@@ -25,6 +25,6 @@ import org.apache.sshd.common.auth.UserAuthMethodFactory;
  */
 // CHECKSTYLE:OFF
 public interface UserAuthFactory extends UserAuthMethodFactory<UserAuth> {
-
+    // nothing extra
 }
 //CHECKSTYLE:ON

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/76fc62f8/sshd-core/src/main/java/org/apache/sshd/common/io/IoHandlerFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/IoHandlerFactory.java b/sshd-core/src/main/java/org/apache/sshd/common/io/IoHandlerFactory.java
index 2e63801..878ebd1 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/IoHandlerFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/IoHandlerFactory.java
@@ -26,6 +26,6 @@ import org.apache.sshd.common.Factory;
  */
 // CHECKSTYLE:OFF
 public interface IoHandlerFactory extends Factory<IoHandler> {
-
+    // nothing extra
 }
 //CHECKSTYLE:ON

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/76fc62f8/sshd-core/src/main/java/org/apache/sshd/common/kex/KeyExchangeFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/kex/KeyExchangeFactory.java b/sshd-core/src/main/java/org/apache/sshd/common/kex/KeyExchangeFactory.java
index 3026e7b..cea659d 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/kex/KeyExchangeFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/kex/KeyExchangeFactory.java
@@ -26,6 +26,6 @@ import org.apache.sshd.common.NamedFactory;
  */
 // CHECKSTYLE:OFF
 public interface KeyExchangeFactory extends NamedFactory<KeyExchange> {
-
+    // nothing extra
 }
 //CHECKSTYLE:ON

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/76fc62f8/sshd-core/src/main/java/org/apache/sshd/common/random/RandomFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/random/RandomFactory.java b/sshd-core/src/main/java/org/apache/sshd/common/random/RandomFactory.java
index 3563234..dded06f 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/random/RandomFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/random/RandomFactory.java
@@ -26,6 +26,6 @@ import org.apache.sshd.common.BuiltinFactory;
  */
 // CHECKSTYLE:OFF
 public interface RandomFactory extends BuiltinFactory<Random> {
-
+    // nothing extra
 }
 //CHECKSTYLE:ON

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/76fc62f8/sshd-core/src/main/java/org/apache/sshd/common/signature/SignatureFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/signature/SignatureFactory.java b/sshd-core/src/main/java/org/apache/sshd/common/signature/SignatureFactory.java
index 1d0b9d1..0881714 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/signature/SignatureFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/signature/SignatureFactory.java
@@ -26,6 +26,6 @@ import org.apache.sshd.common.BuiltinFactory;
  */
 // CHECKSTYLE:OFF
 public interface SignatureFactory extends BuiltinFactory<Signature> {
-
+    // nothing extra
 }
 //CHECKSTYLE:ON

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/76fc62f8/sshd-core/src/main/java/org/apache/sshd/server/auth/UserAuthFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/auth/UserAuthFactory.java b/sshd-core/src/main/java/org/apache/sshd/server/auth/UserAuthFactory.java
index 8e90aed..49d45dc 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/auth/UserAuthFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/auth/UserAuthFactory.java
@@ -26,6 +26,6 @@ import org.apache.sshd.common.auth.UserAuthMethodFactory;
  */
 // CHECKSTYLE:OFF
 public interface UserAuthFactory extends UserAuthMethodFactory<UserAuth> {
-
+    // nothing extra
 }
 //CHECKSTYLE:ON

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/76fc62f8/sshd-core/src/main/java/org/apache/sshd/server/subsystem/SubsystemFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/subsystem/SubsystemFactory.java b/sshd-core/src/main/java/org/apache/sshd/server/subsystem/SubsystemFactory.java
index 2d57129..f9dbf0f 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/subsystem/SubsystemFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/subsystem/SubsystemFactory.java
@@ -27,6 +27,6 @@ import org.apache.sshd.server.Command;
  */
 // CHECKSTYLE:OFF
 public interface SubsystemFactory extends NamedFactory<Command> {
-
+    // nothing extra
 }
 //CHECKSTYLE:ON


[4/7] mina-sshd git commit: Make Compression a NamedResource

Posted by lg...@apache.org.
Make Compression a NamedResource


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

Branch: refs/heads/master
Commit: 6bd17ce7490477ea7b809b34d82207b5849fb02a
Parents: c437270
Author: Lyor Goldstein <lg...@vmware.com>
Authored: Wed Dec 2 11:57:50 2015 +0200
Committer: Lyor Goldstein <lg...@vmware.com>
Committed: Wed Dec 2 11:57:50 2015 +0200

----------------------------------------------------------------------
 .../common/compression/BaseCompression.java     | 43 ++++++++++++++++++++
 .../sshd/common/compression/Compression.java    |  3 +-
 .../compression/CompressionDelayedZlib.java     |  2 +-
 .../common/compression/CompressionFactory.java  |  2 +-
 .../common/compression/CompressionZlib.java     |  7 +++-
 5 files changed, 53 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/6bd17ce7/sshd-core/src/main/java/org/apache/sshd/common/compression/BaseCompression.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/compression/BaseCompression.java b/sshd-core/src/main/java/org/apache/sshd/common/compression/BaseCompression.java
new file mode 100644
index 0000000..7feda60
--- /dev/null
+++ b/sshd-core/src/main/java/org/apache/sshd/common/compression/BaseCompression.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.sshd.common.compression;
+
+import org.apache.sshd.common.util.ValidateUtils;
+
+/**
+ * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
+ */
+public abstract class BaseCompression implements Compression {
+    private final String name;
+
+    protected BaseCompression(String name) {
+        this.name = ValidateUtils.checkNotNullAndNotEmpty(name, "No compression name");
+    }
+
+    @Override
+    public final String getName() {
+        return name;
+    }
+
+    @Override
+    public String toString() {
+        return getName();
+    }
+}

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/6bd17ce7/sshd-core/src/main/java/org/apache/sshd/common/compression/Compression.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/compression/Compression.java b/sshd-core/src/main/java/org/apache/sshd/common/compression/Compression.java
index 85326cc..33f6fb2 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/compression/Compression.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/compression/Compression.java
@@ -20,6 +20,7 @@ package org.apache.sshd.common.compression;
 
 import java.io.IOException;
 
+import org.apache.sshd.common.NamedResource;
 import org.apache.sshd.common.util.buffer.Buffer;
 
 /**
@@ -28,7 +29,7 @@ import org.apache.sshd.common.util.buffer.Buffer;
  *
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
  */
-public interface Compression {
+public interface Compression extends NamedResource {
 
     /**
      * Enum identifying if this object will be used to compress

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/6bd17ce7/sshd-core/src/main/java/org/apache/sshd/common/compression/CompressionDelayedZlib.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/compression/CompressionDelayedZlib.java b/sshd-core/src/main/java/org/apache/sshd/common/compression/CompressionDelayedZlib.java
index 140825f..c062e38 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/compression/CompressionDelayedZlib.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/compression/CompressionDelayedZlib.java
@@ -30,7 +30,7 @@ public class CompressionDelayedZlib extends CompressionZlib {
      * Create a new instance of a delayed ZLib compression
      */
     public CompressionDelayedZlib() {
-        super();
+        super(BuiltinCompressions.Constants.DELAYED_ZLIB);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/6bd17ce7/sshd-core/src/main/java/org/apache/sshd/common/compression/CompressionFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/compression/CompressionFactory.java b/sshd-core/src/main/java/org/apache/sshd/common/compression/CompressionFactory.java
index e7c874e..a6dd4c9 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/compression/CompressionFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/compression/CompressionFactory.java
@@ -26,6 +26,6 @@ import org.apache.sshd.common.BuiltinFactory;
  */
 // CHECKSTYLE:OFF
 public interface CompressionFactory extends BuiltinFactory<Compression> {
-
+    // nothing extra
 }
 //CHECKSTYLE:ON

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/6bd17ce7/sshd-core/src/main/java/org/apache/sshd/common/compression/CompressionZlib.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/compression/CompressionZlib.java b/sshd-core/src/main/java/org/apache/sshd/common/compression/CompressionZlib.java
index 02f92db..5b76754 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/compression/CompressionZlib.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/compression/CompressionZlib.java
@@ -30,7 +30,7 @@ import org.apache.sshd.common.util.buffer.Buffer;
  *
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
  */
-public class CompressionZlib implements Compression {
+public class CompressionZlib extends BaseCompression {
 
     private static final int BUF_SIZE = 4096;
 
@@ -42,6 +42,11 @@ public class CompressionZlib implements Compression {
      * Create a new instance of a ZLib base compression
      */
     public CompressionZlib() {
+        this(BuiltinCompressions.Constants.ZLIB);
+    }
+
+    protected CompressionZlib(String name) {
+        super(name);
     }
 
     @Override