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-RekeyKeyPairKMIP");
54 P6KMIPServerLib sl =
new P6KMIPServerLib();
58 "<RequestMessage><RequestHeader>" +
59 "<ProtocolVersion> " +
60 "<ProtocolVersionMajor type=\"Integer\" value=\"1\"/> " +
61 "<ProtocolVersionMinor type=\"Integer\" value=\"3\"/> " +
62 "</ProtocolVersion> " +
63 "<BatchCount type=\"Integer\" value=\"1\"/> " +
66 "<Operation type=\"Enumeration\" value=\"ReKeyKeyPair\"/> " +
68 "<PrivateKeyUniqueIdentifier type=\"TextString\" value=\"AAaed7e7-2972-4fc8-9073-26a5e8f88b9e\"/> " +
69 "<PrivateKeyTemplateAttribute> " +
71 "<AttributeName type=\"TextString\" value=\"Name\"/> " +
73 "<NameValue type=\"TextString\" value=\"TC-81-13-privatekey1\"/> " +
74 "<NameType type=\"Enumeration\" value=\"UninterpretedTextString\"/> " +
75 "</AttributeValue> " +
78 "<AttributeName type=\"TextString\" value=\"Cryptographic Usage Mask\"/> " +
79 "<AttributeValue type=\"Integer\" value=\"0x00000001\"/> " +
81 "</PrivateKeyTemplateAttribute> " +
82 "<PublicKeyTemplateAttribute> " +
84 "<AttributeName type=\"TextString\" value=\"Name\"/> " +
86 "<NameValue type=\"TextString\" value=\"TC-81-13-publickey1\"/> " +
87 "<NameType type=\"Enumeration\" value=\"UninterpretedTextString\"/> " +
88 "</AttributeValue> " +
91 "<AttributeName type=\"TextString\" value=\"Cryptographic Usage Mask\"/> " +
92 "<AttributeValue type=\"Integer\" value=\"0x00000002\"/> " +
94 "</PublicKeyTemplateAttribute> " +
95 "</RequestPayload> " +
96 "</BatchItem></RequestMessage>";
99 "<RequestMessage><RequestHeader>" +
100 "<ProtocolVersion> " +
101 "<ProtocolVersionMajor type=\"Integer\" value=\"1\"/> " +
102 "<ProtocolVersionMinor type=\"Integer\" value=\"3\"/> " +
103 "</ProtocolVersion> " +
104 "<BatchCount type=\"Integer\" value=\"1\"/> " +
105 "</RequestHeader> " +
107 "<Operation type=\"Enumeration\" value=\"ReKey\"/> " +
108 "<RequestPayload> " +
109 "<UniqueIdentifier type=\"TextString\" value=\"AAaed7e7-2972-4fc8-9073-26a5e8f88b9e\"/> " +
110 "<Offset type=\"Interval\" value=\"55\" />" +
111 "<TemplateAttribute> " +
113 "<AttributeName type=\"TextString\" value=\"Name\"/> " +
114 "<AttributeValue> " +
115 "<NameValue type=\"TextString\" value=\"TC-81-13-privatekey1\"/> " +
116 "<NameType type=\"Enumeration\" value=\"UninterpretedTextString\"/> " +
117 "</AttributeValue> " +
120 "<AttributeName type=\"TextString\" value=\"Cryptographic Usage Mask\"/> " +
121 "<AttributeValue type=\"Integer\" value=\"0x00000001\"/> " +
123 "</TemplateAttribute> " +
124 "</RequestPayload> " +
125 "</BatchItem></RequestMessage>";
128 sl.initializeLibrary(P6KMIPServerLib.FLAGS_NONE);
130 String libVersion = sl.getLibraryVersion();
131 System.out.println(libVersion);
135 sl.setMessageBuffer(testMessage1.getBytes(Charset.forName(
"UTF-8")), KMIPConstants.FORMAT_MSGXML);
138 RequestHeader rh = sl.getRequestHeader();
139 assertEquals(
"1.3", rh.getProtocolVersion());
142 for (
int i = 0; i < rh.getBatchCount(); i++) {
144 BatchItem bi = sl.getBatchItem(i + 1);
145 if (bi instanceof RekeyKeyPairBatchItem) {
146 RekeyKeyPairBatchItem ck = (RekeyKeyPairBatchItem) bi;
149 byte[] batchId = ck.getUniqueBatchId();
150 assertEquals(null, batchId);
152 String uniqueIdentifier = ck.getUniqueId();
153 assertEquals(
"AAaed7e7-2972-4fc8-9073-26a5e8f88b9e", uniqueIdentifier);
156 int intervalOffset = ck.getOffset();
157 assertEquals(-1, intervalOffset);
160 String[] commonAttribs = ck.getCommonAttributes();
161 assertEquals(null, commonAttribs);
163 String[] commonNames = ck.getCommonNames();
164 assertEquals(null, commonNames);
166 String[] privateAttribs = ck.getPrivateAttributes();
167 assertEquals(2, privateAttribs.length);
168 assertEquals(
"Name: TC-81-13-privatekey1 - text_string", privateAttribs[0]);
169 assertEquals(
"Cryptographic Usage Mask: 1", privateAttribs[1]);
171 String[] publicAttribs = ck.getPublicAttributes();
172 assertEquals(2, publicAttribs.length);
173 assertEquals(
"Name: TC-81-13-publickey1 - text_string", publicAttribs[0]);
174 assertEquals(
"Cryptographic Usage Mask: 2", publicAttribs[1]);
180 sl.setMessageBuffer(testMessage2.getBytes(Charset.forName(
"UTF-8")), KMIPConstants.FORMAT_MSGXML);
183 rh = sl.getRequestHeader();
184 assertEquals(
"1.3", rh.getProtocolVersion());
187 for (
int i = 0; i < rh.getBatchCount(); i++) {
189 BatchItem bi = sl.getBatchItem(i + 1);
190 if (bi instanceof RekeyBatchItem) {
191 RekeyBatchItem ck = (RekeyBatchItem) bi;
194 byte[] batchId = ck.getUniqueBatchId();
195 assertEquals(null, batchId);
197 String uniqueIdentifier = ck.getUniqueId();
198 assertEquals(
"AAaed7e7-2972-4fc8-9073-26a5e8f88b9e", uniqueIdentifier);
201 int intervalOffset = ck.getOffset();
202 assertEquals(55, intervalOffset);
204 String[] privateAttribs = ck.getAttributes();
205 assertEquals(2, privateAttribs.length);
206 assertEquals(
"Name: TC-81-13-privatekey1 - text_string", privateAttribs[0]);
207 assertEquals(
"Cryptographic Usage Mask: 1", privateAttribs[1]);
213 }
catch (Exception e) {
215 System.out.println(e.toString());
A JUNIT test demonstrating how to parse an incoming KMIP request from a client.
static void oneTimeTearDown()
static void oneTimeSetUp()
void JNICall_RekeyKeyPairKMIP()
Test: Verify parser can handle an XML formated Create Key Pair operation.