Search in sources :

Example 1 with SigningMetadataFile

use of tech.pegasys.signers.secp256k1.multikey.metadata.SigningMetadataFile in project signers by ConsenSys.

the class SigningMetadataTomlConfigLoaderTest method azureConfigIsLoadedIfAzureMetadataFileInDirectory.

@Test
void azureConfigIsLoadedIfAzureMetadataFileInDirectory() {
    copyFileIntoConfigDirectory("azureconfig.toml");
    final Collection<SigningMetadataFile> metadataFiles = loader.loadAvailableSigningMetadataTomlConfigs(entry -> true);
    assertThat(metadataFiles.size()).isOne();
    assertThat(metadataFiles.toArray()[0]).isInstanceOf(AzureSigningMetadataFile.class);
    final AzureSigningMetadataFile metadataFile = (AzureSigningMetadataFile) metadataFiles.toArray()[0];
    assertThat(metadataFile.getConfig().getClientId()).isEqualTo("theClientId");
    assertThat(metadataFile.getConfig().getClientSecret()).isEqualTo("theClientSecret");
    assertThat(metadataFile.getConfig().getKeyVaultName()).isEqualTo("testkey");
    assertThat(metadataFile.getConfig().getKeyName()).isEqualTo("TestKey");
    assertThat(metadataFile.getConfig().getKeyVersion()).isEqualTo("7c01fe58d68148bba5824ce418241092");
    assertThat(metadataFile.getConfig().getTenantId()).isEqualTo("theTenantId");
}
Also used : AzureSigningMetadataFile(tech.pegasys.signers.secp256k1.multikey.metadata.AzureSigningMetadataFile) FileBasedSigningMetadataFile(tech.pegasys.signers.secp256k1.multikey.metadata.FileBasedSigningMetadataFile) AzureSigningMetadataFile(tech.pegasys.signers.secp256k1.multikey.metadata.AzureSigningMetadataFile) SigningMetadataFile(tech.pegasys.signers.secp256k1.multikey.metadata.SigningMetadataFile) Test(org.junit.jupiter.api.Test)

Example 2 with SigningMetadataFile

use of tech.pegasys.signers.secp256k1.multikey.metadata.SigningMetadataFile in project signers by ConsenSys.

the class SigningMetadataTomlConfigLoaderTest method loadAvailableConfigsReturnsAllValidMetadataFilesInDirectory.

