use of com.quorum.tessera.config.ArgonOptions in project tessera by ConsenSys.
the class AWSSecretManagerKeyGeneratorTest method encryptionIsNotUsedWhenSavingToVault.
@Test
public void encryptionIsNotUsedWhenSavingToVault() {
final ArgonOptions argonOptions = mock(ArgonOptions.class);
awsSecretManagerKeyGenerator.generate("vaultId", argonOptions, null);
verifyNoMoreInteractions(argonOptions);
}
use of com.quorum.tessera.config.ArgonOptions in project tessera by ConsenSys.
the class FileKeyGeneratorTest method providingPathThatExistsThrowsError.
@Test
public void providingPathThatExistsThrowsError() throws IOException {
final Path tempFolder = Files.createTempDirectory(UUID.randomUUID().toString());
final String keyFilesName = tempFolder.resolve("key").toString();
tempFolder.toFile().setWritable(false);
doReturn(keyPair).when(encryptor).generateNewKeys();
doReturn(new PrivateKeyData("", "", "", "", new ArgonOptions("", 1, 1, 1))).when(keyEncryptor).encryptPrivateKey(any(PrivateKey.class), any(), eq(null));
final Throwable throwable = catchThrowable(() -> generator.generate(keyFilesName, null, null));
assertThat(throwable).isInstanceOf(UncheckedIOException.class);
assertThat(Files.exists(tempFolder.resolve("key.pub"))).isFalse();
assertThat(Files.exists(tempFolder.resolve("key.key"))).isFalse();
verify(encryptor).generateNewKeys();
}
use of com.quorum.tessera.config.ArgonOptions in project tessera by ConsenSys.
the class KeyEncryptorIT method encryptAndDecryptOnKeyIsSuccessful.
@Test
public void encryptAndDecryptOnKeyIsSuccessful() {
ArgonOptions argonOptions = new ArgonOptions("i", 10, 1048576, 4);
final PrivateKeyData privateKeyData = keyEncryptor.encryptPrivateKey(privateKey, password, argonOptions);
final PrivateKey decryptedKey = keyEncryptor.decryptPrivateKey(privateKeyData, password);
assertThat(decryptedKey).isEqualTo(privateKey);
}
use of com.quorum.tessera.config.ArgonOptions in project tessera by ConsenSys.
the class KeyEncryptorTest method encryptingKeyReturnsCorrectJson.
@Test
public void encryptingKeyReturnsCorrectJson() {
final PrivateKey key = PrivateKey.from(new byte[] { 1, 2, 3, 4, 5 });
final char[] password = "pass".toCharArray();
final ArgonResult result = new ArgonResult(new com.quorum.tessera.argon2.ArgonOptions("i", 1, 1, 1), new byte[] {}, new byte[] {});
doReturn(result).when(argon2).hash(eq(password), any(byte[].class));
doReturn(new Nonce(new byte[] {})).when(encryptor).randomNonce();
doReturn(new byte[] {}).when(encryptor).sealAfterPrecomputation(any(byte[].class), any(Nonce.class), any(SharedKey.class));
final PrivateKeyData privateKey = this.keyEncryptor.encryptPrivateKey(key, password, null);
final ArgonOptions aopts = privateKey.getArgonOptions();
assertThat(privateKey.getSbox()).isNotNull();
assertThat(privateKey.getAsalt()).isNotNull();
assertThat(privateKey.getSnonce()).isNotNull();
assertThat(aopts).isNotNull();
assertThat(aopts.getMemory()).isNotNull();
assertThat(aopts.getParallelism()).isNotNull();
assertThat(aopts.getIterations()).isNotNull();
assertThat(aopts.getAlgorithm()).isNotNull();
verify(argon2).hash(eq(password), any(byte[].class));
verify(encryptor).randomNonce();
verify(encryptor).sealAfterPrecomputation(any(byte[].class), any(Nonce.class), any(SharedKey.class));
}
use of com.quorum.tessera.config.ArgonOptions in project tessera by ConsenSys.
the class KeyEncryptorTest method correntJsonGivesDecryptedKey.
@Test
public void correntJsonGivesDecryptedKey() {
final char[] password = "pass".toCharArray();
final ArgonOptions argonOptions = new ArgonOptions("i", 1, 1, 1);
final PrivateKeyData lockedPrivateKey = new PrivateKeyData("", "", "uZAfjmMwEepP8kzZCnmH6g==", "", argonOptions);
doReturn(new byte[] { 1, 2, 3 }).when(this.encryptor).openAfterPrecomputation(any(byte[].class), any(Nonce.class), any(SharedKey.class));
doReturn(new ArgonResult(null, new byte[] {}, new byte[] { 4, 5, 6 })).when(this.argon2).hash(any(com.quorum.tessera.argon2.ArgonOptions.class), eq(password), any(byte[].class));
final PrivateKey key = this.keyEncryptor.decryptPrivateKey(lockedPrivateKey, password);
assertThat(key.getKeyBytes()).isEqualTo(new byte[] { 1, 2, 3 });
verify(this.encryptor).openAfterPrecomputation(any(byte[].class), any(Nonce.class), any(SharedKey.class));
verify(this.argon2).hash(any(com.quorum.tessera.argon2.ArgonOptions.class), eq(password), any(byte[].class));
}
Aggregations