You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by lg...@apache.org on 2020/09/18 15:33:51 UTC

[mina-sshd] 02/02: [SSHD-1053] Make OpenSSHCertificateTest independent from client default signatures

This is an automated email from the ASF dual-hosted git repository.

lgoldstein pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mina-sshd.git

commit 5b98aa776a28e1896e46a81dbec063db19f36b31
Author: FliegenKLATSCH <ch...@koras.de>
AuthorDate: Sat Sep 12 17:26:26 2020 +0300

    [SSHD-1053] Make OpenSSHCertificateTest independent from client default signatures
---
 .../common/signature/OpenSSHCertificateTest.java    | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/sshd-core/src/test/java/org/apache/sshd/common/signature/OpenSSHCertificateTest.java b/sshd-core/src/test/java/org/apache/sshd/common/signature/OpenSSHCertificateTest.java
index 2c5ce16..47fadda 100644
--- a/sshd-core/src/test/java/org/apache/sshd/common/signature/OpenSSHCertificateTest.java
+++ b/sshd-core/src/test/java/org/apache/sshd/common/signature/OpenSSHCertificateTest.java
@@ -32,13 +32,13 @@ import org.apache.sshd.common.SshConstants;
 import org.apache.sshd.common.SshException;
 import org.apache.sshd.common.keyprovider.FileHostKeyCertificateProvider;
 import org.apache.sshd.common.keyprovider.FileKeyPairProvider;
+import org.apache.sshd.common.util.GenericUtils;
 import org.apache.sshd.core.CoreModuleProperties;
 import org.apache.sshd.server.SshServer;
 import org.apache.sshd.util.test.BaseTestSupport;
 import org.apache.sshd.util.test.CoreTestSupportUtils;
 import org.apache.sshd.util.test.JUnit4ClassRunnerWithParametersFactory;
 import org.junit.AfterClass;
-import org.junit.Assume;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.FixMethodOrder;
@@ -56,7 +56,6 @@ public class OpenSSHCertificateTest extends BaseTestSupport {
     private static SshServer sshd;
     private static SshClient client;
     private static int port;
-    private static List<NamedFactory<Signature>> defaultSignatureFactories;
 
     private final FileHostKeyCertificateProvider certificateProvider;
     private final FileKeyPairProvider keyPairProvider;
@@ -77,7 +76,6 @@ public class OpenSSHCertificateTest extends BaseTestSupport {
 
         client = CoreTestSupportUtils.setupTestFullSupportClient(OpenSSHCertificateTest.class);
         client.start();
-        defaultSignatureFactories = client.getSignatureFactories();
     }
 
     @AfterClass
@@ -108,7 +106,9 @@ public class OpenSSHCertificateTest extends BaseTestSupport {
         String certificateSha512 = "ssh_host_rsa_key-cert.pub";
 
         // default client
-        list.add(new Object[] { key, certificate, null });
+        list.add(new Object[] {
+                key, certificate,
+                Arrays.asList(BuiltinSignatures.rsaSHA512, BuiltinSignatures.rsaSHA256, BuiltinSignatures.rsa) });
         list.add(new Object[] { key, certificate, Arrays.asList(BuiltinSignatures.rsa_cert, BuiltinSignatures.rsa) });
         // client does not support cert
         list.add(new Object[] { key, certificate, Collections.singletonList(BuiltinSignatures.rsa) });
@@ -128,11 +128,7 @@ public class OpenSSHCertificateTest extends BaseTestSupport {
 
         CoreModuleProperties.ABORT_ON_INVALID_CERTIFICATE.remove(client);
 
-        if (signatureFactory != null) {
-            client.setSignatureFactories(signatureFactory);
-        } else {
-            client.setSignatureFactories(defaultSignatureFactories);
-        }
+        client.setSignatureFactories(signatureFactory);
     }
 
     @Test
@@ -159,9 +155,8 @@ public class OpenSSHCertificateTest extends BaseTestSupport {
 
     @Test // invalid principal, abort
     public void testAbortOnInvalidPrincipal() throws Exception {
-        Assume.assumeTrue("Have signature factory", signatureFactory != null);
-
         CoreModuleProperties.ABORT_ON_INVALID_CERTIFICATE.set(client, true);
+        boolean thrown = false;
         try (ClientSession s = client.connect(getCurrentTestName(), "localhost", port)
                 .verify(CONNECT_TIMEOUT)
                 .getSession()) {
@@ -172,6 +167,10 @@ public class OpenSSHCertificateTest extends BaseTestSupport {
             assertFalse(client.getSignatureFactories().contains(BuiltinSignatures.rsa_cert));
         } catch (SshException e) {
             assertEquals(SshConstants.SSH2_DISCONNECT_KEY_EXCHANGE_FAILED, e.getDisconnectCode());
+            thrown = true;
         }
+        boolean containsCert = GenericUtils.containsAny(client.getSignatureFactories(),
+                Arrays.asList(BuiltinSignatures.rsaSHA512_cert, BuiltinSignatures.rsaSHA256_cert, BuiltinSignatures.rsa_cert));
+        assertEquals(containsCert, thrown);
     }
 }