Parser une clé rsa

talbsbast Messages postés 53 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

j'ai créer une bi-clé RSA avec JAVA :
et je recupére ma clé privée sous forme d'un tableau de bytes:


import java.security.KeyPair;
import java.security.KeyPairGenerator;
public class Main {

public static void main(String[] args) throws GeneralSecurityException {
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(2048);
KeyPair RSAKey = keyPairGenerator.generateKeyPair();

byte[] rsaKey = ((RSAPrivateKey) kPair.getPrivate()).getEncoded();
// Comment recupérer n, e, d, p, q ???
return;
}
}



dans ce tableau on retrouve les valeurs de ma clé :
modulus n
prime 1 p
prime 2 q
public Exponenent e
private exponent d
...

Ma question est comment récupérer ces valeurs ?
Merci beaucoup pour votre aide.

Configuration: Windows / Chrome 85.0.4183.121
A voir également:

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

Tu peux faire comme ceci :
// import sun.security.rsa.RSAPrivateCrtKeyImpl;
RSAPrivateCrtKeyImpl privateKey = (RSAPrivateCrtKeyImpl) RSAKey.getPrivate();

System.out.println("n=" + privateKey.getModulus());
System.out.println("p=" + privateKey.getPrimeP());
System.out.println("q=" + privateKey.getPrimeQ());
System.out.println("d=" + privateKey.getPrivateExponent());
System.out.println("e=" + privateKey.getPublicExponent());
1
talbsbast Messages postés 53 Date d'inscription   Statut Membre Dernière intervention   1
 
Merci pour votre réponse,
savez vous comment importer sun.security.rsa.RSAPrivateCrtKeyImpl ? mon java ne recnnait pas !
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020 > talbsbast Messages postés 53 Date d'inscription   Statut Membre Dernière intervention  
 
En effet, dans les dernières versions cela ne fonctionne plus (le module java.base n'exporte pas ce package)

Donc plutôt qu'utiliser la classe directement, on peut passer par son interface :
// import java.security.interfaces.RSAPrivateCrtKey;
RSAPrivateCrtKey privateKey = (RSAPrivateCrtKey) RSAKey.getPrivate();
0