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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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-----
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.
But see the method summary, as shown in the attachment。
Thank you. I've tried it successfully
try this:
try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
outputStream.write(BEGIN_CERTIFICATE.getBytes());
outputStream.write(certData);
outputStream.write(END_CERTIFICATE.getBytes());
return outputStream.toByteArray();
}