From 413d62ac5e5e48e11794828b8132081d617351e0 Mon Sep 17 00:00:00 2001 From: Saravana Perumal Shanmugam Date: Thu, 17 Jun 2021 15:26:10 -0700 Subject: [PATCH] PKI module - more testcases and crl file loading support (#2388) * Hardware and software keystore tests, crl file load support added hardware and software keystore file based tests and added support to load crl file in the keystore implementations. the generated keys have 100 year expiry. Signed-off-by: Saravana Perumal Shanmugam --- .../pki/keystore/AbstractKeyStoreWrapper.java | 53 +++++++ .../pki/keystore/HardwareKeyStoreWrapper.java | 16 ++- .../besu/pki/keystore/KeyStoreWrapper.java | 4 + .../pki/keystore/SoftwareKeyStoreWrapper.java | 14 +- .../keystore/BaseKeyStoreFileWrapperTest.java | 126 +++++++++++++++++ .../besu/pki/keystore/CryptoTestUtil.java | 81 +++++++++++ .../HardwareKeyStoreFileWrapperTest.java | 102 ++++++++++++++ .../SoftwareKeyStoreFileWrapperTest.java | 88 ++++++++++++ .../keystore/SoftwareKeyStoreWrapperTest.java | 3 +- .../keystore/invalidpartner1client1/crl.pem | 27 ++++ .../keystore/invalidpartner1client1/keys.p12 | Bin 0 -> 6250 bytes .../invalidpartner1client1/keystore.jks | Bin 0 -> 7159 bytes .../keystore/invalidpartner1client1/nss.cfg | 6 + .../invalidpartner1client1/nssdb/cert8.db | Bin 0 -> 65536 bytes .../invalidpartner1client1/nssdb/key3.db | Bin 0 -> 16384 bytes .../invalidpartner1client1/nssdb/secmod.db | Bin 0 -> 16384 bytes .../invalidpartner1client1/nsspin.txt | 1 + .../invalidpartner1client1/ssl-ca.pem | 72 ++++++++++ .../keystore/invalidpartner1client1/ssl.pem | 129 ++++++++++++++++++ .../invalidpartner1client1/truststore.jks | Bin 0 -> 3252 bytes .../keystore/partner1client1/crl.pem | 27 ++++ .../keystore/partner1client1/keys.p12 | Bin 0 -> 6068 bytes .../keystore/partner1client1/keystore.jks | Bin 0 -> 6817 bytes .../keystore/partner1client1/nss.cfg | 6 + .../keystore/partner1client1/nssdb/cert8.db | Bin 0 -> 65536 bytes .../keystore/partner1client1/nssdb/key3.db | Bin 0 -> 16384 bytes .../keystore/partner1client1/nssdb/secmod.db | Bin 0 -> 16384 bytes .../keystore/partner1client1/nsspin.txt | 1 + .../keystore/partner1client1/ssl-ca.pem | 70 ++++++++++ .../keystore/partner1client1/ssl.pem | 126 +++++++++++++++++ .../keystore/partner1client1/truststore.jks | Bin 0 -> 3135 bytes .../keystore/partner2client1/crl.pem | 27 ++++ .../keystore/partner2client1/keys.p12 | Bin 0 -> 6068 bytes .../keystore/partner2client1/keystore.jks | Bin 0 -> 6817 bytes .../keystore/partner2client1/nss.cfg | 6 + .../keystore/partner2client1/nssdb/cert8.db | Bin 0 -> 65536 bytes .../keystore/partner2client1/nssdb/key3.db | Bin 0 -> 16384 bytes .../keystore/partner2client1/nssdb/secmod.db | Bin 0 -> 16384 bytes .../keystore/partner2client1/nsspin.txt | 1 + .../keystore/partner2client1/ssl-ca.pem | 70 ++++++++++ .../keystore/partner2client1/ssl.pem | 126 +++++++++++++++++ .../keystore/partner2client1/truststore.jks | Bin 0 -> 3135 bytes 42 files changed, 1174 insertions(+), 8 deletions(-) create mode 100644 pki/src/main/java/org/hyperledger/besu/pki/keystore/AbstractKeyStoreWrapper.java create mode 100644 pki/src/test/java/org/hyperledger/besu/pki/keystore/BaseKeyStoreFileWrapperTest.java create mode 100644 pki/src/test/java/org/hyperledger/besu/pki/keystore/CryptoTestUtil.java create mode 100644 pki/src/test/java/org/hyperledger/besu/pki/keystore/HardwareKeyStoreFileWrapperTest.java create mode 100644 pki/src/test/java/org/hyperledger/besu/pki/keystore/SoftwareKeyStoreFileWrapperTest.java create mode 100644 pki/src/test/resources/keystore/invalidpartner1client1/crl.pem create mode 100644 pki/src/test/resources/keystore/invalidpartner1client1/keys.p12 create mode 100644 pki/src/test/resources/keystore/invalidpartner1client1/keystore.jks create mode 100644 pki/src/test/resources/keystore/invalidpartner1client1/nss.cfg create mode 100644 pki/src/test/resources/keystore/invalidpartner1client1/nssdb/cert8.db create mode 100644 pki/src/test/resources/keystore/invalidpartner1client1/nssdb/key3.db create mode 100644 pki/src/test/resources/keystore/invalidpartner1client1/nssdb/secmod.db create mode 100644 pki/src/test/resources/keystore/invalidpartner1client1/nsspin.txt create mode 100644 pki/src/test/resources/keystore/invalidpartner1client1/ssl-ca.pem create mode 100644 pki/src/test/resources/keystore/invalidpartner1client1/ssl.pem create mode 100644 pki/src/test/resources/keystore/invalidpartner1client1/truststore.jks create mode 100644 pki/src/test/resources/keystore/partner1client1/crl.pem create mode 100644 pki/src/test/resources/keystore/partner1client1/keys.p12 create mode 100644 pki/src/test/resources/keystore/partner1client1/keystore.jks create mode 100644 pki/src/test/resources/keystore/partner1client1/nss.cfg create mode 100644 pki/src/test/resources/keystore/partner1client1/nssdb/cert8.db create mode 100644 pki/src/test/resources/keystore/partner1client1/nssdb/key3.db create mode 100644 pki/src/test/resources/keystore/partner1client1/nssdb/secmod.db create mode 100644 pki/src/test/resources/keystore/partner1client1/nsspin.txt create mode 100644 pki/src/test/resources/keystore/partner1client1/ssl-ca.pem create mode 100644 pki/src/test/resources/keystore/partner1client1/ssl.pem create mode 100644 pki/src/test/resources/keystore/partner1client1/truststore.jks create mode 100644 pki/src/test/resources/keystore/partner2client1/crl.pem create mode 100644 pki/src/test/resources/keystore/partner2client1/keys.p12 create mode 100644 pki/src/test/resources/keystore/partner2client1/keystore.jks create mode 100644 pki/src/test/resources/keystore/partner2client1/nss.cfg create mode 100644 pki/src/test/resources/keystore/partner2client1/nssdb/cert8.db create mode 100644 pki/src/test/resources/keystore/partner2client1/nssdb/key3.db create mode 100644 pki/src/test/resources/keystore/partner2client1/nssdb/secmod.db create mode 100644 pki/src/test/resources/keystore/partner2client1/nsspin.txt create mode 100644 pki/src/test/resources/keystore/partner2client1/ssl-ca.pem create mode 100644 pki/src/test/resources/keystore/partner2client1/ssl.pem create mode 100644 pki/src/test/resources/keystore/partner2client1/truststore.jks diff --git a/pki/src/main/java/org/hyperledger/besu/pki/keystore/AbstractKeyStoreWrapper.java b/pki/src/main/java/org/hyperledger/besu/pki/keystore/AbstractKeyStoreWrapper.java new file mode 100644 index 0000000000..3c816d941c --- /dev/null +++ b/pki/src/main/java/org/hyperledger/besu/pki/keystore/AbstractKeyStoreWrapper.java @@ -0,0 +1,53 @@ +/* + * Copyright ConsenSys AG. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ +package org.hyperledger.besu.pki.keystore; + +import org.hyperledger.besu.pki.PkiException; + +import java.io.FileInputStream; +import java.io.InputStream; +import java.nio.file.Path; +import java.security.cert.CertificateFactory; +import java.security.cert.X509CRL; +import java.util.Collection; +import java.util.stream.Collectors; + +public abstract class AbstractKeyStoreWrapper implements KeyStoreWrapper { + + private static final String X_509 = "X.509"; + + private final Collection crls; + + protected AbstractKeyStoreWrapper(final Path crlLocation) { + super(); + if (null == crlLocation) { + this.crls = null; + } else { + try (InputStream stream = new FileInputStream(crlLocation.toFile())) { + this.crls = + CertificateFactory.getInstance(X_509).generateCRLs(stream).stream() + .map(X509CRL.class::cast) + .collect(Collectors.toList()); + } catch (final Exception e) { + throw new PkiException("Failed to initialize software truststore", e); + } + } + } + + @Override + public Collection getCRLs() { + return crls; + } +} diff --git a/pki/src/main/java/org/hyperledger/besu/pki/keystore/HardwareKeyStoreWrapper.java b/pki/src/main/java/org/hyperledger/besu/pki/keystore/HardwareKeyStoreWrapper.java index 52f55a4ee6..405e235cb4 100644 --- a/pki/src/main/java/org/hyperledger/besu/pki/keystore/HardwareKeyStoreWrapper.java +++ b/pki/src/main/java/org/hyperledger/besu/pki/keystore/HardwareKeyStoreWrapper.java @@ -39,7 +39,7 @@ import org.apache.logging.log4j.Logger; * (emulated) HSM or a physical/cloud HSM (see here */ -public class HardwareKeyStoreWrapper implements KeyStoreWrapper { +public class HardwareKeyStoreWrapper extends AbstractKeyStoreWrapper { private static final Logger LOG = LogManager.getLogger(); @@ -50,7 +50,9 @@ public class HardwareKeyStoreWrapper implements KeyStoreWrapper { private final java.security.Provider provider; - public HardwareKeyStoreWrapper(final String keystorePassword, final Provider provider) { + public HardwareKeyStoreWrapper( + final String keystorePassword, final Provider provider, final Path crlLocation) { + super(crlLocation); try { if (provider == null) { throw new IllegalArgumentException("Provider is null"); @@ -70,7 +72,9 @@ public class HardwareKeyStoreWrapper implements KeyStoreWrapper { } } - public HardwareKeyStoreWrapper(final String keystorePassword, final Path config) { + public HardwareKeyStoreWrapper( + final String keystorePassword, final Path config, final Path crlLocation) { + super(crlLocation); try { if (keystorePassword == null) { throw new IllegalArgumentException("Keystore password is null"); @@ -103,6 +107,7 @@ public class HardwareKeyStoreWrapper implements KeyStoreWrapper { @VisibleForTesting HardwareKeyStoreWrapper(final KeyStore keystore, final String password) { + super(null); this.keystore = keystore; this.keystorePassword = password.toCharArray(); this.provider = null; @@ -167,4 +172,9 @@ public class HardwareKeyStoreWrapper implements KeyStoreWrapper { return provider.configure(config); } } + + @VisibleForTesting + public Provider getPkcs11ProviderForConfig(final String config) { + return getPkcs11Provider(config); + } } diff --git a/pki/src/main/java/org/hyperledger/besu/pki/keystore/KeyStoreWrapper.java b/pki/src/main/java/org/hyperledger/besu/pki/keystore/KeyStoreWrapper.java index b1decb4d1b..c14d781812 100644 --- a/pki/src/main/java/org/hyperledger/besu/pki/keystore/KeyStoreWrapper.java +++ b/pki/src/main/java/org/hyperledger/besu/pki/keystore/KeyStoreWrapper.java @@ -18,6 +18,8 @@ import java.security.KeyStore; import java.security.PrivateKey; import java.security.PublicKey; import java.security.cert.Certificate; +import java.security.cert.X509CRL; +import java.util.Collection; public interface KeyStoreWrapper { @@ -36,4 +38,6 @@ public interface KeyStoreWrapper { Certificate getCertificate(String certificateAlias); Certificate[] getCertificateChain(String certificateAlias); + + Collection getCRLs(); } diff --git a/pki/src/main/java/org/hyperledger/besu/pki/keystore/SoftwareKeyStoreWrapper.java b/pki/src/main/java/org/hyperledger/besu/pki/keystore/SoftwareKeyStoreWrapper.java index 9a2d4e3c25..d3d79374f4 100644 --- a/pki/src/main/java/org/hyperledger/besu/pki/keystore/SoftwareKeyStoreWrapper.java +++ b/pki/src/main/java/org/hyperledger/besu/pki/keystore/SoftwareKeyStoreWrapper.java @@ -32,7 +32,7 @@ import com.google.common.annotations.VisibleForTesting; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -public class SoftwareKeyStoreWrapper implements KeyStoreWrapper { +public class SoftwareKeyStoreWrapper extends AbstractKeyStoreWrapper { private static final Logger LOG = LogManager.getLogger(); @@ -46,8 +46,11 @@ public class SoftwareKeyStoreWrapper implements KeyStoreWrapper { private final Map cachedCertificates = new HashMap<>(); public SoftwareKeyStoreWrapper( - final String keystoreType, final Path keystoreLocation, final String keystorePassword) { - this(keystoreType, keystoreLocation, keystorePassword, null, null, null); + final String keystoreType, + final Path keystoreLocation, + final String keystorePassword, + final Path crlLocation) { + this(keystoreType, keystoreLocation, keystorePassword, null, null, null, crlLocation); } public SoftwareKeyStoreWrapper( @@ -56,7 +59,9 @@ public class SoftwareKeyStoreWrapper implements KeyStoreWrapper { final String keystorePassword, final String truststoreType, final Path truststoreLocation, - final String truststorePassword) { + final String truststorePassword, + final Path crlLocation) { + super(crlLocation); if (keystorePassword == null) { throw new IllegalArgumentException("Keystore password is null"); @@ -90,6 +95,7 @@ public class SoftwareKeyStoreWrapper implements KeyStoreWrapper { final String keystorePassword, final KeyStore truststore, final String truststorePassword) { + super(null); this.keystore = keystore; this.keystorePassword = keystorePassword.toCharArray(); this.truststore = truststore; diff --git a/pki/src/test/java/org/hyperledger/besu/pki/keystore/BaseKeyStoreFileWrapperTest.java b/pki/src/test/java/org/hyperledger/besu/pki/keystore/BaseKeyStoreFileWrapperTest.java new file mode 100644 index 0000000000..254e8bf23c --- /dev/null +++ b/pki/src/test/java/org/hyperledger/besu/pki/keystore/BaseKeyStoreFileWrapperTest.java @@ -0,0 +1,126 @@ +/* + * Copyright ConsenSys AG. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ +package org.hyperledger.besu.pki.keystore; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.nio.file.Path; +import java.security.cert.Certificate; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; + +@RunWith(Parameterized.class) +public abstract class BaseKeyStoreFileWrapperTest { + protected static final String KEYSTORE_VALID_KEY_ALIAS = "partner1client1"; + protected static final String KEYSTORE_INVALID_KEY_ALIAS = "partner1clientinvalid"; + protected static final String TRUSTSTORE_VALID_CERTIFICATE_ALIAS = "interca"; + protected static final String TRUSTSTORE_INVALID_CERTIFICATE_ALIAS = "interca-invalid"; + + @Parameterized.Parameter public String keyStoreWrapperDescription; + + @Parameterized.Parameter(1) + public boolean keystoreWrapperConfiguredWithTruststore; + + @Parameterized.Parameter(2) + public KeyStoreWrapper keyStoreWrapper; + + protected static Path toPath(final String path) throws Exception { + return null == path + ? null + : Path.of(BaseKeyStoreFileWrapperTest.class.getResource(path).toURI()); + } + + @Test + public void getPublicKey_WithValidAlias_ReturnsExpectedValue() { + assertThat(keyStoreWrapper.getPublicKey(KEYSTORE_VALID_KEY_ALIAS)) + .as("Public key is not null") + .isNotNull(); + } + + @Test + public void getPublicKey_WithInvalidAlias_ReturnsExpectedValue() { + assertThat(keyStoreWrapper.getPublicKey(KEYSTORE_INVALID_KEY_ALIAS)) + .as("Public key is null") + .isNull(); + } + + @Test + public void getPrivateKey_WithValidAlias_ReturnsExpectedValue() { + assertThat(keyStoreWrapper.getPrivateKey(KEYSTORE_VALID_KEY_ALIAS)) + .as("Private key is not null") + .isNotNull(); + } + + @Test + public void getPrivateKey_WithInvalidAlias_ReturnsExpectedValue() { + assertThat(keyStoreWrapper.getPrivateKey(KEYSTORE_INVALID_KEY_ALIAS)) + .as("Private key is null") + .isNull(); + } + + @Test + public void getCertificate_WithValidAlias_ReturnsExpectedValue() { + assertThat(keyStoreWrapper.getCertificate(KEYSTORE_VALID_KEY_ALIAS)) + .as("Certificate is not null") + .isNotNull(); + } + + @Test + public void getCertificate_WithInvalidAlias_ReturnsExpectedValue() { + assertThat(keyStoreWrapper.getCertificate(KEYSTORE_INVALID_KEY_ALIAS)) + .as("Certificate is null") + .isNull(); + } + + @Test + public void getCertificateChain_WithValidAlias_ReturnsExpectedValue() { + assertThat(keyStoreWrapper.getCertificateChain(KEYSTORE_VALID_KEY_ALIAS)) + .as("Certificate chain is not null") + .isNotNull(); + } + + @Test + public void getCertificateChain_WithInvalidAlias_ReturnsExpectedValue() { + assertThat(keyStoreWrapper.getCertificateChain(KEYSTORE_INVALID_KEY_ALIAS)) + .as("Certificate is null") + .isNull(); + } + + @Test + public void getCertificate_FromTruststore_WithValidAlias_ReturnsExpectedValue() { + final Certificate certificate = + keyStoreWrapper.getCertificate(TRUSTSTORE_VALID_CERTIFICATE_ALIAS); + if (keystoreWrapperConfiguredWithTruststore) { + assertThat(certificate).as("Certificate is not null").isNotNull(); + } else { + assertThat(certificate).as("Certificate is null").isNull(); + } + } + + @Test + public void getCertificate_FromTruststore_WithInvalidAlias_ReturnsExpectedValue() { + assertThat(keyStoreWrapper.getPrivateKey(TRUSTSTORE_INVALID_CERTIFICATE_ALIAS)) + .as("Certificate is null") + .isNull(); + } + + @Test + public void getCRLS_Check() { + assertThat(keyStoreWrapper.getCRLs()).as("CRLs is not null").isNotNull(); + assertThat(keyStoreWrapper.getCRLs().size()).as("CRLs size matches").isEqualTo(2); + } +} diff --git a/pki/src/test/java/org/hyperledger/besu/pki/keystore/CryptoTestUtil.java b/pki/src/test/java/org/hyperledger/besu/pki/keystore/CryptoTestUtil.java new file mode 100644 index 0000000000..a030bf54a2 --- /dev/null +++ b/pki/src/test/java/org/hyperledger/besu/pki/keystore/CryptoTestUtil.java @@ -0,0 +1,81 @@ +/* + * Copyright ConsenSys AG. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ +package org.hyperledger.besu.pki.keystore; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.util.Optional; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +public class CryptoTestUtil { + + private static final Logger LOG = LogManager.getLogger(); + + private CryptoTestUtil() {} + + public static boolean isNSSLibInstalled() { + try { + final String nssLibPath = getNSSLibPath(); + return nssLibPath != null && !nssLibPath.trim().isEmpty(); + } catch (final Exception e) { + LOG.info("NSS library does not seem to be installed!", e); + } + return false; + } + + public static String getNSSLibPath() throws IOException, InterruptedException { + String nssLibPath = ""; + final String centOS_nssPathCmd = + "whereis libnssdbm3 | grep -o \"\\/.*libnssdbm3\\.[0-9a-z]* \" | sed 's/\\/libnssdbm3.*//g'"; + final String debian_nssPathCmd = + "whereis libnss3 | grep -o \".*libnss3.[0-9a-z]\" | sed 's/lib.* \\(\\/.*\\)\\/lib.*/\\1/'"; + final String macOS_nssPathCmd = "dirname `which certutil` | sed 's/bin/lib/g'"; + + nssLibPath = executeSystemCmd(centOS_nssPathCmd).orElse(nssLibPath); + LOG.info("centOS_nssPathCmd: {}", nssLibPath); + if ("".equals(nssLibPath)) { + nssLibPath = executeSystemCmd(debian_nssPathCmd).orElse(nssLibPath); + LOG.info("debian_nssPathCmd: {}", nssLibPath); + } + if ("".equals(nssLibPath)) { + nssLibPath = executeSystemCmd(macOS_nssPathCmd).orElse(nssLibPath); + LOG.info("macOS_nssPathCmd: {}", nssLibPath); + } + LOG.info("Detected NSS library path: {}", nssLibPath); + return nssLibPath; + } + + public static Optional executeSystemCmd(final String cmd) + throws IOException, InterruptedException { + final Process p = Runtime.getRuntime().exec(new String[] {"/bin/sh", "-c", cmd}); + try { + if (p.waitFor() == 0) { + final java.util.Scanner s = + new java.util.Scanner(p.getInputStream(), StandardCharsets.UTF_8.name()) + .useDelimiter("\\A"); + if (s.hasNext()) { + return Optional.of(s.next().replace("\r", "").replace("\n", "")); + } + } + } finally { + if (p != null) { + p.destroy(); + } + } + return Optional.empty(); + } +} diff --git a/pki/src/test/java/org/hyperledger/besu/pki/keystore/HardwareKeyStoreFileWrapperTest.java b/pki/src/test/java/org/hyperledger/besu/pki/keystore/HardwareKeyStoreFileWrapperTest.java new file mode 100644 index 0000000000..6ffd57f1cc --- /dev/null +++ b/pki/src/test/java/org/hyperledger/besu/pki/keystore/HardwareKeyStoreFileWrapperTest.java @@ -0,0 +1,102 @@ +/* + * Copyright ConsenSys AG. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ +package org.hyperledger.besu.pki.keystore; + +import org.hyperledger.besu.pki.PkiException; + +import java.nio.file.Path; +import java.security.Provider; +import java.security.Security; +import java.util.Arrays; +import java.util.Collection; +import java.util.Optional; +import java.util.stream.Stream; + +import org.junit.Assume; +import org.junit.Before; +import org.junit.Test; +import org.junit.runners.Parameterized; + +public class HardwareKeyStoreFileWrapperTest extends BaseKeyStoreFileWrapperTest { + + private static final String config = "/keystore/partner1client1/nss.cfg"; + private static final String crl = "/keystore/partner1client1/crl.pem"; + private static final String configName = "NSScrypto-partner1client1"; + private static final String validKeystorePassword = "test123"; + + @Parameterized.Parameters(name = "{index}: {0}") + public static Collection data() { + return Arrays.asList( + new Object[][] { + { + "HardwareKeyStoreWrapper[PKCS11 keystore/truststore]", + true, + CryptoTestUtil.isNSSLibInstalled() ? getHardwareKeyStoreWrapper(configName) : null + } + }); + } + + private static KeyStoreWrapper getHardwareKeyStoreWrapper(final String cfgName) { + try { + final Path path = toPath(config); + final Path crlPath = toPath(crl); + final Optional existingProvider = + Stream.of(Security.getProviders()) + .filter(p -> p.getName().equals("SunPKCS11" + cfgName)) + .findAny(); + return existingProvider + .map(provider -> new HardwareKeyStoreWrapper(validKeystorePassword, provider, crlPath)) + .orElseGet(() -> new HardwareKeyStoreWrapper(validKeystorePassword, path, crlPath)); + } catch (final Exception e) { + throw new PkiException("Failed to initialize NSS keystore", e); + } + } + + @Before + public void beforeMethod() { + Assume.assumeTrue( + "Test ignored due to NSS library not being installed/detected.", + CryptoTestUtil.isNSSLibInstalled()); + } + + @Test(expected = IllegalArgumentException.class) + public void getPkcs11Provider() throws Exception { + final HardwareKeyStoreWrapper sut = + (HardwareKeyStoreWrapper) getHardwareKeyStoreWrapper(configName); + sut.getPkcs11ProviderForConfig("no-library"); + } + + @Test + public void init_keystorePassword_config() throws Exception { + new HardwareKeyStoreWrapper(validKeystorePassword, toPath(config), toPath(crl)); + } + + @Test(expected = NullPointerException.class) + public void init_keystorePassword_config_invalid() throws Exception { + final String config = "invalid"; + new HardwareKeyStoreWrapper(validKeystorePassword, toPath(config), toPath(crl)); + } + + @Test(expected = PkiException.class) + public void init_keystorePassword_config_missing_pw() throws Exception { + new HardwareKeyStoreWrapper(null, toPath(config), toPath(crl)); + } + + @Test(expected = PkiException.class) + public void init_keystorePassword_provider_missing_pw() throws Exception { + final Provider p = null; + new HardwareKeyStoreWrapper(validKeystorePassword, p, toPath(crl)); + } +} diff --git a/pki/src/test/java/org/hyperledger/besu/pki/keystore/SoftwareKeyStoreFileWrapperTest.java b/pki/src/test/java/org/hyperledger/besu/pki/keystore/SoftwareKeyStoreFileWrapperTest.java new file mode 100644 index 0000000000..a194d8ec69 --- /dev/null +++ b/pki/src/test/java/org/hyperledger/besu/pki/keystore/SoftwareKeyStoreFileWrapperTest.java @@ -0,0 +1,88 @@ +/* + * Copyright ConsenSys AG. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ +package org.hyperledger.besu.pki.keystore; + +import org.hyperledger.besu.pki.PkiException; + +import java.nio.file.Path; +import java.util.Arrays; +import java.util.Collection; + +import org.junit.runners.Parameterized; + +public class SoftwareKeyStoreFileWrapperTest extends BaseKeyStoreFileWrapperTest { + + private static final String p12KeyStore = "/keystore/partner1client1/keys.p12"; + private static final String jksKeyStore = "/keystore/partner1client1/keystore.jks"; + private static final String trustStore = "/keystore/partner1client1/truststore.jks"; + private static final String crl = "/keystore/partner1client1/crl.pem"; + private static final String validKeystorePassword = "test123"; + + @Parameterized.Parameters(name = "{index}: {0}") + public static Collection data() { + return Arrays.asList( + new Object[][] { + { + "SoftwareKeyStoreWrapper[PKCS12 keystore only]", + false, + getPKCS12SoftwareKeyStoreWrapper() + }, + { + "SoftwareKeyStoreWrapper[JKS keystore only]", + false, + getJKSSoftwareKeyStoreWrapper(false) + }, + { + "SoftwareKeyStoreWrapper[JKS keystore/truststore]", + true, + getJKSSoftwareKeyStoreWrapper(true) + } + }); + } + + private static KeyStoreWrapper getPKCS12SoftwareKeyStoreWrapper() { + try { + return new SoftwareKeyStoreWrapper( + KeyStoreWrapper.KEYSTORE_TYPE_PKCS12, + toPath(p12KeyStore), + validKeystorePassword, + toPath(crl)); + } catch (final Exception e) { + throw new PkiException("Failed to initialize software keystore", e); + } + } + + private static KeyStoreWrapper getJKSSoftwareKeyStoreWrapper(final boolean setupTruststore) { + try { + final Path keystoreLocation = toPath(jksKeyStore); + if (setupTruststore) { + final Path truststoreLocation = toPath(trustStore); + // password shouldn't be needed for retrieving certificate from truststore + return new SoftwareKeyStoreWrapper( + KeyStoreWrapper.KEYSTORE_TYPE_JKS, + keystoreLocation, + validKeystorePassword, + KeyStoreWrapper.KEYSTORE_TYPE_JKS, + truststoreLocation, + null, + toPath(crl)); + } + return new SoftwareKeyStoreWrapper( + KeyStoreWrapper.KEYSTORE_TYPE_JKS, keystoreLocation, validKeystorePassword, toPath(crl)); + } catch (final Exception e) { + throw new PkiException("Failed to initialize software keystore", e); + } + } +} diff --git a/pki/src/test/java/org/hyperledger/besu/pki/keystore/SoftwareKeyStoreWrapperTest.java b/pki/src/test/java/org/hyperledger/besu/pki/keystore/SoftwareKeyStoreWrapperTest.java index 80213cf3c6..e198084ac4 100644 --- a/pki/src/test/java/org/hyperledger/besu/pki/keystore/SoftwareKeyStoreWrapperTest.java +++ b/pki/src/test/java/org/hyperledger/besu/pki/keystore/SoftwareKeyStoreWrapperTest.java @@ -185,7 +185,8 @@ public class SoftwareKeyStoreWrapperTest { "validator", KEYSTORE_TYPE_PKCS12, Path.of("src/test/resources/keystore/keystore"), - "validator"); + "validator", + null); assertThat(loadedKeyStore.getPublicKey("validator")).isNotNull(); assertThat(loadedKeyStore.getPrivateKey("validator")).isNotNull(); diff --git a/pki/src/test/resources/keystore/invalidpartner1client1/crl.pem b/pki/src/test/resources/keystore/invalidpartner1client1/crl.pem new file mode 100644 index 0000000000..659388f652 --- /dev/null +++ b/pki/src/test/resources/keystore/invalidpartner1client1/crl.pem @@ -0,0 +1,27 @@ +-----BEGIN X509 CRL----- +MIICBDCB7QIBATANBgkqhkiG9w0BAQsFADCBgTELMAkGA1UEBhMCVVMxCzAJBgNV +BAgMAkNBMQwwCgYDVQQHDANTRk8xCzAJBgNVBAoMAk1DMQ0wCwYDVQQLDARyb290 +MRMwEQYDVQQDDApwYXJ0bmVyMWNhMSYwJAYJKoZIhvcNAQkBFhdwYXJ0bmVyMWNh +QHBhcnRuZXIxLmNvbRcNMjEwNjA3MTcwNjAwWhcNMjIwNjA3MTcwNjAwWjAnMCUC +FGltgEkvXupxY562dERH8+uKOf89Fw0yMTA2MDcxNzA2MDBaoA4wDDAKBgNVHRQE +AwIBADANBgkqhkiG9w0BAQsFAAOCAQEABF/7Kq+byYi/bRoftL8xqgSGcaLVuCOF +BZVZXDKjyYfISwBqbvPSqtIvnFO1ewicgD7dNIZwWcQ9Kx7OOz4BA6Pe8YPtiBfp +HZMabT8BS2eLePvViGumY7PTo3oIk3yXylOtzMDo59WQhCH/0vp5xjzJC+VFex/W +p/an5ii1y3Q1FpEZNer6jpU0xJEJ2mCaGT/zuj6Mg1awWqmmYce3BahZeCNj8Wyx +GIy8bGUjOdJyp99rAF9euCZ45pAjI12sg9lhPIVkp3Wnoy3La4Yj219Elc3MbJvF +8GEFEmZ0Lm5Ze/EG5VyLB+wRpggeSJTc20i/eGWdaWg8AEukCgMdCg== +-----END X509 CRL----- +-----BEGIN X509 CRL----- +MIICLDCCARQCAQEwDQYJKoZIhvcNAQELBQAwgYExCzAJBgNVBAYTAlVTMQswCQYD +VQQIDAJDQTEMMAoGA1UEBwwDU0ZPMQswCQYDVQQKDAJNQzENMAsGA1UECwwEcm9v +dDETMBEGA1UEAwwKcGFydG5lcjJjYTEmMCQGCSqGSIb3DQEJARYXcGFydG5lcjJj +YUBwYXJ0bmVyMi5jb20XDTIxMDYwNzE3MDYwMFoXDTIyMDYwNzE3MDYwMFowTjAl +AhRpbYBJL17qcWOetnRER/Prijn/PRcNMjEwNjA3MTcwNjAwWjAlAhR+2Aa1zeVQ +jbXFGnXFu53h4vZEahcNMjEwNjA3MTcwNjAwWqAOMAwwCgYDVR0UBAMCAQEwDQYJ +KoZIhvcNAQELBQADggEBAFXQOMk+6FDP8bm9TGK079IHojhooipo+9x3I1y/kUhH +XY7xuyTXOvzv14//xenDuryIjSAC8pyqbls+DcUXkmGZ/nIWugtMykGLNgqqo/Oe +pfoUSXRJP7CtvfHa4ejfr3q1t5MXfM3nqBQumu65slWjDFtE6mZF4ANcsIlsNQ10 +GTkDIdDHgUWxmZlBzTkoofvYspixuUptpJfl5eei9SDA+T1uADKnjARkxVv8xeYi +QwTp6jVYq6YKc9z0l1UMadnFQz8osk7QNypWnsrD0+iBB1if8ikJwy+8BWayTkgQ +tWLFT4n/c1m/wYzSclvZUUOxkkkE4Q9fZ3ReCADC+bQ= +-----END X509 CRL----- diff --git a/pki/src/test/resources/keystore/invalidpartner1client1/keys.p12 b/pki/src/test/resources/keystore/invalidpartner1client1/keys.p12 new file mode 100644 index 0000000000000000000000000000000000000000..54531db7bbc747fdb49980923fb456d8176bdd6b GIT binary patch literal 6250 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 UHgqGLf8>+z+RG3S;X`u&1MWDG@c;k- literal 0 HcmV?d00001 diff --git a/pki/src/test/resources/keystore/invalidpartner1client1/nss.cfg b/pki/src/test/resources/keystore/invalidpartner1client1/nss.cfg new file mode 100644 index 0000000000..08aba6591b --- /dev/null +++ b/pki/src/test/resources/keystore/invalidpartner1client1/nss.cfg @@ -0,0 +1,6 @@ + +name = NSScrypto-invalidpartner1client1 +nssSecmodDirectory = ./src/test/resources/keystore/invalidpartner1client1/nssdb +nssDbMode = readOnly +nssModule = keystore + diff --git a/pki/src/test/resources/keystore/invalidpartner1client1/nssdb/cert8.db b/pki/src/test/resources/keystore/invalidpartner1client1/nssdb/cert8.db new file mode 100644 index 0000000000000000000000000000000000000000..b4acd9ef5962eaed2377f3fe120bbb7a4e56070a GIT binary patch literal 65536 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 OfB*=900{hF1^yeQx<1hW literal 0 HcmV?d00001 diff --git a/pki/src/test/resources/keystore/invalidpartner1client1/nssdb/key3.db b/pki/src/test/resources/keystore/invalidpartner1client1/nssdb/key3.db new file mode 100644 index 0000000000000000000000000000000000000000..6ee017228cf19b723d9ac04fee9f7f104810e489 GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/pki/src/test/resources/keystore/partner1client1/keystore.jks b/pki/src/test/resources/keystore/partner1client1/keystore.jks new file mode 100644 index 0000000000000000000000000000000000000000..a51a778eff98c923cc099d529d66f134e80a932d GIT binary patch literal 6817 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 literal 0 HcmV?d00001 diff --git a/pki/src/test/resources/keystore/partner1client1/nss.cfg b/pki/src/test/resources/keystore/partner1client1/nss.cfg new file mode 100644 index 0000000000..6cd0f7eb87 --- /dev/null +++ b/pki/src/test/resources/keystore/partner1client1/nss.cfg @@ -0,0 +1,6 @@ + +name = NSScrypto-partner1client1 +nssSecmodDirectory = ./src/test/resources/keystore/partner1client1/nssdb +nssDbMode = readOnly +nssModule = keystore + diff --git a/pki/src/test/resources/keystore/partner1client1/nssdb/cert8.db b/pki/src/test/resources/keystore/partner1client1/nssdb/cert8.db new file mode 100644 index 0000000000000000000000000000000000000000..095bc36dd8172c825776becb404c7ebaea44a78b GIT binary patch literal 65536 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 literal 0 HcmV?d00001 diff --git a/pki/src/test/resources/keystore/partner1client1/nssdb/key3.db b/pki/src/test/resources/keystore/partner1client1/nssdb/key3.db new file mode 100644 index 0000000000000000000000000000000000000000..cd4773dc310efe27d1d30da2946fbcee4ba0e53c GIT binary patch literal 16384 zcmeI$XHe5y769;nNPs}V&_Y?75b{68_wyec@E`fd5ro*SbI9>i-}7$l-q~G$dLaKj&!65G zGz0=b00;m9AOHk_01yBIKmZ5;0U+>K5kNv4=ymiwx(;25&O_(zN#mpNrSa{600KY& z2mk>f00e*l5ctCd;E+(LM>vJ-6RzP!3h*IQG$3^<;;XtM4@x=JGIdQ5Ccq7Yt4kro zAni?MW=aw1S@vf_==gR~y6Jf$7Yv4=B04`tv&(vU=jndaB5%+0u(D*g4Y^qitW^7C z-BUY-6>i`8*&S=yl!qzFPm5JwFV^82PD}Hu!U}p$h@(CyTJj_ulgHSe2V`K3w znxq@~rX0Qa+;}k!Kbldt=1A^Z`p93DIl=jw3wIjUN*$_ZaT-iwk@&=NHGOS2@9m@q zP<)B`ZMZgmpbiCts_JQ1wC(#*XE9yRjk)fBA*fu`vyrPg|4Amjqf$9mX`k}kR;fi; z)D5rTc7f{Z(IK=geQHuilv92{uj+|FS|+Vwu2T71z9L)t3H-f;&sDRIDVV!{*Ka;P zF^a0u?9Qkh^BV(_!3~AOFQOk<#b~+O*~uqHzWLewn!)wI-@~6ipD*buB$WNCS5j`} zkvzfOC8{#3f-%X>h3dn4Tgmvv^3d2?Iu#2M>Vaj38}|&7PeMUXMI(BStuEYBPSM5A zjz0~b`F45a&CC}siYZfQWT|bV=0is`FDEHKd+IP1Guxw@%iAC1yD(tvVyS|m^s49! z;9+ZN!HM>7?+V0C7w3$nDVHQTACc{Rwja5DN+`0$*|fVgPWHBq=~RrtPe)F4U)B2f z&S-h`*F(cAQI+btxHU9}&SeiBBV}YG1vTmKl?(>%q9;Y^H;k^|A0pc6idvh{>S}Y- zVznM5HZlBFS`U~{U@8}Tb0p?EFA%0jyu{9w3YWXyCCj^;+KlI%T*3=$A`qS;x3itI zd9vZn;inf23*t;4;~Iwv^3XR z_t|xOO>-Vyq0cIKcj0s-KNvE&1d(6eGiNdy_QatMy@;gx=dd9N(>x6pqCo>?>xkoC^0N=m+RHPLd`TI7QNwV2TP>}U3_ip zN<~(vVJemvw*>g;Z2p9kId^dId<*-*Aq`@ppBU#tE$xsnLGR?d?yXh6Q%ruMRHxR9 zNfD_Np)!(u4kfjRtwZ*;6y0hGuWE{FJKDkupebyy3dyaWtFuxsZ`FkKqqDg>=H(1% zc~37_nMFIa9i`m5sraoTzO#>i++CV+aBomXg@D}MUp|%erQZ2iThJjR;=gFg8YBqu z|DKa7+$1mahLu8NQ)tJjf2+dz5~iGA1}@(SZDUp>Q;}ygh>d0e*JV(R=_TJBf^wkq zs|eH2@wvan{7&PX*=(os8x3=#Ju>kcc7;b!ItQL9?9U4AuJ!cxz8E(9)$a0;i<-Ilxc_FbT zH;dY;-W)eA5+7I_e;mp@m=sXU#J5I1_MSK{k}7d3EDjHUyNs_esb|@S+G3Ox z@b63DO&(&GptWoB_ju|cw#0nBl8f)hpU*gwYLqx>=|%;pvW}P|IKz|Np2Cga_?xe5 zZKdp-qqjN-ZDO1|>y0#CXA_oi_)1Zgl1lscD<-USeq(Ba8w;B2J=o@LX-^Ac^0sM4 z7TORy&WYFlVt;QTDTx3xR1qM1|FV$AvnJ@QM|lmC<3bfUQgU>HjpnSjv|D#doFCUc z6)O+%N>)F#JkHw~y%)OOtf={RI`UI_UOT7r&i?K9etWe0Hj)GOXCC+vY&;V-cDPyB zR6Nz9;YJ{5{=(5a!NQ9q{uFXj`>!g>Y!_FPTX=%BE%y~skxgt+AoZ(QM2{$SIes+n zxwe9S9J@iG=E>l}CIXWvoy;ss_9KOOdXVrD9wZ7}48~A?WF5blT-b|+$)7uoH*bRY z3DAGP6mgk5!>L%DvC)MIUd@?Nw@{CWh^UZoZ@ibkk5>@f$tOG_AcXu^`KJJL0s$ZZ z1b_e#00KY&2mk>f00e*l5C8)IyTJAz{;v%h00AHX1b_e#00KY&2mk>f00e*l5C8)I HZ-IXS8Vq?z literal 0 HcmV?d00001 diff --git a/pki/src/test/resources/keystore/partner1client1/nssdb/secmod.db b/pki/src/test/resources/keystore/partner1client1/nssdb/secmod.db new file mode 100644 index 0000000000000000000000000000000000000000..0f6316142fbb445fa7194a1e3e45006a81152ac2 GIT binary patch literal 16384 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 XZ<2LKa{5MOW6(E7@2ff42Gsryw|$O7 literal 0 HcmV?d00001 diff --git a/pki/src/test/resources/keystore/partner2client1/crl.pem b/pki/src/test/resources/keystore/partner2client1/crl.pem new file mode 100644 index 0000000000..659388f652 --- /dev/null +++ b/pki/src/test/resources/keystore/partner2client1/crl.pem @@ -0,0 +1,27 @@ +-----BEGIN X509 CRL----- +MIICBDCB7QIBATANBgkqhkiG9w0BAQsFADCBgTELMAkGA1UEBhMCVVMxCzAJBgNV +BAgMAkNBMQwwCgYDVQQHDANTRk8xCzAJBgNVBAoMAk1DMQ0wCwYDVQQLDARyb290 +MRMwEQYDVQQDDApwYXJ0bmVyMWNhMSYwJAYJKoZIhvcNAQkBFhdwYXJ0bmVyMWNh +QHBhcnRuZXIxLmNvbRcNMjEwNjA3MTcwNjAwWhcNMjIwNjA3MTcwNjAwWjAnMCUC +FGltgEkvXupxY562dERH8+uKOf89Fw0yMTA2MDcxNzA2MDBaoA4wDDAKBgNVHRQE +AwIBADANBgkqhkiG9w0BAQsFAAOCAQEABF/7Kq+byYi/bRoftL8xqgSGcaLVuCOF +BZVZXDKjyYfISwBqbvPSqtIvnFO1ewicgD7dNIZwWcQ9Kx7OOz4BA6Pe8YPtiBfp +HZMabT8BS2eLePvViGumY7PTo3oIk3yXylOtzMDo59WQhCH/0vp5xjzJC+VFex/W +p/an5ii1y3Q1FpEZNer6jpU0xJEJ2mCaGT/zuj6Mg1awWqmmYce3BahZeCNj8Wyx +GIy8bGUjOdJyp99rAF9euCZ45pAjI12sg9lhPIVkp3Wnoy3La4Yj219Elc3MbJvF +8GEFEmZ0Lm5Ze/EG5VyLB+wRpggeSJTc20i/eGWdaWg8AEukCgMdCg== +-----END X509 CRL----- +-----BEGIN X509 CRL----- +MIICLDCCARQCAQEwDQYJKoZIhvcNAQELBQAwgYExCzAJBgNVBAYTAlVTMQswCQYD +VQQIDAJDQTEMMAoGA1UEBwwDU0ZPMQswCQYDVQQKDAJNQzENMAsGA1UECwwEcm9v +dDETMBEGA1UEAwwKcGFydG5lcjJjYTEmMCQGCSqGSIb3DQEJARYXcGFydG5lcjJj +YUBwYXJ0bmVyMi5jb20XDTIxMDYwNzE3MDYwMFoXDTIyMDYwNzE3MDYwMFowTjAl +AhRpbYBJL17qcWOetnRER/Prijn/PRcNMjEwNjA3MTcwNjAwWjAlAhR+2Aa1zeVQ +jbXFGnXFu53h4vZEahcNMjEwNjA3MTcwNjAwWqAOMAwwCgYDVR0UBAMCAQEwDQYJ +KoZIhvcNAQELBQADggEBAFXQOMk+6FDP8bm9TGK079IHojhooipo+9x3I1y/kUhH +XY7xuyTXOvzv14//xenDuryIjSAC8pyqbls+DcUXkmGZ/nIWugtMykGLNgqqo/Oe +pfoUSXRJP7CtvfHa4ejfr3q1t5MXfM3nqBQumu65slWjDFtE6mZF4ANcsIlsNQ10 +GTkDIdDHgUWxmZlBzTkoofvYspixuUptpJfl5eei9SDA+T1uADKnjARkxVv8xeYi +QwTp6jVYq6YKc9z0l1UMadnFQz8osk7QNypWnsrD0+iBB1if8ikJwy+8BWayTkgQ +tWLFT4n/c1m/wYzSclvZUUOxkkkE4Q9fZ3ReCADC+bQ= +-----END X509 CRL----- diff --git a/pki/src/test/resources/keystore/partner2client1/keys.p12 b/pki/src/test/resources/keystore/partner2client1/keys.p12 new file mode 100644 index 0000000000000000000000000000000000000000..163a7070cf8b733fbe36ddbbf6c6f5645c9cfb62 GIT binary patch literal 6068 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 N5I_I{1Q7V|0w0(%Q4atB literal 0 HcmV?d00001 diff --git a/pki/src/test/resources/keystore/partner2client1/nsspin.txt b/pki/src/test/resources/keystore/partner2client1/nsspin.txt new file mode 100644 index 0000000000..5271a52680 --- /dev/null +++ b/pki/src/test/resources/keystore/partner2client1/nsspin.txt @@ -0,0 +1 @@ +test123 diff --git a/pki/src/test/resources/keystore/partner2client1/ssl-ca.pem b/pki/src/test/resources/keystore/partner2client1/ssl-ca.pem new file mode 100644 index 0000000000..3df5f10dc1 --- /dev/null +++ b/pki/src/test/resources/keystore/partner2client1/ssl-ca.pem @@ -0,0 +1,70 @@ +-----BEGIN CERTIFICATE----- +MIID8DCCAtigAwIBAgIUNniG6StciHezbAqX+uNMciPW7jswDQYJKoZIhvcNAQEL +BQAweDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQwwCgYDVQQHDANTRk8xCzAJ +BgNVBAoMAk1DMQ0wCwYDVQQLDARyb290MRAwDgYDVQQDDAdpbnRlcmNhMSAwHgYJ +KoZIhvcNAQkBFhFpbnRlcmNhQGFkbWluLmNvbTAgFw0yMTA2MDcxNzA1NDlaGA8y +MTIxMDUxNDE3MDU0OVowgYExCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTEMMAoG +A1UEBwwDU0ZPMQswCQYDVQQKDAJNQzENMAsGA1UECwwEcm9vdDETMBEGA1UEAwwK +cGFydG5lcjJjYTEmMCQGCSqGSIb3DQEJARYXcGFydG5lcjJjYUBwYXJ0bmVyMi5j +b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDLvHvIuFFYmNYEA6P2 +/RB3LBDpxbnjl7SU4KCWcfBxQ1guw3aG/HzjenKt3m6UmmESFSh0k4/a/s9m4z/M +ubVqrm0ll2HvyodetFL40jLgSCIbP3taCIhLptaOCB2P6keYEfjGdb5YTNMgCqYk +NYA+dgXtw1VMJvI7aRpmVOIPtQx/nqncigYzxykGlTbeusSPAGp7CAmxTZSJUFLI +ig0ReaKSopiQE2j/ljJXFK26sMlkq3Lw41E4fPju+PBeubeb6eT8fzhn0IaCgTeO +cZgKzVUv3MsrrKfDHXUhGAspKBGDkqkrogZ6UYcvyCLfnRM0vVGc1L7oaFnMMZ1m +NYRpAgMBAAGjZjBkMB0GA1UdDgQWBBSsXIVGVfgo124o7djQsYtrkYPWYzAfBgNV +HSMEGDAWgBT8BlnPk8BS8+JHlIEoCp3sO8jDDjASBgNVHRMBAf8ECDAGAQH/AgEA +MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAQEABSHI1SgQ1FBWmPRZ +nXDspyvbvPsjk/p6erUVGGuDyy/F2rJldz7musNCL5ijAmlQfYPNMNoLU1BR+fAl +WSYfdjL1mMygXtj/KlaNqM5hQMUfyYa4Yk1ODaScl+wfIsSmzTSl/j4fMf58GYpr +9rssVveQrFAipeWhxgGqQNJooAbqmZKE4tePhKzrsH+B2hDEUnFptkasnQEkQQEZ +rSzJlU72U8p3Gwq9t9rKYoBLSr0yoBbh4fdFcPsuN/mZS6TNEu1Uc4ui9eWheGTM +RCNGehiXAczfIhf9WfMfyNhp5/pZc2nTeV/LsSjuCFXUdoL5rAESPcHBc56vXtcV +1ywC0A== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIID6jCCAtKgAwIBAgIUTwPfI+2FxYq0V6uukemLf67qANowDQYJKoZIhvcNAQEL +BQAwfDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQwwCgYDVQQHDANTRk8xCzAJ +BgNVBAoMAk1DMQ0wCwYDVQQLDARyb290MRUwEwYDVQQDDAxyb290Y2EuYWRtaW4x +HzAdBgkqhkiG9w0BCQEWEHJvb3RjYUBhZG1pbi5jb20wIBcNMjEwNjA3MTcwNTQ3 +WhgPMjEyMTA1MTQxNzA1NDdaMHgxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTEM +MAoGA1UEBwwDU0ZPMQswCQYDVQQKDAJNQzENMAsGA1UECwwEcm9vdDEQMA4GA1UE +AwwHaW50ZXJjYTEgMB4GCSqGSIb3DQEJARYRaW50ZXJjYUBhZG1pbi5jb20wggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCxuUWq2F6MFQLeFVBB800pjiJv +pqrpMb8lv5aEOX87slRRkIVe0M/6mSlNvJSSclGindIhsWxaYD4Kend+o+ODhMqT +Jl7zvVTTluGg8SK22kyJ8DTWHnhnFhpoKVLc5qjgvglOf0h7S9F/tL5AkpGoBq7t +PkbOJPxKR7bvn34Iux3HgS1uzwZqHSYBcNHuYB6PSgyQJiNLIrA/019YqqUI5R+W +V/Nb/kkrnsUS+hU6ntAtewus0irO+4fJzBlpN+bvbEBdVHeVmIYhF6ILxtCGWX5l +lOlDrYNXiff0ksKtEvyUV/NFOASixEBMQ88Un7NGHR8y1NW3fCGiVkOhvaprAgMB +AAGjZjBkMB0GA1UdDgQWBBT8BlnPk8BS8+JHlIEoCp3sO8jDDjAfBgNVHSMEGDAW +gBTj0UDC6u67VvpJ2NmXE7vz77nHHTASBgNVHRMBAf8ECDAGAQH/AgEBMA4GA1Ud +DwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAQEAZYQg0VUOQ1DGoU0y0TsTzAZ4 +IEy5xavV7Nma9AJI0ZVFpqGEBjTXjxi7r/co1EREN3bi7QnZfJhU4SGVZ0T7wq+p +/S3x16DEPEufa3JmP+brBPOOP/5EJX5+2BXMUWuDcY7MAokaAIAudjmVk32FoZgy +54FkZ+YRillU++7k0ie8EEYE8pN2ABIqNCdHxGEhwEc0wVwB6bBONmcEssYmipUh +DQH6+sfKBcd+sUMGG3qd79sE7BF9w8bAHhKcBm5eTdEks9jh6H1o0PgBvFP8fFzF +q89KGuLw7T0n/Khkmrv5cifwmTpg42Ivorv8qk02aeiOAGiMyFFJ38BQtH64LQ== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIID2zCCAsOgAwIBAgIURc832yfuirkVrhWhC4O1uBfTZXAwDQYJKoZIhvcNAQEL +BQAwfDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQwwCgYDVQQHDANTRk8xCzAJ +BgNVBAoMAk1DMQ0wCwYDVQQLDARyb290MRUwEwYDVQQDDAxyb290Y2EuYWRtaW4x +HzAdBgkqhkiG9w0BCQEWEHJvb3RjYUBhZG1pbi5jb20wIBcNMjEwNjA3MTcwNTQ3 +WhgPMjEyMTA1MTQxNzA1NDdaMHwxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTEM +MAoGA1UEBwwDU0ZPMQswCQYDVQQKDAJNQzENMAsGA1UECwwEcm9vdDEVMBMGA1UE +AwwMcm9vdGNhLmFkbWluMR8wHQYJKoZIhvcNAQkBFhByb290Y2FAYWRtaW4uY29t +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzKd0JrZR3N0A3C7Gp7sT +zLurt0pVjAIBh3N+5NsyY7eAHJWA7wRR+JpG4q6MxmYVWsk4MjsnWB0ViCCm+fTY +a9tFms6lmsjM4fJgIs8/DP+zBEOien7sD3kfddmI4ClODynNv3ODbJKyhzKQEOZ8 +sdf61yWYuFzayEfNoon6BlqroPv9B0eAsgOFDndPo6vbqAFlrYAyVXx+7hmH7Hv6 +8RWDaSr0uI62uhvAQeK4a+p9aTSwLcHRh1/7NezW9rzI0/7yzP3w/RS7tevDuacU +XMr3sH5xEUahGF72qYUVejUlP48fPLrdGK76QZk0M8K2EOyvuNq66P+UMialx+83 +NwIDAQABo1MwUTAdBgNVHQ4EFgQU49FAwuruu1b6SdjZlxO78++5xx0wHwYDVR0j +BBgwFoAU49FAwuruu1b6SdjZlxO78++5xx0wDwYDVR0TAQH/BAUwAwEB/zANBgkq +hkiG9w0BAQsFAAOCAQEADfrsmYBaeV4/MTRVazsey/o0ZhBoLJ+3RFYC6+M2lYB1 +yT92tbAT3787aHTw/SdFvA11oT+lMDEmBWowzZ1bp/J7tqlqMcmwL4QyhZjp0gmK +eqDXy2Jui/fOTRzWQ1ka7mR6OTWxxVoIjKVvJ/AysqGCTFMXZXrMthtCuQDG+b85 +B3ALz6/j0ZFqgKzftCIuY0UnBtDEuKkAa0QkDMHLvcMAw7V/etpQPypCXqmwnc2e +vvL6cSvakEVE7rErhIeeL+1m2TBSWNrPVIvggLMv655meqkhGQn9uYyiGw6i/2V/ +ngBAs4gYDvk20Cyg0kxQONmzreAdFzArud+k7FofZw== +-----END CERTIFICATE----- diff --git a/pki/src/test/resources/keystore/partner2client1/ssl.pem b/pki/src/test/resources/keystore/partner2client1/ssl.pem new file mode 100644 index 0000000000..2b90737435 --- /dev/null +++ b/pki/src/test/resources/keystore/partner2client1/ssl.pem @@ -0,0 +1,126 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDGcHX9nWsO3oQy +9HlcTQAA9RxCpVqi5MmBG2HuTipppBdXphGyhQggpD1rL5I26vdq1FIuPBlFI1pg +Hd/hw7FOr5HuQ12GZpmmPW5KIbEzeY0MVJNXOw+iUuoaQNHLQSKtV5ZOmIJURIWE +0tjicDOewW/yR9MMStOQladn7WICwwfpgLQeX9EkZqko4iOK9K6ZKUeyRf9kI/86 +2M7/DAi0pxvaBGcW0F9XmBlqQu7Ma6q0fyR1qf2q3OZL3mSWuNV8S4hYyPqgKAce +s5w7zzRSNaeGX644RWU1XY8ze6Zik61aRLI2clHrI8wta8HDCdV1GvHvPj1Y7kqB +xDg0yBqpAgMBAAECggEBAJ2ipshSLcKBFylXNbUR4efgzpNOwaJW9o+eDfx9kYmb +9YMGBFb5AMzVS4kDIDaKDwOJKMNbsINQozFpafjxOL+WDunkD759cJ8ze5JeE2Md +suNRqD4KR9Ad56P1S/MXihGDW36R/i4sxJgP2oR+tzLs3R3s2oWQR2I6z+JqG4qu +tf4gDP6UIrJOirkn7TQD1VQi+8HMWx1BSER6yR86tKKTnwIlgVh0mowWXKXsB5aS +Y38Kfu+OG8FWAkCaVjFZdvg6xQcjI8MEmRqumPPf3OETrE/D6u4+qvpy1D7b8nsf +utYgv1mKYqkU0wvdDt6WTrPn/0fteLw6yMaoPmhim1ECgYEA9eFj889HojPzF7fx +67yWICah9vqd9OPYIPOtQ5rrgnTkiSxk1QyAG6i2Jl15sr8lGuVcVhTyXk/M75Ct +4gWanwbUI6khDKOM3kVN1nx/kvYFrzSuWkswB55OBEbDY/qhGu73ERNaIJdJVrY+ +p5wn1sbT5I1fqAuKwpj2A5B++x0CgYEAzps6ZujBOq896QoiR4MmLEI6rzqprIsL +LHCWnGtwn4SJhPwSUD3yDbyjA5rpodjWatLtX/MV7hWlWARj/ERSOLZlU2rCPNwO +gRgGnpGcSZYhVs7WSa675OEhjmhdUmqcl88pO+14+WLN9Bj8ECqkxyD+srUe5zxo +IisJYBK/e/0CgYADI+bH5VzP2IQBSIshbJ4qOPQWmGrOBt7qxNHwrBjX6LBGhDeh +dPBp6gSxhr4YJ1LM/iLowom55KEEaj+eRF4OK+MntXBDng8dg5sT4zEp6lR2QWD8 +rDsnzcDHUzQJodjO5EBpimq7QdNg9SDluRvVJWLtZ1TSa5tREu0JbJ4CjQKBgADK +kWexfoP2BdutoUH625uRyV3AcMPraGiMKdeBhdXmkQxEVuGdyx6IWWt7HWf0R6Xz +FtumN7BIvvBeW++sZ1A2Sp8OKp5HDXsrF2NmFV4myAvoEOQJWkjfH9zGw4y8QctH +DNZg63SxDy7fJZ/+OdFVbARNM0gZcCCpX4jRqZAVAoGBALz0ELUMj1s42+G6UAZ3 +toBHOBI7o/4R7hRoim21dmpmyz1XJrL17wIZO4vvftNxYI4n/0U0QMFopaakMrCi +E0/I9sU9R/4MyOK0VCPtkeuxznp3xkX8zoNeewK+9EGiEZFcOpsbyRSmwjLCyTKU +G8HIMfRI71A7qj+5Me3q62K2 +-----END PRIVATE KEY----- +-----BEGIN CERTIFICATE----- +MIIEyDCCA7CgAwIBAgIUftgGtc3lUI21xRp1xbud4eL2RGkwDQYJKoZIhvcNAQEL +BQAwgYExCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTEMMAoGA1UEBwwDU0ZPMQsw +CQYDVQQKDAJNQzENMAsGA1UECwwEcm9vdDETMBEGA1UEAwwKcGFydG5lcjJjYTEm +MCQGCSqGSIb3DQEJARYXcGFydG5lcjJjYUBwYXJ0bmVyMi5jb20wIBcNMjEwNjA3 +MTcwNTQ5WhgPMjEyMTA1MTQxNzA1NDlaMIGLMQswCQYDVQQGEwJVUzELMAkGA1UE +CAwCQ0ExDDAKBgNVBAcMA1NGTzELMAkGA1UECgwCTUMxDTALBgNVBAsMBHJvb3Qx +GDAWBgNVBAMMD3BhcnRuZXIyY2xpZW50MTErMCkGCSqGSIb3DQEJARYccGFydG5l +cjJjbGllbnQxQHBhcnRuZXIyLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBAMZwdf2daw7ehDL0eVxNAAD1HEKlWqLkyYEbYe5OKmmkF1emEbKFCCCk +PWsvkjbq92rUUi48GUUjWmAd3+HDsU6vke5DXYZmmaY9bkohsTN5jQxUk1c7D6JS +6hpA0ctBIq1Xlk6YglREhYTS2OJwM57Bb/JH0wxK05CVp2ftYgLDB+mAtB5f0SRm +qSjiI4r0rpkpR7JF/2Qj/zrYzv8MCLSnG9oEZxbQX1eYGWpC7sxrqrR/JHWp/arc +5kveZJa41XxLiFjI+qAoBx6znDvPNFI1p4ZfrjhFZTVdjzN7pmKTrVpEsjZyUesj +zC1rwcMJ1XUa8e8+PVjuSoHEODTIGqkCAwEAAaOCASgwggEkMBEGCWCGSAGG+EIB +AQQEAwIGwDAdBgNVHQ4EFgQUojh+oPjTK6xgPMtbz+XEy4tl7iwwCQYDVR0TBAIw +ADAOBgNVHQ8BAf8EBAMCBeAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC +MIG1BgNVHSMEga0wgaqAFKxchUZV+CjXbijt2NCxi2uRg9ZjoXykejB4MQswCQYD +VQQGEwJVUzELMAkGA1UECAwCQ0ExDDAKBgNVBAcMA1NGTzELMAkGA1UECgwCTUMx +DTALBgNVBAsMBHJvb3QxEDAOBgNVBAMMB2ludGVyY2ExIDAeBgkqhkiG9w0BCQEW +EWludGVyY2FAYWRtaW4uY29tghQ2eIbpK1yId7NsCpf640xyI9buOzANBgkqhkiG +9w0BAQsFAAOCAQEAbhEisOmfG5/Ks7MHu9cl17R9ISIFbMVv4wBiztLt2tWv5o5P +ul9DG2s9tBuOzs3xB4v2aZg7H2kPnUPDaTe7z5Ulc5+IyHDGSdsBzBqONH3sElue +HyZo1cOXU6nBIineYGYc0Bs9QnLRA0dmaYWZyjqB5S5GCs9Z5mk/JWzA1d110uio +RzStTpbSFlYvBpLTPShLREfFp56SMHDEaHBIoVERzfULvQwZLDsIAyqE/W+WE0FF +Lxhz3jxvztoOE6Sr5cmOp7nuwo3ALlWOjFCHOZRs/1qDDnIgXFnPKsZohtvVK2TG +a+/zW8wRyAAo4FgBTfqICXpOtK+Yg479Aj2GbQ== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIID8DCCAtigAwIBAgIUNniG6StciHezbAqX+uNMciPW7jswDQYJKoZIhvcNAQEL +BQAweDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQwwCgYDVQQHDANTRk8xCzAJ +BgNVBAoMAk1DMQ0wCwYDVQQLDARyb290MRAwDgYDVQQDDAdpbnRlcmNhMSAwHgYJ +KoZIhvcNAQkBFhFpbnRlcmNhQGFkbWluLmNvbTAgFw0yMTA2MDcxNzA1NDlaGA8y +MTIxMDUxNDE3MDU0OVowgYExCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTEMMAoG +A1UEBwwDU0ZPMQswCQYDVQQKDAJNQzENMAsGA1UECwwEcm9vdDETMBEGA1UEAwwK +cGFydG5lcjJjYTEmMCQGCSqGSIb3DQEJARYXcGFydG5lcjJjYUBwYXJ0bmVyMi5j +b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDLvHvIuFFYmNYEA6P2 +/RB3LBDpxbnjl7SU4KCWcfBxQ1guw3aG/HzjenKt3m6UmmESFSh0k4/a/s9m4z/M +ubVqrm0ll2HvyodetFL40jLgSCIbP3taCIhLptaOCB2P6keYEfjGdb5YTNMgCqYk +NYA+dgXtw1VMJvI7aRpmVOIPtQx/nqncigYzxykGlTbeusSPAGp7CAmxTZSJUFLI +ig0ReaKSopiQE2j/ljJXFK26sMlkq3Lw41E4fPju+PBeubeb6eT8fzhn0IaCgTeO +cZgKzVUv3MsrrKfDHXUhGAspKBGDkqkrogZ6UYcvyCLfnRM0vVGc1L7oaFnMMZ1m +NYRpAgMBAAGjZjBkMB0GA1UdDgQWBBSsXIVGVfgo124o7djQsYtrkYPWYzAfBgNV +HSMEGDAWgBT8BlnPk8BS8+JHlIEoCp3sO8jDDjASBgNVHRMBAf8ECDAGAQH/AgEA +MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAQEABSHI1SgQ1FBWmPRZ +nXDspyvbvPsjk/p6erUVGGuDyy/F2rJldz7musNCL5ijAmlQfYPNMNoLU1BR+fAl +WSYfdjL1mMygXtj/KlaNqM5hQMUfyYa4Yk1ODaScl+wfIsSmzTSl/j4fMf58GYpr +9rssVveQrFAipeWhxgGqQNJooAbqmZKE4tePhKzrsH+B2hDEUnFptkasnQEkQQEZ +rSzJlU72U8p3Gwq9t9rKYoBLSr0yoBbh4fdFcPsuN/mZS6TNEu1Uc4ui9eWheGTM +RCNGehiXAczfIhf9WfMfyNhp5/pZc2nTeV/LsSjuCFXUdoL5rAESPcHBc56vXtcV +1ywC0A== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIID6jCCAtKgAwIBAgIUTwPfI+2FxYq0V6uukemLf67qANowDQYJKoZIhvcNAQEL +BQAwfDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQwwCgYDVQQHDANTRk8xCzAJ +BgNVBAoMAk1DMQ0wCwYDVQQLDARyb290MRUwEwYDVQQDDAxyb290Y2EuYWRtaW4x +HzAdBgkqhkiG9w0BCQEWEHJvb3RjYUBhZG1pbi5jb20wIBcNMjEwNjA3MTcwNTQ3 +WhgPMjEyMTA1MTQxNzA1NDdaMHgxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTEM +MAoGA1UEBwwDU0ZPMQswCQYDVQQKDAJNQzENMAsGA1UECwwEcm9vdDEQMA4GA1UE +AwwHaW50ZXJjYTEgMB4GCSqGSIb3DQEJARYRaW50ZXJjYUBhZG1pbi5jb20wggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCxuUWq2F6MFQLeFVBB800pjiJv +pqrpMb8lv5aEOX87slRRkIVe0M/6mSlNvJSSclGindIhsWxaYD4Kend+o+ODhMqT +Jl7zvVTTluGg8SK22kyJ8DTWHnhnFhpoKVLc5qjgvglOf0h7S9F/tL5AkpGoBq7t +PkbOJPxKR7bvn34Iux3HgS1uzwZqHSYBcNHuYB6PSgyQJiNLIrA/019YqqUI5R+W +V/Nb/kkrnsUS+hU6ntAtewus0irO+4fJzBlpN+bvbEBdVHeVmIYhF6ILxtCGWX5l +lOlDrYNXiff0ksKtEvyUV/NFOASixEBMQ88Un7NGHR8y1NW3fCGiVkOhvaprAgMB +AAGjZjBkMB0GA1UdDgQWBBT8BlnPk8BS8+JHlIEoCp3sO8jDDjAfBgNVHSMEGDAW +gBTj0UDC6u67VvpJ2NmXE7vz77nHHTASBgNVHRMBAf8ECDAGAQH/AgEBMA4GA1Ud +DwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAQEAZYQg0VUOQ1DGoU0y0TsTzAZ4 +IEy5xavV7Nma9AJI0ZVFpqGEBjTXjxi7r/co1EREN3bi7QnZfJhU4SGVZ0T7wq+p +/S3x16DEPEufa3JmP+brBPOOP/5EJX5+2BXMUWuDcY7MAokaAIAudjmVk32FoZgy +54FkZ+YRillU++7k0ie8EEYE8pN2ABIqNCdHxGEhwEc0wVwB6bBONmcEssYmipUh +DQH6+sfKBcd+sUMGG3qd79sE7BF9w8bAHhKcBm5eTdEks9jh6H1o0PgBvFP8fFzF +q89KGuLw7T0n/Khkmrv5cifwmTpg42Ivorv8qk02aeiOAGiMyFFJ38BQtH64LQ== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIID2zCCAsOgAwIBAgIURc832yfuirkVrhWhC4O1uBfTZXAwDQYJKoZIhvcNAQEL +BQAwfDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQwwCgYDVQQHDANTRk8xCzAJ +BgNVBAoMAk1DMQ0wCwYDVQQLDARyb290MRUwEwYDVQQDDAxyb290Y2EuYWRtaW4x +HzAdBgkqhkiG9w0BCQEWEHJvb3RjYUBhZG1pbi5jb20wIBcNMjEwNjA3MTcwNTQ3 +WhgPMjEyMTA1MTQxNzA1NDdaMHwxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTEM +MAoGA1UEBwwDU0ZPMQswCQYDVQQKDAJNQzENMAsGA1UECwwEcm9vdDEVMBMGA1UE +AwwMcm9vdGNhLmFkbWluMR8wHQYJKoZIhvcNAQkBFhByb290Y2FAYWRtaW4uY29t +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzKd0JrZR3N0A3C7Gp7sT +zLurt0pVjAIBh3N+5NsyY7eAHJWA7wRR+JpG4q6MxmYVWsk4MjsnWB0ViCCm+fTY +a9tFms6lmsjM4fJgIs8/DP+zBEOien7sD3kfddmI4ClODynNv3ODbJKyhzKQEOZ8 +sdf61yWYuFzayEfNoon6BlqroPv9B0eAsgOFDndPo6vbqAFlrYAyVXx+7hmH7Hv6 +8RWDaSr0uI62uhvAQeK4a+p9aTSwLcHRh1/7NezW9rzI0/7yzP3w/RS7tevDuacU +XMr3sH5xEUahGF72qYUVejUlP48fPLrdGK76QZk0M8K2EOyvuNq66P+UMialx+83 +NwIDAQABo1MwUTAdBgNVHQ4EFgQU49FAwuruu1b6SdjZlxO78++5xx0wHwYDVR0j +BBgwFoAU49FAwuruu1b6SdjZlxO78++5xx0wDwYDVR0TAQH/BAUwAwEB/zANBgkq +hkiG9w0BAQsFAAOCAQEADfrsmYBaeV4/MTRVazsey/o0ZhBoLJ+3RFYC6+M2lYB1 +yT92tbAT3787aHTw/SdFvA11oT+lMDEmBWowzZ1bp/J7tqlqMcmwL4QyhZjp0gmK +eqDXy2Jui/fOTRzWQ1ka7mR6OTWxxVoIjKVvJ/AysqGCTFMXZXrMthtCuQDG+b85 +B3ALz6/j0ZFqgKzftCIuY0UnBtDEuKkAa0QkDMHLvcMAw7V/etpQPypCXqmwnc2e +vvL6cSvakEVE7rErhIeeL+1m2TBSWNrPVIvggLMv655meqkhGQn9uYyiGw6i/2V/ +ngBAs4gYDvk20Cyg0kxQONmzreAdFzArud+k7FofZw== +-----END CERTIFICATE----- diff --git a/pki/src/test/resources/keystore/partner2client1/truststore.jks b/pki/src/test/resources/keystore/partner2client1/truststore.jks new file mode 100644 index 0000000000000000000000000000000000000000..f2a54903b30054e525051f0897c3e55d51c1d8eb GIT binary patch literal 3135 zcmc(hcTiMW8pYr1Zd!6~K^bgv7GC!>X_yg|qykD77#2k`C;}pAgG~lO7LXue1)&j; zC^=&yLnBEEjU!1>kR&hyP1*)!WL>x1s@*F8cy-@*&#ii2op;ag-p!fK82|ua)CayZ z!mKO-0KE3rg&`53F_D&q6sgKEFf=j0m?&m)tQZh-15iGcsMAlUs4pC>#ccTqe98!dg}M{uJjshtOL|(ikfUZ?Z+1wJKnhL``^6 zH~2DFmj;}M)RUfNB(;!67tRTEDl=}CAXJHX!Zgb@^p(LIBjTr6#5*2c4!96q9Dh>e|LWP2Xa85VPm$^xUEQpiRCn*2tSMdmv=mi}C># z;2^P78Bt!%^Z4jkrPI`P2VCLdC*2`u*JP*rKGwGMZZ42E<~KNN%HG#kWpSFfEf*48 z*)-C)Ek0%kq42W8%8}?_tN-9Gpd3xa{rt3?b^1Xix%%B!ELJ3=c}`v)1_uE!-2l>~ z{%E)nFEe64f^)oE<>}OHjWOlKz+gN_&Ei~DGcSbRmIV>q(0<=`_+8G5ko$ z-hF;URK1qzN}6&8gb|@}ggTOc&sy**&vwML7Rm%-gAyit=)&-+{q5(SZ!SO6`KeFU z^x&*DUQxEF(Tp}cNJg#wP_(DY?PTyeiivmD;1Nt1wuSKf=oeNmdQt zn>It+?IfSx#nR2)*~SgKO8}OOUkI>7CBQtD00W;1Aa^x*Qquf}XUPTnc*?l8n_%Cp z(pSzxS9g>BKM{ZxV*W&ceGbmOSNuBtie`|X-~XjK4v6hj zb9>Cgh(JPn`{VlJtIF={4x_%ufc9FimP$R7ggyj3{o@9!rxfdCW7T+kY3xYqZP$5M zRTJrYkKlFhalBjpE9clGOLml)drTyGv(t85nN(HgSa4A|-g2%j#G+Jxr3X85T!2T} z%Z&DhR%TxWEpOzMW&+zv)0KxN+P!@AnL@I@M?7d|>W#ET7L*(g+8U0rlrj3GWWNkU z{@g5%jFWp+-4F>ldePDq>BNTW>bHb3v0WoZ6BD91?6+=X&v52f7q(jGy3LR4DR{5U zuFP9hRs3V}^}3IOU01NbpL~RC0)2;(%*%GkysUcOEBxFH;$mz8(brbS>l znFCj+cjx)TclM?vOtP(Ppu;By*h1EO7?5Wkq+zro*6%DfGtgCZ)9F?~pVhxGU>#}N z8S_|waZEGTPmDf!TB)U;8Djs70kja3$^aM$?CdIDmTfK|sE1ncSDSYS3pD&KFT_}% z>l!C4nI^kTXGsp#t_j9a@c1$mw^Km7Oe4A2#`DNTb^S4!gmjpL?)88Uh|FN1tG7BY zY$}5G!2X#)O0^i+k}&@J{b!acjp)|k%JVv>nC{()pGFHbWOm>(Hjkh&o8AY)oIch_ z881iW=?Y}LNoxXgRC?@FkyDA$fn)uVfqCx>ef-F*4f?JQzbrs~c^S)Xq>#(W&M@N^{UDl-KR};1Fb+FGEUcO2E^G(`SYm%Cv2A(?}Bn=C2 zZI~{iTLv87QcN#9^jD$e|Lw_>%P9{m`ceH-u&x~}?8ffXt$-=? z3lnCkOqilFq31IbPQ!-O}=vbahe^#dT_9quum~$vyl<7tGEb zp~rg?(#Hb=+hRm47V8XqZ;z&a5GW^WhtA{r4qdg|f6!iB|K-H}k%x4re2#l*b^DY) zREfTIA6YPSMB|yz`bo|5xw{0~8s28V!_J*ZM_v)orF-_=p~#brQ6hp`0)@)GXH9Z4 zXy2f3pIQ8U^MqtdBRd84OG?*aFNVAxiDzpet)v4E@)L6xRQ_h@8J7^u&qZWt>Iya` z*u+k%<_DY!U0#ZQn$Nx-duCBx0YPj~(N^u`yj!Bdi^e{GQQ^%`G*(Tk%W?V^4Za!n z@7@Uhod)24Lj#*YzHTFCRo$jE9c;G}2MKwVPrIry_r>&J(h}@=cbs}=S|AeFAIV+w zU|H-JqMV6DNrw|Qf3=gEU(^E1DRuHUy#s#$dtolpGb-1vDJV$FJvj-1202*5tPMeoG$ fW8G3h<>5h1A5-BW;QGA*1NHKHg>;z~!rDIpZ_