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