SSL_CTX_set_default_passwd_cb(3) SSL_CTX_set_default_passwd_cb_userdata

SYNOPSIS

#include <openssl/ssl.h>

void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb);
 void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u);

int pem_passwd_cb(char *tamp, int taille, int rwflag, void *userdata);

DESCRIPTION

SSL_CTX_set_default_passwd_cb() définit le rappel du mot de passe par défaut appelé lors d’un chargement ou enregistrement chiffré avec un certificat PEM

SSL_CTX_set_default_passwd_cb_userdata() définit un pointeur vers userdata qui sera fourni à l’invocation du rappel de mot de passe.

pem_passwd_cb(), qui doit être fourni par l’application, restitue le mot de passe lors du déchiffrement. Lors de l’invocation, un pointeur vers userdata est fourni. pem_passwd_cb doit écrire le mot de passe dans le tampon tampon fourni qui est de taille taille. La taille réelle doit être renvoyée à la fonction de rappel. rwflag indique si le rappel est utilisé pour lecture et déchiffrement (rwflag=0) ou écriture et chiffrement (rwflag=1).

NOTES

Lors du chargement ou du stockage de clefs privées, un mot de passe devrait être fourni pour protéger la clef privée. La façon de fournir ce mot de passe dépend de l’application. Si une seule clef privée est gérée, cela peut être pratique que pem_passwd_cb() gère le dialogue pour le mot de passe de façon interactive. Si plusieurs clefs doivent être gérées, il peut être pratique de demander le mot de passe une fois, puis le garder en mémoire et l’utiliser plusieurs fois. Dans ce dernier cas, le mot de passe peut être mémorisé dans le stockage userdata et pem_passwd_cb() ne renvoie que le mot de passe déjà enregistré.

Lors d’une demande interactive, pem_passwd_cb() peut utiliser rwflag pour déterminer si un objet doit être chiffré (rwflag=1). Dans ce cas, le dialogue pour le mot de passe peut demander le mot de passe deux fois pour éviter les erreurs de frappe qui rendent le déchiffrement impossible.

D’autres objets formatés en PEM (certificats) peuvent aussi être chiffrés. Ce n’est pas courant, l’information sur les certificats est considérée comme publique.

VALEURS DE RETOUR

SSL_CTX_set_default_passwd_cb() et SSL_CTX_set_default_passwd_cb_userdata() ne fournissent pas d’information de diagnostic.

EXEMPLES

L’exemple suivant renvoie le mot de passe fourni par userdata à la fonction de rappel. Le mot de passe est censé être une chaîne finissant par « \0 ». Si le mot de passe ne tient pas dans le tampon, il est tronqué.

 int pem_passwd_cb(char *I<tamp>, int I<taille>, int I<rwflag>, void *I<mot_de_passe>)
 {
  strncpy(I<tamp>, (char *)(I<mot_de_passe>), I<taille>);
  I<tamp>[I<taille> - 1] = '\0';
  return(strlen(I<tamp>));
 }

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.