evp(3) Fonctions cryptographiques de haut niveau

SYNOPSIS

#include <openssl/evp.h>

DESCRIPTION

La bibliothèque EVP fournit une interface haut niveau aux fonctions cryptographiques.

EVP_Seal... et EVP_Open... fournissent le chiffrement et le déchiffrement à clef publique pour implémenter des « enveloppes » numériques.

Les fonctions EVP_DigestSign... et EVP_DigestVerify... mettent en œuvre des signatures numériques et des codes d’authentification de message (MAC). Aussi les fonctions anciennes EVP_Sign... et EVP_Verify... sont à considérer.

Le chiffrement symétrique est disponible avec les fonctions EVP_Encrypt.... Les fonctions EVP_Digest... fournissent les signatures de message.

Les fonctions EVP_PKEY... fournissent une interface haut niveau pour les algorithmes asymétriques. Pour créer un nouveau EVP_PKEY, consulter EVP_PKEY_new(3)|EVP_PKEY_new(3)>. EVP_PKEY peut être associé avec une clef privée d’un algorithme particulier en utilisant les fonctions décrites dans les pages EVP_PKEY_set1_RSA)(3), ou de nouvelles clefs peuvent être créées en utilisant EVP_PKEY_keygen(3). Des EVP_PKEY peuvent être comparées en utilisant EVP_PKEY_cmp(3), ou affichées avec EVP_PKEY_print_private(3).

Les fonctions EVP_PKEY prennent en charge toutes les opérations d’algorithme asymétrique :

Pour l’accord de clef, consultez EVP_PKEY_derive(3).
Pour une signature ou une vérification, consultez EVP_PKEY_sign(3), EVP_PKEY_verify(3) et EVP_PKEY_verify_recover(3). Cependant, ces fonctions ne réalisent pas un condensat des données à signer. Par conséquent les fonctions EVP_DigestSign... sont à utiliser.
Pour le chiffrement et le déchiffrement, consultez EVP_PKEY_encrypt(3) et EVP_PKEY_decrypt(3) respectivement. Cependant, ces fonctions réalisent uniquement un chiffrement et un déchiffrement. Comme le chiffrement par clef publique est une opération coûteuse, habituellement le message chiffré est enveloppé dans une « enveloppe numérique » en utilisant les fonctions EVP_Seal... et EVP_Open....

La fonction EVP_BytesToKey(3) fournit une prise en charge limitée pour un chiffrement du mot de passe. Un choix méticuleux des paramètres fournit une prise en charge compatible avec PBKDF1 pour PKCS#5. Cependant, les nouvelles applications ne devraient pas normalement utiliser cela (en préférant, par exemple, PBKDF2 de PCKS#5).

Les algorithmes sont chargés avec OpenSSL_add_all_algorithms(3).

Tous les algorithmes symétriques (pour le chiffrement), les algorithmes de signature et les algorithmes asymétriques (algorithmes à clef publique) peuvent être remplacés par les modules ENGINE fournissant des implémentations alternatives. Si des implémentations ENGINE d'algorithmes de chiffrement ou de signature sont enregistrées par défaut, alors les diverses fonctions EVP utiliseront automatiquement ces implémentations de préférence pour les intégrer aux implémentations logicielles. Pour plus de renseignements, consultez la page de manuel engine(3).

Bien que des fonctions bas niveau spécifiques aux algorithmes existent pour plusieurs algorithmes, leur utilisation n'est pas recommandée. Elles ne peuvent pas être utilisées avec un ENGINE, et les versions d'ENGINE des nouveaux algorithmes ne sont pas accessibles en utilisant les fonctions bas niveau. De plus, cela rend le code plus difficile à adapter aux nouveaux algorithmes, certaines options ne sont pas proprement prises en charge au bas niveau, et certaines opérations sont plus efficaces en utilisant l'interface haut niveau.

TRADUCTION

La traduction de cette page de manuel est maintenue par les membres de la liste <debian-l10n-french AT lists DOT debian DOT org>. Veuillez signaler toute erreur de traduction par un rapport de bogue sur le paquet manpages-fr-extra.