1 package com.p6r.kmipserverlib;
5 import static org.junit.Assert.assertEquals;
21 System.out.println(
"@BeforeClass - oneTimeSetUp");
27 System.out.println(
"@AfterClass - oneTimeTearDown");
33 System.out.println(
"@Before - setUp");
39 System.out.println(
"@After - tearDown");
49 System.out.println(
"@Test - JNICall-Respnse1KMIP");
53 P6KMIPServerLib sl =
new P6KMIPServerLib();
56 sl.initializeLibrary(P6KMIPServerLib.FLAGS_NONE);
59 sl.startResponseMessage(2, KMIPConstants.FORMAT_TTLV, 4);
61 byte[] batchId1 = { 0x01, 0x02, 0x03, 0x04 };
62 CreateResponse cr1 =
new CreateResponse(batchId1, KMIPConstants.OBJECT_SYMMETRICKEY,
"1111-2222-3333-4444-5555", null, null);
65 Attribute state =
new Attribute( KMIPConstants.ATTRIB_STATE, 0, KMIPConstants.STATE_PREACTIVE );
66 Attribute[] attributes =
new Attribute[1];
67 attributes[0] = state;
69 byte[] batchId2 = { 0x11, 0x22, 0x33 };
70 CreateResponse cr2 =
new CreateResponse(batchId2, KMIPConstants.OBJECT_SECRETDATA,
"AB11-2222-33ef-4444-555", attributes, null);
73 byte[] responseBuffer = sl.endResponseMessage(0);
74 for(
int j=0; j < responseBuffer.length; j++ ) {
75 System.out.print(responseBuffer[j]);
77 System.out.println(
"\n" );
81 sl.startResponseMessage(2, KMIPConstants.FORMAT_MSGXML, 3);
86 byte[] responseBuffer2 = sl.endResponseMessage(0);
87 System.out.println(
new String(responseBuffer2));
88 System.out.println(
"\n");
92 sl.startResponseMessage(2, KMIPConstants.FORMAT_MSGXML, 2);
94 ErrorResponse rp =
new ErrorResponse(batchId2, KMIPConstants.OP_DECRYPT, KMIPConstants.RESULT_FAILED, KMIPConstants.REASON_OPREATION_NOTSUPPORTED,
"This is for client logging");
98 byte[] responseBuffer3 = sl.endResponseMessage(0);
99 System.out.println(
new String(responseBuffer3));
100 System.out.println(
"\n");
104 sl.startResponseMessage(1, KMIPConstants.FORMAT_MSGXML, 2);
106 ErrorResponse rp1 =
new ErrorResponse(null, KMIPConstants.OP_NONE, KMIPConstants.RESULT_FAILED, KMIPConstants.REASON_INVALID_MESSAGE,
"This is for client logging");
107 sl.addBatchItem(rp1);
109 byte[] errorResponse1 = sl.endResponseMessage(0);
110 System.out.println(
new String(errorResponse1));
111 System.out.println(
"\n");
115 sl.startResponseMessage(1, KMIPConstants.FORMAT_MSGXML, 2);
117 CreateResponse cr =
new CreateResponse(null, KMIPConstants.OBJECT_SYMMETRICKEY,
"1111-2222-3333-4444-5555", null, null);
120 byte[] responseBuffer4 = sl.endResponseMessage(0);
121 System.out.println(
new String(responseBuffer4));
122 System.out.println(
"\n");
126 sl.startResponseMessage(1, KMIPConstants.FORMAT_MSGXML, 4);
128 NameAttribute nameOne =
new NameAttribute(
new String(
"Name One"), KMIPConstants.NAME_TEXTSTR);
129 NameAttribute nameTwo =
new NameAttribute(
new String(
"Name Two"), KMIPConstants.NAME_TEXTSTR);
130 NameAttribute[] names =
new NameAttribute[2];
134 CreateResponse crfull =
new CreateResponse(null, KMIPConstants.OBJECT_SYMMETRICKEY,
"AAAA-BBBB-3333-4444-5555", attributes, names);
135 sl.addBatchItem(crfull);
137 byte[] responseBuffer5 = sl.endResponseMessage(0);
138 System.out.println(
new String(responseBuffer5));
139 System.out.println(
"\n");
143 sl.startResponseMessage(1, KMIPConstants.FORMAT_MSGXML, 2);
145 VersionResponse vr1 =
new VersionResponse(null, null);
146 sl.addBatchItem(vr1);
148 byte[] responseBuffer6 = sl.endResponseMessage(0);
149 System.out.println(
new String(responseBuffer6));
150 System.out.println(
"\n");
154 byte[] batchId11 = { 0x00, 0x00, 0x00, 0x00 };
155 byte[] batchId12 = { 0x00, 0x00, 0x00, 0x01 };
156 byte[] batchId13 = { 0x00, 0x00, 0x00, 0x02 };
157 byte[] batchId14 = { 0x00, 0x00, 0x00, 0x03 };
158 byte[] batchId15 = { 0x00, 0x00, 0x00, 0x04 };
159 byte[] batchId16 = { 0x00, 0x00, 0x00, 0x05 };
160 byte[] batchId17 = { 0x00, 0x00, 0x00, 0x06 };
161 byte[] plainText1 = { 0x02, (byte)0x87, (byte)0xab, (byte)0xcd, 0x45 };
162 byte[] cipherText1 = { 0x22, (byte)0x87, (byte)0xab, 0x00, (byte)0xcd, 0x45, 0x3B, 0x00, 0x4B, 0x5C };
163 byte[] cipherText2 = { 0x22, (byte)0x87, (byte)0xab, (byte)0xcd, 0x45, 0x3B, 0x4B, 0x5C };
164 byte[] IV = { 0x0A, 0x0A, 0x0A, 0x0A};
165 byte[] correlation = { 0x34, 0x35, 0x37, 0x35, 0x31, 0x35, 0x38, 0x36, 0x2D, 0x66, 0x33, 0x30, 0x63, 0x2D, 0x34, 0x61, 0x39, 0x33, 0x2D, 0x61, 0x34, 0x39, 0x66, 0x2D, 0x34, 0x62, 0x34, 0x37, 0x32, 0x66, 0x33, 0x66, 0x62, 0x61, 0x31, 0x32 };
166 byte[] tagData = { 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11 };
168 sl.startResponseMessage(7, KMIPConstants.FORMAT_MSGXML, 4);
171 DecryptResponse dr =
new DecryptResponse(batchId11,
"123-9393-333", plainText1);
173 SignResponse sr =
new SignResponse(batchId12,
"123-9393-333", cipherText2);
175 EncryptResponse er1 =
new EncryptResponse(batchId13,
"abcd-383837-3938eie", cipherText1, null);
177 EncryptResponse er2 =
new EncryptResponse(batchId14,
"abcd-383837-3938eie", cipherText1, IV);
178 er2.setAuthenticatedEncryptionTag(tagData);
180 EncryptResponse er3 =
new EncryptResponse(batchId15,
"abcd-383837-3938eie", cipherText1, null, correlation);
182 EncryptResponse er4 =
new EncryptResponse(batchId16,
"abcd-383837-3938eie", null, null, correlation);
184 SignatureVerifyResponse sv =
new SignatureVerifyResponse(batchId17,
"abcd-383837-3938eie", null, KMIPConstants.VALIDITY_INVALID);
188 sl.addBatchItem(er1);
189 sl.addBatchItem(er2);
190 sl.addBatchItem(er3);
191 sl.addBatchItem(er4);
194 byte[] responseBuffer7 = sl.endResponseMessage(0);
195 System.out.println(
new String(responseBuffer7));
196 System.out.println(
"\n");
200 sl.startResponseMessage(2, KMIPConstants.FORMAT_MSGXML, 2);
201 MACResponse macResponse =
new MACResponse(null,
"abcd-383837-3938eie", cipherText1 );
202 MACVerifyResponse verifyResponse =
new MACVerifyResponse(null,
"abcd-383837-3938eie", KMIPConstants.VALIDITY_VALID);
203 sl.addBatchItem(macResponse);
204 sl.addBatchItem(verifyResponse);
206 byte[] responseBuffer8 = sl.endResponseMessage(0);
207 System.out.println(
new String(responseBuffer8));
208 System.out.println(
"\n");
212 }
catch (Exception e) {
214 System.out.println(e.toString());
static void oneTimeTearDown()
static void oneTimeSetUp()
void JNICall_Response1KMIP()
Test: Generate a message with multiple batch items.
A JUNIT test demonstrating how to parse an incoming KMIP request from a client.