Skip to content

Commit 0301d45

Browse files
committed
Enable 'curve25519-sha256@libssh.org' in DefaultConfig (Fixes #464)
1 parent f71d34e commit 0301d45

File tree

4 files changed

+19
-8
lines changed

4 files changed

+19
-8
lines changed

src/main/java/net/schmizz/sshj/DefaultConfig.java

+1
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ protected void initKeyExchangeFactories(boolean bouncyCastleRegistered) {
109109
if (bouncyCastleRegistered) {
110110
setKeyExchangeFactories(
111111
new Curve25519SHA256.Factory(),
112+
new Curve25519SHA256.FactoryLibSsh(),
112113
new DHGexSHA256.Factory(),
113114
new ECDHNistP.Factory521(),
114115
new ECDHNistP.Factory384(),

src/main/java/net/schmizz/sshj/SSHClient.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@
6161
import java.net.ServerSocket;
6262
import java.nio.charset.Charset;
6363
import java.security.KeyPair;
64-
import java.security.PublicKey;
6564
import java.util.*;
6665

6766
/**
@@ -360,8 +359,7 @@ public void authPublickey(String username, Iterable<KeyProvider> keyProviders)
360359
* @throws TransportException if there was a transport-layer error
361360
*/
362361
public void authPublickey(String username, KeyProvider... keyProviders)
363-
throws UserAuthException,
364-
TransportException {
362+
throws UserAuthException, TransportException {
365363
authPublickey(username, Arrays.<KeyProvider>asList(keyProviders));
366364
}
367365

src/test/java/com/hierynomus/sshj/test/BaseAlgorithmTest.java

+7-2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
import net.schmizz.sshj.Config;
1919
import net.schmizz.sshj.DefaultConfig;
2020
import net.schmizz.sshj.SSHClient;
21+
import net.schmizz.sshj.transport.random.JCERandom;
22+
import net.schmizz.sshj.transport.random.SingletonRandomFactory;
2123
import org.apache.sshd.server.SshServer;
2224
import org.junit.After;
2325
import org.junit.Rule;
@@ -32,6 +34,8 @@
3234
public abstract class BaseAlgorithmTest {
3335
private final Logger logger = LoggerFactory.getLogger(this.getClass());
3436

37+
private SingletonRandomFactory randomFactory = new SingletonRandomFactory(new JCERandom.Factory());
38+
private DefaultConfig config = new DefaultConfig();
3539
@Rule
3640
public SshFixture fixture = new SshFixture(false);
3741

@@ -42,11 +46,12 @@ public void stopServer() {
4246

4347
@Test
4448
public void shouldVerifyAlgorithm() throws IOException {
45-
for (int i = 0; i < 100; i++) {
49+
for (int i = 0; i < 10; i++) {
4650
logger.info("--> Attempt {}", i);
4751
configureServer(fixture.getServer());
4852
fixture.start();
49-
Config config = getClientConfig(new DefaultConfig());
53+
config.setRandomFactory(randomFactory);
54+
Config config = getClientConfig(this.config);
5055
SSHClient sshClient = fixture.connectClient(fixture.setupClient(config));
5156
assertThat("should be connected", sshClient.isConnected());
5257
sshClient.disconnect();

src/test/java/com/hierynomus/sshj/transport/kex/KeyExchangeTest.java

+10-3
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import net.schmizz.sshj.Config;
2020
import net.schmizz.sshj.DefaultConfig;
2121
import net.schmizz.sshj.common.Factory;
22+
import net.schmizz.sshj.transport.kex.Curve25519SHA256;
2223
import net.schmizz.sshj.transport.kex.DHGexSHA1;
2324
import net.schmizz.sshj.transport.kex.DHGexSHA256;
2425
import net.schmizz.sshj.transport.kex.ECDHNistP;
@@ -38,15 +39,21 @@
3839
@RunWith(Parameterized.class)
3940
public class KeyExchangeTest extends BaseAlgorithmTest {
4041

41-
@Parameterized.Parameters
42+
@Parameterized.Parameters(name = "algorithm={0}")
4243
public static Collection<Object[]> getParameters() {
4344
return Arrays.asList(new Object[][]{
4445
{DHGEXServer.newFactory(BuiltinDHFactories.dhgex), new DHGexSHA1.Factory()},
4546
{DHGEXServer.newFactory(BuiltinDHFactories.dhgex256), new DHGexSHA256.Factory()},
4647
{DHGServer.newFactory(BuiltinDHFactories.ecdhp256), new ECDHNistP.Factory256()},
4748
{DHGServer.newFactory(BuiltinDHFactories.ecdhp384), new ECDHNistP.Factory384()},
48-
{DHGServer.newFactory(BuiltinDHFactories.ecdhp521), new ECDHNistP.Factory521()}
49-
// Not supported yet by MINA {null, new Curve25519SHA256.Factory()}
49+
{DHGServer.newFactory(BuiltinDHFactories.ecdhp521), new ECDHNistP.Factory521()},
50+
{DHGServer.newFactory(BuiltinDHFactories.dhg1), DHGroups.Group1SHA1()},
51+
{DHGServer.newFactory(BuiltinDHFactories.dhg14), DHGroups.Group14SHA1()},
52+
{DHGServer.newFactory(BuiltinDHFactories.dhg14_256), DHGroups.Group14SHA256()},
53+
{DHGServer.newFactory(BuiltinDHFactories.dhg15_512), DHGroups.Group15SHA512()},
54+
{DHGServer.newFactory(BuiltinDHFactories.dhg16_512), DHGroups.Group16SHA512()},
55+
{DHGServer.newFactory(BuiltinDHFactories.dhg17_512), DHGroups.Group17SHA512()},
56+
{DHGServer.newFactory(BuiltinDHFactories.dhg18_512), DHGroups.Group18SHA512()},
5057
});
5158
}
5259

0 commit comments

Comments
 (0)