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/**
198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @author Alexander Y. Kleymenov
208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */
21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.crypto.tests.javax.crypto.spec;
23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.spec.MGF1ParameterSpec;
25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.spec.AlgorithmParameterSpec;
26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport javax.crypto.spec.OAEPParameterSpec;
28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport javax.crypto.spec.PSource;
29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.Test;
31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase;
32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestSuite;
33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/**
35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */
36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class OAEPParameterSpecTest extends TestCase {
38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * OAEPParameterSpec(String mdName, String mgfName, AlgorithmParameterSpec
41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * mgfSpec, PSource pSrc) method testing. Tests that NullPointerException
42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * is thrown in the case of inappropriate constructor parameters and checks
43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * the value of DEFAULT field.
44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testOAEPParameterSpec() {
46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // using init values for OAEPParameterSpec.DEFAULT
47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String mdName = "SHA-1";
48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String mgfName = "MGF1";
49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        AlgorithmParameterSpec mgfSpec = MGF1ParameterSpec.SHA1;
50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PSource pSrc = PSource.PSpecified.DEFAULT;
51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            new OAEPParameterSpec(null, mgfName, mgfSpec, pSrc);
54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("NullPointerException should be thrown in the case of "
55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    + "null mdName.");
56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            new OAEPParameterSpec(mdName, null, mgfSpec, pSrc);
61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("NullPointerException should be thrown in the case of "
62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    + "null mgfName.");
63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            new OAEPParameterSpec(mdName, mgfName, mgfSpec, null);
68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("NullPointerException should be thrown in the case of "
69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    + "null pSrc.");
70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The message digest algorithm name of "
74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                + "OAEPParameterSpec.DEFAULT field should be " + mdName,
75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                OAEPParameterSpec.DEFAULT.getDigestAlgorithm().equals(mdName));
76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The mask generation function algorithm name of "
78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                + "OAEPParameterSpec.DEFAULT field should be " + mgfName,
79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                OAEPParameterSpec.DEFAULT.getMGFAlgorithm().equals(mgfName));
80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The mask generation function parameters of "
82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                + "OAEPParameterSpec.DEFAULT field should be the same object "
83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                + "as MGF1ParameterSpec.SHA1",
84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                OAEPParameterSpec.DEFAULT.getMGFParameters()
858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                        == MGF1ParameterSpec.SHA1);
86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The source of the encoding input P of "
87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                + "OAEPParameterSpec.DEFAULT field should be the same object "
88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                + "PSource.PSpecified.DEFAULT",
89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                OAEPParameterSpec.DEFAULT.getPSource()
908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                        == PSource.PSpecified.DEFAULT);
91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * getDigestAlgorithm() method testing.
95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testGetDigestAlgorithm() {
97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String mdName = "SHA-1";
98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String mgfName = "MGF1";
99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        AlgorithmParameterSpec mgfSpec = MGF1ParameterSpec.SHA1;
100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PSource pSrc = PSource.PSpecified.DEFAULT;
101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        OAEPParameterSpec ps = new OAEPParameterSpec(mdName, mgfName,
1038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                mgfSpec, pSrc);
104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The returned value does not equal to the "
105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                + "value specified in the constructor.",
106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                ps.getDigestAlgorithm().equals(mdName));
107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * getMGFAlgorithm() method testing.
111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testGetMGFAlgorithm() {
113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String mdName = "SHA-1";
114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String mgfName = "MGF1";
115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        AlgorithmParameterSpec mgfSpec = MGF1ParameterSpec.SHA1;
116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PSource pSrc = PSource.PSpecified.DEFAULT;
117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        OAEPParameterSpec ps = new OAEPParameterSpec(mdName, mgfName,
1198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                mgfSpec, pSrc);
120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The returned value does not equal to the "
121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                + "value specified in the constructor.",
122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                ps.getMGFAlgorithm().equals(mgfName));
123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * getMGFParameters() method testing.
127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testGetMGFParameters() {
129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String mdName = "SHA-1";
130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String mgfName = "MGF1";
131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        AlgorithmParameterSpec mgfSpec = MGF1ParameterSpec.SHA1;
132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PSource pSrc = PSource.PSpecified.DEFAULT;
133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        OAEPParameterSpec ps = new OAEPParameterSpec(mdName, mgfName,
1358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                mgfSpec, pSrc);
136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The returned value does not equal to the "
137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                + "value specified in the constructor.",
138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                ps.getMGFParameters() == mgfSpec);
139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * getPSource() method testing.
143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testGetPSource() {
145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String mdName = "SHA-1";
146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String mgfName = "MGF1";
147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        AlgorithmParameterSpec mgfSpec = MGF1ParameterSpec.SHA1;
148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        PSource pSrc = PSource.PSpecified.DEFAULT;
149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        OAEPParameterSpec ps = new OAEPParameterSpec(mdName, mgfName,
1518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                mgfSpec, pSrc);
152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue("The returned value does not equal to the "
153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                + "value specified in the constructor.",
154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                ps.getPSource() == pSrc);
155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public static Test suite() {
158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        return new TestSuite(OAEPParameterSpecTest.class);
159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes}
162