1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/*
2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  Licensed to the Apache Software Foundation (ASF) under one or more
3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  contributor license agreements.  See the NOTICE file distributed with
4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  this work for additional information regarding copyright ownership.
5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  The ASF licenses this file to You under the Apache License, Version 2.0
6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  (the "License"); you may not use this file except in compliance with
7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  the License.  You may obtain a copy of the License at
8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *     http://www.apache.org/licenses/LICENSE-2.0
10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  Unless required by applicable law or agreed to in writing, software
12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  distributed under the License is distributed on an "AS IS" BASIS,
13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  See the License for the specific language governing permissions and
15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  limitations under the License.
16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */
17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/**
19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes* @author Boris V. Kuznetsov
20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes*/
21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.crypto.internal;
23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.nio.ByteBuffer;
25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Arrays;
26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport javax.crypto.ShortBufferException;
28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.crypto.internal.NullCipherSpi;
30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase;
31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/**
33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests for NullCipher implementation
35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */
36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class NullCipherSpiTest extends TestCase {
37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void testEngineGetBlockSize() {
39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		NullCipherSpi spi = new NullCipherSpi();
40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("incorrect block size", 1, spi.engineGetBlockSize());
41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void testEngineGetOutputSize() {
44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		NullCipherSpi spi = new NullCipherSpi();
45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("incorrect output size", 100, spi.engineGetOutputSize(100));
46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void testEngineGetIV() {
49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		NullCipherSpi spi = new NullCipherSpi();
50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Incorrect IV", Arrays.equals(spi.engineGetIV() , new byte[8]));
51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/*
54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * Class under test for byte[] engineUpdate(byte[], int, int)
55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void testEngineUpdatebyteArrayintint() {
57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		NullCipherSpi spi = new NullCipherSpi();
58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		byte[] b = {1,2,3,4,5,6,7,8,9};
59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		byte[] b1 =  spi.engineUpdate(b, 3, 4);
60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < 4; i++) {
61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals("incorrect update result", b[3+i], b1[i]);
62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/*
66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * Class under test for int engineUpdate(byte[], int, int, byte[], int)
67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void testEngineUpdatebyteArrayintintbyteArrayint() throws Exception {
69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		NullCipherSpi spi = new NullCipherSpi();
70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		byte[] b = {1,2,3,4,5,6,7,8,9};
71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		byte[] b1 =  new byte[10];
72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("incorrect update result", 4, spi.engineUpdate(b, 3, 4, b1, 5));
73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < 4; i++) {
74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals("incorrect update result", b[3+i], b1[5+i]);
75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/*
79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * Class under test for byte[] engineDoFinal(byte[], int, int)
80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void testEngineDoFinalbyteArrayintint() throws Exception {
82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		NullCipherSpi spi = new NullCipherSpi();
83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		byte[] b = {1,2,3,4,5,6,7,8,9};
84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		byte[] b1 = null;
85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		b1 = spi.engineDoFinal(b, 3, 4);
86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < 4; i++) {
87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals("incorrect doFinal result", b[3+i], b1[i]);
88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/*
92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * Class under test for int engineDoFinal(byte[], int, int, byte[], int)
93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void testEngineDoFinalbyteArrayintintbyteArrayint() throws Exception {
95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		NullCipherSpi spi = new NullCipherSpi();
96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		byte[] b = {1,2,3,4,5,6,7,8,9};
97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		byte[] b1 =  new byte[10];
98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("incorrect doFinal result", 4, spi.engineDoFinal(b, 3, 4, b1, 5));
99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < 4; i++) {
100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals("incorrect doFinal result", b[3+i], b1[5+i]);
101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/*
106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * Class under test for int engineUpdate(ByteBuffer, ByteBuffer)
107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void testEngineUpdateByteBufferByteBuffer() throws Exception {
109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		NullCipherSpi spi = new NullCipherSpi();
110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		byte[] b = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		ByteBuffer inbuf = ByteBuffer.wrap(b,0,b.length);
113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		ByteBuffer outbuf = ByteBuffer.allocate(6);
114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			spi.engineUpdate(null, outbuf);
117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("No expected NullPointerException");
118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			spi.engineUpdate(inbuf, null);
123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("No expected NullPointerException");
124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		inbuf.get();
128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		inbuf.get();
129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		inbuf.get();
130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		inbuf.get();
131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int result = spi.engineUpdate(inbuf, outbuf);
132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("incorrect result", b.length - 4, result);
133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		for (int i = 0; i < result; i++) {
134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals("incorrect outbuf", i + 4, outbuf.get(i));
135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		inbuf = ByteBuffer.wrap(b,0,b.length);
138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		outbuf = ByteBuffer.allocate(5);
139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		inbuf.get();
140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		inbuf.get();
141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		inbuf.get();
142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		inbuf.get();
143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			spi.engineUpdate(inbuf, outbuf);
145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("No expected ShortBufferException");
146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ShortBufferException e) {
147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/*
151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * Class under test for int engineDoFinal(ByteBuffer, ByteBuffer)
152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void testEngineDoFinalByteBufferByteBuffer() throws Exception {
154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		NullCipherSpi spi = new NullCipherSpi();
155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		byte[] b = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		ByteBuffer inbuf = ByteBuffer.wrap(b,0,b.length);
158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		ByteBuffer outbuf = ByteBuffer.allocate(6);
159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			spi.engineDoFinal(null, outbuf);
162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("No expected NullPointerException");
163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			spi.engineDoFinal(inbuf, null);
168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("No expected NullPointerException");
169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException e) {
170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		inbuf.get();
173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		inbuf.get();
174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		inbuf.get();
175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		inbuf.get();
176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int result = spi.engineDoFinal(inbuf, outbuf);
177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("incorrect result", b.length - 4, result);
178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < result; i++) {
179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals("incorrect outbuf", i + 4, outbuf.get(i));
180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		inbuf = ByteBuffer.wrap(b,0,b.length);
183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		outbuf = ByteBuffer.allocate(5);
184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		inbuf.get();
185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		inbuf.get();
186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		inbuf.get();
187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		inbuf.get();
188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			spi.engineDoFinal(inbuf, outbuf);
190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("No expected ShortBufferException");
191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ShortBufferException e) {
192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/*
196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * Class under test for byte[] engineWrap(Key)
197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void testEngineWrapKey() throws Exception {
199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		NullCipherSpi spi = new NullCipherSpi();
200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			spi.engineWrap(null);
202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("No expected UnsupportedOperationException");
203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (UnsupportedOperationException e) {
204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/*
208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * Class under test for Key engineUnwrap(byte[], String, int)
209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void testEngineUnwrapbyteArrayStringint() throws Exception {
211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		NullCipherSpi spi = new NullCipherSpi();
212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			spi.engineUnwrap(new byte[3], "", 10);
214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("No expected UnsupportedOperationException");
215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (UnsupportedOperationException e) {
216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/*
220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * Class under test for int engineGetKeySize(Key)
221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void testEngineGetKeySize() throws Exception {
223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		NullCipherSpi spi = new NullCipherSpi();
224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			spi.engineGetKeySize(null);
226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("No expected UnsupportedOperationException");
227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (UnsupportedOperationException e) {
228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes}
232