@Test
void loadAvailableConfigsReturnsAllValidMetadataFilesInDirectory() {
    final Filter<Path> filter = entry -> true;
    final FileBasedSigningMetadataFile metadataFile1 = copyMetadataFileToDirectory(configsDirectory, LOWERCASE_ADDRESS + CONFIG_FILE_EXTENSION, KEY_FILE, PASSWORD_FILE);
    final FileBasedSigningMetadataFile metadataFile2 = copyMetadataFileToDirectory(configsDirectory, "bar_" + PREFIX_ADDRESS + CONFIG_FILE_EXTENSION, KEY_FILE_2, PASSWORD_FILE_2);
    final FileBasedSigningMetadataFile metadataFile3 = copyMetadataFileToDirectory(configsDirectory, PREFIX_LOWERCASE_DUPLICATE_FILENAME_2, KEY_FILE_2, PASSWORD_FILE_2);
    final FileBasedSigningMetadataFile metadataFile4 = copyMetadataFileToDirectory(configsDirectory, PREFIX_LOWERCASE_DUPLICATE_FILENAME_1, KEY_FILE, PASSWORD_FILE);
    // duplicate files are loaded at this stage since addresses aren't checked until signers are
    // created
    final Collection<SigningMetadataFile> metadataFiles = loader.loadAvailableSigningMetadataTomlConfigs(filter);
    assertThat(metadataFiles).hasSize(4);
    assertThat(metadataFiles).containsOnly(metadataFile1, metadataFile2, metadataFile3, metadataFile4);
}
Also used : Path(java.nio.file.Path) Assertions.fail(org.junit.jupiter.api.Assertions.fail) MISSING_KEY_PATH_ADDRESS(tech.pegasys.signers.secp256k1.multikey.MetadataFileFixture.MISSING_KEY_PATH_ADDRESS) UNKNOWN_TYPE_SIGNER_FILENAME(tech.pegasys.signers.secp256k1.multikey.MetadataFileFixture.UNKNOWN_TYPE_SIGNER_FILENAME) BeforeEach(org.junit.jupiter.api.BeforeEach) SUFFIX_ADDRESS(tech.pegasys.signers.secp256k1.multikey.MetadataFileFixture.SUFFIX_ADDRESS) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) KEY_FILE(tech.pegasys.signers.secp256k1.multikey.MetadataFileFixture.KEY_FILE) FileBasedSigningMetadataFile(tech.pegasys.signers.secp256k1.multikey.metadata.FileBasedSigningMetadataFile) PASSWORD_FILE(tech.pegasys.signers.secp256k1.multikey.MetadataFileFixture.PASSWORD_FILE) PREFIX_ADDRESS(tech.pegasys.signers.secp256k1.multikey.MetadataFileFixture.PREFIX_ADDRESS) LOWERCASE_ADDRESS(tech.pegasys.signers.secp256k1.multikey.MetadataFileFixture.LOWERCASE_ADDRESS) MISSING_KEY_AND_PASSWORD_PATH_FILENAME(tech.pegasys.signers.secp256k1.multikey.MetadataFileFixture.MISSING_KEY_AND_PASSWORD_PATH_FILENAME) Filter(java.nio.file.DirectoryStream.Filter) AzureSigningMetadataFile(tech.pegasys.signers.secp256k1.multikey.metadata.AzureSigningMetadataFile) CONFIG_FILE_EXTENSION(tech.pegasys.signers.secp256k1.multikey.MetadataFileFixture.CONFIG_FILE_EXTENSION) Path(java.nio.file.Path) MetadataFileFixture.copyMetadataFileToDirectory(tech.pegasys.signers.secp256k1.multikey.MetadataFileFixture.copyMetadataFileToDirectory) Files(java.nio.file.Files) Resources(com.google.common.io.Resources) MISSING_KEY_PATH_FILENAME(tech.pegasys.signers.secp256k1.multikey.MetadataFileFixture.MISSING_KEY_PATH_FILENAME) Collection(java.util.Collection) PREFIX_LOWERCASE_DUPLICATE_FILENAME_1(tech.pegasys.signers.secp256k1.multikey.MetadataFileFixture.PREFIX_LOWERCASE_DUPLICATE_FILENAME_1) PREFIX_LOWERCASE_DUPLICATE_FILENAME_2(tech.pegasys.signers.secp256k1.multikey.MetadataFileFixture.PREFIX_LOWERCASE_DUPLICATE_FILENAME_2) MISSING_KEY_AND_PASSWORD_PATH_ADDRESS(tech.pegasys.signers.secp256k1.multikey.MetadataFileFixture.MISSING_KEY_AND_PASSWORD_PATH_ADDRESS) PASSWORD_FILE_2(tech.pegasys.signers.secp256k1.multikey.MetadataFileFixture.PASSWORD_FILE_2) Test(org.junit.jupiter.api.Test) PREFIX_LOWERCASE_DUPLICATE_ADDRESS(tech.pegasys.signers.secp256k1.multikey.MetadataFileFixture.PREFIX_LOWERCASE_DUPLICATE_ADDRESS) SigningMetadataFile(tech.pegasys.signers.secp256k1.multikey.metadata.SigningMetadataFile) TempDir(org.junit.jupiter.api.io.TempDir) MISSING_PASSWORD_PATH_FILENAME(tech.pegasys.signers.secp256k1.multikey.MetadataFileFixture.MISSING_PASSWORD_PATH_FILENAME) Optional(java.util.Optional) KEY_FILE_2(tech.pegasys.signers.secp256k1.multikey.MetadataFileFixture.KEY_FILE_2) FileBasedSigningMetadataFile(tech.pegasys.signers.secp256k1.multikey.metadata.FileBasedSigningMetadataFile) AzureSigningMetadataFile(tech.pegasys.signers.secp256k1.multikey.metadata.AzureSigningMetadataFile) SigningMetadataFile(tech.pegasys.signers.secp256k1.multikey.metadata.SigningMetadataFile) FileBasedSigningMetadataFile(tech.pegasys.signers.secp256k1.multikey.metadata.FileBasedSigningMetadataFile) Test(org.junit.jupiter.api.Test)

Example 3 with SigningMetadataFile

use of tech.pegasys.signers.secp256k1.multikey.metadata.SigningMetadataFile in project signers by ConsenSys.

the class SigningMetadataTomlConfigLoaderTest method relativeKeyAndPasswordFilesAreResolveRelativeToLibraryRoot.

@Test
void relativeKeyAndPasswordFilesAreResolveRelativeToLibraryRoot() {
    copyFileIntoConfigDirectory("key_password_relative_path.toml");
    final Collection<SigningMetadataFile> metadataFiles = loader.loadAvailableSigningMetadataTomlConfigs(entry -> true);
    assertThat(metadataFiles.size()).isOne();
    assertThat(metadataFiles.toArray()[0]).isInstanceOf(FileBasedSigningMetadataFile.class);
    final FileBasedSigningMetadataFile metadataFile = (FileBasedSigningMetadataFile) metadataFiles.toArray()[0];
    assertThat(metadataFile.getConfig().getKeystoreFile()).isEqualTo(configsDirectory.resolve("./path/to/k.key"));
    assertThat(metadataFile.getConfig().getKeystorePasswordFile()).isEqualTo(configsDirectory.resolve("./path/to/p.password"));
}
Also used : FileBasedSigningMetadataFile(tech.pegasys.signers.secp256k1.multikey.metadata.FileBasedSigningMetadataFile) AzureSigningMetadataFile(tech.pegasys.signers.secp256k1.multikey.metadata.AzureSigningMetadataFile) SigningMetadataFile(tech.pegasys.signers.secp256k1.multikey.metadata.SigningMetadataFile) FileBasedSigningMetadataFile(tech.pegasys.signers.secp256k1.multikey.metadata.FileBasedSigningMetadataFile) Test(org.junit.jupiter.api.Test)

