Parser une clé rsa

Fermé
talbsbast Messages postés 54 Date d'inscription mardi 21 juin 2011 Statut Membre Dernière intervention 3 février 2023 - Modifié le 24 oct. 2020 à 14:07
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 24 oct. 2020 à 19:22
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 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
24 oct. 2020 à 14:44
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 54 Date d'inscription mardi 21 juin 2011 Statut Membre Dernière intervention 3 février 2023 1
24 oct. 2020 à 15:28
Merci pour votre réponse,
savez vous comment importer sun.security.rsa.RSAPrivateCrtKeyImpl ? mon java ne recnnait pas !
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015 > talbsbast Messages postés 54 Date d'inscription mardi 21 juin 2011 Statut Membre Dernière intervention 3 février 2023
24 oct. 2020 à 19:22
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