Преобразовать строку 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);