Les fonctions de chiffrement peuvent présenter des différences de fonctionnement en fonction de la plateforme d'exécution.
Plateforme Windows
Sur la plateforme Windows, il est possible d'indiquer l'algorithme au format OpenSSL (par exemple aes-256-cbc).
S'il est indiqué au format Java, l'algorithme est déduit de l'algorithme Java et de la longueur de la clé indiquée (par exemple AES/CBC/PKCS5Padding avec une clé de 128 bits devient aes-128-cbc, et le padding est activé).
D'autre part, OpenSSL supportant uniquement l'algorithme PKCS#5 pour le padding, l'algorithme de padding n'est pas pris en compte, à l'exception des valeurs spéciales 'NoPadding' et 'ZeroPadding', qui désactivent le padding.
Les algorithmes suivants sont disponibles sous Windows avec Visual Adélia :
Nom OpenSSL |
Code Adélia |
des |
DES |
des_ede |
DESede |
des_ede3 |
DESede3 |
desx |
DESX |
rc4 |
RC4 |
Idea |
IDEA |
rc2 |
RC2 |
bf |
Blowfish |
cast5 |
CAST5 |
aes |
AES |
camellia |
CAMELLIA |
rsa |
RSA |
Le code Adélia correspond au nom à indiquer si le format de l'algorithme suit la norme Java (ALGORITHME[/MODEBLOC/PADDING]).
Plateforme Java
La plateforme Java fournit en standard un nombre limité d'algorithmes de chiffrement.
En outre, la longueur des clés est limitée par défaut à 128 bits (16 octets) pour les algorithmes de chiffrement par bloc (restriction d'export, voir la documentation Oracle http://docs.oracle.com/javase/7/docs/technotes/guides/security/SunProviders.html).
Java supporte d'autres modes de padding que le PCKS#5. Néanmoins, pour des raisons d'interopérabilité, nous vous conceillons d'utiliser le padding par défaut, compatible avec OpenSSL.
Les algorithmes suivants sont disponibles en Java (JDK 7) avec les fournisseurs par défaut :
Code Adélia |
DES |
DESede |
RC2 |
RC4 |
Blowfish |
ARCFOUR |
AES |
RSA |
A noter : il est possible, en Java, d'installer des fournisseurs de sécurité supplémentaires.
Adélia Cloud est par exemple distribué avec Bouncy Castle (https://www.bouncycastle.org/) qui fournit des algorithmes de chiffrement supplémentaires (CCM, GCM, CAMELLIA, CAST5, CAST6, CHACHA, GOST28147, Grainv1, Grain128, HC128, HC256, IDEA, NOEKEON, RC5, RC5-64, RC6, RIJNDAEL, SALSA20, SEED, Serpent, Tnepres, Shacal2, SHACAL-2, SKIPJACK, SM4, TEA, Twofish, Threefish, VMPC, XTEA, XSALSA20, IES, DHIES, ECIES, ELGAMAL).
Plateforme iSeries
Les algorithmes suivants sont disponibles :
Nom iSeries |
Code Adélia |
DES |
DES |
Triple DES (clé de lg 16) |
DESede |
Triple DES (clé de lg 24) |
DESede3 |
RC4-compatible |
RC4 |
RC2 |
RC2 |
AES |
AES |
RSA |
RSA |
Attention : en ce qui concerne l'AS/400, les clés privées RSA doivent obligatoirement être encodées au format PKCS #8 (la clé doit contenir une déclaration -----BEGIN PRIVATE KEY-----, et non -----BEGIN RSA PRIVATE KEY-----).