1f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes/* 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 8f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 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 Projectpackage org.apache.harmony.security.tests.java.security; 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.ByteArrayInputStream; 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.IOException; 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.DigestInputStream; 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.MessageDigest; 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.NoSuchAlgorithmException; 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport tests.support.Support_ASimpleInputStream; 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class DigestInputStream2Test extends junit.framework.TestCase { 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ByteArrayInputStream inStream; 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ByteArrayInputStream inStream1; 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MessageDigest digest; 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 36a3de55ddf81f95c7c0fc1b8767ccb1ecfa251c83Brian Carlstrom * java.security.DigestInputStream#DigestInputStream(java.io.InputStream, 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.security.MessageDigest) 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_ConstructorLjava_io_InputStreamLjava_security_MessageDigest() { 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.security.DigestInputStream(java.io.InputStream, 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.security.MessageDigest) 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project DigestInputStream dis = new DigestInputStream(inStream, digest); 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull("Constructor returned null instance", dis); 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 47a3de55ddf81f95c7c0fc1b8767ccb1ecfa251c83Brian Carlstrom * java.security.DigestInputStream#getMessageDigest() 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getMessageDigest() { 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.security.MessageDigest 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.security.DigestInputStream.getMessageDigest() 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project DigestInputStream dis = new DigestInputStream(inStream, digest); 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("getMessageDigest returned a bogus result", digest, dis 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .getMessageDigest()); 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 58a3de55ddf81f95c7c0fc1b8767ccb1ecfa251c83Brian Carlstrom * java.security.DigestInputStream#on(boolean) 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_onZ() throws Exception { 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method void java.security.DigestInputStream.on(boolean) 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MessageDigest originalDigest = (MessageDigest) (digest.clone()); 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MessageDigest noChangeDigest = (MessageDigest) (digest.clone()); 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project DigestInputStream dis = new DigestInputStream(inStream, noChangeDigest); 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // turn off processing 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project dis.on(false); 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // read some data 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int c = dis.read(); 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals('T', c); 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // make sure the digest for the part where it was off has not 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // changed 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("MessageDigest changed even though processing was off", 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MessageDigest.isEqual(noChangeDigest.digest(), originalDigest 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .digest())); 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MessageDigest changeDigest = (MessageDigest) (digest.clone()); 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project dis = new DigestInputStream(inStream, digest); 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // turn on processing 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project dis.on(true); 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c = dis.read(); 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals('h', c); 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // make sure the digest has changed 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("MessageDigest did not change with processing on", 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project !MessageDigest.isEqual(digest.digest(), changeDigest.digest())); 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 90a3de55ddf81f95c7c0fc1b8767ccb1ecfa251c83Brian Carlstrom * java.security.DigestInputStream#read() 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_read() throws IOException { 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method int java.security.DigestInputStream.read() 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project DigestInputStream dis = new DigestInputStream(inStream, digest); 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // read and compare the data that the inStream has 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int c; 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while ((c = dis.read()) > -1) { 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int d = inStream1.read(); 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(d, c); 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }// end while 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 105a3de55ddf81f95c7c0fc1b8767ccb1ecfa251c83Brian Carlstrom * java.security.DigestInputStream#read(byte[], int, int) 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_read$BII() throws IOException { 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method int java.security.DigestInputStream.read(byte [], 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // int, int) 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project DigestInputStream dis = new DigestInputStream(inStream, digest); 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int bytesToRead = inStream.available(); 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte buf1[] = new byte[bytesToRead + 5]; 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte buf2[] = new byte[bytesToRead + 5]; 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // make sure we're actually reading some data 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("No data to read for this test", bytesToRead>0); 116f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // read and compare the data that the inStream has 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int bytesRead1 = dis.read(buf1, 5, bytesToRead); 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int bytesRead2 = inStream1.read(buf2, 5, bytesToRead); 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Didn't read the same from each stream", bytesRead1, 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bytesRead2); 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Didn't read the entire", bytesRead1, bytesToRead); 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // compare the arrays 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean same = true; 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < bytesToRead + 5; i++) { 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (buf1[i] != buf2[i]) { 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project same = false; 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 129f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes }// end for 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Didn't get the same data", same); 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 134a3de55ddf81f95c7c0fc1b8767ccb1ecfa251c83Brian Carlstrom * java.security.DigestInputStream#read(byte[], int, int) 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_read$BII_Exception() throws IOException { 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project DigestInputStream is = new DigestInputStream(inStream, digest); 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte[] buf = null; 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project is.read(buf, -1, 0); 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 1: NullPointerException expected."); 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 144f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes } 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 146f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes buf = new byte[1000]; 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project is.read(buf, -1, 0); 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 2: IndexOutOfBoundsException expected."); 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project is.read(buf, 0, -1); 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 3: IndexOutOfBoundsException expected."); 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 159f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes } 160f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project is.read(buf, -1, -1); 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 4: IndexOutOfBoundsException expected."); 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 166f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes } 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project is.read(buf, 0, 1001); 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 5: IndexOutOfBoundsException expected."); 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 173f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes } 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project is.read(buf, 1001, 0); 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 6: IndexOutOfBoundsException expected."); 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 180f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes } 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project is.read(buf, 500, 501); 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 7: IndexOutOfBoundsException expected."); 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 187f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes } 188f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project is.close(); 190f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Support_ASimpleInputStream sis = new Support_ASimpleInputStream(true); 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project is = new DigestInputStream(sis, digest); 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project is.read(buf, 0, 100); 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 9: IOException expected."); 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sis.throwExceptionOnNextUse = false; 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project is.close(); 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 202f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 204a3de55ddf81f95c7c0fc1b8767ccb1ecfa251c83Brian Carlstrom * java.security.DigestInputStream#setMessageDigest(java.security.MessageDigest) 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_setMessageDigestLjava_security_MessageDigest() { 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method void 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.security.DigestInputStream.setMessageDigest(java.security.MessageDigest) 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project DigestInputStream dis = new DigestInputStream(inStream, null); 210f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // make sure the digest is null when it's not been set 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull( 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "Uninitialised MessageDigest should have been returned as null", 214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project dis.getMessageDigest()); 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project dis.setMessageDigest(digest); 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong MessageDigest was returned.", digest, dis 217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .getMessageDigest()); 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Sets up the fixture, for example, open a network connection. This method 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * is called before a test is executed. 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void setUp() { 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // create a ByteArrayInputStream to perform digesting on 226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project inStream = new ByteArrayInputStream( 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "This is a test string for digesting".getBytes()); 228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project inStream1 = new ByteArrayInputStream( 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "This is a test string for digesting".getBytes()); 230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project digest = MessageDigest.getInstance("SHA-1"); 232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NoSuchAlgorithmException e) { 233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unable to find SHA-1 algorithm"); 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 2362f9e468ed4985edfd5e351faf2089d91e561e41dElliott Hughes} 237