La fonction ILE CIPHER constitue le moyen le plus simple de mettre en oeuvre le cryptage DES sur l'AS/400. Notez bine qu'il ne faut pas confondre la fonction intégrée ILE CIPHER avec une fonction intégrée ILE. Les fonctions “intégrées” (built-in function ou BIF) sont des constructions RPG ILE, telles que
La fonction intégrée _CIPHER
%SUBST.
Le type de fonctions “intégrées” dont nous parlons ici sont des instructions en
langage MI, dont le nom commence par un caractère souligné (_). Ces instructions
font souvent partie du code source RPG ILE, et les appels à ces fonctions ressemblent
aux appels à des procédures liées, sauf qu’ils ne créent aucune entrée supplémentaire
dans la pile d’appel.
Le manuel IBM Machine Interface Functional Reference (SC41-5810) documente
la fonction _CIPHER. La figure 1 décrit les trois paramètres obligatoires de la
fonction. Le premier et le troisième paramètres représentent respectivement des
pointeurs vers le texte chiffré en sortie et le texte en clair en entrée. Le deuxième
paramètre est une structure de données de 32 octets dans laquelle on place les
cinq renseignements suivants :
- un identificateur de fonction entière sur deux octets, dont la valeur doit
être égale à 2 pour crypter - un entier codé sur deux octets et représentant la longueur du texte en
clair. Cette valeur doit être un multiple de 8 et inférieure à 64 - un sélecteur de mode d’un octet qui doit être égal à X’00’ pour le mode
ECB ou X’40’ pour le mode CBC - la clé de 56 bits, repartie sur huit octets
- une valeur de chaînage initiale de huit octets, utilisée lorsque le sélecteur
de mode est X’40’ pour le mode CBC
A partir du RPG/400 ILE, on peut utiliser le code opération CALLP ou CALLB pour
invoquer la fonction _CIPHER (même si _CIPHER ne peut pas être appelé via un pointeur
de procédure, ni même voir son adresse récupérée avec la fonction intégrée ILE
%PADDR). La figure 2 présente un programme RPG/400 ILE appelant _CIPHER pour crypter
une ID utilisateur de 16 octets. A partir d’un mot de passe de huit octets, le
programme RPG commence par générer une clé DES de 56 bits utilisant des opérations
BITON/BITOFF. Il invoque ensuite _CIPHER pour coder le texte en clair de l’ID
utilisateur en mode CBC. Le mot de passe converti représente la clé. En principe,
la fonction appelant ce programme compare l’ID utilisateur cryptée avec une ID
utilisateur cryptée enregistrée précédemment dans la base de données. Si les deux
coïncident, l’application autorise l’utilisateur à continuer.
Téléchargez cette ressource
Plan de sécurité Microsoft 365
Les attaquants savent comment prendre le contrôle de votre tenant Microsoft 365, et vous, savez-vous comment le reprendre en main ?
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- IA de confiance : le facteur clé pour rentabiliser les projets d’entreprise
- Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
- Hôpitaux virtuels : renforcer le système de santé français grâce au numérique
- Cybercriminalité bancaire : l’IA industrialise les attaques en 2026
Articles les + lus
Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
Model Context Protocol : le contexte, grand oublié du débat
Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
Couchbase lance AI Data Plane pour industrialiser l’IA agentique
Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
À la une de la chaîne Tech
- Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
- Model Context Protocol : le contexte, grand oublié du débat
- Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
- Couchbase lance AI Data Plane pour industrialiser l’IA agentique
- Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
