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 Alexander Y. Kleymenov
20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes*/
21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.crypto.tests.javax.crypto.spec;
23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.lang.IllegalArgumentException;
25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Arrays;
26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport javax.crypto.spec.RC2ParameterSpec;
28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.Test;
30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase;
31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestSuite;
32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/**
34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */
35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class RC2ParameterSpecTest extends TestCase {
37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * RC2ParameterSpec(int effectiveKeyBits, byte[] iv) method testing.
40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Tests that IllegalArgumentException is thrown in the case of
41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * inappropriate constructor parameters and that input iv array is
42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * copied to protect against subsequent modification.
43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testRC2ParameterSpec1() {
45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int effectiveKeyBits = 10;
46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] iv = {1, 2, 3, 4, 5, 6, 7, 8};
47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            new RC2ParameterSpec(effectiveKeyBits, null);
50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("An IllegalArgumentException should be thrown "
51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    + "in the case of null iv.");
52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            new RC2ParameterSpec(effectiveKeyBits, new byte[] {1, 2, 3, 4, 5});
57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("An IllegalArgumentException should be thrown "
58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    + "in the case of short iv.");
59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        RC2ParameterSpec ps = new RC2ParameterSpec(effectiveKeyBits, iv);
63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        iv[0] ++;
64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse("The change of iv specified in the constructor "
65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    + "should not cause the change of internal array.",
66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    iv[0] == ps.getIV()[0]);
67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * RC2ParameterSpec(int effectiveKeyBits, byte[] iv, int offset) method
71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * testing. Tests that IllegalArgumentException is thrown in the case of
72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * inappropriate constructor parameters and that input iv array is
73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * copied to protect against subsequent modification.
74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testRC2ParameterSpec2() {
76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int effectiveKeyBits = 10;
77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] iv = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int offset = 2;
79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            new RC2ParameterSpec(effectiveKeyBits, null, offset);
82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("An IllegalArgumentException should be thrown "
83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    + "in the case of null iv.");
84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            new RC2ParameterSpec(effectiveKeyBits, iv, 4);
89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("An IllegalArgumentException should be thrown "
90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    + "in the case of short iv.");
91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        RC2ParameterSpec ps = new RC2ParameterSpec(effectiveKeyBits, iv, offset);
95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        iv[offset] ++;
96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse("The change of iv specified in the constructor "
97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    + "should not cause the change of internal array.",
98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    iv[offset] == ps.getIV()[0]);
99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * getEffectiveKeyBits() method testing. Tests that returned value is
103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * equal to the value specified in the constructor.
104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testGetEffectiveKeyBits() {
106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int effectiveKeyBits = 10;
107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] iv = {1, 2, 3, 4, 5, 6, 7, 8};
108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        RC2ParameterSpec ps = new RC2ParameterSpec(effectiveKeyBits, iv);
110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The returned effectiveKeyBits value is not equal to the "
111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                + "value specified in the constructor.",
112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                effectiveKeyBits == ps.getEffectiveKeyBits());
113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * getIV() method testing. Tests that returned array is equal to the
117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * array specified in the constructor. Checks that modification
118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * of returned array does not affect the internal array. Also it checks
119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * that getIV() method returns null if iv is not specified.
120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testGetIV() {
122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int effectiveKeyBits = 10;
123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] iv = new byte[] {1, 2, 3, 4, 5, 6, 7, 8};
124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        RC2ParameterSpec ps = new RC2ParameterSpec(effectiveKeyBits, iv);
126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] result = ps.getIV();
127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        if (! Arrays.equals(iv, result)) {
128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("The returned iv is not equal to the specified "
129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    + "in the constructor.");
130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        result[0] ++;
132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse("The change of returned by getIV() method iv "
133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    + "should not cause the change of internal array.",
134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    result[0] == ps.getIV()[0]);
135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ps = new RC2ParameterSpec(effectiveKeyBits);
136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNull("The getIV() method should return null if the parameter "
137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    + "set does not contain iv.", ps.getIV());
138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * equals(Object obj) method testing. Tests the correctness of equal
142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * operation: it should be reflexive, symmetric, transitive, consistent
143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * and should be false on null object.
144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testEquals() {
146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int effectiveKeyBits = 10;
147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] iv = new byte[] {1, 2, 3, 4, 5, 6, 7, 8};
148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        RC2ParameterSpec ps1 = new RC2ParameterSpec(effectiveKeyBits, iv);
150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        RC2ParameterSpec ps2 = new RC2ParameterSpec(effectiveKeyBits, iv);
151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        RC2ParameterSpec ps3 = new RC2ParameterSpec(10,
152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                    new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9});
153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // checking for reflexive law:
155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The equivalence relation should be reflexive.",
156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                                        ps1.equals(ps1));
157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Objects built on the same parameters should be equal.",
159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                                        ps1.equals(ps2));
160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // checking for symmetric law:
161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The equivalence relation should be symmetric.",
162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                                        ps2.equals(ps1));
163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Objects built on the equal parameters should be equal.",
165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                                        ps2.equals(ps3));
166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // checking for transitive law:
168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The equivalence relation should be transitive.",
169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                                        ps1.equals(ps3));
170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse("Should return not be equal to null object.",
172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                                        ps1.equals(null));
173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ps2 = new RC2ParameterSpec(11, iv);
175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse("Objects should not be equal.", ps1.equals(ps2));
176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ps2 = new RC2ParameterSpec(11, new byte[] {9, 8, 7, 6, 5, 4, 3, 2, 1});
178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse("Objects should not be equal.", ps1.equals(ps2));
179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * hashCode() method testing. Tests that for equal objects hash codes
183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * are equal.
184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testHashCode() {
186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        int effectiveKeyBits = 0;
187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] iv = new byte[] {1, 2, 3, 4, 5, 6, 7, 8};
188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        RC2ParameterSpec ps1 = new RC2ParameterSpec(effectiveKeyBits, iv);
190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        RC2ParameterSpec ps2 = new RC2ParameterSpec(effectiveKeyBits, iv);
191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("Equal objects should have the same hash codes.",
193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                                            ps1.hashCode() == ps2.hashCode());
194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public static Test suite() {
197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        return new TestSuite(RC2ParameterSpecTest.class);
198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes}
201