1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Copyright (C) 2007 The Android Open Source Project 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * you may not use this file except in compliance with the License. 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * You may obtain a copy of the License at 7f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage tests.security.interfaces; 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport junit.framework.TestCase; 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.KeyPairGenerator; 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.interfaces.DSAKey; 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.interfaces.DSAParams; 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.spec.DSAParameterSpec; 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class DSAKeyTest extends TestCase { 27f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 29229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.security.interfaces.DSAKey 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * #getParams() 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * test covers following use cases 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 1: check private key 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 2: check public key 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getParams() throws Exception { 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project DSAParams param = new DSAParameterSpec(Util.P, Util.Q, Util.G); 37f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 38fa890109ecc4522f0e07481431c04d4cf6ba16d1The Android Open Source Project KeyPairGenerator gen = KeyPairGenerator.getInstance("DSA"); 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project gen.initialize((DSAParameterSpec) param); 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project DSAKey key = null; 41f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Case 1: check private key 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project key = (DSAKey) gen.generateKeyPair().getPrivate(); 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertDSAParamsEquals(param, key.getParams()); 45f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Case 2: check public key 47f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes key = (DSAKey) gen.generateKeyPair().getPublic(); 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertDSAParamsEquals(param, key.getParams()); 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 50f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private void assertDSAParamsEquals(DSAParams expected, DSAParams actual) { 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("P differ", expected.getP(), actual.getP()); 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Q differ", expected.getQ(), actual.getQ()); 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("G differ", expected.getG(), actual.getG()); 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 57