private static PrivateKey getPrivateKey()

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;

	}