2

I'm trying to convert an RSA pem key (contained in a String) to a byte[], like this method does when given a .pem file FileInputStream:

http://jets3t.s3.amazonaws.com/api/org/jets3t/service/security/EncryptionUtil.html#convertRsaPemToDer(java.io.InputStream)

I've tried this:

String pemKey = "-----BEGIN RSA PRIVATE KEY-----\r\n"
         + "{base64 encoded key part omitted}\r\n"
         + "{base64 encoded key part omitted}\r\n"
         + "{base64 encoded key part omitted}\r\n"
         + "-----END RSA PRIVATE KEY-----";
String base64 = pemKey
        .replaceAll("\\s", "")
        .replace("-----BEGINRSAPRIVATEKEY-----", "")
        .replace("-----ENDRSAPRIVATEKEY-----", "");

return Base64.decode(base64.getBytes());

I expect the result to be equivalent to what would be returned by org.jets3t.service.security.EncryptionUtil.convertRsaPemToDer() but it does not seem to be working when generating a CloudFront streaming URL.

Any idea what I'm doing wrong?

1 Answer 1

3

Just wrap the string in a ByteArrayInputStream and you can use the method you linked:

InputStream pemStream = new ByteArrayInputStream(pemKey.getBytes());
byte[] derKey = EncryptionUtil.convertRsaPemToDer(pemStream);
Sign up to request clarification or add additional context in comments.

1 Comment

Thanks! My method was yielding the same result; it looks like the problem lies elsewhere...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.