Skip to content

Commit d824b32

Browse files
Removed Bouncy Castle usage from Tests
- Removed unnecessary addition of Bouncy Castle Provider from several tests - Replaced Bouncy Castle Hex.toHexString() with SSHD BufferUtils.toHex()
1 parent 7f8f43c commit d824b32

11 files changed

+61
-66
lines changed

src/itest/java/com/hierynomus/sshj/sftp/FileWriteTest.java

+10-4
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import org.junit.jupiter.api.Test;
2222
import org.testcontainers.junit.jupiter.Container;
2323
import org.testcontainers.junit.jupiter.Testcontainers;
24-
import org.testcontainers.shaded.org.bouncycastle.util.Arrays;
2524

2625
import com.hierynomus.sshj.SshdContainer;
2726

@@ -31,11 +30,12 @@
3130
import net.schmizz.sshj.sftp.SFTPClient;
3231

3332
import static org.assertj.core.api.Assertions.assertThat;
33+
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
3434

3535
@Testcontainers
3636
public class FileWriteTest {
3737
@Container
38-
private static SshdContainer sshd = new SshdContainer();
38+
private static final SshdContainer sshd = new SshdContainer();
3939

4040
@Test
4141
public void shouldAppendToFile_GH390() throws Throwable {
@@ -63,8 +63,14 @@ public void shouldAppendToFile_GH390() throws Throwable {
6363
try (RemoteFile read = sftp.open(file, EnumSet.of(OpenMode.READ))) {
6464
byte[] readBytes = new byte[initialText.length + appendText.length];
6565
read.read(0, readBytes, 0, readBytes.length);
66-
assertThat(Arrays.copyOfRange(readBytes, 0, initialText.length)).isEqualTo(initialText);
67-
assertThat(Arrays.copyOfRange(readBytes, initialText.length, initialText.length + appendText.length)).isEqualTo(appendText);
66+
67+
final byte[] expectedInitialText = new byte[initialText.length];
68+
System.arraycopy(readBytes, 0, expectedInitialText, 0, expectedInitialText.length);
69+
assertArrayEquals(expectedInitialText, initialText);
70+
71+
final byte[] expectedAppendText = new byte[appendText.length];
72+
System.arraycopy(readBytes, initialText.length, expectedAppendText, 0, expectedAppendText.length);
73+
assertArrayEquals(expectedAppendText, appendText);
6874
}
6975
}
7076

src/test/java/com/hierynomus/sshj/transport/GcmCipherDecryptSshPacketTest.java

-8
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,10 @@
1919
import net.schmizz.sshj.common.IOUtils;
2020
import net.schmizz.sshj.common.SSHPacket;
2121
import net.schmizz.sshj.transport.cipher.Cipher;
22-
import org.bouncycastle.jce.provider.BouncyCastleProvider;
23-
import org.junit.jupiter.api.BeforeAll;
2422
import org.junit.jupiter.params.ParameterizedTest;
2523
import org.junit.jupiter.params.provider.Arguments;
2624
import org.junit.jupiter.params.provider.MethodSource;
2725

28-
import java.security.Security;
2926
import java.util.Arrays;
3027
import java.util.stream.Stream;
3128

@@ -42,11 +39,6 @@ public static Stream<Arguments> sets() {
4239
return Stream.of(Arguments.of("mina-sshd", 3), Arguments.of("openssh", 4));
4340
}
4441

45-
@BeforeAll
46-
public static void setupBeforeClass() {
47-
Security.addProvider(new BouncyCastleProvider());
48-
}
49-
5042
@ParameterizedTest
5143
@MethodSource("sets")
5244
public void testDecryptPacket(String ssh, int nr) throws Exception {

src/test/java/com/hierynomus/sshj/transport/verification/OpenSSHKnownHostsTest.java

-7
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,8 @@
1616
package com.hierynomus.sshj.transport.verification;
1717

1818
import net.schmizz.sshj.common.Buffer;
19-
import net.schmizz.sshj.common.SecurityUtils;
2019
import net.schmizz.sshj.transport.verification.OpenSSHKnownHosts;
2120
import net.schmizz.sshj.util.KeyUtil;
22-
import org.junit.jupiter.api.BeforeAll;
2321
import org.junit.jupiter.api.Test;
2422
import org.junit.jupiter.api.io.TempDir;
2523
import org.junit.jupiter.params.ParameterizedTest;
@@ -41,11 +39,6 @@ public class OpenSSHKnownHostsTest {
4139
@TempDir
4240
public File tempDir;
4341

44-
@BeforeAll
45-
public static void setup() {
46-
SecurityUtils.registerSecurityProvider("org.bouncycastle.jce.provider.BouncyCastleProvider");
47-
}
48-
4942
@Test
5043
public void shouldParseAndVerifyHashedHostEntry() throws Exception {
5144
File knownHosts = knownHosts(

src/test/java/net/schmizz/sshj/transport/DecoderDecryptGcmCipherSshPacketTest.java

-3
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,10 @@
2222
import net.schmizz.sshj.common.SSHException;
2323
import net.schmizz.sshj.common.SSHPacket;
2424
import net.schmizz.sshj.transport.cipher.Cipher;
25-
import org.bouncycastle.jce.provider.BouncyCastleProvider;
2625
import org.junit.jupiter.api.BeforeEach;
2726
import org.junit.jupiter.api.Test;
2827

2928
import java.security.SecureRandom;
30-
import java.security.Security;
3129

3230
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
3331
import static org.mockito.ArgumentMatchers.any;
@@ -49,7 +47,6 @@ public class DecoderDecryptGcmCipherSshPacketTest {
4947

5048
@BeforeEach
5149
public void setUp() throws Exception {
52-
Security.addProvider(new BouncyCastleProvider());
5350
ClassLoader classLoader = DecoderDecryptGcmCipherSshPacketTest.class.getClassLoader();
5451
iv = IOUtils.readFully(classLoader.getResourceAsStream("ssh-packets/gcm/mina-sshd/s2c.iv.bin" )).toByteArray();
5552
key = IOUtils.readFully(classLoader.getResourceAsStream("ssh-packets/gcm/mina-sshd/s2c.key.bin" )).toByteArray();

src/test/java/net/schmizz/sshj/transport/mac/BaseMacTest.java

+9-8
Original file line numberDiff line numberDiff line change
@@ -17,28 +17,29 @@
1717

1818
import com.hierynomus.sshj.transport.mac.Macs;
1919
import net.schmizz.sshj.common.SSHRuntimeException;
20-
import org.bouncycastle.util.encoders.Hex;
20+
import org.apache.sshd.common.util.buffer.BufferUtils;
2121
import org.junit.jupiter.api.Test;
2222

2323
import java.nio.charset.Charset;
24+
import java.nio.charset.StandardCharsets;
2425

2526
import static org.hamcrest.CoreMatchers.is;
2627
import static org.hamcrest.MatcherAssert.assertThat;
2728
import static org.junit.jupiter.api.Assertions.assertThrows;
2829
import static org.junit.jupiter.api.Assertions.fail;
2930

3031
public class BaseMacTest {
31-
private static final Charset CHARSET = Charset.forName("US-ASCII");
32+
private static final Charset CHARSET = StandardCharsets.US_ASCII;
3233
private static final byte[] PLAIN_TEXT = "Hello World".getBytes(CHARSET);
33-
private static final String EXPECTED_HMAC = "24ddeed57ad91465c5b59dce74ef73778bfb0cb9";
34+
private static final String EXPECTED_HMAC = "24 dd ee d5 7a d9 14 65 c5 b5 9d ce 74 ef 73 77 8b fb 0c b9";
3435
private static final String KEY = "et1Quo5ooCie6theel8i";
3536

3637
@Test
3738
public void testResizeTooBigKeys() {
3839
BaseMAC hmac = Macs.HMACSHA1().create();
3940
hmac.init((KEY + "foo").getBytes(CHARSET));
4041
hmac.update(PLAIN_TEXT);
41-
assertThat(Hex.toHexString(hmac.doFinal()), is(EXPECTED_HMAC));
42+
assertThat(BufferUtils.toHex(hmac.doFinal()), is(EXPECTED_HMAC));
4243
}
4344

4445
@Test
@@ -54,7 +55,7 @@ public void testUnknownAlgorithm() {
5455
public void testUpdateWithDoFinal() {
5556
BaseMAC hmac = initHmac();
5657
hmac.update(PLAIN_TEXT);
57-
assertThat(Hex.toHexString(hmac.doFinal()), is(EXPECTED_HMAC));
58+
assertThat(BufferUtils.toHex(hmac.doFinal()), is(EXPECTED_HMAC));
5859
}
5960

6061
@Test
@@ -67,13 +68,13 @@ public void testUpdateWithRange() {
6768

6869
// update with the range from the second to penultimate byte
6970
hmac.update(plainText, 1, PLAIN_TEXT.length);
70-
assertThat(Hex.toHexString(hmac.doFinal()), is(EXPECTED_HMAC));
71+
assertThat(BufferUtils.toHex(hmac.doFinal()), is(EXPECTED_HMAC));
7172
}
7273

7374
@Test
7475
public void testDoFinalWithInput() {
7576
BaseMAC hmac = initHmac();
76-
assertThat(Hex.toHexString(hmac.doFinal(PLAIN_TEXT)), is(EXPECTED_HMAC));
77+
assertThat(BufferUtils.toHex(hmac.doFinal(PLAIN_TEXT)), is(EXPECTED_HMAC));
7778
}
7879

7980
@Test
@@ -82,7 +83,7 @@ public void testUpdateWithDoFinalWithResultBuffer() {
8283
byte[] resultBuf = new byte[20];
8384
hmac.update(PLAIN_TEXT);
8485
hmac.doFinal(resultBuf, 0);
85-
assertThat(Hex.toHexString(resultBuf), is(EXPECTED_HMAC));
86+
assertThat(BufferUtils.toHex(resultBuf), is(EXPECTED_HMAC));
8687
}
8788

8889
private BaseMAC initHmac() {

src/test/java/net/schmizz/sshj/transport/mac/HMACMD596Test.java

+7-6
Original file line numberDiff line numberDiff line change
@@ -16,30 +16,31 @@
1616
package net.schmizz.sshj.transport.mac;
1717

1818
import com.hierynomus.sshj.transport.mac.Macs;
19-
import org.bouncycastle.util.encoders.Hex;
19+
import org.apache.sshd.common.util.buffer.BufferUtils;
2020
import org.junit.jupiter.api.Test;
2121

2222
import java.nio.charset.Charset;
23+
import java.nio.charset.StandardCharsets;
2324

2425
import static org.hamcrest.CoreMatchers.is;
2526
import static org.hamcrest.MatcherAssert.assertThat;
2627

2728
public class HMACMD596Test {
28-
private static final Charset CHARSET = Charset.forName("US-ASCII");
29+
private static final Charset CHARSET = StandardCharsets.US_ASCII;
2930
private static final byte[] PLAIN_TEXT = "Hello World".getBytes(CHARSET);
30-
private static final String EXPECTED_HMAC = "dff33c507463f9cf088a5ce8";
31+
private static final String EXPECTED_HMAC = "df f3 3c 50 74 63 f9 cf 08 8a 5c e8";
3132

3233
@Test
3334
public void testUpdateWithDoFinal() {
3435
BaseMAC hmac = initHmac();
3536
hmac.update(PLAIN_TEXT);
36-
assertThat(Hex.toHexString(hmac.doFinal()), is(EXPECTED_HMAC));
37+
assertThat(BufferUtils.toHex(hmac.doFinal()), is(EXPECTED_HMAC));
3738
}
3839

3940
@Test
4041
public void testDoFinalWithInput() {
4142
BaseMAC hmac = initHmac();
42-
assertThat(Hex.toHexString(hmac.doFinal(PLAIN_TEXT)),
43+
assertThat(BufferUtils.toHex(hmac.doFinal(PLAIN_TEXT)),
4344
is(EXPECTED_HMAC));
4445
}
4546

@@ -49,7 +50,7 @@ public void testUpdateWithDoFinalWithResultBuffer() {
4950
byte[] resultBuf = new byte[12];
5051
hmac.update(PLAIN_TEXT);
5152
hmac.doFinal(resultBuf, 0);
52-
assertThat(Hex.toHexString(resultBuf), is(EXPECTED_HMAC));
53+
assertThat(BufferUtils.toHex(resultBuf), is(EXPECTED_HMAC));
5354
}
5455

5556
private BaseMAC initHmac() {

src/test/java/net/schmizz/sshj/transport/mac/HMACMD5Test.java

+7-6
Original file line numberDiff line numberDiff line change
@@ -16,30 +16,31 @@
1616
package net.schmizz.sshj.transport.mac;
1717

1818
import com.hierynomus.sshj.transport.mac.Macs;
19-
import org.bouncycastle.util.encoders.Hex;
19+
import org.apache.sshd.common.util.buffer.BufferUtils;
2020
import org.junit.jupiter.api.Test;
2121

2222
import java.nio.charset.Charset;
23+
import java.nio.charset.StandardCharsets;
2324

2425
import static org.hamcrest.CoreMatchers.is;
2526
import static org.hamcrest.MatcherAssert.assertThat;
2627

2728
public class HMACMD5Test {
28-
private static final Charset CHARSET = Charset.forName("US-ASCII");
29+
private static final Charset CHARSET = StandardCharsets.US_ASCII;
2930
private static final byte[] PLAIN_TEXT = "Hello World".getBytes(CHARSET);
30-
private static final String EXPECTED_HMAC = "dff33c507463f9cf088a5ce8d969c386";
31+
private static final String EXPECTED_HMAC = "df f3 3c 50 74 63 f9 cf 08 8a 5c e8 d9 69 c3 86";
3132

3233
@Test
3334
public void testUpdateWithDoFinal() {
3435
BaseMAC hmac = initHmac();
3536
hmac.update(PLAIN_TEXT);
36-
assertThat(Hex.toHexString(hmac.doFinal()), is(EXPECTED_HMAC));
37+
assertThat(BufferUtils.toHex(hmac.doFinal()), is(EXPECTED_HMAC));
3738
}
3839

3940
@Test
4041
public void testDoFinalWithInput() {
4142
BaseMAC hmac = initHmac();
42-
assertThat(Hex.toHexString(hmac.doFinal(PLAIN_TEXT)), is(EXPECTED_HMAC));
43+
assertThat(BufferUtils.toHex(hmac.doFinal(PLAIN_TEXT)), is(EXPECTED_HMAC));
4344
}
4445

4546
@Test
@@ -48,7 +49,7 @@ public void testUpdateWithDoFinalWithResultBuffer() {
4849
byte[] resultBuf = new byte[16];
4950
hmac.update(PLAIN_TEXT);
5051
hmac.doFinal(resultBuf, 0);
51-
assertThat(Hex.toHexString(resultBuf), is(EXPECTED_HMAC));
52+
assertThat(BufferUtils.toHex(resultBuf), is(EXPECTED_HMAC));
5253
}
5354

5455
private BaseMAC initHmac() {

src/test/java/net/schmizz/sshj/transport/mac/HMACSHA196Test.java

+7-6
Original file line numberDiff line numberDiff line change
@@ -16,30 +16,31 @@
1616
package net.schmizz.sshj.transport.mac;
1717

1818
import com.hierynomus.sshj.transport.mac.Macs;
19-
import org.bouncycastle.util.encoders.Hex;
19+
import org.apache.sshd.common.util.buffer.BufferUtils;
2020
import org.junit.jupiter.api.Test;
2121

2222
import java.nio.charset.Charset;
23+
import java.nio.charset.StandardCharsets;
2324

2425
import static org.hamcrest.CoreMatchers.is;
2526
import static org.hamcrest.MatcherAssert.assertThat;
2627

2728
public class HMACSHA196Test {
28-
private static final Charset CHARSET = Charset.forName("US-ASCII");
29+
private static final Charset CHARSET = StandardCharsets.US_ASCII;
2930
private static final byte[] PLAIN_TEXT = "Hello World".getBytes(CHARSET);
30-
private static final String EXPECTED_HMAC = "24ddeed57ad91465c5b59dce";
31+
private static final String EXPECTED_HMAC = "24 dd ee d5 7a d9 14 65 c5 b5 9d ce";
3132

3233
@Test
3334
public void testUpdateWithDoFinal() {
3435
BaseMAC hmac = initHmac();
3536
hmac.update(PLAIN_TEXT);
36-
assertThat(Hex.toHexString(hmac.doFinal()), is(EXPECTED_HMAC));
37+
assertThat(BufferUtils.toHex(hmac.doFinal()), is(EXPECTED_HMAC));
3738
}
3839

3940
@Test
4041
public void testDoFinalWithInput() {
4142
BaseMAC hmac = initHmac();
42-
assertThat(Hex.toHexString(hmac.doFinal(PLAIN_TEXT)), is(EXPECTED_HMAC));
43+
assertThat(BufferUtils.toHex(hmac.doFinal(PLAIN_TEXT)), is(EXPECTED_HMAC));
4344
}
4445

4546
@Test
@@ -48,7 +49,7 @@ public void testUpdateWithDoFinalWithResultBuffer() {
4849
byte[] resultBuf = new byte[12];
4950
hmac.update(PLAIN_TEXT);
5051
hmac.doFinal(resultBuf, 0);
51-
assertThat(Hex.toHexString(resultBuf), is(EXPECTED_HMAC));
52+
assertThat(BufferUtils.toHex(resultBuf), is(EXPECTED_HMAC));
5253
}
5354

5455
private BaseMAC initHmac() {

src/test/java/net/schmizz/sshj/transport/mac/HMACSHA1Test.java

+7-6
Original file line numberDiff line numberDiff line change
@@ -16,30 +16,31 @@
1616
package net.schmizz.sshj.transport.mac;
1717

1818
import com.hierynomus.sshj.transport.mac.Macs;
19-
import org.bouncycastle.util.encoders.Hex;
19+
import org.apache.sshd.common.util.buffer.BufferUtils;
2020
import org.junit.jupiter.api.Test;
2121

2222
import java.nio.charset.Charset;
23+
import java.nio.charset.StandardCharsets;
2324

2425
import static org.hamcrest.CoreMatchers.is;
2526
import static org.hamcrest.MatcherAssert.assertThat;
2627

2728
public class HMACSHA1Test {
28-
private static final Charset CHARSET = Charset.forName("US-ASCII");
29+
private static final Charset CHARSET = StandardCharsets.US_ASCII;
2930
private static final byte[] PLAIN_TEXT = "Hello World".getBytes(CHARSET);
30-
private static final String EXPECTED_HMAC = "24ddeed57ad91465c5b59dce74ef73778bfb0cb9";
31+
private static final String EXPECTED_HMAC = "24 dd ee d5 7a d9 14 65 c5 b5 9d ce 74 ef 73 77 8b fb 0c b9";
3132

3233
@Test
3334
public void testUpdateWithDoFinal() {
3435
BaseMAC hmac = initHmac();
3536
hmac.update(PLAIN_TEXT);
36-
assertThat(Hex.toHexString(hmac.doFinal()), is(EXPECTED_HMAC));
37+
assertThat(BufferUtils.toHex(hmac.doFinal()), is(EXPECTED_HMAC));
3738
}
3839

3940
@Test
4041
public void testDoFinalWithInput() {
4142
BaseMAC hmac = initHmac();
42-
assertThat(Hex.toHexString(hmac.doFinal(PLAIN_TEXT)), is(EXPECTED_HMAC));
43+
assertThat(BufferUtils.toHex(hmac.doFinal(PLAIN_TEXT)), is(EXPECTED_HMAC));
4344
}
4445

4546
@Test
@@ -48,7 +49,7 @@ public void testUpdateWithDoFinalWithResultBuffer() {
4849
byte[] resultBuf = new byte[20];
4950
hmac.update(PLAIN_TEXT);
5051
hmac.doFinal(resultBuf, 0);
51-
assertThat(Hex.toHexString(resultBuf), is(EXPECTED_HMAC));
52+
assertThat(BufferUtils.toHex(resultBuf), is(EXPECTED_HMAC));
5253
}
5354

5455
private BaseMAC initHmac() {

0 commit comments

Comments
 (0)