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 Alexander Y. Kleymenov
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.spec;
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.lang.NullPointerException;
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.InvalidKeyException;
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Arrays;
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.crypto.spec.DESedeKeySpec;
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport junit.framework.Test;
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport junit.framework.TestCase;
33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport junit.framework.TestSuite;
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/**
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class DESedeKeySpecTest extends TestCase {
38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Constructors testing. Tests behavior of each of two constructors
41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * in the cases of: null array, short array, normal array.
42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testDESedeKeySpec() {
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new DESedeKeySpec((byte []) null);
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Should raise an NullPointerException "
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    + "in case of null byte array.");
48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (InvalidKeyException e) {
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Should raise an NullPointerException "
51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    + "in case of null byte array.");
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new DESedeKeySpec(new byte [] {1, 2, 3});
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Should raise an InvalidKeyException on a short byte array.");
56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected NullPointerException was thrown.");
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (InvalidKeyException e) {
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new DESedeKeySpec(new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                                          1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                                          1, 2, 3, 4});
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected NullPointerException was thrown.");
66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (InvalidKeyException e) {
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected InvalidKeyException was thrown.");
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new DESedeKeySpec((byte []) null, 1);
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Should raise an NullPointerException "
72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    + "in case of null byte array.");
73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (InvalidKeyException e) {
75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Should raise an NullPointerException "
76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    + "in case of null byte array.");
77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new DESedeKeySpec(new byte []  {1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                                            1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                                            1, 2, 3, 4}, 1);
82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Should raise an InvalidKeyException on a short byte array.");
83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected NullPointerException was thrown.");
85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (InvalidKeyException e) {
86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new DESedeKeySpec(new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                                          1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                                          1, 2, 3, 4, 5}, 1);
91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected NullPointerException was thrown.");
93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (InvalidKeyException e) {
94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected InvalidKeyException was thrown.");
95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * getKey() method testing. Checks that modification of returned key
100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * does not affect the internal key. Also test check an equality of
101f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     * the key with the key specified in the constructor. The object under
102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * the test is created by different constructors.
103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testGetKey() {
105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        byte[] key = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2,
106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                      1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2};
107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        DESedeKeySpec ks;
108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ks = new DESedeKeySpec(key);
110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (InvalidKeyException e) {
111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("InvalidKeyException should not be thrown.");
112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return;
113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        byte[] res = ks.getKey();
115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("The returned array should be equal to the specified "
116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    + "in constructor.", Arrays.equals(key, res));
117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        res[0] += 1;
118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse("The modification of returned key should not affect"
119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    + "the underlying key.", key[0] == res[0]);
120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        byte[] key1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3,
122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                       1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3};
123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ks = new DESedeKeySpec(key1, 2);
125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (InvalidKeyException e) {
126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("InvalidKeyException should not be thrown.");
127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return;
128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        res = ks.getKey();
130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNotSame("The returned array should not be the same object "
131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    + "as specified in a constructor.", key1, res);
132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        byte[] exp = new byte[24];
133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        System.arraycopy(key1, 2, exp, 0, 24);
134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("The returned array should be equal to the specified "
135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    + "in constructor.", Arrays.equals(exp, res));
136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * isParityAdjusted(byte[] key, offset) method testing. Tests if the
140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * method throws appropriate exceptions on incorrect byte array, if
141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * it returns false on the key which is not parity adjusted, and if
142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * it returns true on parity adjusted key.
143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testIsParityAdjusted() {
145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            DESedeKeySpec.isParityAdjusted(null, 1);
147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Should raise an NullPointerException "
148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    + "in case of null byte array.");
149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (InvalidKeyException e) {
151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Should raise an NullPointerException "
152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    + "in case of null byte array.");
153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        byte[] key = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                      1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            DESedeKeySpec.isParityAdjusted(key, 1);
159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Should raise an InvalidKeyException "
160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    + "in case of short byte array.");
161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected NullPointerException was thrown.");
163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (InvalidKeyException e) {
164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        byte[] key_not_pa = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2,
167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                             1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2};
168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertFalse("Method returns true when false is expected.",
170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        DESedeKeySpec.isParityAdjusted(key_not_pa, 0));
171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected NullPointerException was thrown.");
173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (InvalidKeyException e) {
174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected InvalidKeyException was thrown.");
175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        byte[] key_pa = {(byte) 128, (byte) 131, (byte) 133, (byte) 134,
178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                         (byte) 137, (byte) 138, (byte) 140, (byte) 143,
179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                         (byte) 145, (byte) 146, (byte) 148, (byte) 151,
180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                         (byte) 152, (byte) 155, (byte) 157, (byte) 158,
181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                         (byte) 161, (byte) 162, (byte) 164, (byte) 167,
182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                         (byte) 168, (byte) 171, (byte) 173, (byte) 174};
183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue("Method returns false when true is expected.",
185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        DESedeKeySpec.isParityAdjusted(key_pa, 0));
186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected NullPointerException was thrown.");
188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (InvalidKeyException e) {
189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected InvalidKeyException was thrown.");
190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public static Test suite() {
194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        return new TestSuite(DESedeKeySpecTest.class);
195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
198