Bonjour,

Dans le cadre d'échanges des fichiers avec un serveur, nous chiffrons et déchiffrons des fichiers avec AES, et nous chiffrons la clé symétrique crée avec une clé RSA

à l'aller , le chiffrage et déchiffrage se fait correctement.
cad que le serveur distant (php), récupère des fichiers chiffrés en AES + une clé symétrique chiffrée en RSA
à partir de là, il décode la clé et peut décoder les fichiers.

dans la phase retour, la clé RSA générée et envoyée en BASE64, est bien déchiffrée et l'on constate qu'elle est identique. On tente de déchiffrer les fichier avec le résultat, mais j'ai l'erreur suivante

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
javax.crypto.BadPaddingException: pad block corrupted
	at org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher$BufferedGenericBlockCipher.doFinal(Unknown Source)
	at org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher.engineDoFinal(Unknown Source)
	at javax.crypto.Cipher.doFinal(Cipher.java:1970)
	at com.cwfse.cryptage.CipherEncryptor.crypt(CipherEncryptor.java:63)
	at com.cwfse.cryptage.SymetricEncryptor.decryptFile(SymetricEncryptor.java:608)
	at com.cwfse.main.Cmain$12.handleEvent(Cmain.java:566)
	at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
	at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
	at com.cwfse.main.Cmain.main(Cmain.java:671)
on s'est pourtant assuré de la correspondance des IvParameterSpec, ainsi que de l’algorithme utilisé ( "AES/CBC/PKCS5Padding") de la lib bouncyCastle

je pense que mon problème vient de la génération de ma clé, mais j'ai pas d'idée pourquoi celle ci est mauvaise.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
EncryptionUtil test = new EncryptionUtil();
String clesyme =test.decrypt(toto, titi);	//resultat décryptage RSA
 
System.out.println(clesyme); 
byte[] decodedKey = Base64.decodeBase64(clesyme);
 SecretKey originalKey = new SecretKeySpec(decodedKey, 0, decodedKey.length, "AES");
y' a t il quelque chose que j'ai mal, fait, mal compris

merci d'avance pour toute aide apportée