1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/* 2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more 3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * contributor license agreements. See the NOTICE file distributed with 4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * this work for additional information regarding copyright ownership. 5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0 6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * (the "License"); you may not use this file except in compliance with 7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License. You may obtain a copy of the License at 8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Unless required by applicable law or agreed to in writing, software 12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * See the License for the specific language governing permissions and 15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * limitations under the License. 16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/** 198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @author Vera Y. Petrashkova 208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage javax.crypto; 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.AlgorithmParameters; 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.InvalidAlgorithmParameterException; 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.InvalidKeyException; 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.Key; 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.spec.AlgorithmParameterSpec; 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.crypto.tests.support.MyExemptionMechanismSpi; 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase; 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/** 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests for <code>ExemptionMechanismSpi</code> class constructors and 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * methods. 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class ExemptionMechanismSpiTest extends TestCase { 41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Constructor for ExemptionMechanismSpiTests. 438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * 44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @param arg0 45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public ExemptionMechanismSpiTest(String arg0) { 47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes super(arg0); 48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test for <code>ExemptionMechanismSpi</code> constructor Assertion: 52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * constructs ExemptionMechanismSpi 53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testExemptionMechanismSpi01() 558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath throws ExemptionMechanismException, 56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ShortBufferException, InvalidKeyException, 57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InvalidAlgorithmParameterException { 58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ExemptionMechanismSpi emSpi = new MyExemptionMechanismSpi(); 59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int len = MyExemptionMechanismSpi.getLength(); 608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath byte[] bbRes = emSpi.engineGenExemptionBlob(); 61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect length", bbRes.length, len); 628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertEquals("Incorrect result", 63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes emSpi.engineGenExemptionBlob(new byte[1], len), len); 64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect output size", 10, emSpi.engineGetOutputSize(100)); 65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Key key = null; 668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath AlgorithmParameters params = null; 67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes AlgorithmParameterSpec parSpec = null; 68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes emSpi.engineInit(key); 70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("InvalidKeyException must be thrown"); 71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InvalidKeyException e) { 72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes emSpi.engineInit(key, params); 75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("InvalidKeyException must be thrown"); 76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InvalidKeyException e) { 77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes emSpi.engineInit(key, parSpec); 80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("InvalidKeyException must be thrown"); 81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InvalidKeyException e) { 82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath key = ((MyExemptionMechanismSpi) emSpi).new tmp1Key("Proba", new byte[0]); 84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes emSpi.engineInit(key); 86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("ExemptionMechanismException must be thrown"); 87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ExemptionMechanismException e) { 88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes emSpi.engineInit(key, params); 91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("ExemptionMechanismException must be thrown"); 92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ExemptionMechanismException e) { 93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes emSpi.engineInit(key, parSpec); 96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("ExemptionMechanismException must be thrown"); 97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ExemptionMechanismException e) { 98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath key = ((MyExemptionMechanismSpi) emSpi).new tmpKey("Proba", new byte[0]); 100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes emSpi.engineInit(key); 101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes emSpi.engineInit(key, params); 102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes emSpi.engineInit(key, parSpec); 1038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect result", 10, emSpi.engineGetOutputSize(100)); 105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 107