1 package com.p6r.kmipserverlib;
5 import java.math.BigInteger;
6 import java.nio.charset.Charset;
7 import java.text.DateFormat;
8 import java.text.SimpleDateFormat;
11 import static org.junit.Assert.assertEquals;
12 import static org.junit.Assert.assertNotEquals;
28 System.out.println(
"@BeforeClass - oneTimeSetUp");
34 System.out.println(
"@AfterClass - oneTimeTearDown");
40 System.out.println(
"@Before - setUp");
46 System.out.println(
"@After - tearDown");
56 System.out.println(
"@Test - JNICall-RegisterCertRequestKMIP");
58 byte[] expectedBytes = { 0x30, (byte)0x82, 0x02, 0x29, 0x30, (byte)0x82, 0x01, (byte)0x92, (byte)0xA0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x08, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x30 };
62 P6KMIPServerLib sl =
new P6KMIPServerLib();
66 "<RequestMessage>\n" +
67 " <RequestHeader>\n" +
68 " <ProtocolVersion>\n" +
69 " <ProtocolVersionMajor type=\"Integer\" value=\"2\"/>\n" +
70 " <ProtocolVersionMinor type=\"Integer\" value=\"0\"/>\n" +
71 " </ProtocolVersion>\n" +
72 " <BatchCount type=\"Integer\" value=\"1\"/>\n" +
73 " </RequestHeader>\n" +
75 " <Operation type=\"Enumeration\" value=\"Register\"/>\n" +
76 " <RequestPayload>\n" +
77 " <ObjectType type=\"Enumeration\" value=\"CertificateRequest\"/>\n" +
79 " <CryptographicUsageMask type=\"Integer\" value=\"0x00000400\"/>\n" +
81 " <CertificateRequest>\n" +
82 " <CertificateRequestType type=\"Enumeration\" value=\"PKCS_10\"/>\n" +
83 " <CertificateRequestValue type=\"ByteString\" value=\"3082022930820192A0030201020208313233343536373830\"/>\n" +
84 " </CertificateRequest>\n" +
85 " </RequestPayload>\n" +
90 sl.initializeLibrary(P6KMIPServerLib.FLAGS_NONE);
92 String libVersion = sl.getLibraryVersion();
93 System.out.println(libVersion);
97 sl.setMessageBuffer(testMessage.getBytes(Charset.forName(
"UTF-8")), KMIPConstants.FORMAT_MSGXML);
100 RequestHeader rh = sl.getRequestHeader();
101 assertEquals(
"2.0", rh.getProtocolVersion());
104 for (
int i = 0; i < rh.getBatchCount(); i++) {
106 BatchItem bi = sl.getBatchItem(i + 1);
107 if (bi instanceof RegisterCertificateRequestObjectBatchItem) {
108 RegisterCertificateRequestObjectBatchItem cr = (RegisterCertificateRequestObjectBatchItem) bi;
110 byte[] batchId = cr.getUniqueBatchId();
111 assertEquals(null, batchId);
113 int certRequestType = cr.getCcertificateRequestType();
114 assertEquals(KMIPConstants.CERTREQUEST_PKCS10, certRequestType);
116 byte[] certRequestValue = cr.getCertificateRequestValue();
117 assertEquals(24, certRequestValue.length);
118 for(
int j=0; j < certRequestValue.length; j++ ) {
119 assertEquals(expectedBytes[j], certRequestValue[j]);
122 String[] attributes = cr.getAttributes();
123 assertEquals(1, attributes.length);
124 assertEquals(
"Cryptographic Usage Mask: 400", attributes[0]);
129 }
catch (Exception e) {
131 System.out.println(e.toString());
void JNICall_RegisterCertRequestKMIP()
Test: Verify parser can handle a Register Certificate Request as added to KMIP 2.0.
static void oneTimeSetUp()
A JUNIT test demonstrating how to parse an incoming KMIP request from a client.
static void oneTimeTearDown()