0
Ich versuche, eine JWT aus dem privaten Schlüssel in Java zu erstellen. Der private Schlüssel befindet sich in einer Datei.Poynt Erstellen einer JWT aus dem privaten Schlüssel in JAVA
Hier ist meine Methode.
protected String prepareJWT() throws NoSuchAlgorithmException, InvalidKeySpecException, JOSEException {
String poyntPrivateKey = this.getPoyntPrivateKey();
byte[] privateBytes = poyntPrivateKey.getBytes();
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(privateBytes);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
PrivateKey privateKey = keyFactory.generatePrivate(keySpec);
JWSSigner signer = new RSASSASigner((RSAPrivateKey) privateKey);
...
}
Ich erhalte eine Ausnahme bei keyFactory.generatePrivate(keySpec);
mit Nachricht:
java.security.InvalidKeyException: ungültige Schlüsselformat
und hier ist getPoyntPrivateKey()
protected String getPoyntPrivateKey() {
File file = new File("resources/poynt_api_private_key.txt");
StringBuilder privateKeyBuilder = new StringBuilder();
String privateKey = privateKeyBuilder.toString();
try {
FileReader fr = new FileReader(file);
Scanner scanner = new Scanner(fr);
while(scanner.hasNextLine()) {
privateKeyBuilder.append(scanner.nextLine() + "\r");
}
scanner.close();
privateKey = privateKeyBuilder.toString();
} catch (Exception e) {
privateKey = "Error";
} finally {
}
return privateKey;
}
Danke .. Ich konvertierte den Schlüssel manuell mit 'openssl' .. –