test/com/sun/crypto/provider/Cipher/KeyWrap/XMLEncKAT.java

Print this page

        

*** 24,43 **** /* * @test * @bug 5008159 5008156 * @summary Verify that the two key wrap ciphers, i.e. "DESedeWrap" * and "AESWrap", work as expected. - * @modules java.base/sun.misc * @run main XMLEncKAT * @author Valerie Peng */ import java.security.Key; import java.security.AlgorithmParameters; import javax.crypto.*; import javax.crypto.spec.*; - import sun.misc.BASE64Decoder; - import sun.misc.BASE64Encoder; import java.io.UnsupportedEncodingException; import java.io.IOException; public class XMLEncKAT { --- 24,41 ---- /* * @test * @bug 5008159 5008156 * @summary Verify that the two key wrap ciphers, i.e. "DESedeWrap" * and "AESWrap", work as expected. * @run main XMLEncKAT * @author Valerie Peng */ + import java.util.Base64; import java.security.Key; import java.security.AlgorithmParameters; import javax.crypto.*; import javax.crypto.spec.*; import java.io.UnsupportedEncodingException; import java.io.IOException; public class XMLEncKAT {
*** 48,81 **** private static byte[] desEdeKey_2; private static byte[] aes128Key_2; private static byte[] aes192Key_2; private static byte[] aes256Key_2; ! private static BASE64Decoder base64D = new BASE64Decoder(); ! private static BASE64Encoder base64E = new BASE64Encoder(); static { try { desEdeKey_1 = "abcdefghijklmnopqrstuvwx".getBytes("ASCII"); aes128Key_1 = "abcdefghijklmnop".getBytes("ASCII"); aes192Key_1 = "abcdefghijklmnopqrstuvwx".getBytes("ASCII"); aes256Key_1 = "abcdefghijklmnopqrstuvwxyz012345".getBytes("ASCII"); } catch (UnsupportedEncodingException uee) { // should never happen } ! try { ! desEdeKey_2 = base64D.decodeBuffer ("yI+J1f3puYAERjIcT6vfg6RitmKX8nD0"); ! aes128Key_2 = base64D.decodeBuffer ("01+yuQ2huPS1+Qv0LH+zaQ=="); ! aes192Key_2 = base64D.decodeBuffer ("IlfuS40LvStVU0Mj8ePrrGHVhAb48y++"); ! aes256Key_2 = base64D.decodeBuffer ("ZhZ4v3RlwTlCEOpIrHfLKVyJOBDtEJOOQDat/4xR1bA="); ! } catch (IOException ioe) { ! // should never happen ! } } private static String[] desEdeWrappedKey_1 = { "ZyJbVsjRM4MEsswwwHz57aUz1eMqZHuEIoEPGS47CcmLvhuCtlzWZ9S/WcVJZIpz", "gHMpx5iF7+KXtNHLasZrkcLHn8Ti4rxUjCIRK+IcgbQir6FUsQ/uxQ3o8enEMWq1" }; --- 46,77 ---- private static byte[] desEdeKey_2; private static byte[] aes128Key_2; private static byte[] aes192Key_2; private static byte[] aes256Key_2; ! private static Base64.Decoder base64D = Base64.getDecoder(); ! private static Base64.Encoder base64E = Base64.getEncoder(); static { try { desEdeKey_1 = "abcdefghijklmnopqrstuvwx".getBytes("ASCII"); aes128Key_1 = "abcdefghijklmnop".getBytes("ASCII"); aes192Key_1 = "abcdefghijklmnopqrstuvwx".getBytes("ASCII"); aes256Key_1 = "abcdefghijklmnopqrstuvwxyz012345".getBytes("ASCII"); } catch (UnsupportedEncodingException uee) { // should never happen } ! ! desEdeKey_2 = base64D.decode ("yI+J1f3puYAERjIcT6vfg6RitmKX8nD0"); ! aes128Key_2 = base64D.decode ("01+yuQ2huPS1+Qv0LH+zaQ=="); ! aes192Key_2 = base64D.decode ("IlfuS40LvStVU0Mj8ePrrGHVhAb48y++"); ! aes256Key_2 = base64D.decode ("ZhZ4v3RlwTlCEOpIrHfLKVyJOBDtEJOOQDat/4xR1bA="); ! } private static String[] desEdeWrappedKey_1 = { "ZyJbVsjRM4MEsswwwHz57aUz1eMqZHuEIoEPGS47CcmLvhuCtlzWZ9S/WcVJZIpz", "gHMpx5iF7+KXtNHLasZrkcLHn8Ti4rxUjCIRK+IcgbQir6FUsQ/uxQ3o8enEMWq1" };
*** 121,141 **** Key[] key = new SecretKey[base64Wrapped.length]; IvParameterSpec[] params = new IvParameterSpec[base64Wrapped.length]; // first test UNWRAP with known values for (int i = 0; i < base64Wrapped.length; i++) { ! byte[] wrappedKey = base64D.decodeBuffer(base64Wrapped[i]); key[i] = c.unwrap(wrappedKey, "AES", Cipher.SECRET_KEY); if (c.getIV() != null) { params[i] = new IvParameterSpec(c.getIV()); } } // then test WRAP and compare with the known values for (int i = 0; i < key.length; i++) { c.init(Cipher.WRAP_MODE, cKey, params[i]); byte[] wrapped2 = c.wrap(key[i]); ! String out = base64E.encode(wrapped2); if (!out.equalsIgnoreCase(base64Wrapped[i])) { throw new Exception("Wrap failed; got " + out + ", expect " + base64Wrapped[i]); } } --- 117,137 ---- Key[] key = new SecretKey[base64Wrapped.length]; IvParameterSpec[] params = new IvParameterSpec[base64Wrapped.length]; // first test UNWRAP with known values for (int i = 0; i < base64Wrapped.length; i++) { ! byte[] wrappedKey = base64D.decode(base64Wrapped[i]); key[i] = c.unwrap(wrappedKey, "AES", Cipher.SECRET_KEY); if (c.getIV() != null) { params[i] = new IvParameterSpec(c.getIV()); } } // then test WRAP and compare with the known values for (int i = 0; i < key.length; i++) { c.init(Cipher.WRAP_MODE, cKey, params[i]); byte[] wrapped2 = c.wrap(key[i]); ! String out = base64E.encodeToString(wrapped2); if (!out.equalsIgnoreCase(base64Wrapped[i])) { throw new Exception("Wrap failed; got " + out + ", expect " + base64Wrapped[i]); } }