mirror of
https://github.com/hierynomus/sshj.git
synced 2025-12-08 00:00:54 +03:00
Fix warnings
This commit is contained in:
@@ -23,6 +23,7 @@ import java.io.IOException;
|
|||||||
* Thrown when a key file could not be decrypted correctly, e.g. if its checkInts differed in the case of an OpenSSH
|
* Thrown when a key file could not be decrypted correctly, e.g. if its checkInts differed in the case of an OpenSSH
|
||||||
* key file.
|
* key file.
|
||||||
*/
|
*/
|
||||||
|
@SuppressWarnings("serial")
|
||||||
public class KeyDecryptionFailedException extends IOException {
|
public class KeyDecryptionFailedException extends IOException {
|
||||||
|
|
||||||
public static final String MESSAGE = "Decryption of the key failed. A supplied passphrase may be incorrect.";
|
public static final String MESSAGE = "Decryption of the key failed. A supplied passphrase may be incorrect.";
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import java.util.Arrays;
|
|||||||
* Our own extension of the EdDSAPublicKey that comes from ECC-25519, as that class does not implement equality.
|
* Our own extension of the EdDSAPublicKey that comes from ECC-25519, as that class does not implement equality.
|
||||||
* The code uses the equality of the keys as an indicator whether they're the same during host key verification.
|
* The code uses the equality of the keys as an indicator whether they're the same during host key verification.
|
||||||
*/
|
*/
|
||||||
|
@SuppressWarnings("serial")
|
||||||
public class Ed25519PublicKey extends EdDSAPublicKey {
|
public class Ed25519PublicKey extends EdDSAPublicKey {
|
||||||
|
|
||||||
public Ed25519PublicKey(EdDSAPublicKeySpec spec) {
|
public Ed25519PublicKey(EdDSAPublicKeySpec spec) {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package net.schmizz.sshj.common;
|
package net.schmizz.sshj.common;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>Encodes and decodes to and from Base64 notation.</p>
|
* <p>Encodes and decodes to and from Base64 notation.</p>
|
||||||
* <p>Homepage: <a href="http://iharder.net/base64">http://iharder.net/base64</a>.</p>
|
* <p>Homepage: <a href="http://iharder.net/base64">http://iharder.net/base64</a>.</p>
|
||||||
@@ -1359,7 +1360,7 @@ public class Base64
|
|||||||
@Override
|
@Override
|
||||||
public Class<?> resolveClass(java.io.ObjectStreamClass streamClass)
|
public Class<?> resolveClass(java.io.ObjectStreamClass streamClass)
|
||||||
throws java.io.IOException, ClassNotFoundException {
|
throws java.io.IOException, ClassNotFoundException {
|
||||||
Class c = Class.forName(streamClass.getName(), false, loader);
|
Class<?> c = Class.forName(streamClass.getName(), false, loader);
|
||||||
if( c == null ){
|
if( c == null ){
|
||||||
return super.resolveClass(streamClass);
|
return super.resolveClass(streamClass);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import java.security.GeneralSecurityException;
|
|||||||
import java.security.PublicKey;
|
import java.security.PublicKey;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
@SuppressWarnings("serial")
|
||||||
public class Buffer<T extends Buffer<T>> {
|
public class Buffer<T extends Buffer<T>> {
|
||||||
|
|
||||||
public static class BufferException
|
public static class BufferException
|
||||||
@@ -55,7 +56,7 @@ public class Buffer<T extends Buffer<T>> {
|
|||||||
public static final int DEFAULT_SIZE = 256;
|
public static final int DEFAULT_SIZE = 256;
|
||||||
|
|
||||||
/** The maximum valid size of buffer (i.e. biggest power of two that can be represented as an int - 2^30) */
|
/** The maximum valid size of buffer (i.e. biggest power of two that can be represented as an int - 2^30) */
|
||||||
public static final int MAX_SIZE = (1 << 30);
|
public static final int MAX_SIZE = (1 << 30);
|
||||||
|
|
||||||
/** Maximum size of a uint64 */
|
/** Maximum size of a uint64 */
|
||||||
public static final BigInteger MAX_UINT64_VALUE = BigInteger.ONE
|
public static final BigInteger MAX_UINT64_VALUE = BigInteger.ONE
|
||||||
@@ -66,7 +67,7 @@ public class Buffer<T extends Buffer<T>> {
|
|||||||
int j = 1;
|
int j = 1;
|
||||||
while (j < i) {
|
while (j < i) {
|
||||||
j <<= 1;
|
j <<= 1;
|
||||||
if (j <= 0) throw new IllegalArgumentException("Cannot get next power of 2; "+i+" is too large");
|
if (j <= 0) throw new IllegalArgumentException("Cannot get next power of 2; "+i+" is too large");
|
||||||
}
|
}
|
||||||
return j;
|
return j;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ import java.io.IOException;
|
|||||||
* Most exceptions in the {@code net.schmizz.sshj} package are instances of this class. An {@link SSHException} is
|
* Most exceptions in the {@code net.schmizz.sshj} package are instances of this class. An {@link SSHException} is
|
||||||
* itself an {@link IOException} and can be caught like that if this level of granularity is not desired.
|
* itself an {@link IOException} and can be caught like that if this level of granularity is not desired.
|
||||||
*/
|
*/
|
||||||
|
@SuppressWarnings("serial")
|
||||||
public class SSHException
|
public class SSHException
|
||||||
extends IOException {
|
extends IOException {
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
package net.schmizz.sshj.common;
|
package net.schmizz.sshj.common;
|
||||||
|
|
||||||
/** Represents unrecoverable exceptions in the {@code net.schmizz.sshj} package. */
|
/** Represents unrecoverable exceptions in the {@code net.schmizz.sshj} package. */
|
||||||
|
@SuppressWarnings("serial")
|
||||||
public class SSHRuntimeException
|
public class SSHRuntimeException
|
||||||
extends RuntimeException {
|
extends RuntimeException {
|
||||||
|
|
||||||
|
|||||||
@@ -36,6 +36,8 @@ import javax.crypto.NoSuchPaddingException;
|
|||||||
|
|
||||||
import static java.lang.String.format;
|
import static java.lang.String.format;
|
||||||
|
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Static utility method relating to security facilities.
|
* Static utility method relating to security facilities.
|
||||||
*/
|
*/
|
||||||
@@ -53,8 +55,8 @@ public class SecurityUtils {
|
|||||||
public static final String SPONGY_CASTLE = "SC";
|
public static final String SPONGY_CASTLE = "SC";
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Security provider identifier. null = default JCE
|
* Security provider identifier. null = default JCE
|
||||||
*/
|
*/
|
||||||
private static String securityProvider = null;
|
private static String securityProvider = null;
|
||||||
|
|
||||||
// relate to BC registration (or SpongyCastle on Android)
|
// relate to BC registration (or SpongyCastle on Android)
|
||||||
@@ -65,13 +67,17 @@ public class SecurityUtils {
|
|||||||
Provider provider = null;
|
Provider provider = null;
|
||||||
try {
|
try {
|
||||||
Class<?> name = Class.forName(providerClassName);
|
Class<?> name = Class.forName(providerClassName);
|
||||||
provider = (Provider) name.newInstance();
|
provider = (Provider) name.getDeclaredConstructor().newInstance();
|
||||||
} catch (ClassNotFoundException e) {
|
} catch (ClassNotFoundException e) {
|
||||||
LOG.info("Security Provider class '{}' not found", providerClassName);
|
LOG.info("Security Provider class '{}' not found", providerClassName);
|
||||||
} catch (InstantiationException e) {
|
} catch (InstantiationException e) {
|
||||||
LOG.info("Security Provider class '{}' could not be created", providerClassName);
|
LOG.info("Security Provider class '{}' could not be created", providerClassName);
|
||||||
} catch (IllegalAccessException e) {
|
} catch (IllegalAccessException e) {
|
||||||
LOG.info("Security Provider class '{}' could not be accessed", providerClassName);
|
LOG.info("Security Provider class '{}' could not be accessed", providerClassName);
|
||||||
|
} catch (InvocationTargetException e) {
|
||||||
|
LOG.info("Security Provider class '{}' could not be created", providerClassName);
|
||||||
|
} catch (NoSuchMethodException e) {
|
||||||
|
LOG.info("Security Provider class '{}' does not have a no-args constructor", providerClassName);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (provider == null) {
|
if (provider == null) {
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import com.hierynomus.asn1.types.ASN1Object;
|
|||||||
import com.hierynomus.asn1.types.constructed.ASN1Sequence;
|
import com.hierynomus.asn1.types.constructed.ASN1Sequence;
|
||||||
import com.hierynomus.asn1.types.primitive.ASN1Integer;
|
import com.hierynomus.asn1.types.primitive.ASN1Integer;
|
||||||
import net.schmizz.sshj.common.Buffer;
|
import net.schmizz.sshj.common.Buffer;
|
||||||
|
import net.schmizz.sshj.common.IOUtils;
|
||||||
import net.schmizz.sshj.common.KeyType;
|
import net.schmizz.sshj.common.KeyType;
|
||||||
import net.schmizz.sshj.common.SSHRuntimeException;
|
import net.schmizz.sshj.common.SSHRuntimeException;
|
||||||
|
|
||||||
@@ -91,16 +92,18 @@ public class SignatureECDSA extends AbstractSignature {
|
|||||||
public byte[] encode(byte[] sig) {
|
public byte[] encode(byte[] sig) {
|
||||||
ByteArrayInputStream bais = new ByteArrayInputStream(sig);
|
ByteArrayInputStream bais = new ByteArrayInputStream(sig);
|
||||||
com.hierynomus.asn1.ASN1InputStream asn1InputStream = new com.hierynomus.asn1.ASN1InputStream(new DERDecoder(), bais);
|
com.hierynomus.asn1.ASN1InputStream asn1InputStream = new com.hierynomus.asn1.ASN1InputStream(new DERDecoder(), bais);
|
||||||
|
try {
|
||||||
|
ASN1Sequence sequence = asn1InputStream.readObject();
|
||||||
|
ASN1Integer r = (ASN1Integer) sequence.get(0);
|
||||||
|
ASN1Integer s = (ASN1Integer) sequence.get(1);
|
||||||
|
Buffer.PlainBuffer buf = new Buffer.PlainBuffer();
|
||||||
|
buf.putMPInt(r.getValue());
|
||||||
|
buf.putMPInt(s.getValue());
|
||||||
|
|
||||||
ASN1Sequence sequence = asn1InputStream.readObject();
|
return buf.getCompactData();
|
||||||
ASN1Integer r = (ASN1Integer) sequence.get(0);
|
} finally {
|
||||||
ASN1Integer s = (ASN1Integer) sequence.get(1);
|
IOUtils.closeQuietly(asn1InputStream, bais);
|
||||||
|
}
|
||||||
Buffer.PlainBuffer buf = new Buffer.PlainBuffer();
|
|
||||||
buf.putMPInt(r.getValue());
|
|
||||||
buf.putMPInt(s.getValue());
|
|
||||||
|
|
||||||
return buf.getCompactData();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -123,16 +126,19 @@ public class SignatureECDSA extends AbstractSignature {
|
|||||||
BigInteger r = sigbuf.readMPInt();
|
BigInteger r = sigbuf.readMPInt();
|
||||||
BigInteger s = sigbuf.readMPInt();
|
BigInteger s = sigbuf.readMPInt();
|
||||||
|
|
||||||
|
|
||||||
List<ASN1Object> vector = new ArrayList<ASN1Object>();
|
List<ASN1Object> vector = new ArrayList<ASN1Object>();
|
||||||
vector.add(new ASN1Integer(r));
|
vector.add(new ASN1Integer(r));
|
||||||
vector.add(new ASN1Integer(s));
|
vector.add(new ASN1Integer(s));
|
||||||
|
|
||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
com.hierynomus.asn1.ASN1OutputStream asn1OutputStream = new com.hierynomus.asn1.ASN1OutputStream(new DEREncoder(), baos);
|
com.hierynomus.asn1.ASN1OutputStream asn1OutputStream = new com.hierynomus.asn1.ASN1OutputStream(new DEREncoder(), baos);
|
||||||
|
try {
|
||||||
asn1OutputStream.writeObject(new ASN1Sequence(vector));
|
asn1OutputStream.writeObject(new ASN1Sequence(vector));
|
||||||
asn1OutputStream.flush();
|
asn1OutputStream.flush();
|
||||||
|
} finally {
|
||||||
|
IOUtils.closeQuietly(asn1OutputStream);
|
||||||
|
}
|
||||||
return baos.toByteArray();
|
return baos.toByteArray();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,8 +29,7 @@ import java.security.GeneralSecurityException;
|
|||||||
* Base class for DHG key exchange algorithms. Implementations will only have to configure the required data on the
|
* Base class for DHG key exchange algorithms. Implementations will only have to configure the required data on the
|
||||||
* {@link DH} class in the
|
* {@link DH} class in the
|
||||||
*/
|
*/
|
||||||
public abstract class AbstractDHG extends AbstractDH
|
public abstract class AbstractDHG extends AbstractDH {
|
||||||
implements KeyExchange {
|
|
||||||
|
|
||||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||||
|
|
||||||
|
|||||||
@@ -57,11 +57,12 @@ public abstract class AbstractDHGex extends AbstractDH {
|
|||||||
return parseGexGroup(buffer);
|
return parseGexGroup(buffer);
|
||||||
case KEX_DH_GEX_REPLY:
|
case KEX_DH_GEX_REPLY:
|
||||||
return parseGexReply(buffer);
|
return parseGexReply(buffer);
|
||||||
|
default:
|
||||||
|
throw new TransportException("Unexpected message " + msg);
|
||||||
}
|
}
|
||||||
} catch (Buffer.BufferException be) {
|
} catch (Buffer.BufferException be) {
|
||||||
throw new TransportException(be);
|
throw new TransportException(be);
|
||||||
}
|
}
|
||||||
throw new TransportException("Unexpected message " + msg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean parseGexReply(SSHPacket buffer) throws Buffer.BufferException, GeneralSecurityException, TransportException {
|
private boolean parseGexReply(SSHPacket buffer) throws Buffer.BufferException, GeneralSecurityException, TransportException {
|
||||||
|
|||||||
@@ -16,17 +16,14 @@
|
|||||||
package com.hierynomus.sshj.transport;
|
package com.hierynomus.sshj.transport;
|
||||||
|
|
||||||
import com.hierynomus.sshj.test.SshFixture;
|
import com.hierynomus.sshj.test.SshFixture;
|
||||||
import net.schmizz.sshj.DefaultConfig;
|
|
||||||
import net.schmizz.sshj.SSHClient;
|
import net.schmizz.sshj.SSHClient;
|
||||||
import net.schmizz.sshj.common.DisconnectReason;
|
import net.schmizz.sshj.common.DisconnectReason;
|
||||||
import net.schmizz.sshj.connection.channel.direct.Session;
|
import net.schmizz.sshj.connection.channel.direct.Session;
|
||||||
import net.schmizz.sshj.transport.DisconnectListener;
|
import net.schmizz.sshj.transport.DisconnectListener;
|
||||||
import net.schmizz.sshj.transport.TransportException;
|
import net.schmizz.sshj.transport.TransportException;
|
||||||
import net.schmizz.sshj.transport.verification.PromiscuousVerifier;
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.experimental.theories.suppliers.TestedOn;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|||||||
@@ -26,8 +26,6 @@ import org.junit.experimental.theories.Theories;
|
|||||||
import org.junit.experimental.theories.Theory;
|
import org.junit.experimental.theories.Theory;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.security.Security;
|
import java.security.Security;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ import com.hierynomus.sshj.test.BaseAlgorithmTest;
|
|||||||
import net.schmizz.sshj.Config;
|
import net.schmizz.sshj.Config;
|
||||||
import net.schmizz.sshj.DefaultConfig;
|
import net.schmizz.sshj.DefaultConfig;
|
||||||
import net.schmizz.sshj.common.Factory;
|
import net.schmizz.sshj.common.Factory;
|
||||||
import net.schmizz.sshj.transport.kex.Curve25519SHA256;
|
|
||||||
import net.schmizz.sshj.transport.kex.DHGexSHA1;
|
import net.schmizz.sshj.transport.kex.DHGexSHA1;
|
||||||
import net.schmizz.sshj.transport.kex.DHGexSHA256;
|
import net.schmizz.sshj.transport.kex.DHGexSHA256;
|
||||||
import net.schmizz.sshj.transport.kex.ECDHNistP;
|
import net.schmizz.sshj.transport.kex.ECDHNistP;
|
||||||
|
|||||||
@@ -20,8 +20,6 @@ import org.junit.Test;
|
|||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
import static org.junit.Assert.fail;
|
import static org.junit.Assert.fail;
|
||||||
|
|
||||||
public class LoadsOfConnects {
|
public class LoadsOfConnects {
|
||||||
@@ -46,4 +44,4 @@ public class LoadsOfConnects {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,7 +57,11 @@ public class SFTPClientTest {
|
|||||||
@Test
|
@Test
|
||||||
public void doesNotTryToCreateDirectoryTwiceWhenPathHasTrailingSeparator() throws Exception {
|
public void doesNotTryToCreateDirectoryTwiceWhenPathHasTrailingSeparator() throws Exception {
|
||||||
SFTPClient client = new SFTPClient(sftpEngine);
|
SFTPClient client = new SFTPClient(sftpEngine);
|
||||||
client.mkdirs("/folder/directory/");
|
try {
|
||||||
verify(sftpEngine, times(1)).makeDir("/folder/directory");
|
client.mkdirs("/folder/directory/");
|
||||||
|
verify(sftpEngine, times(1)).makeDir("/folder/directory");
|
||||||
|
} finally {
|
||||||
|
client.close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,8 @@ import org.junit.Test;
|
|||||||
|
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
|
|
||||||
|
import com.hierynomus.sshj.transport.mac.Macs;
|
||||||
|
|
||||||
import static org.hamcrest.CoreMatchers.is;
|
import static org.hamcrest.CoreMatchers.is;
|
||||||
import static org.junit.Assert.assertThat;
|
import static org.junit.Assert.assertThat;
|
||||||
import static org.junit.Assert.fail;
|
import static org.junit.Assert.fail;
|
||||||
@@ -33,7 +35,7 @@ public class BaseMacTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testResizeTooBigKeys() {
|
public void testResizeTooBigKeys() {
|
||||||
BaseMAC hmac = new HMACSHA1();
|
BaseMAC hmac = Macs.HMACSHA1().create();
|
||||||
hmac.init((KEY + "foo").getBytes(CHARSET));
|
hmac.init((KEY + "foo").getBytes(CHARSET));
|
||||||
hmac.update(PLAIN_TEXT);
|
hmac.update(PLAIN_TEXT);
|
||||||
assertThat(Hex.toHexString(hmac.doFinal()), is(EXPECTED_HMAC));
|
assertThat(Hex.toHexString(hmac.doFinal()), is(EXPECTED_HMAC));
|
||||||
@@ -82,8 +84,8 @@ public class BaseMacTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private BaseMAC initHmac() {
|
private BaseMAC initHmac() {
|
||||||
BaseMAC hmac = new HMACSHA1();
|
BaseMAC hmac = Macs.HMACSHA1().create();
|
||||||
hmac.init(KEY.getBytes(CHARSET));
|
hmac.init(KEY.getBytes(CHARSET));
|
||||||
return hmac;
|
return hmac;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ import org.junit.Test;
|
|||||||
|
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
|
|
||||||
|
import com.hierynomus.sshj.transport.mac.Macs;
|
||||||
|
|
||||||
import static org.hamcrest.CoreMatchers.is;
|
import static org.hamcrest.CoreMatchers.is;
|
||||||
import static org.junit.Assert.assertThat;
|
import static org.junit.Assert.assertThat;
|
||||||
|
|
||||||
@@ -30,29 +32,29 @@ public class HMACMD596Test {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUpdateWithDoFinal() {
|
public void testUpdateWithDoFinal() {
|
||||||
HMACMD596 hmac = initHmac();
|
BaseMAC hmac = initHmac();
|
||||||
hmac.update(PLAIN_TEXT);
|
hmac.update(PLAIN_TEXT);
|
||||||
assertThat(Hex.toHexString(hmac.doFinal()), is(EXPECTED_HMAC));
|
assertThat(Hex.toHexString(hmac.doFinal()), is(EXPECTED_HMAC));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testDoFinalWithInput() {
|
public void testDoFinalWithInput() {
|
||||||
HMACMD596 hmac = initHmac();
|
BaseMAC hmac = initHmac();
|
||||||
assertThat(Hex.toHexString(hmac.doFinal(PLAIN_TEXT)),
|
assertThat(Hex.toHexString(hmac.doFinal(PLAIN_TEXT)),
|
||||||
is(EXPECTED_HMAC));
|
is(EXPECTED_HMAC));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUpdateWithDoFinalWithResultBuffer() {
|
public void testUpdateWithDoFinalWithResultBuffer() {
|
||||||
HMACMD596 hmac = initHmac();
|
BaseMAC hmac = initHmac();
|
||||||
byte[] resultBuf = new byte[12];
|
byte[] resultBuf = new byte[12];
|
||||||
hmac.update(PLAIN_TEXT);
|
hmac.update(PLAIN_TEXT);
|
||||||
hmac.doFinal(resultBuf, 0);
|
hmac.doFinal(resultBuf, 0);
|
||||||
assertThat(Hex.toHexString(resultBuf), is(EXPECTED_HMAC));
|
assertThat(Hex.toHexString(resultBuf), is(EXPECTED_HMAC));
|
||||||
}
|
}
|
||||||
|
|
||||||
private HMACMD596 initHmac() {
|
private BaseMAC initHmac() {
|
||||||
HMACMD596 hmac = new HMACMD596();
|
BaseMAC hmac = Macs.HMACMD596().create();
|
||||||
hmac.init("ohBahfei6pee5dai".getBytes(CHARSET));
|
hmac.init("ohBahfei6pee5dai".getBytes(CHARSET));
|
||||||
return hmac;
|
return hmac;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ import org.junit.Test;
|
|||||||
|
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
|
|
||||||
|
import com.hierynomus.sshj.transport.mac.Macs;
|
||||||
|
|
||||||
import static org.hamcrest.CoreMatchers.is;
|
import static org.hamcrest.CoreMatchers.is;
|
||||||
import static org.junit.Assert.assertThat;
|
import static org.junit.Assert.assertThat;
|
||||||
|
|
||||||
@@ -30,28 +32,28 @@ public class HMACMD5Test {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUpdateWithDoFinal() {
|
public void testUpdateWithDoFinal() {
|
||||||
HMACMD5 hmac = initHmac();
|
BaseMAC hmac = initHmac();
|
||||||
hmac.update(PLAIN_TEXT);
|
hmac.update(PLAIN_TEXT);
|
||||||
assertThat(Hex.toHexString(hmac.doFinal()), is(EXPECTED_HMAC));
|
assertThat(Hex.toHexString(hmac.doFinal()), is(EXPECTED_HMAC));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testDoFinalWithInput() {
|
public void testDoFinalWithInput() {
|
||||||
HMACMD5 hmac = initHmac();
|
BaseMAC hmac = initHmac();
|
||||||
assertThat(Hex.toHexString(hmac.doFinal(PLAIN_TEXT)), is(EXPECTED_HMAC));
|
assertThat(Hex.toHexString(hmac.doFinal(PLAIN_TEXT)), is(EXPECTED_HMAC));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUpdateWithDoFinalWithResultBuffer() {
|
public void testUpdateWithDoFinalWithResultBuffer() {
|
||||||
HMACMD5 hmac = initHmac();
|
BaseMAC hmac = initHmac();
|
||||||
byte[] resultBuf = new byte[16];
|
byte[] resultBuf = new byte[16];
|
||||||
hmac.update(PLAIN_TEXT);
|
hmac.update(PLAIN_TEXT);
|
||||||
hmac.doFinal(resultBuf, 0);
|
hmac.doFinal(resultBuf, 0);
|
||||||
assertThat(Hex.toHexString(resultBuf), is(EXPECTED_HMAC));
|
assertThat(Hex.toHexString(resultBuf), is(EXPECTED_HMAC));
|
||||||
}
|
}
|
||||||
|
|
||||||
private HMACMD5 initHmac() {
|
private BaseMAC initHmac() {
|
||||||
HMACMD5 hmac = new HMACMD5();
|
BaseMAC hmac = Macs.HMACMD5().create();
|
||||||
hmac.init("ohBahfei6pee5dai".getBytes(CHARSET));
|
hmac.init("ohBahfei6pee5dai".getBytes(CHARSET));
|
||||||
return hmac;
|
return hmac;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ import org.junit.Test;
|
|||||||
|
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
|
|
||||||
|
import com.hierynomus.sshj.transport.mac.Macs;
|
||||||
|
|
||||||
import static org.hamcrest.CoreMatchers.is;
|
import static org.hamcrest.CoreMatchers.is;
|
||||||
import static org.junit.Assert.assertThat;
|
import static org.junit.Assert.assertThat;
|
||||||
|
|
||||||
@@ -30,28 +32,28 @@ public class HMACSHA196Test {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUpdateWithDoFinal() {
|
public void testUpdateWithDoFinal() {
|
||||||
HMACSHA196 hmac = initHmac();
|
BaseMAC hmac = initHmac();
|
||||||
hmac.update(PLAIN_TEXT);
|
hmac.update(PLAIN_TEXT);
|
||||||
assertThat(Hex.toHexString(hmac.doFinal()), is(EXPECTED_HMAC));
|
assertThat(Hex.toHexString(hmac.doFinal()), is(EXPECTED_HMAC));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testDoFinalWithInput() {
|
public void testDoFinalWithInput() {
|
||||||
HMACSHA196 hmac = initHmac();
|
BaseMAC hmac = initHmac();
|
||||||
assertThat(Hex.toHexString(hmac.doFinal(PLAIN_TEXT)), is(EXPECTED_HMAC));
|
assertThat(Hex.toHexString(hmac.doFinal(PLAIN_TEXT)), is(EXPECTED_HMAC));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUpdateWithDoFinalWithResultBuffer() {
|
public void testUpdateWithDoFinalWithResultBuffer() {
|
||||||
HMACSHA196 hmac = initHmac();
|
BaseMAC hmac = initHmac();
|
||||||
byte[] resultBuf = new byte[12];
|
byte[] resultBuf = new byte[12];
|
||||||
hmac.update(PLAIN_TEXT);
|
hmac.update(PLAIN_TEXT);
|
||||||
hmac.doFinal(resultBuf, 0);
|
hmac.doFinal(resultBuf, 0);
|
||||||
assertThat(Hex.toHexString(resultBuf), is(EXPECTED_HMAC));
|
assertThat(Hex.toHexString(resultBuf), is(EXPECTED_HMAC));
|
||||||
}
|
}
|
||||||
|
|
||||||
private HMACSHA196 initHmac() {
|
private BaseMAC initHmac() {
|
||||||
HMACSHA196 hmac = new HMACSHA196();
|
BaseMAC hmac = Macs.HMACSHA196().create();
|
||||||
hmac.init("et1Quo5ooCie6theel8i".getBytes(CHARSET));
|
hmac.init("et1Quo5ooCie6theel8i".getBytes(CHARSET));
|
||||||
return hmac;
|
return hmac;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ import org.junit.Test;
|
|||||||
|
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
|
|
||||||
|
import com.hierynomus.sshj.transport.mac.Macs;
|
||||||
|
|
||||||
import static org.hamcrest.CoreMatchers.is;
|
import static org.hamcrest.CoreMatchers.is;
|
||||||
import static org.junit.Assert.assertThat;
|
import static org.junit.Assert.assertThat;
|
||||||
|
|
||||||
@@ -30,29 +32,29 @@ public class HMACSHA1Test {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUpdateWithDoFinal() {
|
public void testUpdateWithDoFinal() {
|
||||||
HMACSHA1 hmac = initHmac();
|
BaseMAC hmac = initHmac();
|
||||||
hmac.update(PLAIN_TEXT);
|
hmac.update(PLAIN_TEXT);
|
||||||
assertThat(Hex.toHexString(hmac.doFinal()), is(EXPECTED_HMAC));
|
assertThat(Hex.toHexString(hmac.doFinal()), is(EXPECTED_HMAC));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testDoFinalWithInput() {
|
public void testDoFinalWithInput() {
|
||||||
HMACSHA1 hmac = initHmac();
|
BaseMAC hmac = initHmac();
|
||||||
assertThat(Hex.toHexString(hmac.doFinal(PLAIN_TEXT)), is(EXPECTED_HMAC));
|
assertThat(Hex.toHexString(hmac.doFinal(PLAIN_TEXT)), is(EXPECTED_HMAC));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUpdateWithDoFinalWithResultBuffer() {
|
public void testUpdateWithDoFinalWithResultBuffer() {
|
||||||
HMACSHA1 hmac = initHmac();
|
BaseMAC hmac = initHmac();
|
||||||
byte[] resultBuf = new byte[20];
|
byte[] resultBuf = new byte[20];
|
||||||
hmac.update(PLAIN_TEXT);
|
hmac.update(PLAIN_TEXT);
|
||||||
hmac.doFinal(resultBuf, 0);
|
hmac.doFinal(resultBuf, 0);
|
||||||
assertThat(Hex.toHexString(resultBuf), is(EXPECTED_HMAC));
|
assertThat(Hex.toHexString(resultBuf), is(EXPECTED_HMAC));
|
||||||
}
|
}
|
||||||
|
|
||||||
private HMACSHA1 initHmac() {
|
private BaseMAC initHmac() {
|
||||||
HMACSHA1 hmac = new HMACSHA1();
|
BaseMAC hmac = Macs.HMACSHA1().create();
|
||||||
hmac.init("et1Quo5ooCie6theel8i".getBytes(CHARSET));
|
hmac.init("et1Quo5ooCie6theel8i".getBytes(CHARSET));
|
||||||
return hmac;
|
return hmac;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ import org.junit.Test;
|
|||||||
|
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
|
|
||||||
|
import com.hierynomus.sshj.transport.mac.Macs;
|
||||||
|
|
||||||
import static org.hamcrest.CoreMatchers.is;
|
import static org.hamcrest.CoreMatchers.is;
|
||||||
import static org.junit.Assert.assertThat;
|
import static org.junit.Assert.assertThat;
|
||||||
|
|
||||||
@@ -30,29 +32,29 @@ public class HMACSHA2256Test {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUpdateWithDoFinal() {
|
public void testUpdateWithDoFinal() {
|
||||||
HMACSHA2256 hmac = initHmac();
|
BaseMAC hmac = initHmac();
|
||||||
hmac.update(PLAIN_TEXT);
|
hmac.update(PLAIN_TEXT);
|
||||||
assertThat(Hex.toHexString(hmac.doFinal()), is(EXPECTED_HMAC));
|
assertThat(Hex.toHexString(hmac.doFinal()), is(EXPECTED_HMAC));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testDoFinalWithInput() {
|
public void testDoFinalWithInput() {
|
||||||
HMACSHA2256 hmac = initHmac();
|
BaseMAC hmac = initHmac();
|
||||||
assertThat(Hex.toHexString(hmac.doFinal(PLAIN_TEXT)), is(EXPECTED_HMAC));
|
assertThat(Hex.toHexString(hmac.doFinal(PLAIN_TEXT)), is(EXPECTED_HMAC));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUpdateWithDoFinalWithResultBuffer() {
|
public void testUpdateWithDoFinalWithResultBuffer() {
|
||||||
HMACSHA2256 hmac = initHmac();
|
BaseMAC hmac = initHmac();
|
||||||
byte[] resultBuf = new byte[32];
|
byte[] resultBuf = new byte[32];
|
||||||
hmac.update(PLAIN_TEXT);
|
hmac.update(PLAIN_TEXT);
|
||||||
hmac.doFinal(resultBuf, 0);
|
hmac.doFinal(resultBuf, 0);
|
||||||
assertThat(Hex.toHexString(resultBuf), is(EXPECTED_HMAC));
|
assertThat(Hex.toHexString(resultBuf), is(EXPECTED_HMAC));
|
||||||
}
|
}
|
||||||
|
|
||||||
private HMACSHA2256 initHmac() {
|
private BaseMAC initHmac() {
|
||||||
HMACSHA2256 hmac = new HMACSHA2256();
|
BaseMAC hmac = Macs.HMACSHA2256().create();
|
||||||
hmac.init("koopiegh4reengah1que9Wiew7ohahPh".getBytes(CHARSET));
|
hmac.init("koopiegh4reengah1que9Wiew7ohahPh".getBytes(CHARSET));
|
||||||
return hmac;
|
return hmac;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ import org.junit.Test;
|
|||||||
|
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
|
|
||||||
|
import com.hierynomus.sshj.transport.mac.Macs;
|
||||||
|
|
||||||
import static org.hamcrest.CoreMatchers.is;
|
import static org.hamcrest.CoreMatchers.is;
|
||||||
import static org.junit.Assert.assertThat;
|
import static org.junit.Assert.assertThat;
|
||||||
|
|
||||||
@@ -30,28 +32,28 @@ public class HMACSHA2512Test {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUpdateWithDoFinal() {
|
public void testUpdateWithDoFinal() {
|
||||||
HMACSHA2512 hmac = initHmac();
|
BaseMAC hmac = initHmac();
|
||||||
hmac.update(PLAIN_TEXT);
|
hmac.update(PLAIN_TEXT);
|
||||||
assertThat(Hex.toHexString(hmac.doFinal()), is(EXPECTED_HMAC));
|
assertThat(Hex.toHexString(hmac.doFinal()), is(EXPECTED_HMAC));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testDoFinalWithInput() {
|
public void testDoFinalWithInput() {
|
||||||
HMACSHA2512 hmac = initHmac();
|
BaseMAC hmac = initHmac();
|
||||||
assertThat(Hex.toHexString(hmac.doFinal(PLAIN_TEXT)), is(EXPECTED_HMAC));
|
assertThat(Hex.toHexString(hmac.doFinal(PLAIN_TEXT)), is(EXPECTED_HMAC));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUpdateWithDoFinalWithResultBuffer() {
|
public void testUpdateWithDoFinalWithResultBuffer() {
|
||||||
HMACSHA2512 hmac = initHmac();
|
BaseMAC hmac = initHmac();
|
||||||
byte[] resultBuf = new byte[64];
|
byte[] resultBuf = new byte[64];
|
||||||
hmac.update(PLAIN_TEXT);
|
hmac.update(PLAIN_TEXT);
|
||||||
hmac.doFinal(resultBuf, 0);
|
hmac.doFinal(resultBuf, 0);
|
||||||
assertThat(Hex.toHexString(resultBuf), is(EXPECTED_HMAC));
|
assertThat(Hex.toHexString(resultBuf), is(EXPECTED_HMAC));
|
||||||
}
|
}
|
||||||
|
|
||||||
private HMACSHA2512 initHmac() {
|
private BaseMAC initHmac() {
|
||||||
HMACSHA2512 hmac = new HMACSHA2512();
|
BaseMAC hmac = Macs.HMACSHA2512().create();
|
||||||
hmac.init("paishiengu1jaeTie5OoTu2eib7Kohqueicie7ahLohfoothahpeivi5weik1EiB".getBytes(CHARSET));
|
hmac.init("paishiengu1jaeTie5OoTu2eib7Kohqueicie7ahLohfoothahpeivi5weik1EiB".getBytes(CHARSET));
|
||||||
return hmac;
|
return hmac;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,8 +28,8 @@ import org.junit.rules.TemporaryFolder;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
import static junit.framework.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
import static junit.framework.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.hamcrest.MatcherAssert.assertThat;
|
import static org.hamcrest.MatcherAssert.assertThat;
|
||||||
|
|
||||||
public class SCPFileTransferTest {
|
public class SCPFileTransferTest {
|
||||||
@@ -55,7 +55,7 @@ public class SCPFileTransferTest {
|
|||||||
sshClient = fixture.setupConnectedDefaultClient();
|
sshClient = fixture.setupConnectedDefaultClient();
|
||||||
sshClient.authPassword("test", "test");
|
sshClient.authPassword("test", "test");
|
||||||
}
|
}
|
||||||
|
|
||||||
@After
|
@After
|
||||||
public void cleanup() {
|
public void cleanup() {
|
||||||
if (targetFile.exists()) {
|
if (targetFile.exists()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user