1 package com.p6r.kmipserverlib;
5 import java.nio.charset.Charset;
6 import static org.junit.Assert.assertEquals;
22 System.out.println(
"@BeforeClass - oneTimeSetUp");
28 System.out.println(
"@AfterClass - oneTimeTearDown");
34 System.out.println(
"@Before - setUp");
40 System.out.println(
"@After - tearDown");
50 System.out.println(
"@Test - JNICall-RNGKMIP");
52 byte[] expectedData = { 0x33, 0x3C, 0x06, 0x58, 0x77, 0x06, 0x22, 0x50, (byte)0x99, (byte)0xA6, 0x74, 0x38, (byte)0xF2, 0x63, (byte)0xF8, (byte)0xF9, 0x32, (byte)0xF6, 0x4B, (byte)0x86, 0x0C, 0x3A, 0x7D, (byte)0xBB, 0x21, (byte)0xBC, 0x2B, (byte)0xD5, 0x66, (byte)0x85, (byte)0xD8, (byte)0xBC };
56 P6KMIPServerLib sl =
new P6KMIPServerLib();
59 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\":\"RNGRetrieve\"}, {\"tag\":\"RequestPayload\", \"value\":[{\"tag\":\"DataLength\", \"type\":\"Integer\", \"value\":32}]}]}]}";
61 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\":\"RNGSeed\"}, {\"tag\":\"RequestPayload\", \"value\":[{\"tag\":\"Data\", \"type\":\"ByteString\", \"value\":\"333C06587706225099A67438F263F8F932F64B860C3A7DBB21BC2BD56685D8BC\"}]}]}]}";
64 sl.initializeLibrary(P6KMIPServerLib.FLAGS_NONE);
66 String libVersion = sl.getLibraryVersion();
67 System.out.println(libVersion);
72 sl.setMessageBuffer(testMessage1.getBytes(Charset.forName(
"UTF-8")), KMIPConstants.FORMAT_MSGJSON);
74 RequestHeader rh = sl.getRequestHeader();
75 assertEquals(
"1.3", rh.getProtocolVersion());
78 for (
int i = 0; i < rh.getBatchCount(); i++) {
80 BatchItem bi = sl.getBatchItem(i + 1);
81 if (bi instanceof RNGRetrieveBatchItem) {
82 RNGRetrieveBatchItem ck = (RNGRetrieveBatchItem) bi;
84 int length = ck.getDataLength();
85 assertEquals(32, length);
90 sl.setMessageBuffer(testMessage2.getBytes(Charset.forName(
"UTF-8")), KMIPConstants.FORMAT_MSGJSON);
92 rh = sl.getRequestHeader();
93 assertEquals(
"1.3", rh.getProtocolVersion());
96 for (
int i = 0; i < rh.getBatchCount(); i++) {
98 BatchItem bi = sl.getBatchItem(i + 1);
99 if (bi instanceof RNGSeedBatchItem) {
100 RNGSeedBatchItem ck = (RNGSeedBatchItem) bi;
102 byte[] dataToSeed = ck.getData();
103 assertEquals(32, dataToSeed.length);
104 for(
int j=0; j < dataToSeed.length; j++) {
105 assertEquals( expectedData[j], dataToSeed[j]);
111 }
catch (Exception e) {
113 System.out.println(e.toString());
void JNICall_RNGKMIP()
Test: Verify parser can handle an JSON formated Sign operation.
static void oneTimeTearDown()
static void oneTimeSetUp()
A JUNIT test demonstrating how to parse an incoming KMIP request from a client.