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 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 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.spec; 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport junit.framework.TestCase; 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.math.BigInteger; 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.spec.ECFieldF2m; 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.spec.ECParameterSpec; 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.spec.ECPoint; 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.spec.ECPublicKeySpec; 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.spec.EllipticCurve; 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class ECPublicKeySpecTest extends TestCase { 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ECPoint w; 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ECParameterSpec params; 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ECPublicKeySpec ecpks; 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void setUp() throws Exception { 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super.setUp(); 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ECPoint ecpoint = new ECPoint(BigInteger.valueOf(1), BigInteger 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .valueOf(1)); 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project EllipticCurve curve = new EllipticCurve(new ECFieldF2m(2), BigInteger 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .valueOf(1), BigInteger.valueOf(1)); 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project w = new ECPoint(BigInteger.valueOf(1), BigInteger.valueOf(1)); 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project params = new ECParameterSpec(curve, ecpoint, BigInteger.valueOf(1), 1); 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ecpks = new ECPublicKeySpec(w, params); 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void tearDown() throws Exception { 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project w = null; 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project params = null; 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ecpks = null; 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super.tearDown(); 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * test for constructor ECPublicKeySpec(ECPoint, ECParameterSpec) 56f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * test covers following usecases: 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * case 1: creating object with valid parameters 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * case 2: catch NullPointerException - if w is null. 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * case 3: catch NullPointerException - if params is null. 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void test_constructorLjava_security_spec_ECPointLjava_security_spec_ECParameterSpec() { 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 1: creating object with valid parameters 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("wrong params value", params, ecpks.getParams()); 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("wrong w value", w, ecpks.getW()); 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 2: catch NullPointerException - if w is null. 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new ECPublicKeySpec(null, params); 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException has not been thrown"); 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 3: catch NullPointerException - if params is null. 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new ECPublicKeySpec(w, null); 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException has not been thrown"); 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * test for getW() method 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testGetW() { 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("wrong w value", w, ecpks.getW()); 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * test for getParams() meyhod 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testGetParams() { 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("wrong params value", params, ecpks.getParams()); 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 98