/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @author Vladimir N. Molotkov */ package org.apache.harmony.security.tests.java.security.spec; import java.security.spec.EncodedKeySpec; import java.security.spec.X509EncodedKeySpec; import java.util.Arrays; import junit.framework.TestCase; /** * Tests for X509EncodedKeySpec class fields and methods * */ public class X509EncodedKeySpecTest extends TestCase { /** * Constructor for X509EncodedKeySpecTest. * @param name */ public X509EncodedKeySpecTest(String name) { super(name); } // // Test cases // /** * Test for X509EncodedKeySpec constructor
* Assertion: constructs new X509EncodedKeySpec * object using valid parameter */ public final void testX509EncodedKeySpec() { byte[] encodedKey = new byte[] {(byte)1,(byte)2,(byte)3,(byte)4}; EncodedKeySpec eks = new X509EncodedKeySpec(encodedKey); assertTrue(eks instanceof X509EncodedKeySpec); } /** * Test for getEncoded() method
* Assertion: returns encoded key */ public final void testGetEncoded() { byte[] encodedKey = new byte[] {(byte)1,(byte)2,(byte)3,(byte)4}; X509EncodedKeySpec eks = new X509EncodedKeySpec(encodedKey); byte[] ek = eks.getEncoded(); assertTrue(Arrays.equals(encodedKey, ek)); } /** * Test for getFormat() method * Assertion: returns format name (always "X.509") */ public final void testGetFormat() { byte[] encodedKey = new byte[] {(byte)1,(byte)2,(byte)3,(byte)4}; X509EncodedKeySpec meks = new X509EncodedKeySpec(encodedKey); assertEquals("X.509", meks.getFormat()); } /** * Tests that internal state of the object * can not be changed by modifying initial * array value */ public final void testIsStatePreserved1() { // Reference array byte[] encodedKey = new byte[] {(byte)1,(byte)2,(byte)3,(byte)4}; // Reference array's copy will be used for test byte[] encodedKeyCopy = encodedKey.clone(); X509EncodedKeySpec meks = new X509EncodedKeySpec(encodedKeyCopy); // Modify initial array's value encodedKeyCopy[3] = (byte)5; // Get encoded key byte[] ek = meks.getEncoded(); // Check using reference array that // byte value has not been changed assertTrue(Arrays.equals(encodedKey, ek)); } /** * Tests that internal state of the object * can not be modified using returned value * of getEncoded() method */ public final void testIsStatePreserved2() { // Reference array byte[] encodedKey = new byte[] {(byte)1,(byte)2,(byte)3,(byte)4}; // Reference array's copy will be used for test byte[] encodedKeyCopy = encodedKey.clone(); X509EncodedKeySpec meks = new X509EncodedKeySpec(encodedKeyCopy); byte[] ek = meks.getEncoded(); // Modify returned array ek[3] = (byte)5; // Get encoded key again byte[] ek1 = meks.getEncoded(); // Check using reference array that // byte value has not been changed assertTrue(Arrays.equals(encodedKey, ek1)); } }