Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.team.cvs.ssh/src/org/eclipse')
-rw-r--r--bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Cipher.java38
-rw-r--r--bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Client.java44
-rw-r--r--bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Misc.java898
-rw-r--r--bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Policy.java50
-rw-r--r--bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHMethod.java52
-rw-r--r--bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHPlugin.java2
-rw-r--r--bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHServerConnection.java4
-rw-r--r--bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/ServerPacket.java316
-rw-r--r--bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/messages.properties (renamed from bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHPluginResources.properties)2
9 files changed, 729 insertions, 677 deletions
diff --git a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Cipher.java b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Cipher.java
index 83a397955..14c6270d2 100644
--- a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Cipher.java
+++ b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Cipher.java
@@ -1,19 +1,19 @@
-package org.eclipse.team.internal.ccvs.ssh;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2001.
- * All Rights Reserved.
- */
-public abstract class Cipher {
-public abstract void decipher(byte[] src, int srcPos, byte[] dst, int dstPos, int len);
-public abstract void encipher(byte[] src, int srcPos, byte[] dst, int dstPos, int len);
-public static Cipher getInstance(String algorithm) {
- try {
- Class c = Class.forName("org.eclipse.team.internal.ccvs.ssh." + algorithm);
- return (Cipher) c.newInstance();
- } catch (Exception e) {
- return null;
- }
-}
-public abstract void setKey(byte[] key);
-}
+package org.eclipse.team.internal.ccvs.ssh;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved.
+ */
+public abstract class Cipher {
+public abstract void decipher(byte[] src, int srcPos, byte[] dst, int dstPos, int len);
+public abstract void encipher(byte[] src, int srcPos, byte[] dst, int dstPos, int len);
+public static Cipher getInstance(String algorithm) {
+ try {
+ Class c = Class.forName("org.eclipse.team.internal.ccvs.ssh." + algorithm); //$NON-NLS-1$
+ return (Cipher) c.newInstance();
+ } catch (Exception e) {
+ return null;
+ }
+}
+public abstract void setKey(byte[] key);
+}
diff --git a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Client.java b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Client.java
index 992149db9..e853dd105 100644
--- a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Client.java
+++ b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Client.java
@@ -22,7 +22,7 @@ import org.eclipse.team.internal.ccvs.core.connection.CVSAuthenticationException
public class Client {
// client identification string
- private static final String clientId = "SSH-1.5-Java 1.2.2\n";
+ private static final String clientId = "SSH-1.5-Java 1.2.2\n"; //$NON-NLS-1$
// server identification string
private static String serverId = null;
@@ -49,7 +49,7 @@ public class Client {
private static final int SSH_MSG_DEBUG = 36;
// cipher names
- private static String[] cipherNames = { "None", "IDEA", "DES", "3DES", "TSS", "RC4", "Blowfish" };
+ private static String[] cipherNames = { "None", "IDEA", "DES", "3DES", "TSS", "RC4", "Blowfish" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
// cipher types
private static int SSH_CIPHER_NONE = 0;
@@ -95,7 +95,7 @@ public class Client {
public int available() throws IOException {
if (closed) {
- throw new IOException(SSHPlugin.getResourceString("closed"));
+ throw new IOException(Policy.bind("closed")); //$NON-NLS-1$
}
int available = buffer == null ? 0 : buffer.available();
@@ -122,7 +122,7 @@ public class Client {
public int read() throws IOException {
if (closed) {
- throw new IOException(SSHPlugin.getResourceString("closed"));
+ throw new IOException(Policy.bind("closed"));//$NON-NLS-1$
}
if (atEnd) {
@@ -138,7 +138,7 @@ public class Client {
public int read(byte b[], int off, int len) throws IOException {
if (closed) {
- throw new IOException(SSHPlugin.getResourceString("closed"));
+ throw new IOException(Policy.bind("closed"));//$NON-NLS-1$
}
if (atEnd) {
@@ -177,7 +177,7 @@ public class Client {
send(SSH_CMSG_EXIT_CONFIRMATION, null);
break;
default :
- throw new IOException(SSHPlugin.getResourceString("Client.packetType", new Object[] {new Integer(packetType)} ));
+ throw new IOException(Policy.bind("Client.packetType", new Object[] {new Integer(packetType)} ));//$NON-NLS-1$
}
}
}
@@ -200,7 +200,7 @@ public class Client {
public void flush() throws IOException {
if (closed) {
- throw new IOException(SSHPlugin.getResourceString("closed"));
+ throw new IOException(Policy.bind("closed"));//$NON-NLS-1$
}
if (bufpos > 0) {
@@ -211,7 +211,7 @@ public class Client {
public void write(int b) throws IOException {
if (closed) {
- throw new IOException(SSHPlugin.getResourceString("closed"));
+ throw new IOException(Policy.bind("closed"));//$NON-NLS-1$
}
buffer[bufpos++] = (byte) b;
@@ -223,7 +223,7 @@ public class Client {
public void write(byte b[], int off, int len) throws IOException {
if (closed) {
- throw new IOException(SSHPlugin.getResourceString("closed"));
+ throw new IOException(Policy.bind("closed")); //$NON-NLS-1$
}
int bytesWritten = 0;
@@ -325,7 +325,7 @@ public void connect(IProgressMonitor monitor) throws IOException, CVSAuthenticat
socket = new Socket(host, port);
} catch (InterruptedIOException e) {
// If we get this exception, chances are the host is not responding
- throw new InterruptedIOException(SSHPlugin.getResourceString("Client.socket", new Object[] {host}));
+ throw new InterruptedIOException(Policy.bind("Client.socket", new Object[] {host}));//$NON-NLS-1$
}
if (timeout >= 0) {
@@ -342,7 +342,7 @@ public void connect(IProgressMonitor monitor) throws IOException, CVSAuthenticat
int c;
while ((c = socketIn.read()) != '\n') {
if (c == -1)
- throw new IOException(SSHPlugin.getResourceString("Client.socketClosed"));
+ throw new IOException(Policy.bind("Client.socketClosed"));//$NON-NLS-1$
buf.append((char) c);
}
serverId = buf.toString();
@@ -386,14 +386,14 @@ public void disconnect() throws IOException {
}
public InputStream getInputStream() throws IOException {
if (!connected) {
- throw new IOException(SSHPlugin.getResourceString("Client.notConnected"));
+ throw new IOException(Policy.bind("Client.notConnected"));//$NON-NLS-1$
}
return is;
}
public OutputStream getOutputStream() throws IOException {
if (!connected) {
- throw new IOException(SSHPlugin.getResourceString("Client.notConnected"));
+ throw new IOException(Policy.bind("Client.notConnected"));//$NON-NLS-1$
}
return os;
@@ -410,7 +410,7 @@ private void startShell() throws IOException {
packetType = packet.getType();
if (packetType != SSH_SMSG_SUCCESS) {
- throw new IOException(SSHPlugin.getResourceString("Client.packetType", new Object[] {new Integer(packetType)} ));
+ throw new IOException(Policy.bind("Client.packetType", new Object[] {new Integer(packetType)} ));//$NON-NLS-1$
}
} finally {
if (packet != null) {
@@ -434,7 +434,7 @@ private void login() throws IOException, CVSAuthenticationException {
packetType = packet.getType();
if (packetType != SSH_SMSG_PUBLIC_KEY) {
- throw new IOException(SSHPlugin.getResourceString("Client.packetType", new Object[] {new Integer(packetType)} ));
+ throw new IOException(Policy.bind("Client.packetType", new Object[] {new Integer(packetType)} ));//$NON-NLS-1$
}
receive_SSH_SMSG_PUBLIC_KEY(packet);
@@ -449,7 +449,7 @@ private void login() throws IOException, CVSAuthenticationException {
packetType = packet.getType();
if (packetType != SSH_SMSG_SUCCESS) {
- throw new IOException(SSHPlugin.getResourceString("Client.packetType", new Object[] {new Integer(packetType)} ));
+ throw new IOException(Policy.bind("Client.packetType", new Object[] {new Integer(packetType)} ));//$NON-NLS-1$
}
} finally {
if (packet != null) {
@@ -464,7 +464,7 @@ private void login() throws IOException, CVSAuthenticationException {
packetType = packet.getType();
if (packetType != SSH_SMSG_FAILURE) {
- throw new IOException(SSHPlugin.getResourceString("Client.packetType", new Object[] {new Integer(packetType)} ));
+ throw new IOException(Policy.bind("Client.packetType", new Object[] {new Integer(packetType)} ));//$NON-NLS-1$
}
} finally {
if (packet != null) {
@@ -479,11 +479,11 @@ private void login() throws IOException, CVSAuthenticationException {
packetType = packet.getType();
if (packetType == SSH_SMSG_FAILURE) {
- throw new CVSAuthenticationException(SSHPlugin.getResourceString("Client.authenticationFailed"));
+ throw new CVSAuthenticationException(Policy.bind("Client.authenticationFailed"));//$NON-NLS-1$
}
if (packetType != SSH_SMSG_SUCCESS) {
- throw new IOException(SSHPlugin.getResourceString("Client.packetType", new Object[] {new Integer(packetType)} ));
+ throw new IOException(Policy.bind("Client.packetType", new Object[] {new Integer(packetType)} ));//$NON-NLS-1$
}
} finally {
if (packet != null) {
@@ -523,7 +523,7 @@ private void receive_SSH_SMSG_PUBLIC_KEY(ServerPacket packet) throws IOException
send_SSH_CMSG_SESSION_KEY(anti_spoofing_cookie, server_key_public_modulus, host_key_public_modulus, supported_ciphers_mask, server_key_public_exponent, host_key_public_exponent);
}
private void send(int packetType, String s) throws IOException {
- byte[] data = s == null ? new byte[0] : s.getBytes("UTF-8");
+ byte[] data = s == null ? new byte[0] : s.getBytes("UTF-8"); //$NON-NLS-1$
send(packetType, data, 0, data.length);
}
private void send(int packetType, byte[] data, int off, int len) throws IOException {
@@ -535,7 +535,7 @@ private void send(int packetType, byte[] data, int off, int len) throws IOExcept
private void send_SSH_CMSG_REQUEST_PTY() throws IOException {
byte packet_type = SSH_CMSG_REQUEST_PTY;
- byte[] termType = Misc.lengthEncode("dumb".getBytes(), 0, 4);
+ byte[] termType = Misc.lengthEncode("dumb".getBytes(), 0, 4);//$NON-NLS-1$
byte[] row = {0, 0, 0, 0};
byte[] col = {0, 0, 0, 0};
byte[] XPixels = {0, 0, 0, 0};
@@ -593,7 +593,7 @@ private void send_SSH_CMSG_SESSION_KEY(byte[] anti_spoofing_cookie, byte[] serve
}
if (!foundSupportedCipher) {
- throw new IOException(SSHPlugin.getResourceString("Client.cipher"));
+ throw new IOException(Policy.bind("Client.cipher"));//$NON-NLS-1$
}
// session_key
diff --git a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Misc.java b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Misc.java
index e8561a5ff..3251c6be3 100644
--- a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Misc.java
+++ b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Misc.java
@@ -1,449 +1,449 @@
-package org.eclipse.team.internal.ccvs.ssh;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2001.
- * All Rights Reserved.
- */
-import java.io.IOException;
-import java.io.InputStream;
-import java.math.BigInteger;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.security.SecureRandom;
-
-class Misc {
- private static MessageDigest md5 = null;
- private static SecureRandom random = null;
- private static long crc32_tab[] = {
- 0x00000000L,
- 0x77073096L,
- 0xee0e612cL,
- 0x990951baL,
- 0x076dc419L,
- 0x706af48fL,
- 0xe963a535L,
- 0x9e6495a3L,
- 0x0edb8832L,
- 0x79dcb8a4L,
- 0xe0d5e91eL,
- 0x97d2d988L,
- 0x09b64c2bL,
- 0x7eb17cbdL,
- 0xe7b82d07L,
- 0x90bf1d91L,
- 0x1db71064L,
- 0x6ab020f2L,
- 0xf3b97148L,
- 0x84be41deL,
- 0x1adad47dL,
- 0x6ddde4ebL,
- 0xf4d4b551L,
- 0x83d385c7L,
- 0x136c9856L,
- 0x646ba8c0L,
- 0xfd62f97aL,
- 0x8a65c9ecL,
- 0x14015c4fL,
- 0x63066cd9L,
- 0xfa0f3d63L,
- 0x8d080df5L,
- 0x3b6e20c8L,
- 0x4c69105eL,
- 0xd56041e4L,
- 0xa2677172L,
- 0x3c03e4d1L,
- 0x4b04d447L,
- 0xd20d85fdL,
- 0xa50ab56bL,
- 0x35b5a8faL,
- 0x42b2986cL,
- 0xdbbbc9d6L,
- 0xacbcf940L,
- 0x32d86ce3L,
- 0x45df5c75L,
- 0xdcd60dcfL,
- 0xabd13d59L,
- 0x26d930acL,
- 0x51de003aL,
- 0xc8d75180L,
- 0xbfd06116L,
- 0x21b4f4b5L,
- 0x56b3c423L,
- 0xcfba9599L,
- 0xb8bda50fL,
- 0x2802b89eL,
- 0x5f058808L,
- 0xc60cd9b2L,
- 0xb10be924L,
- 0x2f6f7c87L,
- 0x58684c11L,
- 0xc1611dabL,
- 0xb6662d3dL,
- 0x76dc4190L,
- 0x01db7106L,
- 0x98d220bcL,
- 0xefd5102aL,
- 0x71b18589L,
- 0x06b6b51fL,
- 0x9fbfe4a5L,
- 0xe8b8d433L,
- 0x7807c9a2L,
- 0x0f00f934L,
- 0x9609a88eL,
- 0xe10e9818L,
- 0x7f6a0dbbL,
- 0x086d3d2dL,
- 0x91646c97L,
- 0xe6635c01L,
- 0x6b6b51f4L,
- 0x1c6c6162L,
- 0x856530d8L,
- 0xf262004eL,
- 0x6c0695edL,
- 0x1b01a57bL,
- 0x8208f4c1L,
- 0xf50fc457L,
- 0x65b0d9c6L,
- 0x12b7e950L,
- 0x8bbeb8eaL,
- 0xfcb9887cL,
- 0x62dd1ddfL,
- 0x15da2d49L,
- 0x8cd37cf3L,
- 0xfbd44c65L,
- 0x4db26158L,
- 0x3ab551ceL,
- 0xa3bc0074L,
- 0xd4bb30e2L,
- 0x4adfa541L,
- 0x3dd895d7L,
- 0xa4d1c46dL,
- 0xd3d6f4fbL,
- 0x4369e96aL,
- 0x346ed9fcL,
- 0xad678846L,
- 0xda60b8d0L,
- 0x44042d73L,
- 0x33031de5L,
- 0xaa0a4c5fL,
- 0xdd0d7cc9L,
- 0x5005713cL,
- 0x270241aaL,
- 0xbe0b1010L,
- 0xc90c2086L,
- 0x5768b525L,
- 0x206f85b3L,
- 0xb966d409L,
- 0xce61e49fL,
- 0x5edef90eL,
- 0x29d9c998L,
- 0xb0d09822L,
- 0xc7d7a8b4L,
- 0x59b33d17L,
- 0x2eb40d81L,
- 0xb7bd5c3bL,
- 0xc0ba6cadL,
- 0xedb88320L,
- 0x9abfb3b6L,
- 0x03b6e20cL,
- 0x74b1d29aL,
- 0xead54739L,
- 0x9dd277afL,
- 0x04db2615L,
- 0x73dc1683L,
- 0xe3630b12L,
- 0x94643b84L,
- 0x0d6d6a3eL,
- 0x7a6a5aa8L,
- 0xe40ecf0bL,
- 0x9309ff9dL,
- 0x0a00ae27L,
- 0x7d079eb1L,
- 0xf00f9344L,
- 0x8708a3d2L,
- 0x1e01f268L,
- 0x6906c2feL,
- 0xf762575dL,
- 0x806567cbL,
- 0x196c3671L,
- 0x6e6b06e7L,
- 0xfed41b76L,
- 0x89d32be0L,
- 0x10da7a5aL,
- 0x67dd4accL,
- 0xf9b9df6fL,
- 0x8ebeeff9L,
- 0x17b7be43L,
- 0x60b08ed5L,
- 0xd6d6a3e8L,
- 0xa1d1937eL,
- 0x38d8c2c4L,
- 0x4fdff252L,
- 0xd1bb67f1L,
- 0xa6bc5767L,
- 0x3fb506ddL,
- 0x48b2364bL,
- 0xd80d2bdaL,
- 0xaf0a1b4cL,
- 0x36034af6L,
- 0x41047a60L,
- 0xdf60efc3L,
- 0xa867df55L,
- 0x316e8eefL,
- 0x4669be79L,
- 0xcb61b38cL,
- 0xbc66831aL,
- 0x256fd2a0L,
- 0x5268e236L,
- 0xcc0c7795L,
- 0xbb0b4703L,
- 0x220216b9L,
- 0x5505262fL,
- 0xc5ba3bbeL,
- 0xb2bd0b28L,
- 0x2bb45a92L,
- 0x5cb36a04L,
- 0xc2d7ffa7L,
- 0xb5d0cf31L,
- 0x2cd99e8bL,
- 0x5bdeae1dL,
- 0x9b64c2b0L,
- 0xec63f226L,
- 0x756aa39cL,
- 0x026d930aL,
- 0x9c0906a9L,
- 0xeb0e363fL,
- 0x72076785L,
- 0x05005713L,
- 0x95bf4a82L,
- 0xe2b87a14L,
- 0x7bb12baeL,
- 0x0cb61b38L,
- 0x92d28e9bL,
- 0xe5d5be0dL,
- 0x7cdcefb7L,
- 0x0bdbdf21L,
- 0x86d3d2d4L,
- 0xf1d4e242L,
- 0x68ddb3f8L,
- 0x1fda836eL,
- 0x81be16cdL,
- 0xf6b9265bL,
- 0x6fb077e1L,
- 0x18b74777L,
- 0x88085ae6L,
- 0xff0f6a70L,
- 0x66063bcaL,
- 0x11010b5cL,
- 0x8f659effL,
- 0xf862ae69L,
- 0x616bffd3L,
- 0x166ccf45L,
- 0xa00ae278L,
- 0xd70dd2eeL,
- 0x4e048354L,
- 0x3903b3c2L,
- 0xa7672661L,
- 0xd06016f7L,
- 0x4969474dL,
- 0x3e6e77dbL,
- 0xaed16a4aL,
- 0xd9d65adcL,
- 0x40df0b66L,
- 0x37d83bf0L,
- 0xa9bcae53L,
- 0xdebb9ec5L,
- 0x47b2cf7fL,
- 0x30b5ffe9L,
- 0xbdbdf21cL,
- 0xcabac28aL,
- 0x53b39330L,
- 0x24b4a3a6L,
- 0xbad03605L,
- 0xcdd70693L,
- 0x54de5729L,
- 0x23d967bfL,
- 0xb3667a2eL,
- 0xc4614ab8L,
- 0x5d681b02L,
- 0x2a6f2b94L,
- 0xb40bbe37L,
- 0xc30c8ea1L,
- 0x5a05df1bL,
- 0x2d02ef8dL
- };
-static public long crc32(byte[] b, int off, int len) {
- return crc32(b, off, len, 0);
-}
-/**
- * Compute the crc Cyclic Redundancy Check, with the polynomial 0xedb88320,
- * The polynomial is X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0
- * We take it "backwards" and put the highest-order term in the lowest-order bit.
- * The X^32 term is "implied"; the LSB is the X^31 term, etc.
- * The X^0 term (usually shown as "+1") results in the MSB being 1.
- * so the poly is 0x04c11db7 (used for Ethernet)
- * The buf will be the Padding, Packet type, and Data fields.
- * The crc is computed before any encryption.
- * R =X^n * M rem P M message P polynomial crc R : crc calculated.
- * T(x) = x^n * M(x) + R(x) property: T rem P = 0
- */
-static public long crc32(byte[] b, int off, int len, long crc32val) {
- for (int i = 0; i < len; i++) {
- crc32val = crc32_tab[(int) ((crc32val ^ b[off + i]) & 0xff)] ^ (crc32val >> 8);
- }
-
- return crc32val;
-}
-static public byte[] lengthEncode(byte[] b, int off, int len) throws IOException {
- byte[] result = new byte[len + 4];
- writeInt(len, result, 0);
- System.arraycopy(b, off, result, 4, len);
- return result;
-}
-static public byte[] readMpInt(InputStream is) throws IOException {
- int a = (byte) is.read();
- int b = (byte) is.read();
-
- if(a == -1 || b == -1){
- throw new IOException(SSHPlugin.getResourceString("stream"));
- }
-
- int bits = (a << 8) + b;
- int bytes = (bits + 7) / 8;
-
- byte[] result = new byte[bytes];
-
- readFully(is, result);
-
- return result;
-}
-public static byte[] md5(byte[] b) {
- if (md5 == null) {
- try {
- md5 = MessageDigest.getInstance("MD5");
- } catch (NoSuchAlgorithmException e) {
- }
- }
-
- return md5.digest(b);
-}
-public static byte[] md5(String s) {
- return md5(s.getBytes());
-}
-public static void readFully(InputStream is, byte[] b) throws IOException {
- readFully(is, b, 0, b.length);
-}
-public static void readFully(InputStream is, byte[] b, int off, int len) throws IOException {
- int bytesRead = 0;
- int totalBytesRead = 0;
-
- while (totalBytesRead < len) {
- bytesRead = is.read(b, totalBytesRead + off, len - totalBytesRead);
-
- if (bytesRead == -1) {
- throw new IOException(SSHPlugin.getResourceString("stream"));
- }
-
- totalBytesRead += bytesRead;
- }
-}
-public static int readInt(byte[] arr, int off) throws IOException {
- int a = arr[off] & 0xff;
- int b = arr[off + 1] & 0xff;
- int c = arr[off + 2] & 0xff;
- int d = arr[off + 3] & 0xff;
-
- return (a << 24) + (b << 16) + (c << 8) + d;
-}
-public static int readInt(InputStream is) throws IOException {
- int a = is.read();
- int b = is.read();
- int c = is.read();
- int d = is.read();
-
- if (a == -1 || b == -1 || c == -1 || d == -1) {
- throw new IOException(SSHPlugin.getResourceString("stream"));
- }
-
- return (a << 24) + (b << 16) + (c << 8) + d;
-}
-public static void skipFully(InputStream is, long n) throws IOException {
- while (n != 0) {
- int b = is.read();
-
- if (b == -1) {
- if (n > 0) {
- throw new IOException(SSHPlugin.getResourceString("stream"));
- }
-
- return;
- }
-
- --n;
- }
-}
-public static void writeInt(int i, byte[] b, int off) {
- b[off] = (byte) ((i >> 24) & 0xff);
- b[off + 1] = (byte) ((i >> 16) & 0xff);
- b[off + 2] = (byte) ((i >> 8) & 0xff);
- b[off + 3] = (byte) (i & 0xff);
-}
-static public void xor(byte[] src_a, int off_a, byte[] src_b, int off_b, byte[] dst, int dst_off, int len) {
- for(int i = 0; i < len; ++i){
- dst[i + dst_off] = (byte) (src_a[i + off_a] ^ src_b[i + off_b]);
- }
-}
-static public void random(byte[] b, int off, int len, boolean allowZeroBytes) {
- if (random == null) {
- try {
- random = SecureRandom.getInstance("SHA1PRNG");
- } catch (NoSuchAlgorithmException e) {
- }
- }
-
- for(int i = off; i < off + len; ++i){
- do {
- b[i] = (byte) random.nextInt();
- } while(!allowZeroBytes && b[i] == 0);
- }
-}
-static public byte[] encryptRSAPkcs1(byte[] data, byte[] public_key_exponent, byte[] public_key_modulus) {
- byte[] block;
-
- int offset = 0;
- block = new byte[public_key_modulus.length];
- block[offset++] = 0;
- block[offset++] = 2;
-
- Misc.random(block, offset, block.length - data.length - 3, false);
- offset += block.length - data.length - 3;
-
- block[offset++] = 0;
-
- for (int i = 0; i < data.length; i++){
- block[offset++] = data[i];
- }
-
- BigInteger m, e, message;
- byte[] messageByte;
-
- m = new BigInteger(1, public_key_modulus);
- e = new BigInteger(1, public_key_exponent);
- message = new BigInteger(1, block);
- message = message.modPow(e, m);
-
- byte[] messageByteTemp = message.toByteArray();
- messageByte = new byte[public_key_modulus.length];
-
- int tempOffset = 0;
- while (messageByteTemp[tempOffset] == 0){
- tempOffset++;
- }
-
- for (int i = messageByte.length - messageByteTemp.length + tempOffset; i < messageByte.length; i++){
- messageByte[i] = messageByteTemp[tempOffset++];
- }
-
- return messageByte;
-}
-}
+package org.eclipse.team.internal.ccvs.ssh;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved.
+ */
+import java.io.IOException;
+import java.io.InputStream;
+import java.math.BigInteger;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.security.SecureRandom;
+
+class Misc {
+ private static MessageDigest md5 = null;
+ private static SecureRandom random = null;
+ private static long crc32_tab[] = {
+ 0x00000000L,
+ 0x77073096L,
+ 0xee0e612cL,
+ 0x990951baL,
+ 0x076dc419L,
+ 0x706af48fL,
+ 0xe963a535L,
+ 0x9e6495a3L,
+ 0x0edb8832L,
+ 0x79dcb8a4L,
+ 0xe0d5e91eL,
+ 0x97d2d988L,
+ 0x09b64c2bL,
+ 0x7eb17cbdL,
+ 0xe7b82d07L,
+ 0x90bf1d91L,
+ 0x1db71064L,
+ 0x6ab020f2L,
+ 0xf3b97148L,
+ 0x84be41deL,
+ 0x1adad47dL,
+ 0x6ddde4ebL,
+ 0xf4d4b551L,
+ 0x83d385c7L,
+ 0x136c9856L,
+ 0x646ba8c0L,
+ 0xfd62f97aL,
+ 0x8a65c9ecL,
+ 0x14015c4fL,
+ 0x63066cd9L,
+ 0xfa0f3d63L,
+ 0x8d080df5L,
+ 0x3b6e20c8L,
+ 0x4c69105eL,
+ 0xd56041e4L,
+ 0xa2677172L,
+ 0x3c03e4d1L,
+ 0x4b04d447L,
+ 0xd20d85fdL,
+ 0xa50ab56bL,
+ 0x35b5a8faL,
+ 0x42b2986cL,
+ 0xdbbbc9d6L,
+ 0xacbcf940L,
+ 0x32d86ce3L,
+ 0x45df5c75L,
+ 0xdcd60dcfL,
+ 0xabd13d59L,
+ 0x26d930acL,
+ 0x51de003aL,
+ 0xc8d75180L,
+ 0xbfd06116L,
+ 0x21b4f4b5L,
+ 0x56b3c423L,
+ 0xcfba9599L,
+ 0xb8bda50fL,
+ 0x2802b89eL,
+ 0x5f058808L,
+ 0xc60cd9b2L,
+ 0xb10be924L,
+ 0x2f6f7c87L,
+ 0x58684c11L,
+ 0xc1611dabL,
+ 0xb6662d3dL,
+ 0x76dc4190L,
+ 0x01db7106L,
+ 0x98d220bcL,
+ 0xefd5102aL,
+ 0x71b18589L,
+ 0x06b6b51fL,
+ 0x9fbfe4a5L,
+ 0xe8b8d433L,
+ 0x7807c9a2L,
+ 0x0f00f934L,
+ 0x9609a88eL,
+ 0xe10e9818L,
+ 0x7f6a0dbbL,
+ 0x086d3d2dL,
+ 0x91646c97L,
+ 0xe6635c01L,
+ 0x6b6b51f4L,
+ 0x1c6c6162L,
+ 0x856530d8L,
+ 0xf262004eL,
+ 0x6c0695edL,
+ 0x1b01a57bL,
+ 0x8208f4c1L,
+ 0xf50fc457L,
+ 0x65b0d9c6L,
+ 0x12b7e950L,
+ 0x8bbeb8eaL,
+ 0xfcb9887cL,
+ 0x62dd1ddfL,
+ 0x15da2d49L,
+ 0x8cd37cf3L,
+ 0xfbd44c65L,
+ 0x4db26158L,
+ 0x3ab551ceL,
+ 0xa3bc0074L,
+ 0xd4bb30e2L,
+ 0x4adfa541L,
+ 0x3dd895d7L,
+ 0xa4d1c46dL,
+ 0xd3d6f4fbL,
+ 0x4369e96aL,
+ 0x346ed9fcL,
+ 0xad678846L,
+ 0xda60b8d0L,
+ 0x44042d73L,
+ 0x33031de5L,
+ 0xaa0a4c5fL,
+ 0xdd0d7cc9L,
+ 0x5005713cL,
+ 0x270241aaL,
+ 0xbe0b1010L,
+ 0xc90c2086L,
+ 0x5768b525L,
+ 0x206f85b3L,
+ 0xb966d409L,
+ 0xce61e49fL,
+ 0x5edef90eL,
+ 0x29d9c998L,
+ 0xb0d09822L,
+ 0xc7d7a8b4L,
+ 0x59b33d17L,
+ 0x2eb40d81L,
+ 0xb7bd5c3bL,
+ 0xc0ba6cadL,
+ 0xedb88320L,
+ 0x9abfb3b6L,
+ 0x03b6e20cL,
+ 0x74b1d29aL,
+ 0xead54739L,
+ 0x9dd277afL,
+ 0x04db2615L,
+ 0x73dc1683L,
+ 0xe3630b12L,
+ 0x94643b84L,
+ 0x0d6d6a3eL,
+ 0x7a6a5aa8L,
+ 0xe40ecf0bL,
+ 0x9309ff9dL,
+ 0x0a00ae27L,
+ 0x7d079eb1L,
+ 0xf00f9344L,
+ 0x8708a3d2L,
+ 0x1e01f268L,
+ 0x6906c2feL,
+ 0xf762575dL,
+ 0x806567cbL,
+ 0x196c3671L,
+ 0x6e6b06e7L,
+ 0xfed41b76L,
+ 0x89d32be0L,
+ 0x10da7a5aL,
+ 0x67dd4accL,
+ 0xf9b9df6fL,
+ 0x8ebeeff9L,
+ 0x17b7be43L,
+ 0x60b08ed5L,
+ 0xd6d6a3e8L,
+ 0xa1d1937eL,
+ 0x38d8c2c4L,
+ 0x4fdff252L,
+ 0xd1bb67f1L,
+ 0xa6bc5767L,
+ 0x3fb506ddL,
+ 0x48b2364bL,
+ 0xd80d2bdaL,
+ 0xaf0a1b4cL,
+ 0x36034af6L,
+ 0x41047a60L,
+ 0xdf60efc3L,
+ 0xa867df55L,
+ 0x316e8eefL,
+ 0x4669be79L,
+ 0xcb61b38cL,
+ 0xbc66831aL,
+ 0x256fd2a0L,
+ 0x5268e236L,
+ 0xcc0c7795L,
+ 0xbb0b4703L,
+ 0x220216b9L,
+ 0x5505262fL,
+ 0xc5ba3bbeL,
+ 0xb2bd0b28L,
+ 0x2bb45a92L,
+ 0x5cb36a04L,
+ 0xc2d7ffa7L,
+ 0xb5d0cf31L,
+ 0x2cd99e8bL,
+ 0x5bdeae1dL,
+ 0x9b64c2b0L,
+ 0xec63f226L,
+ 0x756aa39cL,
+ 0x026d930aL,
+ 0x9c0906a9L,
+ 0xeb0e363fL,
+ 0x72076785L,
+ 0x05005713L,
+ 0x95bf4a82L,
+ 0xe2b87a14L,
+ 0x7bb12baeL,
+ 0x0cb61b38L,
+ 0x92d28e9bL,
+ 0xe5d5be0dL,
+ 0x7cdcefb7L,
+ 0x0bdbdf21L,
+ 0x86d3d2d4L,
+ 0xf1d4e242L,
+ 0x68ddb3f8L,
+ 0x1fda836eL,
+ 0x81be16cdL,
+ 0xf6b9265bL,
+ 0x6fb077e1L,
+ 0x18b74777L,
+ 0x88085ae6L,
+ 0xff0f6a70L,
+ 0x66063bcaL,
+ 0x11010b5cL,
+ 0x8f659effL,
+ 0xf862ae69L,
+ 0x616bffd3L,
+ 0x166ccf45L,
+ 0xa00ae278L,
+ 0xd70dd2eeL,
+ 0x4e048354L,
+ 0x3903b3c2L,
+ 0xa7672661L,
+ 0xd06016f7L,
+ 0x4969474dL,
+ 0x3e6e77dbL,
+ 0xaed16a4aL,
+ 0xd9d65adcL,
+ 0x40df0b66L,
+ 0x37d83bf0L,
+ 0xa9bcae53L,
+ 0xdebb9ec5L,
+ 0x47b2cf7fL,
+ 0x30b5ffe9L,
+ 0xbdbdf21cL,
+ 0xcabac28aL,
+ 0x53b39330L,
+ 0x24b4a3a6L,
+ 0xbad03605L,
+ 0xcdd70693L,
+ 0x54de5729L,
+ 0x23d967bfL,
+ 0xb3667a2eL,
+ 0xc4614ab8L,
+ 0x5d681b02L,
+ 0x2a6f2b94L,
+ 0xb40bbe37L,
+ 0xc30c8ea1L,
+ 0x5a05df1bL,
+ 0x2d02ef8dL
+ };
+static public long crc32(byte[] b, int off, int len) {
+ return crc32(b, off, len, 0);
+}
+/**
+ * Compute the crc Cyclic Redundancy Check, with the polynomial 0xedb88320,
+ * The polynomial is X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0
+ * We take it "backwards" and put the highest-order term in the lowest-order bit.
+ * The X^32 term is "implied"; the LSB is the X^31 term, etc.
+ * The X^0 term (usually shown as "+1") results in the MSB being 1.
+ * so the poly is 0x04c11db7 (used for Ethernet)
+ * The buf will be the Padding, Packet type, and Data fields.
+ * The crc is computed before any encryption.
+ * R =X^n * M rem P M message P polynomial crc R : crc calculated.
+ * T(x) = x^n * M(x) + R(x) property: T rem P = 0
+ */
+static public long crc32(byte[] b, int off, int len, long crc32val) {
+ for (int i = 0; i < len; i++) {
+ crc32val = crc32_tab[(int) ((crc32val ^ b[off + i]) & 0xff)] ^ (crc32val >> 8);
+ }
+
+ return crc32val;
+}
+static public byte[] lengthEncode(byte[] b, int off, int len) throws IOException {
+ byte[] result = new byte[len + 4];
+ writeInt(len, result, 0);
+ System.arraycopy(b, off, result, 4, len);
+ return result;
+}
+static public byte[] readMpInt(InputStream is) throws IOException {
+ int a = (byte) is.read();
+ int b = (byte) is.read();
+
+ if(a == -1 || b == -1){
+ throw new IOException(Policy.bind("stream"));//$NON-NLS-1$
+ }
+
+ int bits = (a << 8) + b;
+ int bytes = (bits + 7) / 8;
+
+ byte[] result = new byte[bytes];
+
+ readFully(is, result);
+
+ return result;
+}
+public static byte[] md5(byte[] b) {
+ if (md5 == null) {
+ try {
+ md5 = MessageDigest.getInstance("MD5");//$NON-NLS-1$
+ } catch (NoSuchAlgorithmException e) {
+ }
+ }
+
+ return md5.digest(b);
+}
+public static byte[] md5(String s) {
+ return md5(s.getBytes());
+}
+public static void readFully(InputStream is, byte[] b) throws IOException {
+ readFully(is, b, 0, b.length);
+}
+public static void readFully(InputStream is, byte[] b, int off, int len) throws IOException {
+ int bytesRead = 0;
+ int totalBytesRead = 0;
+
+ while (totalBytesRead < len) {
+ bytesRead = is.read(b, totalBytesRead + off, len - totalBytesRead);
+
+ if (bytesRead == -1) {
+ throw new IOException(Policy.bind("stream"));//$NON-NLS-1$
+ }
+
+ totalBytesRead += bytesRead;
+ }
+}
+public static int readInt(byte[] arr, int off) throws IOException {
+ int a = arr[off] & 0xff;
+ int b = arr[off + 1] & 0xff;
+ int c = arr[off + 2] & 0xff;
+ int d = arr[off + 3] & 0xff;
+
+ return (a << 24) + (b << 16) + (c << 8) + d;
+}
+public static int readInt(InputStream is) throws IOException {
+ int a = is.read();
+ int b = is.read();
+ int c = is.read();
+ int d = is.read();
+
+ if (a == -1 || b == -1 || c == -1 || d == -1) {
+ throw new IOException(Policy.bind("stream"));//$NON-NLS-1$
+ }
+
+ return (a << 24) + (b << 16) + (c << 8) + d;
+}
+public static void skipFully(InputStream is, long n) throws IOException {
+ while (n != 0) {
+ int b = is.read();
+
+ if (b == -1) {
+ if (n > 0) {
+ throw new IOException(Policy.bind("stream"));//$NON-NLS-1$
+ }
+
+ return;
+ }
+
+ --n;
+ }
+}
+public static void writeInt(int i, byte[] b, int off) {
+ b[off] = (byte) ((i >> 24) & 0xff);
+ b[off + 1] = (byte) ((i >> 16) & 0xff);
+ b[off + 2] = (byte) ((i >> 8) & 0xff);
+ b[off + 3] = (byte) (i & 0xff);
+}
+static public void xor(byte[] src_a, int off_a, byte[] src_b, int off_b, byte[] dst, int dst_off, int len) {
+ for(int i = 0; i < len; ++i){
+ dst[i + dst_off] = (byte) (src_a[i + off_a] ^ src_b[i + off_b]);
+ }
+}
+static public void random(byte[] b, int off, int len, boolean allowZeroBytes) {
+ if (random == null) {
+ try {
+ random = SecureRandom.getInstance("SHA1PRNG");//$NON-NLS-1$
+ } catch (NoSuchAlgorithmException e) {
+ }
+ }
+
+ for(int i = off; i < off + len; ++i){
+ do {
+ b[i] = (byte) random.nextInt();
+ } while(!allowZeroBytes && b[i] == 0);
+ }
+}
+static public byte[] encryptRSAPkcs1(byte[] data, byte[] public_key_exponent, byte[] public_key_modulus) {
+ byte[] block;
+
+ int offset = 0;
+ block = new byte[public_key_modulus.length];
+ block[offset++] = 0;
+ block[offset++] = 2;
+
+ Misc.random(block, offset, block.length - data.length - 3, false);
+ offset += block.length - data.length - 3;
+
+ block[offset++] = 0;
+
+ for (int i = 0; i < data.length; i++){
+ block[offset++] = data[i];
+ }
+
+ BigInteger m, e, message;
+ byte[] messageByte;
+
+ m = new BigInteger(1, public_key_modulus);
+ e = new BigInteger(1, public_key_exponent);
+ message = new BigInteger(1, block);
+ message = message.modPow(e, m);
+
+ byte[] messageByteTemp = message.toByteArray();
+ messageByte = new byte[public_key_modulus.length];
+
+ int tempOffset = 0;
+ while (messageByteTemp[tempOffset] == 0){
+ tempOffset++;
+ }
+
+ for (int i = messageByte.length - messageByteTemp.length + tempOffset; i < messageByte.length; i++){
+ messageByte[i] = messageByteTemp[tempOffset++];
+ }
+
+ return messageByte;
+}
+}
diff --git a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Policy.java b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Policy.java
new file mode 100644
index 000000000..efa38c8fe
--- /dev/null
+++ b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Policy.java
@@ -0,0 +1,50 @@
+package org.eclipse.team.internal.ccvs.ssh;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2002.
+ * All Rights Reserved.
+ */
+
+import java.text.MessageFormat;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+public class Policy {
+ protected static ResourceBundle bundle = null;
+
+ /**
+ * Creates a NLS catalog for the given locale.
+ */
+ public static void localize(String bundleName) {
+ bundle = ResourceBundle.getBundle(bundleName);
+ }
+
+ /**
+ * Gets a string from the resource bundle. We don't want to crash because of a missing String.
+ * Returns the key if not found.
+ */
+ public static String bind(String key) {
+ try {
+ return bundle.getString(key);
+ } catch (MissingResourceException e) {
+ return key;
+ } catch (NullPointerException e) {
+ return "!" + key + "!"; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * Gets a string from the resource bundle and binds it with the given arguments. If the key is
+ * not found, return the key.
+ */
+ public static String bind(String key, Object[] args) {
+ try {
+ return MessageFormat.format(bind(key), args);
+ } catch (MissingResourceException e) {
+ return key;
+ } catch (NullPointerException e) {
+ return "!" + key + "!"; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHMethod.java b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHMethod.java
index 64908f8eb..8ef89fd3f 100644
--- a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHMethod.java
+++ b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHMethod.java
@@ -1,26 +1,26 @@
-package org.eclipse.team.internal.ccvs.ssh;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2001.
- * All Rights Reserved.
- */
-import org.eclipse.team.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.ccvs.core.IConnectionMethod;
-import org.eclipse.team.ccvs.core.IServerConnection;
-
-public class SSHMethod implements IConnectionMethod {
- /**
- * @see IConnectionMethod#getName
- */
- public String getName() {
- return "extssh";
- }
-
- /**
- * @see IConnectionMethod#createConnection
- */
- public IServerConnection createConnection(ICVSRepositoryLocation repositoryRoot, String password) {
- return new SSHServerConnection(repositoryRoot, password);
- }
-
-}
+package org.eclipse.team.internal.ccvs.ssh;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved.
+ */
+import org.eclipse.team.ccvs.core.ICVSRepositoryLocation;
+import org.eclipse.team.ccvs.core.IConnectionMethod;
+import org.eclipse.team.ccvs.core.IServerConnection;
+
+public class SSHMethod implements IConnectionMethod {
+ /**
+ * @see IConnectionMethod#getName
+ */
+ public String getName() {
+ return "extssh";//$NON-NLS-1$
+ }
+
+ /**
+ * @see IConnectionMethod#createConnection
+ */
+ public IServerConnection createConnection(ICVSRepositoryLocation repositoryRoot, String password) {
+ return new SSHServerConnection(repositoryRoot, password);
+ }
+
+}
diff --git a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHPlugin.java b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHPlugin.java
index 7cf1eec15..762ababf1 100644
--- a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHPlugin.java
+++ b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHPlugin.java
@@ -1 +1 @@
-package org.eclipse.team.internal.ccvs.ssh; /* * (c) Copyright IBM Corp. 2000, 2001. * All Rights Reserved. */ import org.eclipse.core.runtime.IPluginDescriptor; import org.eclipse.core.runtime.Plugin; import java.util.ResourceBundle; import java.util.MissingResourceException; import java.text.MessageFormat; public class SSHPlugin extends Plugin { private static ResourceBundle resourceBundle; public static String ID = "org.eclipse.team.cvs.ssh"; /** * Constructor for SSHPlugin */ public SSHPlugin(IPluginDescriptor d) { super(d); try { resourceBundle = ResourceBundle.getBundle("org.eclipse.team.internal.ccvs.ssh.SSHPluginResources"); } catch (MissingResourceException e) { resourceBundle = null; } } /** * Gets a string from the resource bundle. * We don't want to crash because of a missing String. * Returns the key if not found. */ public static String getResourceString(String key) { try { return resourceBundle.getString(key); } catch (MissingResourceException e) { return key; } catch (NullPointerException e) { return "!" + key + "!"; } } /** * Gets a string from the resource bundle and binds it * with the given arguments. If the key is not found, * return the key. */ public static String getResourceString(String key, Object[] args) { try { return MessageFormat.format(getResourceString(key), args); } catch (MissingResourceException e) { return key; } catch (NullPointerException e) { return "!" + key + "!"; } } } \ No newline at end of file
+package org.eclipse.team.internal.ccvs.ssh; /* * (c) Copyright IBM Corp. 2000, 2002. * All Rights Reserved. */ import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPluginDescriptor; import org.eclipse.core.runtime.Plugin; public class SSHPlugin extends Plugin { public static String ID = "org.eclipse.team.cvs.ssh";//$NON-NLS-1$ /** * Constructor for SSHPlugin */ public SSHPlugin(IPluginDescriptor d) { super(d); } /** * @see Plugin#startup() */ public void startup() throws CoreException { super.startup(); Policy.localize("org.eclipse.team.internal.ccvs.ssh.messages"); //$NON-NLS-1$ } } \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHServerConnection.java b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHServerConnection.java
index 28fd43708..6a568bdaa 100644
--- a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHServerConnection.java
+++ b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHServerConnection.java
@@ -16,7 +16,7 @@ import org.eclipse.team.internal.ccvs.core.connection.CVSAuthenticationException
public class SSHServerConnection implements IServerConnection {
// command to start remote cvs in server mode
- private static final String INVOKE_SVR_CMD = "cvs server";
+ private static final String INVOKE_SVR_CMD = "cvs server"; //$NON-NLS-1$
private static final int DEFAULT_PORT = 22;
@@ -64,7 +64,7 @@ public class SSHServerConnection implements IServerConnection {
* @see Connection.open()
*/
public void open(IProgressMonitor monitor) throws IOException, CVSAuthenticationException {
- monitor.subTask("Authenticating over extssh");
+ monitor.subTask(Policy.bind("SSHServerConnection.authenticating")); //$NON-NLS-1$
monitor.worked(1);
String hostname = location.getHost();
String username = location.getUsername();
diff --git a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/ServerPacket.java b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/ServerPacket.java
index c3e7b1022..7fcc895b2 100644
--- a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/ServerPacket.java
+++ b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/ServerPacket.java
@@ -1,158 +1,158 @@
-package org.eclipse.team.internal.ccvs.ssh;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2001.
- * All Rights Reserved.
- */
-import java.io.FilterInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-class ServerPacket extends Packet {
- private PacketInputStream pis = null;
-
- private static class PacketInputStream extends FilterInputStream {
- private static int MAX_BUFFER_SIZE = 1024;
-
- private byte[] buffer = new byte[MAX_BUFFER_SIZE];
- private int bufpos = 0;
- private int buflen = 0;
- private int bufrem = 0;
-
- private long remaining = 0;
- private Cipher cipher = null;
-
- private long crc = 0;
- private boolean closed = false;
-
- public PacketInputStream(InputStream in, long length, Cipher cipher) {
- super(in);
-
- this.remaining = length;
- this.cipher = cipher;
- }
-
- public int available() throws IOException {
- if (closed) {
- throw new IOException(SSHPlugin.getResourceString("closed"));
- }
-
- return (int) Math.min(remaining - 4, Integer.MAX_VALUE);
- }
-
- public void close() throws IOException {
- close(true);
- }
-
- public void close(boolean doCrcCheck) throws IOException {
- if (!closed) {
- try {
- long toRead = doCrcCheck ? remaining - 4 : remaining;
-
- try {
- Misc.skipFully(this, toRead);
- } catch(IOException e) {
- // we tried our best, keep going
- }
-
- if(doCrcCheck) {
- if ((int) crc != Misc.readInt(buffer, bufpos)) {
- throw new IOException(SSHPlugin.getResourceString("ServerPacket.crc"));
- }
- }
- } finally {
- closed = true;
- }
- }
- }
-
- private void fill() throws IOException {
- if (bufrem > 0) {
- System.arraycopy(buffer, bufpos, buffer, 0, bufrem);
- }
-
- int totalBytesRead = bufrem;
- int read = 0;
- int toRead = (int)Math.min(remaining - totalBytesRead, MAX_BUFFER_SIZE - totalBytesRead);
-
- while (toRead > 0) {
- read = in.read(buffer, totalBytesRead, toRead);
-
- if (read == -1) {
- throw new IOException(SSHPlugin.getResourceString("stream"));
- }
-
- totalBytesRead += read;
- toRead -= read;
- }
-
- bufpos = 0;
-
- buflen = (totalBytesRead / 8) * 8;
- bufrem = totalBytesRead - buflen;
-
- if (cipher != null) {
- cipher.decipher(buffer, 0, buffer, 0, buflen);
- }
-
- crc = Misc.crc32(buffer, 0, buflen == remaining ? buflen - 4 : buflen, crc);
- }
-
- public int read() throws IOException {
- if (closed) {
- throw new IOException(SSHPlugin.getResourceString("closed"));
- }
-
- if (remaining - 4 == 0) {
- return -1;
- }
-
- if (bufpos == buflen) {
- fill();
- }
-
- int b = buffer[bufpos] & 0xff;
-
- ++bufpos;
- --remaining;
-
- return b;
- }
-
- public int read(byte b[], int off, int len) throws IOException {
- if (closed) {
- throw new IOException(SSHPlugin.getResourceString("closed"));
- }
-
- if (remaining - 4 == 0) {
- return -1;
- }
-
- if (bufpos == buflen) {
- fill();
- }
-
- len = (int) Math.min(len, (buflen == remaining + bufpos ? buflen - 4 : buflen) - bufpos);
-
- System.arraycopy(buffer, bufpos, b, off, len);
-
- bufpos += len;
- remaining -= len;
-
- return len;
- }
- }
-public ServerPacket(InputStream is, Cipher cipher) throws java.io.IOException {
- packetLength = Misc.readInt(is);
- paddingLength = 8 - (packetLength % 8);
- pis = new PacketInputStream(is, packetLength + paddingLength, cipher);
- Misc.skipFully(pis, paddingLength);
- packetType = (byte) pis.read();
-}
-public void close(boolean doCrcCheck) throws IOException {
- pis.close(doCrcCheck);
-}
-public InputStream getInputStream() {
- return pis;
-}
-}
+package org.eclipse.team.internal.ccvs.ssh;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved.
+ */
+import java.io.FilterInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+class ServerPacket extends Packet {
+ private PacketInputStream pis = null;
+
+ private static class PacketInputStream extends FilterInputStream {
+ private static int MAX_BUFFER_SIZE = 1024;
+
+ private byte[] buffer = new byte[MAX_BUFFER_SIZE];
+ private int bufpos = 0;
+ private int buflen = 0;
+ private int bufrem = 0;
+
+ private long remaining = 0;
+ private Cipher cipher = null;
+
+ private long crc = 0;
+ private boolean closed = false;
+
+ public PacketInputStream(InputStream in, long length, Cipher cipher) {
+ super(in);
+
+ this.remaining = length;
+ this.cipher = cipher;
+ }
+
+ public int available() throws IOException {
+ if (closed) {
+ throw new IOException(Policy.bind("closed"));//$NON-NLS-1$
+ }
+
+ return (int) Math.min(remaining - 4, Integer.MAX_VALUE);
+ }
+
+ public void close() throws IOException {
+ close(true);
+ }
+
+ public void close(boolean doCrcCheck) throws IOException {
+ if (!closed) {
+ try {
+ long toRead = doCrcCheck ? remaining - 4 : remaining;
+
+ try {
+ Misc.skipFully(this, toRead);
+ } catch(IOException e) {
+ // we tried our best, keep going
+ }
+
+ if(doCrcCheck) {
+ if ((int) crc != Misc.readInt(buffer, bufpos)) {
+ throw new IOException(Policy.bind("ServerPacket.crc"));//$NON-NLS-1$
+ }
+ }
+ } finally {
+ closed = true;
+ }
+ }
+ }
+
+ private void fill() throws IOException {
+ if (bufrem > 0) {
+ System.arraycopy(buffer, bufpos, buffer, 0, bufrem);
+ }
+
+ int totalBytesRead = bufrem;
+ int read = 0;
+ int toRead = (int)Math.min(remaining - totalBytesRead, MAX_BUFFER_SIZE - totalBytesRead);
+
+ while (toRead > 0) {
+ read = in.read(buffer, totalBytesRead, toRead);
+
+ if (read == -1) {
+ throw new IOException(Policy.bind("stream"));//$NON-NLS-1$
+ }
+
+ totalBytesRead += read;
+ toRead -= read;
+ }
+
+ bufpos = 0;
+
+ buflen = (totalBytesRead / 8) * 8;
+ bufrem = totalBytesRead - buflen;
+
+ if (cipher != null) {
+ cipher.decipher(buffer, 0, buffer, 0, buflen);
+ }
+
+ crc = Misc.crc32(buffer, 0, buflen == remaining ? buflen - 4 : buflen, crc);
+ }
+
+ public int read() throws IOException {
+ if (closed) {
+ throw new IOException(Policy.bind("closed"));//$NON-NLS-1$
+ }
+
+ if (remaining - 4 == 0) {
+ return -1;
+ }
+
+ if (bufpos == buflen) {
+ fill();
+ }
+
+ int b = buffer[bufpos] & 0xff;
+
+ ++bufpos;
+ --remaining;
+
+ return b;
+ }
+
+ public int read(byte b[], int off, int len) throws IOException {
+ if (closed) {
+ throw new IOException(Policy.bind("closed"));//$NON-NLS-1$
+ }
+
+ if (remaining - 4 == 0) {
+ return -1;
+ }
+
+ if (bufpos == buflen) {
+ fill();
+ }
+
+ len = (int) Math.min(len, (buflen == remaining + bufpos ? buflen - 4 : buflen) - bufpos);
+
+ System.arraycopy(buffer, bufpos, b, off, len);
+
+ bufpos += len;
+ remaining -= len;
+
+ return len;
+ }
+ }
+public ServerPacket(InputStream is, Cipher cipher) throws java.io.IOException {
+ packetLength = Misc.readInt(is);
+ paddingLength = 8 - (packetLength % 8);
+ pis = new PacketInputStream(is, packetLength + paddingLength, cipher);
+ Misc.skipFully(pis, paddingLength);
+ packetType = (byte) pis.read();
+}
+public void close(boolean doCrcCheck) throws IOException {
+ pis.close(doCrcCheck);
+}
+public InputStream getInputStream() {
+ return pis;
+}
+}
diff --git a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHPluginResources.properties b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/messages.properties
index 5e05ca9cc..9ced29bfc 100644
--- a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHPluginResources.properties
+++ b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/messages.properties
@@ -18,3 +18,5 @@ Client.socket=Cannot connect to host: {0}
ServerPacket.crc=crc error
+SSHServerConnection.authenticating=Authenticating over extssh
+

Back to the top