Преобразовать строку RSA Pem Key String в der byte[]

Я пытаюсь преобразовать ключ pem RSA (содержащийся в String) в byte[], как этот метод делает, когда получает файл.pem FileInputStream:

http://jets3t.s3.amazonaws.com/api/org/jets3t/service/security/EncryptionUtil.html

Я пробовал это:

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());

Я ожидаю, что результат будет эквивалентен тому, что будет возвращено org.jets3t.service.security.EncryptionUtil.convertRsaPemToDer() но он не работает при создании потокового URL CloudFront.

Есть идеи, что я делаю не так?

1 ответ

Решение

Просто заверните строку в ByteArrayInputStream и вы можете использовать метод, который вы связали:

InputStream pemStream = new ByteArrayInputStream(pemKey.getBytes());
byte[] derKey = EncryptionUtil.convertRsaPemToDer(pemStream);
Другие вопросы по тегам