1 package com.p6r.kmipserverlib;
5 import java.math.BigInteger;
6 import java.text.DateFormat;
7 import java.text.SimpleDateFormat;
9 import java.util.TimeZone;
11 import static org.junit.Assert.assertEquals;
27 System.out.println(
"@BeforeClass - oneTimeSetUp");
33 System.out.println(
"@AfterClass - oneTimeTearDown");
39 System.out.println(
"@Before - setUp");
45 System.out.println(
"@After - tearDown");
55 System.out.println(
"@Test - JNICall-Respnse4KMIP");
57 P6KMIPServerLib sl =
new P6KMIPServerLib();
60 sl.initializeLibrary(P6KMIPServerLib.FLAGS_NONE);
63 sl.startResponseMessage(5, KMIPConstants.FORMAT_TTLV, 2);
65 byte[] batchId1 = {0x01, 0x02, 0x03, 0x04};
66 byte[] batchId2 = {0x01, 0x02, 0x03, (byte) 0xF4};
67 byte[] batchId3 = {0x01, 0x77 };
68 byte[] batchId4 = {0x33, 0x77 };
69 byte[] batchId5 = {0x33, 0x00, 0x02, 0x77 };
71 byte[] fakeKeyMaterial = {0x7F, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F};
73 byte[] fakeECKeyBytes = { 0x30, 0x77, 0x02, 0x01, 0x01, 0x04, 0x20, (byte)0x91, 0x2a, 0x0e, 0x20, (byte)0x8f, 0x5d, (byte)0xd7, 0x34, (byte)0xb1, (byte)0x85, 0x18, 0x47,
74 (byte)0xe4, 0x65, (byte)0x9c, 0x45, (byte)0x88, (byte)0xb1, 0x6d, (byte)0x9f, 0x3b, (byte)0xc1, (byte)0xad, (byte)0xa5, 0x10, (byte)0xea, 0x2c, (byte)0x96, (byte)0x9d, (byte)0xaf, (byte)0x9e,
75 (byte)0xf4, (byte)0xa0, 0x0a, 0x06, 0x08, 0x2a, (byte)0x86, 0x48, (byte)0xce, 0x3d, 0x03, 0x01, 0x07, (byte)0xa1, 0x44, 0x03, 0x42, 0x00, 0x04,
76 (byte)0xb3, 0x44, 0x39, 0x2f, (byte)0xb7, 0x2a, (byte)0xa2, 0x67, (byte)0xf8, 0x6d, 0x7d, (byte)0x83, 0x7d, (byte)0xe1, (byte)0xd9, 0x6c, (byte)0xe9, 0x60, (byte)0xff,
77 (byte)0xc0, 0x5c, (byte)0xee, (byte)0xf3, (byte)0xf1, (byte)0xfa, 0x26, (byte)0xd8, 0x54, 0x6a, 0x64, 0x42, (byte)0xf3, (byte)0xc1, 0x39, 0x7e, (byte)0x92, (byte)0x9a, (byte)0xad,
78 (byte)0x8d, (byte)0xca, (byte)0xb2, 0x5b, 0x28, 0x2c, (byte)0xa8, (byte)0xa1, (byte)0xcf, 0x00, (byte)0xbe, (byte)0xf7, (byte)0xcb, 0x18, (byte)0xa0, (byte)0xf5, (byte)0xea, 0x44, 0x49,
79 0x3a, 0x30, (byte)0xa6, (byte)0xd2, 0x23, (byte)0xb2, 0x5b };
81 byte[] fakeCertBytes = {
82 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x6b, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, (byte) 0x92, 0x09, 0x00, 0x00, 0x00, 0x08,
83 0x00, 0x00, 0x00, 0x00, 0x5a, 0x19, (byte) 0xac, (byte) 0xcc, 0x42, 0x00, 0x0d, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x0f, 0x01, 0x00, 0x00, 0x03, 0x10,
84 0x42, 0x00, 0x5c, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, (byte) 0x93, 0x08, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
87 long timeStamp = System.currentTimeMillis();
88 DateFormat df =
new SimpleDateFormat(
"MM/dd/yyyy HH:mm:ss Z");
89 df.setTimeZone(TimeZone.getTimeZone(
"GMT"));
91 Date today =
new Date(timeStamp);
92 System.out.println(
"Unix Time stamp: " + timeStamp +
", date: " + df.format(today) +
"\n");
94 Attribute state =
new Attribute(KMIPConstants.ATTRIB_STATE, 0, KMIPConstants.STATE_ACTIVE);
95 Attribute cryptoMask =
new Attribute(KMIPConstants.ATTRIB_CRYPTOUSAGEMASK, 0,
new Integer((KMIPConstants.USAGE_MASK_ENCRYPT | KMIPConstants.USAGE_MASK_DECRYPT)));
96 Attribute initialDate =
new Attribute(KMIPConstants.ATTRIB_INITIALDATE, 0,
new Long(timeStamp));
98 CustomAttribute ca2 =
new CustomAttribute(
"x-p6r-clientcomment",
"by convention we place company name after x- to avoid collisions");
99 Attribute custom =
new Attribute(0, ca2);
101 Attribute[] attributes =
new Attribute[4];
102 attributes[0] = state;
103 attributes[1] = initialDate;
104 attributes[2] = cryptoMask;
105 attributes[3] = custom;
107 GetSymmetricKeyResponse sk =
new GetSymmetricKeyResponse(batchId1,
"1111-2222-3333-4444-5555", fakeKeyMaterial, KMIPConstants.ALG_AES, 128, attributes);
110 GetRawKeyResponse rk =
new GetRawKeyResponse(batchId5,
"1111-5555", fakeECKeyBytes, KMIPConstants.OBJECT_PRIVATEKEY, KMIPConstants.KEYFORMAT_ECPRIVKEY, KMIPConstants.ALG_EC, 128, attributes);
113 GetCertificateResponse cr =
new GetCertificateResponse(batchId2,
"aaa-bbb-cccc-ddd-eee", fakeCertBytes);
118 byte[] fakeWrappedKey = {0x34, 0x01, 0x02, (byte)0xC3, 0x04, 0x05, 0x16, 0x22, 0x08, 0x45, 0x0A, 0x11, 0x0C, 0x0D, 0x0E, 0x0F, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19};
119 byte[] fakeSignature = {0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, (byte)0x80, (byte)0x90, (byte)0xA0, (byte)0xB0, (byte)0xC0};
124 CryptograhicParameters encryptParams =
new CryptograhicParameters( KMIPConstants.MODE_ECB, KMIPConstants.PAD_PKCS5, -1, KMIPConstants.ROLE_KEK, -1, KMIPConstants.ALG_AES,
false, -1, -1, -1, -1, -1, -1, -1, -1, -1, null, -1 );
125 CryptograhicParameters signParams =
new CryptograhicParameters( -1, -1, KMIPConstants.HASH_SHA512, KMIPConstants.ROLE_MAC97974, -1, -1,
false, -1, -1, -1, -1, -1, -1, -1, -1, -1, null, -1 );
126 KeyWrappingData wrapInfo =
new KeyWrappingData(KMIPConstants.WRAP_ENCRYPTSIGN,
"enc-1111",
"sign-2222", fakeSignature, null, KMIPConstants.ENCODING_NO, encryptParams, signParams);
127 GetWrappedKeyResponse wr =
new GetWrappedKeyResponse(batchId3, KMIPConstants.OBJECT_SYMMETRICKEY,
"8383ururu-ododododo", fakeWrappedKey, wrapInfo);
130 KeyWrappingData wrapInfo2 =
new KeyWrappingData(KMIPConstants.WRAP_ENCRYPT,
"enc-1111", null, null, null, KMIPConstants.ENCODING_NO, encryptParams, null);
131 GetWrappedKeyResponse wr2 =
new GetWrappedKeyResponse(batchId4, KMIPConstants.OBJECT_SYMMETRICKEY,
"7777ururu-odododieieiei", fakeWrappedKey, KMIPConstants.KEYFORMAT_RAW, -1, KMIPConstants.ALG_AES, 128, wrapInfo2);
132 sl.addBatchItem(wr2);
134 byte[] responseBuffer = sl.endResponseMessage(0);
135 for (
int j = 0; j < responseBuffer.length; j++) {
136 System.out.print(responseBuffer[j]);
138 System.out.println(
"\n");
141 sl.startResponseMessage(1, KMIPConstants.FORMAT_TTLV, 2);
142 CryptograhicParameters c1 =
new CryptograhicParameters( KMIPConstants.MODE_NISTKEYWRAP, -1, -1, -1, -1, -1,
true, 16, -1, -1, -1, -1, -1, -1, -1, -1, null, -1 );
143 KeyWrappingData k1 =
new KeyWrappingData( KMIPConstants.WRAP_SIGN, null,
"test2", fakeSignature, null, KMIPConstants.ENCODING_NO, null, c1 );
144 GetWrappedKeyResponse t1 =
new GetWrappedKeyResponse(null, KMIPConstants.OBJECT_SYMMETRICKEY,
"test", fakeWrappedKey, KMIPConstants.KEYFORMAT_RAW, -1, KMIPConstants.ALG_AES, 128, k1 );
147 responseBuffer = sl.endResponseMessage(0);
148 for (
int j = 0; j < responseBuffer.length; j++) {
149 System.out.print(responseBuffer[j]);
151 System.out.println(
"\n");
155 sl.startResponseMessage(5, KMIPConstants.FORMAT_MSGXML, 2);
161 sl.addBatchItem(wr2);
163 byte[] responseBuffer2 = sl.endResponseMessage(0);
164 System.out.println(
new String(responseBuffer2));
165 System.out.println(
"\n");
169 sl.startResponseMessage(5, KMIPConstants.FORMAT_MSGJSON, 2);
175 sl.addBatchItem(wr2);
177 byte[] responseBuffer3 = sl.endResponseMessage(0);
178 System.out.println(
new String(responseBuffer3));
179 System.out.println(
"\n");
182 byte[] batchId20 = {0x01, 0x02, 0x03, 0x04};
183 byte[] batchId21 = {0x51, 0x52, 0x53, 0x54};
185 byte[] opaqueData = { 0x01, 0x02, 0x03, 0x04, 0x05 };
186 byte[] secretData = { 0x2F, 0x3F, 0x4F, 0x5F, 0x6F, 0x7F };
188 sl.startResponseMessage(2, KMIPConstants.FORMAT_MSGXML, 2);
190 GetBlobDataResponse db1 =
new GetBlobDataResponse(batchId20,
"3C3D6DD4-DB57-4AB7-A74E-D6F53F046BB7", KMIPConstants.OBJECT_OPAQUE, 0x80000001, opaqueData );
191 GetBlobDataResponse db2 =
new GetBlobDataResponse(batchId21,
"3C3D7DD4-DB57-4AC7-A74F-D6F53F146BB7", KMIPConstants.OBJECT_SECRETDATA, KMIPConstants.SECRET_SEED, secretData );
193 sl.addBatchItem(db1);
194 sl.addBatchItem(db2);
196 byte[] responseBuffer4 = sl.endResponseMessage(0);
197 System.out.println(
new String(responseBuffer4));
198 System.out.println(
"\n");
203 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x42, 0x45, 0x47, 0x49, 0x4E, 0x20, 0x50, 0x47, 0x50, 0x20, 0x50, 0x55, 0x42, 0x4C, 0x49, 0x43, 0x20, 0x4B, 0x45, 0x59, 0x20, 0x42, 0x4C, 0x4F, 0x43, 0x4B, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x0A, 0x0A, 0x6D, 0x51, 0x45, 0x4E, 0x42, 0x46,
204 0x48, 0x41, 0x2F, 0x64, 0x51, 0x42, 0x43, 0x41, 0x44, 0x67, 0x65, 0x64, 0x39, 0x65, 0x36, 0x74, 0x69, 0x62, 0x38, 0x6B, 0x6C, 0x46, 0x68, 0x50, 0x70, 0x77, 0x53, 0x6E, 0x69, 0x31, 0x4A, 0x73, 0x65, 0x63, 0x6B, 0x71, 0x6A, 0x53, 0x4C, 0x35, 0x77, 0x54, 0x31, 0x51,
205 0x4B, 0x4B, 0x6D, 0x4A, 0x4D, 0x4D, 0x52, 0x79, 0x49, 0x31, 0x52, 0x75, 0x35, 0x52, 0x0A, 0x72, 0x4A, 0x53, 0x42, 0x63, 0x52, 0x77, 0x6A, 0x4F, 0x6F, 0x61, 0x61, 0x52, 0x64, 0x61, 0x76, 0x6E, 0x5A, 0x45, 0x4A, 0x31, 0x78, 0x75, 0x6A, 0x55, 0x33, 0x32, 0x5A, 0x6A,
206 0x2B, 0x32, 0x48, 0x32, 0x73, 0x71, 0x73, 0x36, 0x73, 0x53, 0x6E, 0x69, 0x7A, 0x43, 0x4E, 0x6E, 0x6B, 0x46, 0x35, 0x48, 0x43, 0x57, 0x4F, 0x32, 0x4A, 0x33, 0x62, 0x35, 0x4D, 0x35, 0x76, 0x50, 0x6B, 0x64, 0x47, 0x0A, 0x50, 0x59, 0x71, 0x72, 0x6C, 0x63, 0x76, 0x37,
207 0x6C, 0x76, 0x50, 0x38, 0x50, 0x30, 0x77, 0x6A, 0x63, 0x54, 0x4F, 0x75, 0x65, 0x44, 0x78, 0x6E, 0x53, 0x67, 0x78, 0x36, 0x49, 0x6A, 0x6E, 0x34, 0x51, 0x44, 0x6A, 0x64, 0x2B, 0x74, 0x4C, 0x6E, 0x54, 0x78, 0x54, 0x4B, 0x38, 0x55, 0x30, 0x59, 0x68, 0x7A, 0x73, 0x47,
208 0x5A, 0x43, 0x77, 0x75, 0x2B, 0x33, 0x53, 0x36, 0x6B, 0x77, 0x68, 0x67, 0x0A, 0x78, 0x6C, 0x57, 0x53, 0x7A, 0x2B, 0x33, 0x39, 0x6F, 0x50, 0x30, 0x6B, 0x54, 0x35, 0x38, 0x2B, 0x4A, 0x76, 0x6E, 0x6C, 0x78, 0x38, 0x76, 0x6F, 0x77, 0x74, 0x76, 0x71, 0x5A, 0x2B, 0x37,
209 0x6E, 0x70, 0x71, 0x72, 0x4D, 0x4F, 0x6F, 0x6A, 0x49, 0x56, 0x65, 0x64, 0x46, 0x53, 0x66, 0x6B, 0x2B, 0x7A, 0x32, 0x43, 0x6F, 0x31, 0x55, 0x4F, 0x62, 0x6A, 0x36, 0x6C, 0x2B, 0x78, 0x7A, 0x54, 0x74, 0x0A, 0x31, 0x6B, 0x71, 0x51, 0x5A, 0x66, 0x58, 0x43, 0x2F, 0x79,
210 0x79, 0x4D, 0x41, 0x46, 0x77, 0x54, 0x4B, 0x63, 0x50, 0x45, 0x79, 0x2F, 0x4B, 0x43, 0x77, 0x36, 0x75, 0x32, 0x62, 0x7A, 0x76, 0x6F, 0x75, 0x5A, 0x4D, 0x4D, 0x33, 0x64, 0x6B, 0x67, 0x66, 0x55, 0x2F, 0x41, 0x75, 0x71, 0x71, 0x70, 0x4B, 0x53, 0x42, 0x41, 0x42, 0x48,
211 0x30, 0x5A, 0x2F, 0x62, 0x6C, 0x6E, 0x43, 0x32, 0x54, 0x79, 0x0A, 0x51, 0x64, 0x53, 0x75, 0x4F, 0x4B, 0x78, 0x7A, 0x67, 0x63, 0x79, 0x49, 0x42, 0x63, 0x57, 0x35, 0x77, 0x52, 0x6E, 0x4B, 0x74, 0x6A, 0x73, 0x74, 0x57, 0x57, 0x39, 0x59, 0x43, 0x66, 0x2F, 0x6A, 0x49,
212 0x36, 0x45, 0x74, 0x41, 0x42, 0x45, 0x42, 0x41, 0x41, 0x47, 0x30, 0x54, 0x30, 0x74, 0x4E, 0x53, 0x56, 0x41, 0x67, 0x56, 0x56, 0x4E, 0x46, 0x55, 0x69, 0x42, 0x53, 0x55, 0x30, 0x45, 0x67, 0x0A, 0x4B, 0x45, 0x39, 0x42, 0x55, 0x30, 0x6C, 0x54, 0x49, 0x45, 0x74, 0x6C,
213 0x65, 0x53, 0x42, 0x4E, 0x59, 0x57, 0x35, 0x68, 0x5A, 0x32, 0x56, 0x74, 0x5A, 0x57, 0x35, 0x30, 0x49, 0x45, 0x6C, 0x75, 0x64, 0x47, 0x56, 0x79, 0x62, 0x33, 0x42, 0x6C, 0x63, 0x6D, 0x46, 0x69, 0x61, 0x57, 0x78, 0x70, 0x64, 0x48, 0x6B, 0x67, 0x55, 0x48, 0x4A, 0x76,
214 0x64, 0x47, 0x39, 0x6A, 0x62, 0x32, 0x77, 0x70, 0x0A, 0x49, 0x44, 0x78, 0x72, 0x62, 0x57, 0x6C, 0x77, 0x4D, 0x30, 0x42, 0x72, 0x62, 0x57, 0x6C, 0x77, 0x4C, 0x6D, 0x4E, 0x76, 0x62, 0x54, 0x36, 0x4A, 0x41, 0x54, 0x59, 0x45, 0x45, 0x77, 0x45, 0x43, 0x41, 0x43, 0x41,
215 0x46, 0x41, 0x6C, 0x48, 0x41, 0x2F, 0x64, 0x51, 0x43, 0x47, 0x79, 0x38, 0x47, 0x43, 0x77, 0x6B, 0x49, 0x42, 0x77, 0x4D, 0x43, 0x42, 0x42, 0x55, 0x43, 0x43, 0x41, 0x4D, 0x45, 0x0A, 0x46, 0x67, 0x49, 0x44, 0x41, 0x51, 0x49, 0x65, 0x41, 0x51, 0x49, 0x58, 0x67, 0x41,
216 0x41, 0x4B, 0x43, 0x52, 0x41, 0x6B, 0x44, 0x42, 0x65, 0x7A, 0x62, 0x4D, 0x6F, 0x4E, 0x4A, 0x6B, 0x64, 0x31, 0x42, 0x2F, 0x39, 0x50, 0x4C, 0x70, 0x68, 0x47, 0x62, 0x78, 0x50, 0x4F, 0x32, 0x37, 0x79, 0x65, 0x79, 0x58, 0x39, 0x43, 0x6E, 0x5A, 0x2F, 0x5A, 0x73, 0x52,
217 0x50, 0x62, 0x47, 0x56, 0x48, 0x57, 0x0A, 0x58, 0x6D, 0x4D, 0x52, 0x32, 0x72, 0x69, 0x58, 0x6F, 0x42, 0x58, 0x42, 0x31, 0x46, 0x52, 0x34, 0x64, 0x6C, 0x56, 0x2F, 0x58, 0x6E, 0x67, 0x72, 0x65, 0x76, 0x6B, 0x34, 0x53, 0x5A, 0x42, 0x58, 0x46, 0x49, 0x4B, 0x78, 0x32,
218 0x77, 0x30, 0x68, 0x70, 0x70, 0x53, 0x51, 0x56, 0x67, 0x72, 0x42, 0x4B, 0x59, 0x43, 0x6D, 0x73, 0x2F, 0x68, 0x46, 0x43, 0x4B, 0x53, 0x63, 0x56, 0x61, 0x56, 0x62, 0x0A, 0x63, 0x4E, 0x51, 0x79, 0x38, 0x4C, 0x30, 0x51, 0x35, 0x54, 0x4E, 0x6A, 0x46, 0x50, 0x7A, 0x78,
219 0x79, 0x55, 0x41, 0x50, 0x38, 0x4D, 0x4C, 0x55, 0x46, 0x75, 0x2B, 0x52, 0x72, 0x35, 0x4F, 0x49, 0x69, 0x50, 0x49, 0x59, 0x75, 0x47, 0x46, 0x4D, 0x32, 0x36, 0x51, 0x6E, 0x54, 0x42, 0x66, 0x44, 0x46, 0x4F, 0x68, 0x44, 0x68, 0x37, 0x4D, 0x76, 0x6A, 0x6A, 0x32, 0x77,
220 0x57, 0x55, 0x75, 0x5A, 0x0A, 0x62, 0x32, 0x6F, 0x56, 0x36, 0x69, 0x36, 0x67, 0x6A, 0x39, 0x37, 0x6D, 0x66, 0x79, 0x4E, 0x4A, 0x31, 0x6D, 0x4A, 0x48, 0x66, 0x72, 0x2B, 0x4D, 0x62, 0x4F, 0x36, 0x68, 0x42, 0x65, 0x62, 0x41, 0x50, 0x76, 0x6E, 0x73, 0x36, 0x6B, 0x59,
221 0x69, 0x76, 0x53, 0x44, 0x79, 0x72, 0x47, 0x72, 0x30, 0x36, 0x63, 0x70, 0x55, 0x61, 0x74, 0x6F, 0x65, 0x68, 0x30, 0x2B, 0x32, 0x59, 0x4E, 0x32, 0x35, 0x0A, 0x58, 0x64, 0x45, 0x6D, 0x44, 0x6B, 0x30, 0x62, 0x71, 0x79, 0x39, 0x6B, 0x70, 0x4A, 0x4D, 0x77, 0x48, 0x6A,
222 0x6A, 0x55, 0x4C, 0x6B, 0x77, 0x6E, 0x73, 0x46, 0x6A, 0x62, 0x76, 0x2B, 0x4B, 0x68, 0x58, 0x78, 0x6C, 0x32, 0x6A, 0x47, 0x36, 0x6D, 0x6C, 0x45, 0x71, 0x4E, 0x69, 0x41, 0x69, 0x55, 0x56, 0x50, 0x66, 0x74, 0x58, 0x59, 0x34, 0x79, 0x4B, 0x6D, 0x54, 0x66, 0x69, 0x42,
223 0x5A, 0x61, 0x0A, 0x34, 0x4A, 0x30, 0x6A, 0x30, 0x34, 0x6F, 0x6D, 0x6B, 0x55, 0x38, 0x4A, 0x6A, 0x34, 0x66, 0x76, 0x6C, 0x6B, 0x4F, 0x6F, 0x32, 0x6F, 0x36, 0x6B, 0x62, 0x73, 0x2B, 0x68, 0x74, 0x71, 0x44, 0x2B, 0x4A, 0x35, 0x57, 0x48, 0x78, 0x6D, 0x58, 0x31, 0x54,
224 0x6F, 0x73, 0x67, 0x72, 0x66, 0x7A, 0x75, 0x56, 0x38, 0x7A, 0x35, 0x4D, 0x74, 0x37, 0x55, 0x0A, 0x3D, 0x6E, 0x56, 0x4F, 0x79, 0x0A, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x45, 0x4E, 0x44, 0x20, 0x50, 0x47, 0x50, 0x20, 0x50, 0x55, 0x42, 0x4C, 0x49, 0x43, 0x20, 0x4B, 0x45,
225 0x59, 0x20, 0x42, 0x4C, 0x4F, 0x43, 0x4B, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x0A
227 sl.startResponseMessage(1, KMIPConstants.FORMAT_MSGXML, 4);
229 GetPGPKeyResponse pgpKey =
new GetPGPKeyResponse(null,
"3C3DD4-DB57-4AC7-A74F-D6F5146BB7", pgpBytes, 4, KMIPConstants.ALG_RSA, 2048);
230 sl.addBatchItem(pgpKey);
232 byte[] responseBuffer5 = sl.endResponseMessage(0);
233 System.out.println(
new String(responseBuffer5));
234 System.out.println(
"\n");
238 byte[] pkcs12Bytes = {
239 (byte)0x30, (byte)0x82, (byte)0x0A, (byte)0xE9, (byte)0x02, (byte)0x01, (byte)0x03, (byte)0x30, (byte)0x82, (byte)0x0A, (byte)0xAF, (byte)0x06, (byte)0x09, (byte)0x2A, (byte)0x86, (byte)0x48, (byte)0x86, (byte)0xF7, (byte)0x0D, (byte)0x01, (byte)0x07, (byte)0x01, (byte)0xA0, (byte)0x82, (byte)0x0A, (byte)0xA0, (byte)0x04, (byte)0x82, (byte)0x0A, (byte)0x9C, (byte)0x30, (byte)0x82, (byte)0x0A, (byte)0x98, (byte)0x30, (byte)0x82, (byte)0x07, (byte)0x97, (byte)0x06, (byte)0x09, (byte)0x2A, (byte)0x86, (byte)0x48, (byte)0x86, (byte)0xF7, (byte)0x0D,
240 (byte)0x01, (byte)0x07, (byte)0x06, (byte)0xA0, (byte)0x82, (byte)0x07, (byte)0x88, (byte)0x30, (byte)0x82, (byte)0x07, (byte)0x84, (byte)0x02, (byte)0x01, (byte)0x00, (byte)0x30, (byte)0x82, (byte)0x07, (byte)0x7D, (byte)0x06, (byte)0x09, (byte)0x2A, (byte)0x86, (byte)0x48, (byte)0x86, (byte)0xF7, (byte)0x0D, (byte)0x01, (byte)0x07, (byte)0x01, (byte)0x30, (byte)0x1C, (byte)0x06, (byte)0x0A, (byte)0x2A, (byte)0x86, (byte)0x48, (byte)0x86, (byte)0xF7, (byte)0x0D, (byte)0x01, (byte)0x0C, (byte)0x01, (byte)0x03, (byte)0x30, (byte)0x0E, (byte)0x04,
241 (byte)0x08, (byte)0xA2, (byte)0x30, (byte)0x40, (byte)0x70, (byte)0x73, (byte)0x2C, (byte)0xD3, (byte)0x05, (byte)0x02, (byte)0x02, (byte)0x08, (byte)0x00, (byte)0x80, (byte)0x82, (byte)0x07, (byte)0x50, (byte)0xDA, (byte)0x87, (byte)0x01, (byte)0xBF, (byte)0x41, (byte)0xC8, (byte)0x0C, (byte)0xD6, (byte)0xF0, (byte)0xF5, (byte)0x19, (byte)0x77, (byte)0xE7, (byte)0x9F, (byte)0xDB, (byte)0x04, (byte)0x35, (byte)0xF9, (byte)0xAA, (byte)0x8E, (byte)0xCE, (byte)0x0E, (byte)0xAE, (byte)0x09, (byte)0xAE, (byte)0x08, (byte)0x3B, (byte)0x51, (byte)0xC9,
242 (byte)0x29, (byte)0x87, (byte)0x1B, (byte)0x3E, (byte)0x78, (byte)0x10, (byte)0xDA, (byte)0x04, (byte)0x30, (byte)0x88, (byte)0x3A, (byte)0xD8, (byte)0xFF, (byte)0xEE, (byte)0x4D, (byte)0x01, (byte)0x5B, (byte)0x8B, (byte)0xB5, (byte)0x30, (byte)0xC3, (byte)0xFC, (byte)0xD9, (byte)0x58, (byte)0x83, (byte)0xA4, (byte)0xA9, (byte)0x38, (byte)0xB2, (byte)0xD5, (byte)0x7C, (byte)0x81, (byte)0xB4, (byte)0x79, (byte)0x2C, (byte)0x9B, (byte)0x05, (byte)0xAF, (byte)0x5C, (byte)0xDB, (byte)0xD3, (byte)0x7A, (byte)0x66, (byte)0x22, (byte)0x33, (byte)0x9E,
243 (byte)0xF2, (byte)0x0B, (byte)0xBD, (byte)0xEA, (byte)0xC3, (byte)0xBC, (byte)0x38, (byte)0x29, (byte)0xE2, (byte)0x6A, (byte)0xCA, (byte)0xF1, (byte)0x24, (byte)0x55, (byte)0xF0, (byte)0x2C, (byte)0x2A, (byte)0x1D, (byte)0x8E, (byte)0x6F, (byte)0x1D, (byte)0x3E, (byte)0xE0, (byte)0x1F, (byte)0xB4, (byte)0xC4, (byte)0xFF, (byte)0x85, (byte)0x0E, (byte)0xE5, (byte)0x28, (byte)0x5D, (byte)0xE4, (byte)0x52, (byte)0xCE, (byte)0x33, (byte)0xDA, (byte)0x48, (byte)0x9B, (byte)0x50, (byte)0x55, (byte)0x69, (byte)0xC5, (byte)0x34, (byte)0x43, (byte)0x9E,
244 (byte)0x21, (byte)0x08, (byte)0x03, (byte)0x8B, (byte)0xA1, (byte)0x62, (byte)0x95, (byte)0xC1, (byte)0xBE, (byte)0x36, (byte)0x7A, (byte)0x93, (byte)0x07, (byte)0x94, (byte)0xAC, (byte)0x18, (byte)0x27, (byte)0x86, (byte)0x0D, (byte)0xE2, (byte)0x28, (byte)0x79, (byte)0x5D, (byte)0x96, (byte)0xF1, (byte)0x9D, (byte)0x2E, (byte)0xE6, (byte)0x0D, (byte)0xD3, (byte)0xA9, (byte)0x26, (byte)0x68, (byte)0xEE, (byte)0x57, (byte)0x17, (byte)0xE4, (byte)0x3A, (byte)0xE4, (byte)0x95, (byte)0x8A, (byte)0x9E, (byte)0xC9, (byte)0xAC, (byte)0x4D, (byte)0x23,
245 (byte)0xD0, (byte)0xF4, (byte)0x0D, (byte)0x8D, (byte)0x61, (byte)0xE8, (byte)0xCA, (byte)0xDD, (byte)0x5E, (byte)0x8D, (byte)0x02, (byte)0xBD, (byte)0x5F, (byte)0x35, (byte)0xF2, (byte)0x45, (byte)0xE4, (byte)0xDB, (byte)0x09, (byte)0xA1, (byte)0x8C, (byte)0x3F, (byte)0x9A, (byte)0x21, (byte)0x62, (byte)0x1A, (byte)0x95, (byte)0x62, (byte)0xE6, (byte)0xCA, (byte)0xBC, (byte)0x9E, (byte)0x1A, (byte)0xDF, (byte)0x47, (byte)0x5D, (byte)0xDC, (byte)0xFA, (byte)0xE9, (byte)0x6E, (byte)0xD7, (byte)0x12, (byte)0x5A, (byte)0xAC, (byte)0xFE, (byte)0xD6,
246 (byte)0xE5, (byte)0x9B, (byte)0x39, (byte)0x7E, (byte)0x1A, (byte)0x6E, (byte)0xC5, (byte)0x7B, (byte)0x74, (byte)0x9B, (byte)0xBA, (byte)0xFA, (byte)0x23, (byte)0xE8, (byte)0x18, (byte)0x7B, (byte)0x0A, (byte)0xD1, (byte)0x78, (byte)0xC5, (byte)0xF4, (byte)0x0B, (byte)0xC7, (byte)0xD2, (byte)0x12, (byte)0xFE, (byte)0x21, (byte)0x56, (byte)0xCD, (byte)0xEE, (byte)0x64, (byte)0xFE, (byte)0x21, (byte)0x05, (byte)0x29, (byte)0x22, (byte)0x7C, (byte)0x9A, (byte)0x50, (byte)0x5B, (byte)0xB7, (byte)0xCE, (byte)0xFC, (byte)0x1D, (byte)0xD8, (byte)0xE2,
247 (byte)0x85, (byte)0x07, (byte)0xAB, (byte)0x5B, (byte)0xE7, (byte)0xBC, (byte)0x5D, (byte)0xB1, (byte)0xB7, (byte)0xD1, (byte)0x44, (byte)0xFA, (byte)0x05, (byte)0x32, (byte)0x63, (byte)0x08, (byte)0x8E, (byte)0x09, (byte)0x76, (byte)0x5E, (byte)0x38, (byte)0x1F, (byte)0x16, (byte)0x9E, (byte)0x90, (byte)0xFD, (byte)0x5F, (byte)0x99, (byte)0x64, (byte)0x58, (byte)0xE9, (byte)0x9E, (byte)0xCD, (byte)0xDC, (byte)0x30, (byte)0x8F, (byte)0x28, (byte)0x58, (byte)0x2F, (byte)0xF0, (byte)0x04, (byte)0x77, (byte)0x45, (byte)0x95, (byte)0xE9, (byte)0x47,
248 (byte)0x4A, (byte)0x5A, (byte)0x75, (byte)0x00, (byte)0xE2, (byte)0xFF, (byte)0x7F, (byte)0xDE, (byte)0x04, (byte)0x9B, (byte)0x25, (byte)0xCE, (byte)0x96, (byte)0xE4, (byte)0x5D, (byte)0x04, (byte)0xF7, (byte)0xB2, (byte)0x2B, (byte)0xD5, (byte)0xBC, (byte)0xEC, (byte)0x5A, (byte)0x0E, (byte)0x6D, (byte)0x9E, (byte)0x87, (byte)0x2E, (byte)0x4A, (byte)0x82, (byte)0xF2, (byte)0x8C, (byte)0x48, (byte)0x90, (byte)0x59, (byte)0x0B, (byte)0xE7, (byte)0xB2, (byte)0x7F, (byte)0x2A, (byte)0xF2, (byte)0xC1, (byte)0x7E, (byte)0xC3, (byte)0x71, (byte)0x31,
249 (byte)0xBE, (byte)0x93, (byte)0xE5, (byte)0xFA, (byte)0x60, (byte)0xDB, (byte)0x77, (byte)0xCD, (byte)0xE9, (byte)0x65, (byte)0xB5, (byte)0xA3, (byte)0xBE, (byte)0xB7, (byte)0x65, (byte)0xAC, (byte)0xC6, (byte)0xF0, (byte)0x22, (byte)0x59, (byte)0x83, (byte)0x63, (byte)0x5D, (byte)0xEE, (byte)0x6C, (byte)0xD4, (byte)0x6D, (byte)0x26, (byte)0x0F, (byte)0x7F, (byte)0x35, (byte)0xF5, (byte)0x52, (byte)0x01, (byte)0xC4, (byte)0x73, (byte)0x4A, (byte)0x84, (byte)0x38, (byte)0x2F, (byte)0xBF, (byte)0x92, (byte)0x5E, (byte)0xA4, (byte)0x21, (byte)0x76,
250 (byte)0x00, (byte)0xA5, (byte)0x6A, (byte)0xA6, (byte)0x67, (byte)0x2B, (byte)0xA7, (byte)0xEF, (byte)0x29, (byte)0x60, (byte)0xF5, (byte)0x41, (byte)0x7A, (byte)0x1B, (byte)0x46, (byte)0xD5, (byte)0x63, (byte)0x9D, (byte)0xA2, (byte)0x03, (byte)0x36, (byte)0x83, (byte)0xA1, (byte)0x4D, (byte)0x94, (byte)0xFC, (byte)0xFD, (byte)0x4E, (byte)0x80, (byte)0x85, (byte)0x4E, (byte)0x18, (byte)0x0D, (byte)0x36, (byte)0x07, (byte)0x75, (byte)0x77, (byte)0xE6, (byte)0x8E, (byte)0xE5, (byte)0x23, (byte)0x31, (byte)0xE0, (byte)0xC7, (byte)0xDD, (byte)0x49,
251 (byte)0xB2, (byte)0x16, (byte)0xD8, (byte)0x67, (byte)0x72, (byte)0xB5, (byte)0xCF, (byte)0x63, (byte)0x37, (byte)0xA1, (byte)0x76, (byte)0xF4, (byte)0x24, (byte)0x9B, (byte)0xC4, (byte)0x22, (byte)0x2D, (byte)0x20, (byte)0x7B, (byte)0x09, (byte)0xB2, (byte)0xCF, (byte)0x92, (byte)0x0C, (byte)0xC2, (byte)0x5C, (byte)0xEC, (byte)0x6F, (byte)0x47, (byte)0x8D, (byte)0x7E, (byte)0x13, (byte)0x7A, (byte)0x0A, (byte)0x4C, (byte)0x4B, (byte)0x70, (byte)0x6E, (byte)0xB7, (byte)0x6D, (byte)0xFE, (byte)0xAC, (byte)0xEC, (byte)0xF4, (byte)0xE5, (byte)0x41,
252 (byte)0x78, (byte)0x35, (byte)0xB3, (byte)0xF8, (byte)0x05, (byte)0x60, (byte)0x4D, (byte)0x89, (byte)0xC7, (byte)0x3D, (byte)0x99, (byte)0x4A, (byte)0x77, (byte)0xD4, (byte)0x2C, (byte)0x57, (byte)0xFD, (byte)0x03, (byte)0x56, (byte)0x18, (byte)0x17, (byte)0x03, (byte)0x67, (byte)0x83, (byte)0x95, (byte)0x3F, (byte)0x16, (byte)0x79, (byte)0x07, (byte)0x62, (byte)0x3E, (byte)0xF4, (byte)0x8E, (byte)0x13, (byte)0xA8, (byte)0xBE, (byte)0xAF, (byte)0xB0, (byte)0x3D, (byte)0x36, (byte)0x67, (byte)0x04, (byte)0xD0, (byte)0xAA, (byte)0x33, (byte)0x73,
253 (byte)0x74, (byte)0x29, (byte)0xE2, (byte)0xC2, (byte)0x7D, (byte)0xCA, (byte)0xF9, (byte)0x89, (byte)0x24, (byte)0x3A, (byte)0xE0, (byte)0x68, (byte)0xEC, (byte)0x27, (byte)0xFA, (byte)0xF3, (byte)0xCF, (byte)0x80, (byte)0xC0, (byte)0xE3, (byte)0xB2, (byte)0x24, (byte)0x8B, (byte)0x97, (byte)0x9D, (byte)0x83, (byte)0xBC, (byte)0x32, (byte)0x43, (byte)0xD5, (byte)0x26, (byte)0x45, (byte)0x5E, (byte)0x0C, (byte)0x24, (byte)0x16, (byte)0xE0, (byte)0xA3, (byte)0xDA, (byte)0x60, (byte)0x46, (byte)0x3C, (byte)0xDB, (byte)0x52, (byte)0x86, (byte)0x8B,
254 (byte)0x64, (byte)0xAE, (byte)0x8F, (byte)0x80, (byte)0x79, (byte)0x6D, (byte)0x96, (byte)0xE0, (byte)0xB2, (byte)0x9A, (byte)0xF8, (byte)0xAA, (byte)0x3B, (byte)0xB8, (byte)0x45, (byte)0x28, (byte)0x27, (byte)0xBA, (byte)0x0B, (byte)0x63, (byte)0x70, (byte)0x8B, (byte)0x28, (byte)0x90, (byte)0xC0, (byte)0x0A, (byte)0x31, (byte)0x8F, (byte)0xE4, (byte)0x4B, (byte)0xC5, (byte)0x84, (byte)0x9A, (byte)0x3D, (byte)0x6A, (byte)0x5D, (byte)0x51, (byte)0x90, (byte)0x32, (byte)0xE9, (byte)0x92, (byte)0x26, (byte)0x41, (byte)0x19, (byte)0x55, (byte)0x9C,
255 (byte)0x05, (byte)0x55, (byte)0xC5, (byte)0x69, (byte)0xFA, (byte)0x69, (byte)0x84, (byte)0x64, (byte)0x93, (byte)0x93, (byte)0xB9, (byte)0xF8, (byte)0xE1, (byte)0x90, (byte)0xC6, (byte)0xA5, (byte)0xE2, (byte)0xC8, (byte)0xD3, (byte)0xA8, (byte)0xEB, (byte)0x2D, (byte)0x3F, (byte)0xFE, (byte)0x23, (byte)0xF1, (byte)0x48, (byte)0xC0, (byte)0xCA, (byte)0xA9, (byte)0x54, (byte)0xFF, (byte)0xEC, (byte)0x58, (byte)0x54, (byte)0xC9, (byte)0x8E, (byte)0xD5, (byte)0x02, (byte)0x21, (byte)0xA7, (byte)0x11, (byte)0xD5, (byte)0x93, (byte)0x7C, (byte)0x6F,
256 (byte)0x5D, (byte)0x05, (byte)0x02, (byte)0xC7, (byte)0xDA, (byte)0x1E, (byte)0xDB, (byte)0x13, (byte)0x99, (byte)0x8C, (byte)0xCD, (byte)0x51, (byte)0x69, (byte)0x4A, (byte)0x0F, (byte)0xD8, (byte)0x34, (byte)0x0C, (byte)0xF6, (byte)0xC3, (byte)0x9B, (byte)0x1E, (byte)0xDC, (byte)0x31, (byte)0xA6, (byte)0xAE, (byte)0xF2, (byte)0xD5, (byte)0x01, (byte)0xF1, (byte)0x1D, (byte)0x07, (byte)0x91, (byte)0x32, (byte)0x43, (byte)0x01, (byte)0x4D, (byte)0x56, (byte)0x8E, (byte)0x37, (byte)0x1B, (byte)0x5D, (byte)0x2F, (byte)0xFB, (byte)0x1D, (byte)0x43,
257 (byte)0x74, (byte)0xD3, (byte)0xE1, (byte)0x10, (byte)0x30, (byte)0x53, (byte)0x47, (byte)0xF3, (byte)0xBC, (byte)0x34, (byte)0x0A, (byte)0x4B, (byte)0x4D, (byte)0x8E, (byte)0xE5, (byte)0xF9, (byte)0x04, (byte)0x8D, (byte)0xDA, (byte)0x2C, (byte)0x36, (byte)0xB3, (byte)0xDF, (byte)0x8C, (byte)0x0A, (byte)0x69, (byte)0xD7, (byte)0x73, (byte)0xC2, (byte)0xE3, (byte)0x89, (byte)0x11, (byte)0xA3, (byte)0xCC, (byte)0x76, (byte)0x60, (byte)0x06, (byte)0x9D, (byte)0xE6, (byte)0x18, (byte)0xE3, (byte)0x8C, (byte)0x7C, (byte)0xC7, (byte)0x4E, (byte)0x56,
258 (byte)0x74, (byte)0x12, (byte)0xC2, (byte)0x72, (byte)0x6E, (byte)0xEB, (byte)0xA6, (byte)0xF8, (byte)0x2B, (byte)0xD9, (byte)0x73, (byte)0x14, (byte)0x7D, (byte)0x4B, (byte)0x47, (byte)0x0F, (byte)0xDA, (byte)0xC7, (byte)0xA3, (byte)0xA1, (byte)0x60, (byte)0x6C, (byte)0x82, (byte)0xD2, (byte)0x0F, (byte)0x1E, (byte)0xE0, (byte)0x43, (byte)0x0A, (byte)0x28, (byte)0x96, (byte)0x86, (byte)0xD8, (byte)0x9D, (byte)0xF8, (byte)0x0B, (byte)0x62, (byte)0xDC, (byte)0xBD, (byte)0x2A, (byte)0xC6, (byte)0x86, (byte)0x75, (byte)0x07, (byte)0xE8, (byte)0x6D,
259 (byte)0xBB, (byte)0xEF, (byte)0xDE, (byte)0x23, (byte)0x11, (byte)0x35, (byte)0x53, (byte)0x25, (byte)0x11, (byte)0x65, (byte)0xDA, (byte)0x10, (byte)0x5F, (byte)0xE6, (byte)0x7E, (byte)0x64, (byte)0xF0, (byte)0xA4, (byte)0xA5, (byte)0x49, (byte)0xDD, (byte)0x01, (byte)0xF9, (byte)0xD7, (byte)0x1C, (byte)0x2F, (byte)0xFA, (byte)0x89, (byte)0x5A, (byte)0x69, (byte)0xFB, (byte)0xBE, (byte)0xED, (byte)0xA3, (byte)0x4B, (byte)0x00, (byte)0xD1, (byte)0xDA, (byte)0xAD, (byte)0x76, (byte)0x00, (byte)0xC6, (byte)0xB3, (byte)0x2E, (byte)0x52, (byte)0x93,
260 (byte)0xEC, (byte)0xB2, (byte)0xBB, (byte)0x44, (byte)0x02, (byte)0x20, (byte)0x63, (byte)0x34, (byte)0x24, (byte)0x23, (byte)0xC4, (byte)0x0E, (byte)0x46, (byte)0x1C, (byte)0x22, (byte)0x97, (byte)0xF9, (byte)0xB0, (byte)0xB3, (byte)0xDE, (byte)0xC7, (byte)0xF1, (byte)0xFE, (byte)0xB8, (byte)0x7A, (byte)0x5F, (byte)0xCD, (byte)0x2D, (byte)0x49, (byte)0x38, (byte)0xB5, (byte)0x3F, (byte)0x5C, (byte)0x02, (byte)0x22, (byte)0x72, (byte)0x54, (byte)0x78, (byte)0x8F, (byte)0xAB, (byte)0xDE, (byte)0x0D, (byte)0xC7, (byte)0xF0, (byte)0x08, (byte)0xA1,
261 (byte)0x39, (byte)0x54, (byte)0xA9, (byte)0x9D, (byte)0x8F, (byte)0x70, (byte)0x81, (byte)0x35, (byte)0x8C, (byte)0xCA, (byte)0xF7, (byte)0x88, (byte)0x5C, (byte)0xBD, (byte)0x76, (byte)0x25, (byte)0xA7, (byte)0x6D, (byte)0x7B, (byte)0xB6, (byte)0xAE, (byte)0x8B, (byte)0xB1, (byte)0x25, (byte)0x69, (byte)0x28, (byte)0xA0, (byte)0xDB, (byte)0xF9, (byte)0x29, (byte)0x34, (byte)0x15, (byte)0xC8, (byte)0x72, (byte)0xD9, (byte)0x8B, (byte)0x94, (byte)0xFF, (byte)0xF2, (byte)0xBE, (byte)0xAA, (byte)0x98, (byte)0x5B, (byte)0xF7, (byte)0x14, (byte)0x52
263 sl.startResponseMessage(1, KMIPConstants.FORMAT_MSGXML, 4);
265 GetRawKeyResponse pkcs12Key =
new GetRawKeyResponse(null,
"af310121-0ce4-4779-9a02-bacd5b1ac9f4", pkcs12Bytes, KMIPConstants.OBJECT_PRIVATEKEY, KMIPConstants.KEYFORMAT_PKCS12, -1, -1, null );
266 sl.addBatchItem(pkcs12Key);
268 byte[] responseBuffer6 = sl.endResponseMessage(0);
269 System.out.println(
new String(responseBuffer6));
270 System.out.println(
"\n");
273 sl.startResponseMessage(1, KMIPConstants.FORMAT_MSGXML, 4);
275 GetSplitKeyResponse split =
new GetSplitKeyResponse(null,
"af310121-0ce4-4779-9a02-bacd5b1AAAAAA", opaqueData, KMIPConstants.KEYFORMAT_RAW, 10, 2, 5, KMIPConstants.SPLITKEY_PRIME, secretData, KMIPConstants.ALG_AES, 256 );
276 sl.addBatchItem(split);
278 byte[] responseBuffer7 = sl.endResponseMessage(0);
279 System.out.println(
new String(responseBuffer7));
280 System.out.println(
"\n");
284 }
catch (Exception e) {
286 System.out.println(e.toString());
static void oneTimeSetUp()
A JUNIT test demonstrating how to parse an incoming KMIP request from a client.
void JNICall_Response4KMIP()
Test: Generate a message with multiple different GET response batch items.
static void oneTimeTearDown()