Joel tu as vu juste.
En fait je lui passais juste une clé au lieu d'utiliser RSAKeyPairGenerator pour genérer une clé privée et une clé publique.
Il est vrai que pour l'encodage on n'a pas besoin de clé, mais pour stocker le message, l'espace est générer par la clé.
Je me suis rendue compte qu'en utilisant comme block asymétrique le RSABlindedEngine, il encryptait directement le message, alors que je voulais juste récupérer son encode. J'ai résolu le problème en créant une classe qui implémente l'interface AsymmetricBlockCipher.
Néanmoins un problème subsiste encore, celui du 0 de devant.
Je dois chercher comment faire ca avant de commencer mes tests.
Voici mon code au cas pour que ca puisse aider d'autres personnes.
Dès que je trouve ce zéro je marquerai le sujet comme résolu.
Et voici ce que ca donne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 // générer les clés RSA RSAKeyPairGenerator gen = new RSAKeyPairGenerator(); gen.init(new RSAKeyGenerationParameters(new BigInteger("7", 16), new SecureRandom(), 128,0)); AsymmetricCipherKeyPair keyPair = gen.generateKeyPair(); // le message byte[] message = createMessage(5); // encoder le message en utilisant une classe qui implemente l' interface AsymmetricblockCipher // pour encrypter juste utiliser RSABlindedEngine à la place AsymmetricBlockCipher cipher = new MyAsymBlockCypher(); cipher = new PKCS1Encoding(cipher); cipher.init(true, keyPair.getPrivate()); byte[] rsaEncodedData = cipher.processBlock(message, 0, message.length); System.out.println("espace généré en fonction de la clé: " + rsaEncodedData.length); // printByteArray est une fonction qui imprime juste un tableau de byte printByteArray(rsaEncodedData); printByteArray(message);
je dois en principe avoir ceci: EM = 0x00 || 0x01 || PS || 0x00 || T.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 :BouncyCastleTests:test Long: 15 Here your Byte-array: 01 FF FF FF FF FF FF FF FF 00 42 42 42 42 42 Here your Byte-array: 42 42 42 42 42 BUILD SUCCESSFUL
Partager