SSL_CTX_set1_curves(3) SSL_set1_curves,

SYNOPSIS

#include <openssl/ssl.h>

int SSL_CTX_set1_curves(SSL_CTX *ctx, int *clist, int clistlen);
 int SSL_CTX_set1_curves_list(SSL_CTX *ctx, char *list);

int SSL_CTX_set1_curves(SSL *ssl, int *clist, int clistlen);
 int SSL_CTX_set1_curves_list(SSL *ssl, char *list);

int SSL_get1_curves(SSL *ssl, int *curves);
 int SSL_get_shared_curve(SSL *s, int n);

int SSL_CTX_set_ecdh_auto(SSL_CTX *ctx, int onoff);
 int SSL_set_ecdh_auto(SSL *s, int onoff);

DESCRIPTION

SSL_CTX_set1_curves() définit les courbes elliptiques prises en charge pour ctx à clistlen courbes dans le tableau clist. Le tableau est constitué de tous les identifiants de courbe dans l’ordre de préférence. Pour un client TLS, les courbes sont utilisées directement dans l’extension prise en charge. Pour un serveur TLS, les courbes sont utilisées pour déterminer l’ensemble des courbes partagées.

SSL_CTX_set1_curves_list() définit les courbes prises en charge pour ctx dans la chaîne list. La chaîne est constituée d’une liste de noms ou identifiants séparés par des deux points, par exemple « P-521:P-384:P-256 ».

SSL_set1_curves() et SSL_set1_curves_list() sont similaires aux précédentes sauf qu’elles définissent les courbes prises en charge pour les structures SSL ssl.

SSL_get1_curves() renvoie l’ensemble des courbes prises en charge par un client dans l’extension des courbes prises en charge. Elle renvoie le nombre total de courbes prises en charge. Le paramètre curves peut être NULL pour simplement renvoyer le nombre de courbes dans le but d’allouer de la mémoire. Le tableau curves est sous la forme d’un ensemble d’identifiants de courbe dans un ordre préférentiel. Elle peut renvoyer 0 si le client ne renvoie pas d’extension de courbes prises en charge.

SSL_get_shared_curve() renvoie n courbes partagées pour un SSL du côté serveur ssl. Si n est égal à -1, alors le nombre total de courbes partagées est renvoyé, et peut valoir zéro. Autrement que pour des buts de diagnostic, la plupart des applications ne seront intéressées que par la première courbe partagée, aussi n est normalement réglé à zéro. Si la valeur de n est hors limites, NID_undef est renvoyé.

SSL_CTX_set_ecdh_auto() et SSL_set_ecdh_auto() règlent la sélection automatique de courbes pour le serveur ctx ou ssl à onoff. Si onoff vaut 1, alors la courbe de plus haute préférence est automatiquement employée pour les clefs temporaires ECDH utilisées durant l’échange de clefs.

Toutes ces fonctions sont implémentées en utilisant des macros.

NOTES

Si une application désire utiliser plusieurs de ces fonctions pour des besoins de configuration, soit en ligne de commande ou avec un fichier, l’utilisation de l’interface SSL_CONF est à préférer à l’analyse manuelle des options.

Les fonctions SSL_CTX_set_ecdh_auto() et SSL_set_ecdh_auto() peuvent être utilisées pour qu’un serveur choisisse toujours la courbe la plus appropriée pour un client. Dans ce cas, les paramètres temporaires ECDH définis par le serveur seront outrepassés. Les versions précédentes d’OpenSSL pouvaient effectivement seulement utiliser une seule courbe ECDH définie en employant une fonction telle que SSL_CTX_set_ecdh_tmp(). Les nouvelles applications doivent juste appeler :

 SSL_CTX_set_ecdh_auto(ctx, 1);

et elles prendront en charge ECDH automatiquement en utilisant la courbe partagée la plus adéquate.

VALEURS DE RETOUR

SSL_CTX_set1_curves(), SSL_CTX_set1_curves_list(), SSL_set1_curves(), SSL_set1_curves_list(), SSL_CTX_set_ecdh_auto() et SSL_set_ecdh_auto() renvoient 1 en cas de réussite et 0 lors d’un échec.

SSL_get1_curves() renvoie le nombre de courbes, pouvant être zéro.

SSL_get_shared_curve() renvoie l’identifiant de la courbe partagée n ou NID_undef s’il n’existe pas de courbe partagée n, ou le nombre total de courbes partagées si n vaut -1.

Lorsqu’appelée sur un client ssl, SSL_get_shared_curve() ne signifie rien et renvoie -1.

HISTORIQUE

Ces fonctions ont été introduites dans OpenSSL 1.0.2

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.