Date notAfter = cal.getTime();
X500Name subject = issuer;
PublicKey publicKey = idPair.getPublic();
JcaX509v3CertificateBuilder certBuilder = new JcaX509v3CertificateBuilder(
issuer, serial, notBefore, notAfter, subject, publicKey);
X509CertificateHolder idHolder = certBuilder.build(signerBuilder
.build(idPair.getPrivate()));
// Convert Bouncy Castle representation of X509Certificate into
// something usable
X509Certificate id = (X509Certificate) CertificateFactory.getInstance(
"X509").generateCertificate(
new ByteArrayInputStream(idHolder.getEncoded()));
// The following variables are used to represent the entity being
// enrolled
X500Name entityName = new X500Name("CN=entity");
KeyPair entityPair = KeyPairGenerator.getInstance("RSA").genKeyPair();