0
J'essaie de créer un JWT à partir d'une clé privée dans Java. La clé privée est dans un fichier.Poynt Création d'un JWT à partir d'une clé privée dans JAVA
Voici ma méthode.
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);
...
}
je reçois une exception à keyFactory.generatePrivate(keySpec);
avec le message:
java.security.InvalidKeyException: format de clé invalide
et voici 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;
}
Merci .. J'ai converti la clé manuellement en utilisant 'openssl'. –