1f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson/* 2f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson * Copyright (C) 2009 The Android Open Source Project 3f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson * 4f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson * Licensed under the Apache License, Version 2.0 (the "License"); 5f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson * you may not use this file except in compliance with the License. 6f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson * You may obtain a copy of the License at 7f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson * 8f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson * http://www.apache.org/licenses/LICENSE-2.0 9f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson * 10f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson * Unless required by applicable law or agreed to in writing, software 11f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson * distributed under the License is distributed on an "AS IS" BASIS, 12f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson * See the License for the specific language governing permissions and 14f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson * limitations under the License. 15f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson */ 16f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson 17f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilsonpackage tests.security; 18f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson 19f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilsonimport java.security.AlgorithmParameters; 20f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilsonimport java.security.InvalidKeyException; 21f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilsonimport java.security.KeyPair; 22f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilsonimport java.security.KeyPairGenerator; 23f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilsonimport java.security.NoSuchAlgorithmException; 24f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilsonimport javax.crypto.KeyAgreement; 25f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilsonimport junit.framework.Assert; 26f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson 27f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilsonpublic class AlgorithmParameterKeyAgreementHelper extends TestHelper<AlgorithmParameters> { 28f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson 29f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson private final String algorithmName; 30f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson 31f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson public AlgorithmParameterKeyAgreementHelper(String algorithmName) { 32f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson this.algorithmName = algorithmName; 33f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson } 34f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson 35f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson @Override 36420ea38aecdef0f5895c5e82751ebabe26bc0bd5Kenny Root public void test(AlgorithmParameters parameters) throws Exception { 37420ea38aecdef0f5895c5e82751ebabe26bc0bd5Kenny Root KeyPairGenerator generator = KeyPairGenerator.getInstance(algorithmName); 38f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson generator.initialize(1024); 39f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson 40f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson KeyPair keyPair = generator.generateKeyPair(); 41420ea38aecdef0f5895c5e82751ebabe26bc0bd5Kenny Root KeyAgreement keyAgreement = KeyAgreement.getInstance(algorithmName); 42420ea38aecdef0f5895c5e82751ebabe26bc0bd5Kenny Root keyAgreement.init(keyPair.getPrivate()); 43420ea38aecdef0f5895c5e82751ebabe26bc0bd5Kenny Root keyAgreement.doPhase(keyPair.getPublic(), true); 44420ea38aecdef0f5895c5e82751ebabe26bc0bd5Kenny Root Assert.assertNotNull("generated secret is null", keyAgreement.generateSecret()); 45f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson } 46f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson} 47