1/* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18/** 19* @author Vera Y. Petrashkova 20* @version $Revision$ 21*/ 22 23package org.apache.harmony.security.tests.java.security; 24 25import java.security.KeyStore; 26 27import javax.security.auth.DestroyFailedException; 28 29import junit.framework.TestCase; 30 31/** 32 * Tests for <code>KeyStore.PasswordProtection</code> class constructor and methods 33 * 34 */ 35public class KSPasswordProtectionTest extends TestCase { 36 37 /** 38 * Test for <code>KeyStore.PasswordProtection(char[] password)</code> constructor 39 * and the following methods 40 * <code>getPassword()<code> 41 * <code>destroy()<code> 42 * <code>isDestroyed()<code> 43 * Assertions: constructor created new PasswordProtection object 44 * getPassword() returns password or throws IllegalArgumentException 45 * if PasswordProtection is destroyed 46 */ 47 public void testGetPassword() throws DestroyFailedException { 48 char [] pass = {'a', 'b', 'c'}; 49 KeyStore.PasswordProtection ksPWP = new KeyStore.PasswordProtection(pass); 50 char [] rPass = ksPWP.getPassword(); 51 assertFalse("PasswordProtection Should not be destroyed", ksPWP.isDestroyed()); 52 assertEquals("Incorrect password length", pass.length, rPass.length); 53 for (int i = 0; i < pass.length; i++) { 54 assertEquals("Incorrect password (item: ".concat(Integer.toString(i)) 55 .concat(")"), pass[i], rPass[i]); 56 } 57 ksPWP.destroy(); 58 assertTrue("PasswordProtection must be destroyed", ksPWP.isDestroyed()); 59 try { 60 ksPWP.getPassword(); 61 fail("IllegalStateException must be thrown because PasswordProtection is destroyed"); 62 } catch (IllegalStateException e) { 63 } 64 65 try { 66 ksPWP = new KeyStore.PasswordProtection(null); 67 } catch (Exception e) { 68 fail("Unexpected exception for NULL parameter"); 69 } 70 } 71} 72