Menu

get PKCS #7 certificate chain

Jimmy wang
2022-04-18
2022-04-27
  • Jimmy wang

    Jimmy wang - 2022-04-18

    How to get the PKCS #7 certificate chain? Is the following code correct?

    CertificateResponse certenv = ejbcaws.certificateRequest (user,
    pkcs10_request_in_base64,
    CertificateHelper.CERT_REQ_TYPE_PKCS10,
    null,
    CertificateHelper.RESPONSETYPE_PKCS7WITHCHAIN);
    if(certenv.getResponseType().equals("PKCS7WITHCHAIN")) {
    System.out.println("Pkcs7CertChain="+Base64.encode(certenv.getRawData()));
    }

    Want to get the following form of data:
    -----BEGIN PKCS7-----
    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
    -----END PKCS7-----

     
  • Tomas Gustavsson

    That looks about right. It may be that the returned data is already Base64 encoded though, so base64 encoding it again is probably not the right thing to do.

     
  • Jimmy wang

    Jimmy wang - 2022-04-20

    But see the method summary, as shown in the attachment。

     
  • Jimmy wang

    Jimmy wang - 2022-04-20

    Thank you. I've tried it successfully

     
  • SMVN

    SMVN - 2022-04-27

    try this:
    try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
    outputStream.write(BEGIN_CERTIFICATE.getBytes());
    outputStream.write(certData);
    outputStream.write(END_CERTIFICATE.getBytes());
    return outputStream.toByteArray();
    }

        Replacing BEGIN_CERTIFICATE by BEGIN PKCS7 instead
    
     

Log in to post a comment.