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*/ 21 22package org.apache.harmony.security.tests.java.security; 23 24import java.security.*; 25import javax.security.auth.DestroyFailedException; 26 27import junit.framework.TestCase; 28 29/** 30 * Tests for <code>KeyStore.PasswordProtection</code> class constructor and methods 31 * 32 */ 33 34public class KSPasswordProtectionTest extends TestCase { 35 36 /** 37 * Constructor for KSPasswordProtectionTest. 38 * @param arg0 39 */ 40 public KSPasswordProtectionTest(String arg0) { 41 super(arg0); 42 } 43 44 /** 45 * Test for <code>KeyStore.PasswordProtection(char[] password)</code> constructor 46 * and the following methods 47 * <code>getPassword()<code> 48 * <code>destroy()<code> 49 * <code>isDestroyed()<code> 50 * Assertions: constructor created new PasswordProtection object 51 * getPassword() returns password or throws IllegalArgumentException 52 * if PasswordProtection is destroyed 53 */ 54 public void testGetPassword() throws DestroyFailedException { 55 char [] pass = {'a', 'b', 'c'}; 56 KeyStore.PasswordProtection ksPWP = new KeyStore.PasswordProtection(pass); 57 char [] rPass = ksPWP.getPassword(); 58 assertFalse("PasswordProtection Should not be destroyed", ksPWP.isDestroyed()); 59 assertEquals("Incorrect password length", pass.length, rPass.length); 60 for (int i = 0; i < pass.length; i++) { 61 assertEquals("Incorrect password (item: ".concat(Integer.toString(i)) 62 .concat(")"), pass[i], rPass[i]); 63 } 64 ksPWP.destroy(); 65 assertTrue("PasswordProtection must be destroyed", ksPWP.isDestroyed()); 66 try { 67 ksPWP.getPassword(); 68 fail("IllegalStateException must be thrown because PasswordProtection is destroyed"); 69 } catch (IllegalStateException e) { 70 } 71 } 72} 73