> Tech > Un exemple de cryptage simple

Un exemple de cryptage simple

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

La figure 4 montre un exemple de programme C qui utilise l’API Encrypt Data (Qc3EncryptData) pour mettre en oeuvre un programme de service de cryptage AES. Le fichier d’entête C pour Qc3EncryptData est qc3dtaen.h. Il contient le prototype de fonction de la figure 2. On voit que tous les paramètres

sont passés en tant que pointeurs. Ainsi, par exemple, quand l’API documente un paramètre comme Binary4, c’est en réalité un pointeur vers un int qui est spécifié sur l’appel. Le fichier d’en-tête qc3dtaen.h amène un autre include, qc3cci.h, qui contient les structures et les constantes nécessaires pour utiliser les API Cryptographic Services.

Examinons brièvement les paramètres sur l’appel vers Qc3EncryptData (figure 4 en E).

• Le paramètre clear data et le paramètre length of clear data sont passés dans le programme de service. Le clear data format name est défini d’après la constante Qc3_Data (en E). Cette constante est définie dans include qc3cci.h comme DATA0100.
• Le paramètre algorithm description contient la structure ALGD0200. En A, le programme établit cette structure pour l’algorithme AES avec le mode CBC, une longueur de bloc de 16 octets, pas de remplissage, et le vecteur d’initialisation qui a été passé dans le programme. Le paramètre algorithm description format name est défini d’après la constante Qc3_Alg_Block_Cipher (en E). Cette constante est définie dans include qc3cci.h comme ALGD0200.
• Le paramètre key description contient la structure KEYD0200. Comme on le voit en B, il est établi pour une clé AES de 32 octets avec la valeur de clé qui a été passée dans le programme. Le paramètre key description format name est défini d’après la constante Qc3_Key_Parms (en E). Cette constante est définie dans include qc3cci.h comme KEYD0200.
• Le paramètre cryptographic service provider est défini d’après la constante Qc3_Any_CSP (en C). Cette constante est définie dans include qc3cci.h avec une valeur de 0. Un pointeur NULL est passé pour le paramètre cryptographic device name (en E).
• Le paramètre encrypted data et le paramètre length of area provided for the encrypted data sont passés dans le programme de service. La longueur du paramètre encrypted data returned est une variable locale. • Le champ Bytes_Provided du paramètre error code est mis à 0 (en D), ce qui obligera les erreurs à apparaître comme des exceptions.

Téléchargez cette ressource

Guide inmac wstore pour l’équipement IT de l’entreprise

Guide inmac wstore pour l’équipement IT de l’entreprise

Découvrez toutes nos actualités à travers des interviews, avis, conseils d'experts, témoignages clients, ainsi que les dernières tendances et solutions IT autour de nos 4 univers produits : Poste de travail, Affichage et Collaboration, Impression et Infrastructure.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010