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
Microsoft 365 Tenant Resilience
Face aux failles de résilience des tenants M365 (configurations, privilèges, sauvegarde). Découvrez 5 piliers pour durcir, segmenter et surveiller vos environnements afin de limiter l’impact des attaques. Prioriser vos chantiers cyber et améliorer la résilience de vos tenants Microsoft 365.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Veeam passe à la vitesse supérieure avec iResOps pour Microsoft 365
- Visibilité, réputation, clients : ce que les petites entreprises ne pourront plus déléguer en 2027
- IA souveraine : l’Europe avance, mais son interconnexion prend du retard
- Cloud public : la sécurité des données s’impose comme premier critère pour les agents publics
Articles les + lus
Continuer avec Exchange Server : quelles conséquences ?
Raccourcis Réseau et Navigateur : le kit de Diagnostic des Professionnels IT
Raccourcis PowerShell et Windows Terminal pour les Professionnels IT
Commandes Windows 11 : le Guide des Outils accessibles avec Win + R
Sécurité : une approche dans la durée avant tout
À la une de la chaîne Tech
- Continuer avec Exchange Server : quelles conséquences ?
- Raccourcis Réseau et Navigateur : le kit de Diagnostic des Professionnels IT
- Raccourcis PowerShell et Windows Terminal pour les Professionnels IT
- Commandes Windows 11 : le Guide des Outils accessibles avec Win + R
- Sécurité : une approche dans la durée avant tout
