1 /*
2  * Copyright (C) 2007 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package tests.security.interfaces;
17 
18 import junit.framework.TestCase;
19 
20 import java.security.KeyPair;
21 import java.security.KeyPairGenerator;
22 import java.security.SecureRandom;
23 import java.security.interfaces.DSAPrivateKey;
24 import java.security.interfaces.DSAPublicKey;
25 import java.security.spec.DSAParameterSpec;
26 
27 public class DSAPublicKeyTest extends TestCase {
28 
29     /**
30      * java.security.interfaces.DSAPublicKey
31      * #getY()
32      * test covers following use cases
33      *   Case 1: check with predefined p, q, g, x
34      *   Case 2: check with random p, q, g, x. It takes some time (up to
35      *           minute)
36      */
test_getY()37     public void test_getY() throws Exception {
38         KeyPairGenerator keyGen = null;
39         KeyPair keys = null;
40         DSAPrivateKey priv = null;
41         DSAPublicKey publ = null;
42 
43         // Case 1: check with predefined p, q, g, x
44         keyGen = KeyPairGenerator.getInstance("DSA");
45         keyGen.initialize(new DSAParameterSpec(Util.P, Util.Q, Util.G), new SecureRandom());
46         keys = keyGen.generateKeyPair();
47         priv = (DSAPrivateKey) keys.getPrivate();
48         publ = (DSAPublicKey) keys.getPublic();
49         assertNotNull("Invalid Y value", publ.getY());
50 
51         // Case 2: check with random p, q, g, x. It takes some time (up to
52         // minute)
53         keyGen = KeyPairGenerator.getInstance("DSA");
54         keys = keyGen.generateKeyPair();
55         priv = (DSAPrivateKey) keys.getPrivate();
56         publ = (DSAPublicKey) keys.getPublic();
57         assertNotNull("Invalid Y value", publ.getY());
58     }
59 }
60