use of tech.pegasys.signers.secp256k1.multikey.metadata.FileBasedSigningMetadataFile in project signers by ConsenSys.
the class FileBasedSigningMetadataFileTest method matchingMetadataFileWithoutPrefixShouldHaveExpectedName.
@Test
void matchingMetadataFileWithoutPrefixShouldHaveExpectedName() {
final FileBasedSigningMetadataFile fileBasedSigningMetadataFile = load(LOWERCASE_ADDRESS + CONFIG_FILE_EXTENSION, KEY_FILE, PASSWORD_FILE);
assertThat(fileBasedSigningMetadataFile.getFilename()).matches(LOWERCASE_ADDRESS + CONFIG_FILE_EXTENSION);
assertThat(fileBasedSigningMetadataFile.getConfig().getKeystoreFile().toFile().toString()).matches(KEY_FILE);
assertThat(fileBasedSigningMetadataFile.getConfig().getKeystorePasswordFile().toFile().toString()).matches(PASSWORD_FILE);
}
use of tech.pegasys.signers.secp256k1.multikey.metadata.FileBasedSigningMetadataFile in project signers by ConsenSys.
the class MultiKeySignerProviderTest method signerIsLoadedSuccessfullyWhenAddressHasCaseMismatchToFilename.
@Test
void signerIsLoadedSuccessfullyWhenAddressHasCaseMismatchToFilename() throws URISyntaxException {
final FileBasedSigningMetadataFile capitalisedMetadata = new FileBasedSigningMetadataFile(LOWERCASE_ADDRESS + ".toml", new FileSignerConfig(Path.of(Resources.getResource("metadata-toml-configs").toURI()).resolve(KEY_FILENAME), Path.of(Resources.getResource("metadata-toml-configs").toURI()).resolve(PASSWORD_FILENAME)));
final Signer signer = signerFactory.createSigner(capitalisedMetadata);
assertThat(signer).isNotNull();
assertThat(EthPublicKeyUtils.toHexString(signer.getPublicKey())).isEqualTo("0x" + LOWER_CASE_PUBLIC_KEY);
}
use of tech.pegasys.signers.secp256k1.multikey.metadata.FileBasedSigningMetadataFile in project signers by ConsenSys.
the class MultiKeySignerProviderTest method signerIsNotReturnedIfFileContainsPublicKeyDifferentToRequest.
@Test
void signerIsNotReturnedIfFileContainsPublicKeyDifferentToRequest() throws URISyntaxException {
final FileBasedSigningMetadataFile capitalisedMetadata = new FileBasedSigningMetadataFile(LOWERCASE_ADDRESS + ".toml", new FileSignerConfig(Path.of(Resources.getResource("metadata-toml-configs").toURI()).resolve(KEY_FILENAME), Path.of(Resources.getResource("metadata-toml-configs").toURI()).resolve(PASSWORD_FILENAME)));
when(loader.loadMetadata(any())).thenReturn(Optional.of(capitalisedMetadata));
final PublicKeySignerIdentifier signerIdentifier = new PublicKeySignerIdentifier(EthPublicKeyUtils.createPublicKey(Bytes.fromHexString("A".repeat(128))));
final Optional<Signer> signer = signerFactory.getSigner(signerIdentifier);
assertThat(signer).isEmpty();
}
use of tech.pegasys.signers.secp256k1.multikey.metadata.FileBasedSigningMetadataFile 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);
}
use of tech.pegasys.signers.secp256k1.multikey.metadata.FileBasedSigningMetadataFile 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"));
}
Aggregations