byte[] first = XKMSUtil.getSecretKeyFromPassphrase("UsersRevokationCodeId1234", true, 20, XKMSUtil.KEY_REVOCATIONCODEIDENTIFIER_PASS1).getEncoded();
byte[] second = XKMSUtil.getSecretKeyFromPassphrase(new String(first, "ISO8859-1"), false, 20, XKMSUtil.KEY_REVOCATIONCODEIDENTIFIER_PASS2)
.getEncoded();
prototypeKeyBindingType.setRevocationCodeIdentifier(second);
RegisterResultType registerResultType = xKMSInvoker.register(registerRequestType, null, null, "foo123", null, prototypeKeyBindingType.getId());
assertTrue(registerResultType.getResultMajor().equals(XKMSConstants.RESULTMAJOR_SUCCESS));
assertTrue(registerResultType.getKeyBinding().size() == 1);
KeyBindingType keyBindingType = registerResultType.getKeyBinding().get(0);
assertTrue(keyBindingType.getStatus().getValidReason().size() == 4);
JAXBElement<X509DataType> jAXBX509Data = (JAXBElement<X509DataType>) keyBindingType.getKeyInfo().getContent().get(0);
assertTrue(jAXBX509Data.getValue().getX509IssuerSerialOrX509SKIOrX509SubjectName().size() == 1);
Iterator<Object> iter2 = jAXBX509Data.getValue().getX509IssuerSerialOrX509SKIOrX509SubjectName().iterator();
while (iter2.hasNext()) {
JAXBElement next = (JAXBElement) iter2.next();
assertTrue(next.getName().getLocalPart().equals("X509Certificate"));
byte[] encoded = (byte[]) next.getValue();
Certificate nextCert = CertTools.getCertfromByteArray(encoded);
assertTrue(CertTools.stringToBCDNString(CertTools.getSubjectDN(nextCert)).equals(CertTools.stringToBCDNString(dn2)));
if (CertTools.getSubjectDN(nextCert).equals(CertTools.stringToBCDNString(dn2))) {
cert2 = nextCert;
}
}
assertTrue(registerResultType.getPrivateKey() != null);
PrivateKey privateKey = XKMSUtil.getPrivateKeyFromEncryptedXML(registerResultType.getPrivateKey(), "foo123");
X509Certificate testCert = CertTools.genSelfCert("CN=sdf", 12, null, privateKey, cert2.getPublicKey(), "SHA1WithRSA", false);
testCert.verify(cert2.getPublicKey());
}