in src/main/java/com/aws/sap/sample/lambda/sap/oauth/S3KeyStoreHandler.java [55:84]
private static PrivateKey getPrivateKey(String bucket, String fileName) throws NoSuchAlgorithmException, InvalidKeySpecException {
final AmazonS3 s3 = AmazonS3ClientBuilder.defaultClient();
PrivateKey privateKey = null;
try {
S3Object o = s3.getObject(bucket,fileName);
S3ObjectInputStream s3is = o.getObjectContent();
StringWriter writer = new StringWriter();
IOUtils.copy(s3is, writer, "UTF-8");
String privKeyPEM = writer.toString();
s3is.close();
privKeyPEM = privKeyPEM.replace("-----BEGIN PRIVATE KEY-----\n", "");
privKeyPEM = privKeyPEM.replace("-----END PRIVATE KEY-----", "");
Base64 b64 = new Base64();
byte [] decoded = b64.decode(privKeyPEM);
PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(decoded);
//X509EncodedKeySpec spec = new X509EncodedKeySpec(decoded);
KeyFactory kf = KeyFactory.getInstance("RSA");
privateKey = kf.generatePrivate(spec);
//System.out.println("File content is " + theString);
} catch (AmazonServiceException e) {
System.out.println(e.getErrorMessage());
} catch (IOException e) {
System.out.println(e.getMessage());
} catch (InvalidKeySpecException e) {
System.out.println(e.getMessage());
}
return privateKey;
}