aboutsummaryrefslogtreecommitdiffstats
path: root/lib/src/main/java/com/trilead/ssh2/compression
diff options
context:
space:
mode:
Diffstat (limited to 'lib/src/main/java/com/trilead/ssh2/compression')
-rw-r--r--lib/src/main/java/com/trilead/ssh2/compression/CompressionFactory.java2
-rw-r--r--lib/src/main/java/com/trilead/ssh2/compression/ICompressor.java2
-rw-r--r--lib/src/main/java/com/trilead/ssh2/compression/Zlib.java4
-rw-r--r--lib/src/main/java/com/trilead/ssh2/compression/ZlibOpenSSH.java35
4 files changed, 42 insertions, 1 deletions
diff --git a/lib/src/main/java/com/trilead/ssh2/compression/CompressionFactory.java b/lib/src/main/java/com/trilead/ssh2/compression/CompressionFactory.java
index a846f58..9f8d7ef 100644
--- a/lib/src/main/java/com/trilead/ssh2/compression/CompressionFactory.java
+++ b/lib/src/main/java/com/trilead/ssh2/compression/CompressionFactory.java
@@ -43,7 +43,7 @@ public class CompressionFactory {
/* Higher Priority First */
compressors.addElement(new CompressorEntry("zlib", "com.trilead.ssh2.compression.Zlib"));
- compressors.addElement(new CompressorEntry("zlib@openssh.com", "com.trilead.ssh2.compression.Zlib"));
+ compressors.addElement(new CompressorEntry("zlib@openssh.com", "com.trilead.ssh2.compression.ZlibOpenSSH"));
compressors.addElement(new CompressorEntry("none", ""));
}
diff --git a/lib/src/main/java/com/trilead/ssh2/compression/ICompressor.java b/lib/src/main/java/com/trilead/ssh2/compression/ICompressor.java
index 3f76326..0b435b9 100644
--- a/lib/src/main/java/com/trilead/ssh2/compression/ICompressor.java
+++ b/lib/src/main/java/com/trilead/ssh2/compression/ICompressor.java
@@ -27,4 +27,6 @@ public interface ICompressor {
int compress(byte[] buf, int start, int len, byte[] output);
byte[] uncompress(byte[] buf, int start, int[] len);
+
+ boolean canCompressPreauth();
}
diff --git a/lib/src/main/java/com/trilead/ssh2/compression/Zlib.java b/lib/src/main/java/com/trilead/ssh2/compression/Zlib.java
index e9cc017..c1203a3 100644
--- a/lib/src/main/java/com/trilead/ssh2/compression/Zlib.java
+++ b/lib/src/main/java/com/trilead/ssh2/compression/Zlib.java
@@ -47,6 +47,10 @@ public class Zlib implements ICompressor {
inflated_buf = new byte[DEFAULT_BUF_SIZE];
}
+ public boolean canCompressPreauth() {
+ return true;
+ }
+
public int getBufferSize() {
return DEFAULT_BUF_SIZE;
}
diff --git a/lib/src/main/java/com/trilead/ssh2/compression/ZlibOpenSSH.java b/lib/src/main/java/com/trilead/ssh2/compression/ZlibOpenSSH.java
new file mode 100644
index 0000000..266fff9
--- /dev/null
+++ b/lib/src/main/java/com/trilead/ssh2/compression/ZlibOpenSSH.java
@@ -0,0 +1,35 @@
+/*
+ * ConnectBot: simple, powerful, open-source SSH client for Android
+ * Copyright 2007 Kenny Root, Jeffrey Sharkey
+ *
+ * Licensed 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 com.trilead.ssh2.compression;
+
+/**
+ * Defines how zlib@openssh.org compression works.
+ * See
+ * http://www.openssh.org/txt/draft-miller-secsh-compression-delayed-00.txt
+ * compression is disabled until userauth has occurred.
+ *
+ * @author Matt Johnston
+ *
+ */
+public class ZlibOpenSSH extends Zlib {
+
+ public boolean canCompressPreauth() {
+ return false;
+ }
+
+}