Bonjour,

Je tente de faire le cryptage d'un buffer d'octets.
L'init est la suivante:
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
19
 
static byte[] TrippleDESKey =
    {
        (byte) 0x38, (byte) 0x12, (byte) 0xA4, (byte) 0x19,
        (byte) 0xC6, (byte) 0x3B, (byte) 0xE7, (byte) 0x71,
        (byte) 0x00, (byte) 0x12, (byte) 0x00, (byte) 0x19,
        (byte) 0x80, (byte) 0x3B, (byte) 0xE7, (byte) 0x71,
        (byte) 0x01, (byte) 0x12, (byte) 0x01, (byte) 0x01,
        (byte) 0x01, (byte) 0x03, (byte) 0xE7, (byte) 0x71  };
 
DESKey deskey = (DESKey) KeyBuilder.buildKey(KeyBuilder.TYPE_DES, KeyBuilder.LENGTH_DES3_3KEY, false);
 
Cipher cipherCBC = Cipher.getInstance(Cipher.ALG_DES_CBC_NOPAD, false);
 
byte[] initialVector = new byte[]
        {
            0,1,2,3,
            4,5,6,7
        };
Si je fais:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
        deskey.setKey(TrippleDESKey, (short)0);
        cipherCBC.init(deskey, Cipher.MODE_ENCRYPT,initialVector,(short)0,(short)8);
 
try
{
        cipherCBC.doFinal(
                    buffer,
                    (short) dataOffset,
                    (byte)(incomingLength),
                    bufferRam,
                    (short)0);
}
Cela passe bien quand la longueur totale est de 120octects.
Par contre, si je passe à 128octets, j'ai un ArrayIndexOutOfBoundsException.

Sachant que le buffer de sortie fait 1024octets. Y a t il une limitation dans la spec qui interdit d'utiliser des buffer de 128octets ou plus?

Et aussi, y a t il un manière qui permet de crypter un buffer de 128octets?

Merci de vos réponse