@Test public void shouldErrorOutWhenEncryptedPasswordIsInvalid() { SvnMaterialConfig svnMaterialConfig = new SvnMaterialConfig(); PasswordDeserializer passwordDeserializer = new PasswordDeserializer(); passwordDeserializer.deserialize(null, "invalidEncryptedPassword", svnMaterialConfig); assertThat(svnMaterialConfig.errors().getAllOn("encryptedPassword"), is(Arrays.asList("Encrypted value for password is invalid. This usually happens when the cipher text is invalid."))); }
@Test public void shouldReturnNullIfBothPasswordAndEncryptedPasswordAreNull() { SvnMaterialConfig svnMaterialConfig = new SvnMaterialConfig(); PasswordDeserializer passwordDeserializer = new PasswordDeserializer(); String encrypted = passwordDeserializer.deserialize(null, null, svnMaterialConfig); assertNull(encrypted); }
@Test public void shouldReturnNullIfBothPasswordAndEncryptedPasswordAreBlank() { SvnMaterialConfig svnMaterialConfig = new SvnMaterialConfig(); PasswordDeserializer passwordDeserializer = new PasswordDeserializer(); String encrypted = passwordDeserializer.deserialize("", "", svnMaterialConfig); assertNull(encrypted); }
@Test public void shouldNotValidateEncryptedPasswordIfBlank() { SvnMaterialConfig svnMaterialConfig = new SvnMaterialConfig(); PasswordDeserializer passwordDeserializer = new PasswordDeserializer(); String encrypted = passwordDeserializer.deserialize(null, "", svnMaterialConfig); assertNull(encrypted); }
@Test public void shouldErrorOutWhenBothPasswordAndEncryptedPasswordAreGivenForDeserialization() throws CryptoException { SvnMaterialConfig svnMaterialConfig = new SvnMaterialConfig(); PasswordDeserializer passwordDeserializer = new PasswordDeserializer(); passwordDeserializer.deserialize("password", new GoCipher().encrypt("encryptedPassword"), svnMaterialConfig); assertThat(svnMaterialConfig.errors().getAllOn("password"), is(Arrays.asList("You may only specify `password` or `encrypted_password`, not both!"))); assertThat(svnMaterialConfig.errors().getAllOn("encryptedPassword"), is(Arrays.asList("You may only specify `password` or `encrypted_password`, not both!"))); }
@Test public void shouldEncryptClearTextPasswordSentByUser() throws CryptoException { SvnMaterialConfig svnMaterialConfig = new SvnMaterialConfig(); PasswordDeserializer passwordDeserializer = new PasswordDeserializer(); String encrypted = passwordDeserializer.deserialize("password", null, svnMaterialConfig); assertThat(encrypted, is(new GoCipher().encrypt("password"))); }
@Test public void shouldReturnTheEncryptedPasswordSentByUserIfValid() throws CryptoException { String encryptedPassword = new GoCipher().encrypt("password"); SvnMaterialConfig svnMaterialConfig = new SvnMaterialConfig(); PasswordDeserializer passwordDeserializer = new PasswordDeserializer(); String encrypted = passwordDeserializer.deserialize(null, encryptedPassword, svnMaterialConfig); assertThat(encrypted, is(encryptedPassword)); }
@Test public void shouldReEncryptedDESPasswords() throws IOException { resetCipher.setupAESCipherFile(); resetCipher.setupDESCipherFile(); SvnMaterialConfig svnMaterialConfig = new SvnMaterialConfig(); PasswordDeserializer passwordDeserializer = new PasswordDeserializer(); String encrypted = passwordDeserializer.deserialize(null, "mvcX9yrQsM4iPgm1tDxN1A==", svnMaterialConfig); assertThat(encrypted, startsWith("AES:")); }