1 package com.p6r.kmipserverlib;
5 import java.nio.charset.Charset;
6 import static org.junit.Assert.assertEquals;
7 import static org.junit.Assert.assertNotEquals;
23 System.out.println(
"@BeforeClass - oneTimeSetUp");
29 System.out.println(
"@AfterClass - oneTimeTearDown");
35 System.out.println(
"@Before - setUp");
41 System.out.println(
"@After - tearDown");
51 System.out.println(
"@Test - JNICall-MACKMIP");
53 byte[] expectedData = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16 };
55 byte[] MACExpected = { 0x19, 0x03, 0x61, 0x70, 0x3B, 0x02, (byte)0x88, (byte)0xCD, 0x3F, 0x14, (byte)0xD9, (byte)0x95, 0x57, 0x17, 0x48, (byte)0x80, (byte)0xA6, (byte)0x83, (byte)0xBD, (byte)0xC3, (byte)0x96, 0x28, (byte)0x9F, (byte)0x97, 0x76, 0x3D, 0x62, 0x4A, (byte)0xE6, (byte)0xFE, 0x45, 0x26 };
59 P6KMIPServerLib sl =
new P6KMIPServerLib();
62 String testMessage1 =
"{\"tag\":\"RequestMessage\", \"value\":[{\"tag\":\"RequestHeader\", \"value\":[{\"tag\":\"ProtocolVersion\", \"value\":[{\"tag\":\"ProtocolVersionMajor\", \"type\":\"Integer\", \"value\":1}, {\"tag\":\"ProtocolVersionMinor\", \"type\":\"Integer\", \"value\":3}]}, {\"tag\":\"BatchCount\", \"type\":\"Integer\", \"value\":1}]}, {\"tag\":\"BatchItem\", \"value\":[{\"tag\":\"Operation\", \"type\":\"Enumeration\", \"value\":\"MAC\"}, {\"tag\":\"RequestPayload\", \"value\":[{\"tag\":\"UniqueIdentifier\", \"type\":\"TextString\", \"value\":\"bccbcbf8-fc60-4f3d-9a92-dd8ad7e8a697\"}, {\"tag\":\"Data\", \"type\":\"ByteString\", \"value\":\"01020304050607080910111213141516\"}]}]}]}";
64 String testMessage2 =
"{\"tag\":\"RequestMessage\", \"value\":[{\"tag\":\"RequestHeader\", \"value\":[{\"tag\":\"ProtocolVersion\", \"value\":[{\"tag\":\"ProtocolVersionMajor\", \"type\":\"Integer\", \"value\":1}, {\"tag\":\"ProtocolVersionMinor\", \"type\":\"Integer\", \"value\":3}]}, {\"tag\":\"BatchCount\", \"type\":\"Integer\", \"value\":1}]}, {\"tag\":\"BatchItem\", \"value\":[{\"tag\":\"Operation\", \"type\":\"Enumeration\", \"value\":\"MACVerify\"}, {\"tag\":\"RequestPayload\", \"value\":[{\"tag\":\"UniqueIdentifier\", \"type\":\"TextString\", \"value\":\"bccbcbf8-fc60-4f3d-9a92-dd8ad7e8a697\"}, {\"tag\":\"Data\", \"type\":\"ByteString\", \"value\":\"01020304050607080910111213141516\"}, {\"tag\":\"MACData\", \"type\":\"ByteString\", \"value\":\"190361703B0288CD3F14D99557174880A683BDC396289F97763D624AE6FE4526\"}]}]}]}";
68 sl.initializeLibrary(P6KMIPServerLib.FLAGS_NONE);
70 String libVersion = sl.getLibraryVersion();
71 System.out.println(libVersion);
76 sl.setMessageBuffer(testMessage1.getBytes(Charset.forName(
"UTF-8")), KMIPConstants.FORMAT_MSGJSON);
78 RequestHeader rh = sl.getRequestHeader();
79 assertEquals(
"1.3", rh.getProtocolVersion());
82 for (
int i = 0; i < rh.getBatchCount(); i++) {
84 BatchItem bi = sl.getBatchItem(i + 1);
85 if (bi instanceof MACBatchItem) {
86 MACBatchItem ck = (MACBatchItem) bi;
88 String uniqueId = ck.getUniqueId();
89 assertEquals(
"bccbcbf8-fc60-4f3d-9a92-dd8ad7e8a697", uniqueId);
92 CryptograhicParameters params = ck.getParams();
93 assertEquals(null, params);
95 byte[] dataToMAC = ck.getData();
96 assertEquals(16, dataToMAC.length);
97 for(
int j=0; j < dataToMAC.length; j++) {
98 assertEquals( expectedData[j], dataToMAC[j]);
104 sl.setMessageBuffer(testMessage2.getBytes(Charset.forName(
"UTF-8")), KMIPConstants.FORMAT_MSGJSON);
106 rh = sl.getRequestHeader();
107 assertEquals(
"1.3", rh.getProtocolVersion());
110 for (
int i = 0; i < rh.getBatchCount(); i++) {
112 BatchItem bi = sl.getBatchItem(i + 1);
113 if (bi instanceof MACVerifyBatchItem) {
114 MACVerifyBatchItem ck = (MACVerifyBatchItem) bi;
116 String uniqueId = ck.getUniqueId();
117 assertEquals(
"bccbcbf8-fc60-4f3d-9a92-dd8ad7e8a697", uniqueId);
119 CryptograhicParameters params = ck.getParams();
120 assertEquals(null, params);
122 byte[] dataToMAC = ck.getData();
123 assertEquals(16, dataToMAC.length);
124 for(
int j=0; j < dataToMAC.length; j++) {
125 assertEquals( expectedData[j], dataToMAC[j]);
128 byte[] MAC = ck.getMACData();
129 assertEquals(32, MAC.length);
130 for(
int k=0; k < MAC.length; k++) {
131 assertEquals( MACExpected[k], MAC[k]);
137 }
catch (Exception e) {
139 System.out.println(e.toString());
static void oneTimeSetUp()
static void oneTimeTearDown()
A JUNIT test demonstrating how to parse an incoming KMIP request from a client.
void JNICall_MACKMIP()
Test: Verify parser can handle an JSON formated Sign operation.