Bonjour tout le monde,

J'ai un petit soucis de chiffrement RSA.

Je me fabrique une clé RSA à partir de données récupérée d'un autre soft qui a généré ses clés grâce au m et e :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
BigInteger m = new BigInteger(parts[0]);
BigInteger e = new BigInteger(parts[1]);
RSAPublicKeySpec keySpec = new RSAPublicKeySpec(m, e);
KeyFactory fact = KeyFactory.getInstance("RSA");
PublicKey pubKey = fact.generatePublic(keySpec);
J'essaie ensuite de chiffre des données grâce au code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
public byte[] encrypt(byte[] input, PublicKey pubKey) {
		try {
			Cipher cipher = Cipher.getInstance("RSA");
			cipher.init(Cipher.ENCRYPT_MODE, pubKey);
			return cipher.doFinal(newInput);
		} 
		catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}
Mais sur la ligne doFinal, j'obtiens toujours une exception :
ArrayIndexOutOfBoundsException: too much data for RSA. block.

Une idée d'où cela peut provenir ?

Merci d'avance pour votre aide !!!