diff options
author | Kenny Root <kroot@google.com> | 2015-04-03 13:10:54 -0700 |
---|---|---|
committer | Kenny Root <kroot@google.com> | 2015-04-24 12:14:11 -0700 |
commit | 096551ee9144aeff6449e9cf181e82246df1dd7c (patch) | |
tree | beeb922d3d5d9cbe9978f630fd6048a518773f97 | |
parent | 2dbbb9e769a075ad07b7ee811be645b2e06ad40d (diff) | |
download | libcore-096551ee9144aeff6449e9cf181e82246df1dd7c.zip libcore-096551ee9144aeff6449e9cf181e82246df1dd7c.tar.gz libcore-096551ee9144aeff6449e9cf181e82246df1dd7c.tar.bz2 |
Update Cipher tests
InvalidAlgorithmParameterException should be thrown when Ciphers are
initialized with null parameters during decrypt or unwrap mode if the
Cipher expects it.
Bug: 19201819
Change-Id: Id2ce1c3c7929769808fcc9a4048a28ec150e3672
-rw-r--r-- | luni/src/test/java/libcore/javax/crypto/CipherTest.java | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/luni/src/test/java/libcore/javax/crypto/CipherTest.java b/luni/src/test/java/libcore/javax/crypto/CipherTest.java index cd070ab..494d15e 100644 --- a/luni/src/test/java/libcore/javax/crypto/CipherTest.java +++ b/luni/src/test/java/libcore/javax/crypto/CipherTest.java @@ -1154,6 +1154,9 @@ public final class CipherTest extends TestCase { final AlgorithmParameterSpec decryptSpec = getDecryptAlgorithmParameterSpec(encryptSpec, c); int decryptMode = getDecryptMode(algorithm); + + test_Cipher_init_Decrypt_NullParameters(c, decryptMode, encryptKey, decryptSpec != null); + c.init(decryptMode, encryptKey, decryptSpec); assertEquals(cipherID + " getBlockSize() decryptMode", getExpectedBlockSize(algorithm, decryptMode, providerName), c.getBlockSize()); @@ -1286,6 +1289,53 @@ public final class CipherTest extends TestCase { } } + private void test_Cipher_init_Decrypt_NullParameters(Cipher c, int decryptMode, Key encryptKey, + boolean needsParameters) throws Exception { + try { + c.init(decryptMode, encryptKey, (AlgorithmParameterSpec) null); + if (needsParameters) { + fail("Should throw InvalidAlgorithmParameterException with null parameters"); + } + } catch (InvalidAlgorithmParameterException e) { + if (!needsParameters) { + throw e; + } + } + + try { + c.init(decryptMode, encryptKey, (AlgorithmParameterSpec) null, (SecureRandom) null); + if (needsParameters) { + fail("Should throw InvalidAlgorithmParameterException with null parameters"); + } + } catch (InvalidAlgorithmParameterException e) { + if (!needsParameters) { + throw e; + } + } + + try { + c.init(decryptMode, encryptKey, (AlgorithmParameters) null); + if (needsParameters) { + fail("Should throw InvalidAlgorithmParameterException with null parameters"); + } + } catch (InvalidAlgorithmParameterException e) { + if (!needsParameters) { + throw e; + } + } + + try { + c.init(decryptMode, encryptKey, (AlgorithmParameters) null, (SecureRandom) null); + if (needsParameters) { + fail("Should throw InvalidAlgorithmParameterException with null parameters"); + } + } catch (InvalidAlgorithmParameterException e) { + if (!needsParameters) { + throw e; + } + } + } + public void testInputPKCS1Padding() throws Exception { for (String provider : RSA_PROVIDERS) { testInputPKCS1Padding(provider); |