001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017:
018: package org.apache.harmony.security.tests.java.security;
019:
020: import java.math.BigInteger;
021: import java.security.KeyPair;
022: import java.security.KeyPairGenerator;
023: import java.security.Provider;
024: import java.security.SecureRandom;
025: import java.security.Security;
026: import java.security.spec.DSAParameterSpec;
027: import java.security.interfaces.DSAPublicKey;
028: import java.security.interfaces.DSAParams;
029:
030: public class KeyPairGenerator4Test extends junit.framework.TestCase {
031:
032: /**
033: * @tests java.security.KeyPairGenerator#genKeyPair()
034: */
035: public void test_genKeyPair() throws Exception {
036: KeyPairGenerator gen = KeyPairGenerator.getInstance("DSA");
037: gen.initialize(1024);
038: assertNotNull("KeyPair is null", gen.genKeyPair());
039: }
040:
041: /**
042: * @tests java.security.KeyPairGenerator#getAlgorithm()
043: */
044: public void test_getAlgorithm() throws Exception {
045: String alg = KeyPairGenerator.getInstance("DSA").getAlgorithm();
046: assertEquals("getAlgorithm returned unexpected value", "DSA",
047: alg);
048: }
049:
050: /**
051: * @tests java.security.KeyPairGenerator#getInstance(java.lang.String)
052: */
053: public void test_getInstanceLjava_lang_String() throws Exception {
054: KeyPairGenerator.getInstance("DSA");
055: }
056:
057: /**
058: * @tests java.security.KeyPairGenerator#getInstance(java.lang.String,
059: * java.lang.String)
060: */
061: public void test_getInstanceLjava_lang_StringLjava_lang_String()
062: throws Exception {
063:
064: // Test1: Test with named provider
065: Provider[] providers = Security
066: .getProviders("KeyPairGenerator.DSA");
067:
068: for (int i = 0; i < providers.length; i++) {
069: KeyPairGenerator.getInstance("DSA", providers[i].getName());
070: }// end for
071:
072: // Test2: Test with empty provider name - should raise
073: // IllegalArgumentException
074: try {
075: KeyPairGenerator.getInstance("DSA", "");
076: fail("Should have thrown IllegalArgumentException");
077: } catch (IllegalArgumentException e) {
078: // expected
079: }
080: }
081:
082: /**
083: * @tests java.security.KeyPairGenerator#getProvider()
084: */
085: public void test_getProvider() throws Exception {
086: Provider p = KeyPairGenerator.getInstance("DSA").getProvider();
087: assertNotNull("provider is null", p);
088: }
089:
090: /**
091: * @tests java.security.KeyPairGenerator#initialize(int)
092: */
093: public void test_initializeI() throws Exception {
094: KeyPairGenerator keyPair = KeyPairGenerator.getInstance("DSA");
095: keyPair.initialize(1024);
096: }
097:
098: /**
099: * @tests java.security.KeyPairGenerator#initialize(int,
100: * java.security.SecureRandom)
101: */
102: public void test_initializeILjava_security_SecureRandom()
103: throws Exception {
104: KeyPairGenerator keyPair = KeyPairGenerator.getInstance("DSA");
105: keyPair.initialize(1024, new SecureRandom());
106: }
107:
108: /**
109: * @tests java.security.KeyPairGenerator#initialize(java.security.spec.AlgorithmParameterSpec)
110: */
111: public void test_initializeLjava_security_spec_AlgorithmParameterSpec()
112: throws Exception {
113: // create DSAParams
114: KeyPairGenerator keyPairGenerator = KeyPairGenerator
115: .getInstance("DSA");
116: keyPairGenerator.initialize(1024);
117: DSAPublicKey key = (DSAPublicKey) keyPairGenerator.genKeyPair()
118: .getPublic();
119: DSAParams params = key.getParams();
120:
121: KeyPairGenerator keyPair = KeyPairGenerator.getInstance("DSA");
122: keyPair.initialize(new DSAParameterSpec(params.getP(), params
123: .getQ(), params.getG()));
124: }
125:
126: /**
127: * @tests java.security.KeyPairGenerator#initialize(java.security.spec.AlgorithmParameterSpec,
128: * java.security.SecureRandom)
129: */
130: public void test_initializeLjava_security_spec_AlgorithmParameterSpecLjava_security_SecureRandom()
131: throws Exception {
132: // create DSAParams
133: KeyPairGenerator keyPairGenerator = KeyPairGenerator
134: .getInstance("DSA");
135: keyPairGenerator.initialize(1024);
136: DSAPublicKey key = (DSAPublicKey) keyPairGenerator.genKeyPair()
137: .getPublic();
138: DSAParams params = key.getParams();
139:
140: KeyPairGenerator keyPair = KeyPairGenerator.getInstance("DSA");
141: keyPair.initialize(new DSAParameterSpec(params.getP(), params
142: .getQ(), params.getG()), new SecureRandom());
143: }
144: }
|