NOM¶
DH_set_default_method, DH_get_default_method, DH_set_method, DH_new_method,
DH_OpenSSL - Sélectionner la méthode DH
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.
VOIR AUSSI¶
dh(3),
DH_new(3)
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.