diff --git a/pgpainless-core/src/main/java/org/pgpainless/util/Passphrase.java b/pgpainless-core/src/main/java/org/pgpainless/util/Passphrase.java index 14a52478..f57474b0 100644 --- a/pgpainless-core/src/main/java/org/pgpainless/util/Passphrase.java +++ b/pgpainless-core/src/main/java/org/pgpainless/util/Passphrase.java @@ -37,11 +37,11 @@ public class Passphrase { /** * Create a {@link Passphrase} from a {@link String}. * - * @param password password + * @param password password that may be null * @return passphrase */ - public static Passphrase fromPassword(String password) { - return new Passphrase(password.toCharArray()); + public static Passphrase fromPassword(@Nullable String password) { + return new Passphrase(password == null ? null : password.toCharArray()); } /** diff --git a/pgpainless-core/src/test/java/org/pgpainless/key/protection/PassphraseTest.java b/pgpainless-core/src/test/java/org/pgpainless/key/protection/PassphraseTest.java index 637162c6..376b86b1 100644 --- a/pgpainless-core/src/test/java/org/pgpainless/key/protection/PassphraseTest.java +++ b/pgpainless-core/src/test/java/org/pgpainless/key/protection/PassphraseTest.java @@ -37,4 +37,11 @@ public class PassphraseTest { assertFalse(passphrase.isValid()); assertThrows(IllegalStateException.class, passphrase::getChars); } + + @Test + public void testFromPasswordNull() { + Passphrase passphrase = Passphrase.fromPassword(null); + assertArrayEquals(null, passphrase.getChars()); + assertTrue(passphrase.isValid()); + } }