1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this work for additional information regarding copyright ownership. 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (the "License"); you may not use this file except in compliance with 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the License. You may obtain a copy of the License at 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project* @author Boris V. Kuznetsov 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project* @version $Revision$ 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project*/ 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage org.apache.harmony.crypto.tests.javax.crypto; 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.SecureRandom; 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Arrays; 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.crypto.Cipher; 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.crypto.CipherSpi; 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.crypto.NullCipher; 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.crypto.spec.SecretKeySpec; 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport junit.framework.TestCase; 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Tests for NullCipher 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class NullCipherTest extends TestCase { 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private Cipher c; 42f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void setUp() throws Exception { 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super.setUp(); 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c = new NullCipher(); 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetAlgorithm() { 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c.getAlgorithm(); 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetBlockSize() { 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Incorrect BlockSize", 1, c.getBlockSize()); 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetOutputSize() { 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Incorrect OutputSize", 111, c.getOutputSize(111)); 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetIV() { 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Incorrect IV", Arrays.equals(c.getIV(), new byte[8])); 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetParameters() { 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("Incorrect Parameters", c.getParameters()); 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetExemptionMechanism() { 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("Incorrect ExemptionMechanism", c.getExemptionMechanism()); 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Class under test for void init(int, Key) 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testInitintKey() throws Exception { 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(new byte[1], "algorithm")); 77f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Class under test for void init(int, Key, SecureRandom) 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testInitintKeySecureRandom() throws Exception { 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(new byte[1], 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "algorithm"), new SecureRandom()); 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Class under test for void init(int, Key, AlgorithmParameterSpec) 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testInitintKeyAlgorithmParameterSpec() throws Exception { 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project class myAlgorithmParameterSpec implements java.security.spec.AlgorithmParameterSpec {} 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(new byte[1], 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "algorithm"), new myAlgorithmParameterSpec()); 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Class under test for byte[] update(byte[]) 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testUpdatebyteArray() throws Exception { 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte [] b = {1, 2, 3, 4, 5}; 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte [] r = c.update(b); 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("different length", b.length, r.length); 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("different content", Arrays.equals(b, r)); 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Class under test for byte[] update(byte[], int, int) 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testUpdatebyteArrayintint() throws Exception { 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte [] b = {1, 2, 3, 4, 5}; 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte [] r = c.update(b, 0, 5); 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("different length", b.length, r.length); 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("different content", Arrays.equals(b, r)); 115f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project r = c.update(b, 1, 3); 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("different length", 3, r.length); 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 3; i++) { 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("different content", b[i + 1], r[i]); 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Class under test for int update(byte[], int, int, byte[]) 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testUpdatebyteArrayintintbyteArray() throws Exception { 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte [] b = {1, 2, 3, 4, 5}; 128f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes byte [] r = new byte[5]; 129f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes c.update(b, 0, 5, r); 130f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertTrue("different content", Arrays.equals(b, r)); 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Class under test for int update(byte[], int, int, byte[], int) 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testUpdatebyteArrayintintbyteArrayint() throws Exception { 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte [] b = {1, 2, 3, 4, 5}; 138f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes byte [] r = new byte[5]; 139f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes c.update(b, 0, 5, r, 0); 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("different content", Arrays.equals(b, r)); 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Class under test for byte[] doFinal() 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testDoFinal() throws Exception { 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("doFinal failed", c.doFinal()); 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Class under test for int doFinal(byte[], int) 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testDoFinalbyteArrayint() throws Exception { 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte [] r = new byte[5]; 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("doFinal failed", 0, c.doFinal(r, 0)); 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Class under test for byte[] doFinal(byte[]) 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testDoFinalbyteArray() throws Exception { 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte [] b = {1, 2, 3, 4, 5}; 163f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes byte [] r = null; 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project r = c.doFinal(b); 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("different length", b.length, r.length); 166f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertTrue("different content", Arrays.equals(b, r)); 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Class under test for byte[] doFinal(byte[], int, int) 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testDoFinalbyteArrayintint() throws Exception { 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte [] b = {1, 2, 3, 4, 5}; 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte [] r = null; 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project r = c.doFinal(b, 0, 5); 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("different length", b.length, r.length); 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("different content", Arrays.equals(b, r)); 178f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project r = c.doFinal(b, 1, 3); 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("different length", 3, r.length); 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 3; i++) { 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("different content", b[i + 1], r[i]); 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Class under test for byte[] update(byte[], int, int) 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testUpdatebyteArrayintint2() { 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //Regression for HARMONY-758 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new NullCipher().update(new byte[1], 1, Integer.MAX_VALUE); 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IllegalArgumentException was not thrown"); 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Class under test for int doFinal(byte[], int, int, byte[]) 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testDoFinalbyteArrayintintbyteArray() throws Exception { 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte [] b = {1, 2, 3, 4, 5}; 203f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes byte [] r = new byte[5]; 204f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes c.doFinal(b, 0, 5, r); 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("different content", Arrays.equals(b, r)); 206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Class under test for int doFinal(byte[], int, int, byte[]) 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testDoFinalbyteArrayintintbyteArray2() throws Exception { 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //Regression for HARMONY-758 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 214f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes new NullCipher().update(new byte[1], 1, Integer.MAX_VALUE, 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new byte[1]); 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IllegalArgumentException was not thrown"); 217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Class under test for int doFinal(byte[], int, int, byte[]) 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testDoFinalbyteArrayintintbyteArray3() throws Exception { 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //Regression for HARMONY-758 226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new NullCipher().update(new byte[1], 0, 1, new byte[0]); 228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IndexOutOfBoundsException was not thrown"); 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Class under test for int doFinal(byte[], int, int, byte[], int) 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testDoFinalbyteArrayintintbyteArrayint() throws Exception { 237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte [] b = {1, 2, 3, 4, 5}; 238f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes byte [] r = new byte[5]; 239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c.doFinal(b, 0, 5, r, 0); 240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("different content", Arrays.equals(b, r)); 241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Class under test for int doFinal(byte[], int, int, byte[], int) 245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testDoFinalbyteArrayintintbyteArrayint2() throws Exception { 247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //Regression for HARMONY-758 248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 249f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes new NullCipher().update(new byte[1], 1, Integer.MAX_VALUE, 250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new byte[1], 0); 251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IllegalArgumentException was not thrown"); 252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Class under test for int doFinal(byte[], int, int, byte[], int) 258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testDoFinalbyteArrayintintbyteArrayint3() throws Exception { 260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //Regression for HARMONY-758 261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 262f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes new NullCipher().update(new byte[1], 0, 1, 263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new byte[0], 0); 264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IndexOutOfBoundsException was not thrown"); 265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 269