1

I am implementing a sample code to generate CSR and sign it with a certificate. I have a requirement to add validity period as a attribute on generating the CSR and read this in the signing part to sign according to this.how can I add this attribute to CSR and retrieve back?

Current code I use to generate CSR:

 public static PKCS10CertificationRequest generateCSR(KeyPair keyPair, String o, String cn) throws IOException,
            OperatorCreationException {
        X500Name principal = new X500NameBuilder()
                .addRDN(BCStyle.O, o)
                .addRDN(BCStyle.CN, cn)
                .build();

        ContentSigner signer = new JCESigner (keyPair.getPrivate(),DEFAULT_SIGNATURE_ALGORITHM);

        PKCS10CertificationRequestBuilder csrBuilder = new JcaPKCS10CertificationRequestBuilder(principal, keyPair.getPublic());
        ExtensionsGenerator extensionsGenerator = new ExtensionsGenerator();
        extensionsGenerator.addExtension(Extension.basicConstraints, true,
                new BasicConstraints(true));

        csrBuilder.addAttribute(PKCSObjectIdentifiers.pkcs_9_at_extensionRequest,
                extensionsGenerator.generate());

        PKCS10CertificationRequest csr = csrBuilder.build(signer);

        return csr;
    }

}

0 Answers0