l’exemple non modifié, la première clé trouvée dans le fichier était utilisée automatiquement.).
A part cela, mon travail consistait surtout à donner le moyen au code Java de signaler des erreurs spécifiques à un programme CL invoquant. Voir l’encadré « Types de messages », pour une liste croisée des exceptions côté Java et des messages d’échappement côté CL. Les commandes ENCRYPT et DECRYPT s’appuient sur un programme CL d’arrière plan unique (figure 5) qui, à son tour, invoque une classe Java appelée CmdProc.
Les paramètres de commande sont passés à la méthode main() de la classe CmdProc, y compris une constante indiquant si nous cryptons ou décryptons. (La commande ENCRYPT passe un 1 et la commande DECRYPT passe un 2.) La méthode main() invoque l’une des méthodes encryptFile() ou decryptFile() de la classe CmdProc, d’après cette constante. La nature des applications Java tournant sur le System i est telle qu’un job séparé est démarré pour héberger la JVM (Java Virtual Machine) qui exécute votre code Java.
D’où la difficulté de renvoyer l’information à un programme CL invoquant. Pour pallier cette difficulté, notre programme CL crée temporairement une zone de données dans QGPL et passe le nom de cette zone à la classe CmdProc. (C’est un autre des arguments de la méthode main().) Le nom de la zone de données inclut le numéro du job invoquant, pour obtenir un degré raisonnable d’unicité. Le kit IBM Toolbox for Java/JT Open fournit à notre code Java le moyen de placer l’information d’erreur dans la zone de données, à l’usage du programme CL invoquant.
Au terme de l’utilitaire Java, le programme CL renvoie, sous forme d’un message d’échappement, les éventuelles informations d’erreurs qu’il a trouvées dans la zone de données. Derniers détails à régler Sur le plan pratique, vous devez savoir comment exporter votre clé publique et comment importer celles d’autrui. A l’aide de l’outil WinPT de GmPG, sélectionnez une clé dans la liste des clés puis choisissez Export dans le menu Key. La figure 6 montre notre clé publique codée en ASCII, exportée. Si nous voulions recevoir un fichier crypté de quelqu’un, il nous faudrait lui envoyer cette clé, par courriel ou autre moyen.
A l’inverse, nous nous attendons à recevoir de tels fichiers de la part de ceux qui veulent que nous cryptions les données à leur envoyer. Nous importons les clés publiques en sélectionnant Import dans le menu Key et en pointant l’import vers un fichier codé ASCII contenant les détails d’une clé publique. Une fois importée, la clé recevra un Key ID unique et nous utiliserons cet identificateur sur notre commande ENCRYPT.