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/** 19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes* @author Vera Y. Petrashkova 20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes*/ 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.security.tests.java.security; 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.*; 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport javax.security.auth.DestroyFailedException; 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase; 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/** 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests for <code>KeyStore.PasswordProtection</code> class constructor and methods 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class KSPasswordProtectionTest extends TestCase { 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Constructor for KSPasswordProtectionTest. 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @param arg0 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public KSPasswordProtectionTest(String arg0) { 41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes super(arg0); 42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test for <code>KeyStore.PasswordProtection(char[] password)</code> constructor 46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * and the following methods 47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * <code>getPassword()<code> 48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * <code>destroy()<code> 49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * <code>isDestroyed()<code> 50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Assertions: constructor created new PasswordProtection object 51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * getPassword() returns password or throws IllegalArgumentException 52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * if PasswordProtection is destroyed 53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testGetPassword() throws DestroyFailedException { 55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char [] pass = {'a', 'b', 'c'}; 56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes KeyStore.PasswordProtection ksPWP = new KeyStore.PasswordProtection(pass); 57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char [] rPass = ksPWP.getPassword(); 58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("PasswordProtection Should not be destroyed", ksPWP.isDestroyed()); 59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect password length", pass.length, rPass.length); 60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < pass.length; i++) { 61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect password (item: ".concat(Integer.toString(i)) 62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .concat(")"), pass[i], rPass[i]); 63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ksPWP.destroy(); 65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("PasswordProtection must be destroyed", ksPWP.isDestroyed()); 66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ksPWP.getPassword(); 68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("IllegalStateException must be thrown because PasswordProtection is destroyed"); 69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalStateException e) { 70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 73