Example 4 with SigningMetadataFile

use of tech.pegasys.signers.secp256k1.multikey.metadata.SigningMetadataFile in project signers by ConsenSys.

the class SigningMetadataTomlConfigLoader method getFileBasedSigningMetadataFromToml.

private Optional<SigningMetadataFile> getFileBasedSigningMetadataFromToml(final String filename, final TomlParseResult result) {
    final Optional<TomlTableAdapter> signingTable = getSigningTableFrom(filename, result);
    if (signingTable.isEmpty()) {
        return Optional.empty();
    }
    final TomlTableAdapter table = signingTable.get();
    final String keyFilename = table.getString("key-file");
    final Path keyPath = makeRelativePathAbsolute(keyFilename);
    final String passwordFilename = table.getString("password-file");
    final Path passwordPath = makeRelativePathAbsolute(passwordFilename);
    return Optional.of(new FileBasedSigningMetadataFile(filename, new FileSignerConfig(keyPath, passwordPath)));
}
Also used : Path(java.nio.file.Path) FileSignerConfig(tech.pegasys.signers.secp256k1.filebased.FileSignerConfig) FileBasedSigningMetadataFile(tech.pegasys.signers.secp256k1.multikey.metadata.FileBasedSigningMetadataFile)

Example 5 with SigningMetadataFile

use of tech.pegasys.signers.secp256k1.multikey.metadata.SigningMetadataFile in project signers by ConsenSys.

the class SigningMetadataTomlConfigLoader method getAzureBasedSigningMetadataFromToml.

private Optional<SigningMetadataFile> getAzureBasedSigningMetadataFromToml(final String filename, final TomlParseResult result) {
    final Optional<TomlTableAdapter> signingTable = getSigningTableFrom(filename, result);
    if (signingTable.isEmpty()) {
        return Optional.empty();
    }
    final AzureConfigBuilder builder;
    final TomlTableAdapter table = signingTable.get();
    builder = new AzureConfigBuilder();
    builder.withKeyVaultName(table.getString("key-vault-name"));
    builder.withKeyName(table.getString("key-name"));
    builder.withKeyVersion(table.getString("key-version"));
    builder.withClientId(table.getString("client-id"));
    builder.withClientSecret(table.getString("client-secret"));
    builder.withTenantId(table.getString("tenant-id"));
    return Optional.of(new AzureSigningMetadataFile(filename, builder.build()));
}
Also used : AzureConfigBuilder(tech.pegasys.signers.secp256k1.azure.AzureConfig.AzureConfigBuilder) AzureSigningMetadataFile(tech.pegasys.signers.secp256k1.multikey.metadata.AzureSigningMetadataFile)

Aggregations

Test (org.junit.jupiter.api.Test)5 AzureSigningMetadataFile (tech.pegasys.signers.secp256k1.multikey.metadata.AzureSigningMetadataFile)5 FileBasedSigningMetadataFile (tech.pegasys.signers.secp256k1.multikey.metadata.FileBasedSigningMetadataFile)5 SigningMetadataFile (tech.pegasys.signers.secp256k1.multikey.metadata.SigningMetadataFile)5 Path (java.nio.file.Path)3 Resources (com.google.common.io.Resources)2 Filter (java.nio.file.DirectoryStream.Filter)2 Files (java.nio.file.Files)2 Collection (java.util.Collection)2 Optional (java.util.Optional)2 Assertions.assertThat (org.assertj.core.api.Assertions.assertThat)2 Assertions.fail (org.junit.jupiter.api.Assertions.fail)2 BeforeEach (org.junit.jupiter.api.BeforeEach)2 TempDir (org.junit.jupiter.api.io.TempDir)2 HashicorpKeyConfig (tech.pegasys.signers.hashicorp.config.HashicorpKeyConfig)2 CONFIG_FILE_EXTENSION (tech.pegasys.signers.secp256k1.multikey.MetadataFileFixture.CONFIG_FILE_EXTENSION)2 KEY_FILE (tech.pegasys.signers.secp256k1.multikey.MetadataFileFixture.KEY_FILE)2 KEY_FILE_2 (tech.pegasys.signers.secp256k1.multikey.MetadataFileFixture.KEY_FILE_2)2 LOWERCASE_ADDRESS (tech.pegasys.signers.secp256k1.multikey.MetadataFileFixture.LOWERCASE_ADDRESS)2 MISSING_KEY_AND_PASSWORD_PATH_ADDRESS (tech.pegasys.signers.secp256k1.multikey.MetadataFileFixture.MISSING_KEY_AND_PASSWORD_PATH_ADDRESS)2