Create x509 Certificate from String private key

Viewed 1088

I have private key in string format as below

MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAKPOLV6ZLKtPVkgu9sAaD7DiA7I+
V3nmABhVZtOLo/HyqC/Fi2JWQahFJiWVowwhNPZwEw8vUSmFbBN6EUNzElCO202F32qFIr/P2BVS
qZlp4zziCrZgHeB+ZXaRceb0FV5RNI03slaiAUYQTKjbUzegP5j4+6hnv9Hc+xze1vNNAgMBAAEC
gYBmV4C9I9JmzdDIlJ8R8rZu+yb4DD83J95TVbhC33H0znkKL9AgBmhLK7jjrpQKFg0zE161FAkP
eg7GNHPowlJkA5fswWY0UefJOcQytJIm6WFBl78pq5sMGT9fjTSbJur4JSlfvY0G3RpxNN+a9eAr
6zBXDXbP7ufoaU9bug80OQJBAO6wyggPmDnRRAZYt3jl4oSMRGFH5pKQl+diYi/sa3NMOlT+g0H9
6r5CnUoRo4MS9oAUebSi9W8j41Z9I8ZZfdcCQQCvrytXLhr+TcZz8mcpWU5pvxZ0+iv6ybGMhjT5
2PVvaqBqFtKVx5m0WGwiBPQUXudWIqFWcOYNh53XFWSvost7AkEAmd3fLtkWsVbEOi8gfs/6eKWP
QwK9kQei1KboUqpeDeI6zCWRaY4Mr/9zM5cxR8KGosQQPLC79Jw25b8fu7Je2wJARqAawj9MprLJ
ds8Z3auDNEuXUYtIptbyQ1WoclBfylyJBF0MZx4IklGBluN6472LLjtZtJBKS2Ibd92nzluZhQJB
AJoysIMfMWAUBji4D77n7yMdodq0L3j1b8zZdeFEu3d7/TK/h47b75F8mdr+C+7IN/9jrUbTBKNx
0cSFX0uOcao=

now i want to convert it into x509 certificate, i am using below code.

localByteArrayInputStream = new ByteArrayInputStream(
                paramString.getBytes());
        CertificateFactory localCertificateFactory = CertificateFactory
                .getInstance("X.509");
        X509Certificate localX509Certificate = (X509Certificate) localCertificateFactory
                .generateCertificate(localByteArrayInputStream);
        localByteArrayInputStream.close();
localByteArrayInputStream = new ByteArrayInputStream(
                paramString.getBytes());
        CertificateFactory localCertificateFactory = CertificateFactory
                .getInstance("X.509");
        X509Certificate localX509Certificate = (X509Certificate) localCertificateFactory
                .generateCertificate(localByteArrayInputStream);
        localByteArrayInputStream.close();

 (X509Certificate)localCertificateFactory.generateCertificate(localByteArrayInputStream);
      localByteArrayInputStream.close();

I have tried many ways but could not understand how to do it. in this scenario i am getting below error.

java.security.cert.CertificateException: Could not parse certificate: java.io.IOException: Empty input
    at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:104)
    at java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:339)
1 Answers

I got the same error. as per generateCertificate "In the case of a certificate factory for X.509 certificates, the certificate provided in inStream must be DER-encoded andmay be supplied in binary or printable (Base64) encoding. If thecertificate is provided in Base64 encoding, it must be bounded at the beginning by -----BEGIN CERTIFICATE-----, and must be bounded at the end by -----END CERTIFICATE-----."

I added -----BEGIN CERTIFICATE----- and -----END CERTIFICATE-----, then it fixed the exception

Related