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
Un exemple de cryptage simple
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
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
- RSSI 2026 : entre IA, réglementation et dépendances, l’art de l’arbitrage
- AI Act : le guide pour prendre le train de l’Omnibus de la conformité
- Adaptation climatique : les entreprises accélèrent, mais peinent à mesurer l’impact financier
- Data centers : 31 600 milliards de dollars d’investissements d’ici 2050, l’énergie au cœur de la nouvelle géographie du calcul
Articles les + lus
Commandes Windows 11 : le Guide des Outils accessibles avec Win + R
Sécurité : une approche dans la durée avant tout
Guide Ultime des Raccourcis Clavier Windows 11 pour les Professionnels IT
Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
Model Context Protocol : le contexte, grand oublié du débat
À la une de la chaîne Tech
- Commandes Windows 11 : le Guide des Outils accessibles avec Win + R
- Sécurité : une approche dans la durée avant tout
- Guide Ultime des Raccourcis Clavier Windows 11 pour les Professionnels IT
- Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
- Model Context Protocol : le contexte, grand oublié du débat
