Search in sources :

Example 1 with BasicTlsOptions

use of tech.pegasys.web3signer.dsl.tls.BasicTlsOptions in project web3signer by ConsenSys.

the class ServerSideTlsCaClientAcceptanceTest method createSigner.

private Signer createSigner(final TlsCertificateDefinition certInCa, final Path testDir, final boolean useConfigFile) throws Exception {
    final Path passwordPath = testDir.resolve("keystore.passwd");
    writeString(passwordPath, serverCert.getPassword());
    final TlsOptions serverOptions = new BasicTlsOptions(serverCert.getPkcs12File(), passwordPath.toFile(), Optional.of(BasicClientAuthConstraints.caOnly()));
    final SignerConfigurationBuilder configBuilder = new SignerConfigurationBuilder().withServerTlsOptions(serverOptions).withOverriddenCA(certInCa).withUseConfigFile(useConfigFile).withMode("eth2");
    final ClientTlsConfig clientTlsConfig = new ClientTlsConfig(serverCert, clientCert);
    return new Signer(configBuilder.build(), clientTlsConfig);
}
Also used : Path(java.nio.file.Path) ClientTlsConfig(tech.pegasys.web3signer.dsl.tls.ClientTlsConfig) Signer(tech.pegasys.web3signer.dsl.signer.Signer) BasicTlsOptions(tech.pegasys.web3signer.dsl.tls.BasicTlsOptions) SignerConfigurationBuilder(tech.pegasys.web3signer.dsl.signer.SignerConfigurationBuilder) BasicTlsOptions(tech.pegasys.web3signer.dsl.tls.BasicTlsOptions) TlsOptions(tech.pegasys.web3signer.core.config.TlsOptions)

Example 2 with BasicTlsOptions

use of tech.pegasys.web3signer.dsl.tls.BasicTlsOptions in project web3signer by ConsenSys.

the class ServerSideTlsAcceptanceTest method createTlsSigner.

private Signer createTlsSigner(final TlsCertificateDefinition serverPresentedCerts, final TlsCertificateDefinition clientExpectedCert, final TlsCertificateDefinition clientCertInServerWhitelist, final TlsCertificateDefinition clientToPresent, final int fixedListenPort, final boolean useConfigFile) {
    try {
        final SignerConfigurationBuilder configBuilder = new SignerConfigurationBuilder().withHttpPort(fixedListenPort).withUseConfigFile(useConfigFile).withMode("eth1");
        final ClientAuthConstraints clientAuthConstraints;
        if (clientCertInServerWhitelist != null) {
            final Path fingerPrintFilePath = dataPath.resolve("known_clients");
            populateFingerprintFile(fingerPrintFilePath, clientCertInServerWhitelist, Optional.empty());
            clientAuthConstraints = BasicClientAuthConstraints.fromFile(fingerPrintFilePath.toFile());
        } else {
            clientAuthConstraints = null;
        }
        final Path passwordPath = dataPath.resolve("keystore.passwd");
        if (serverPresentedCerts.getPassword() != null) {
            writeString(passwordPath, serverPresentedCerts.getPassword());
        }
        final TlsOptions serverOptions = new BasicTlsOptions(serverPresentedCerts.getPkcs12File(), passwordPath.toFile(), Optional.ofNullable(clientAuthConstraints));
        configBuilder.withServerTlsOptions(serverOptions);
        final ClientTlsConfig clientTlsConfig;
        if (clientExpectedCert != null) {
            clientTlsConfig = new ClientTlsConfig(clientExpectedCert, clientToPresent);
        } else {
            clientTlsConfig = null;
        }
        return new Signer(configBuilder.build(), clientTlsConfig);
    } catch (final Exception e) {
        fail("Failed to create EthSigner.", e);
        return null;
    }
}
Also used : Path(java.nio.file.Path) ClientTlsConfig(tech.pegasys.web3signer.dsl.tls.ClientTlsConfig) Signer(tech.pegasys.web3signer.dsl.signer.Signer) BasicTlsOptions(tech.pegasys.web3signer.dsl.tls.BasicTlsOptions) ClientAuthConstraints(tech.pegasys.web3signer.core.config.ClientAuthConstraints) BasicClientAuthConstraints(tech.pegasys.web3signer.tests.tls.support.BasicClientAuthConstraints) SignerConfigurationBuilder(tech.pegasys.web3signer.dsl.signer.SignerConfigurationBuilder) BasicTlsOptions(tech.pegasys.web3signer.dsl.tls.BasicTlsOptions) TlsOptions(tech.pegasys.web3signer.core.config.TlsOptions) SSLHandshakeException(javax.net.ssl.SSLHandshakeException) IOException(java.io.IOException)

Example 3 with BasicTlsOptions

use of tech.pegasys.web3signer.dsl.tls.BasicTlsOptions in project web3signer by ConsenSys.

the class ServerSideTlsAcceptanceTest method missingKeyStoreFileResultsInEthSignerExiting.

@ParameterizedTest
@ValueSource(booleans = { true, false })
void missingKeyStoreFileResultsInEthSignerExiting(final boolean useConfigFile) throws IOException {
    final TlsOptions serverOptions = new BasicTlsOptions(dataPath.resolve("missing_keystore").toFile(), Files.writeString(dataPath.resolve("password"), "password").toFile(), Optional.empty());
    // Requires arbitrary port to avoid waiting for Ports file
    final SignerConfigurationBuilder configBuilder = new SignerConfigurationBuilder().withUseConfigFile(useConfigFile).withServerTlsOptions(serverOptions).withHttpPort(9000);
    signer = new Signer(configBuilder.withMode("eth2").build(), null);
    signer.start();
    waitFor(() -> assertThat(signer.isRunning()).isFalse());
}
Also used : Signer(tech.pegasys.web3signer.dsl.signer.Signer) BasicTlsOptions(tech.pegasys.web3signer.dsl.tls.BasicTlsOptions) SignerConfigurationBuilder(tech.pegasys.web3signer.dsl.signer.SignerConfigurationBuilder) BasicTlsOptions(tech.pegasys.web3signer.dsl.tls.BasicTlsOptions) TlsOptions(tech.pegasys.web3signer.core.config.TlsOptions) ValueSource(org.junit.jupiter.params.provider.ValueSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Aggregations

TlsOptions (tech.pegasys.web3signer.core.config.TlsOptions)3 Signer (tech.pegasys.web3signer.dsl.signer.Signer)3 SignerConfigurationBuilder (tech.pegasys.web3signer.dsl.signer.SignerConfigurationBuilder)3 BasicTlsOptions (tech.pegasys.web3signer.dsl.tls.BasicTlsOptions)3 Path (java.nio.file.Path)2 ClientTlsConfig (tech.pegasys.web3signer.dsl.tls.ClientTlsConfig)2 IOException (java.io.IOException)1 SSLHandshakeException (javax.net.ssl.SSLHandshakeException)1 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)1 ValueSource (org.junit.jupiter.params.provider.ValueSource)1 ClientAuthConstraints (tech.pegasys.web3signer.core.config.ClientAuthConstraints)1 BasicClientAuthConstraints (tech.pegasys.web3signer.tests.tls.support.BasicClientAuthConstraints)1