1 package com.p6r.kmipserverlib;
5 import java.nio.charset.Charset;
7 import static org.junit.Assert.assertEquals;
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-RegisterSplitKeyKMIP");
53 byte[] expectedSplit = { 0x66, (byte)0xC4, 0x6A, 0x77, 0x54, (byte)0xF9, 0x4D, (byte)0xE4, 0x20, (byte)0xC7, (byte)0xB1, (byte)0xA7, (byte)0xFF, (byte)0xF5, (byte)0xEC, 0x56 };
57 P6KMIPServerLib sl =
new P6KMIPServerLib();
60 String testMessage =
"<RequestMessage><RequestHeader><ProtocolVersion><ProtocolVersionMajor type=\"Integer\" value=\"1\"/><ProtocolVersionMinor type=\"Integer\" value=\"4\"/></ProtocolVersion><BatchCount type=\"Integer\" value=\"1\"/></RequestHeader><BatchItem><Operation type=\"Enumeration\" value=\"Register\"/><RequestPayload><ObjectType type=\"Enumeration\" value=\"SplitKey\"/><TemplateAttribute><Attribute><AttributeName type=\"TextString\" value=\"x-ID\"/><AttributeValue type=\"TextString\" value=\"TC-SJ-3-14-split1\"/></Attribute></TemplateAttribute><SplitKey><SplitKeyParts type=\"Integer\" value=\"4\"/><KeyPartIdentifier type=\"Integer\" value=\"1\"/><SplitKeyThreshold type=\"Integer\" value=\"2\"/><SplitKeyMethod type=\"Enumeration\" value=\"PolynomialSharingGF2_8\"/><KeyBlock><KeyFormatType type=\"Enumeration\" value=\"Raw\"/><KeyValue><KeyMaterial type=\"ByteString\" value=\"66C46A7754F94DE420C7B1A7FFF5EC56\"/></KeyValue></KeyBlock></SplitKey></RequestPayload></BatchItem></RequestMessage>";
63 sl.initializeLibrary(P6KMIPServerLib.FLAGS_NONE);
65 String libVersion = sl.getLibraryVersion();
66 System.out.println(libVersion);
70 sl.setMessageBuffer(testMessage.getBytes(Charset.forName(
"UTF-8")), KMIPConstants.FORMAT_MSGXML);
73 RequestHeader rh = sl.getRequestHeader();
74 assertEquals(
"1.4", rh.getProtocolVersion());
77 for (
int i = 0; i < rh.getBatchCount(); i++) {
79 BatchItem bi = sl.getBatchItem(i + 1);
80 if (bi instanceof RegisterSplitKeyBatchItem) {
81 RegisterSplitKeyBatchItem ck = (RegisterSplitKeyBatchItem) bi;
84 byte[] batchId = ck.getUniqueBatchId();
85 assertEquals(null, batchId);
87 int totalParts = ck.getTotalParts();
88 assertEquals(4, totalParts);
90 int partNumber = ck.getPartNumber();
91 assertEquals(1, partNumber);
93 int threshold = ck.getThreshold();
94 assertEquals(2, threshold);
96 int method = ck.getMethod();
97 assertEquals(KMIPConstants.SPLITKEY_GF2_8, method);
99 MessageExtension me = ck.getExtension();
100 assertEquals(null, me);
102 byte[] keyPart = ck.getKeyPart();
103 assertEquals(16, keyPart.length);
104 for(
int j=0; j < 16; j++ ) {
105 assertEquals(expectedSplit[j], keyPart[j]);
108 String[] attributes = ck.getTemplateAttributes();
109 assertEquals(1, attributes.length);
110 assertEquals(
"x-ID: TC-SJ-3-14-split1", attributes[0]);
115 }
catch (Exception e) {
117 System.out.println(e.toString());
void JNICall_RegisterSplitKeyKMIP()
Test: Verify parser can handle an XML formated Register Split Key operation.
static void oneTimeSetUp()
A JUNIT test demonstrating how to parse an incoming KMIP request from a client.
static void oneTimeTearDown()