SYNOPSIS
#include <openssl/dh.h>
#include <openssl/engine.h>
void DH_set_default_method(const DH_METHOD *meth);
const DH_METHOD *DH_get_default_method(void);
int DH_set_method(DH *dh, const DH_METHOD *meth);
DH *DH_new_method(ENGINE *engine);
const DH_METHOD *DH_OpenSSL(void);
DESCRIPTION
Une DH_METHOD indique les fonctions utilisées par OpenSSL pour les opérations Diffie-Hellman. En modifiant la méthode, les implémentations alternatives comme les accélérateurs matériels peuvent être utilisées. Important : consultez la section NOTES qui contient des renseignements importants sur la façon dont ces fonctions d'interface de programmation de DH sont affectées par l'utilisation des appels d'interfaces de programmation d'ENGINE.Au début, la DH_METHOD par défaut est l'implémentation interne d'OpenSSL, comme renvoyée par DH_OpenSSL().
DH_set_default_method() fait de meth la méthode par défaut pour toutes les structures DH créées ensuite. Remarque : c'est seulement vrai tant qu'aucun ENGINE n'a été défini par défaut pour DH, donc cette fonction n'est plus recommandée.
DH_get_default_method() renvoie un pointeur vers la DH_METHOD actuelle par défaut. Cependant, ce résultat n'a de signification que si l'interface de programmation d'ENGINE n'est pas utilisée, donc cette fonction n'est plus recommandée.
DH_set_method() sélectionne meth pour réaliser toutes les opérations en utilisant la clef dh. Cela remplacera la DH_METHOD utilisée par la clef DH et, si la méthode précédente était fournie par un ENGINE, le traitement de cet ENGINE sera libéré pendant la modification. Des clefs DH pourraient ne fonctionner qu'avec certaines implémentations de DH_METHOD (par exemple à partir d'un module ENGINE qui autorise les clefs embarquées protégées matériellement), et dans ce cas, tenter de modifier la DH_METHOD pour la clef peut avoir des résultats imprévisibles.
DH_new_method() alloue et initialise une structure DH de telle sorte que engine sera utilisé pour les opérations DH. Si engine est NULL, l'ENGINE par défaut pour les opérations DH est utilisé, et si aucun ENGINE par défaut n'est défini, la DH_METHOD contrôlée par DH_set_default_method() est utilisée.
LA STRUCTURE DH_METHOD
typedef struct dh_meth_st { /* nom de l'implémentation */ const char *name; /* générer des valeurs DH publique et privée pour l'échange de clef */ int (*generate_key)(DH *dh); /* calculer le secret partagé */ int (*compute_key)(unsigned char *key, BIGNUM *pub_key, DH *dh); /* calculer r = a ^ p mod m (pourrait être NULL pour certaines implémentations) */ int (*bn_mod_exp)(DH *dh, BIGNUM *r, BIGNUM *a, const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); /* appelé à DH_new */ int (*init)(DH *dh); /* appelé à DH_free */ int (*finish)(DH *dh); int flags; char *app_data; /* ? */ } DH_METHOD;
VALEURS DE RETOUR
DH_OpenSSL() et DH_get_default_method() renvoient des pointeurs vers les DH_METHODs respectives.DH_set_default_method() ne renvoie pas de valeur.
DH_set_method() renvoie une valeur non nulle si la meth fournie a été correctement définie comme méthode pour dh (y compris le déchargement du traitement ENGINE si la méthode précédente a été fournie par un ENGINE).
DH_new_method() renvoie NULL et définit un code d'erreur qui peut être obtenu par ERR_get_error(3) si l'allocation échoue. Sinon, elle renvoie un pointeur vers la structure nouvellement allouée.
NOTES
Depuis la version 0.9.7, les implémentations DH_METHOD sont groupées avec les autres interfaces de programmation algorithmiques (par exemple RSA_METHOD, EVP_CIPHER, etc.) dans les modules ENGINE. Si un ENGINE par défaut est indiqué pour les fonctionnalités DH en utilisant une fonction d'interface de programmation d'ENGINE, il écrasera toutes les valeurs DH par défaut définies en utilisant une interface de programmation de DH (c'est-à-dire DH_set_default_method()). Par conséquent, l'interface de programmation d'ENGINE est la façon recommandée pour contrôler les implémentations par défaut à utiliser dans DH et les autres algorithmes cryptographiques.HISTORIQUE
DH_set_default_method(), DH_get_default_method(), DH_set_method(), DH_new_method() et DH_OpenSSL() ont été ajoutées dans OpenSSL 0.9.4.DH_set_default_openssl_method() et DH_get_default_openssl_method() ont remplacé respectivement DH_set_default_method() et DH_get_default_method(), et DH_set_method() et DH_new_method() ont été modifiées pour utiliser des ENGINE plutôt que des DH_METHOD lors du développement de la version d'engine d'OpenSSL 0.9.6. Pour 0.9.7, le traitement des valeurs par défaut dans l'interface de programmation d'ENGINE a été restructuré pour que cette modification soit inversée, et que le comportement des autres fonctions ressemble plus au comportement précédent. Le comportement des valeurs par défaut de l'interface de programmation d'ENGINE écrase maintenant de façon transparente le comportement des valeurs par défaut de l'interface de programmation de DH sans nécessiter de modification de ces prototypes de fonction.
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.