i2d_SSL_SESSION(3) Convertir un objet SSL_SESSION depuis ou

Other Alias

d2i_SSL_SESSION

SYNOPSIS


#include <openssl/ssl.h>
SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length);
int i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp);

DESCRIPTION

d2i_SSL_SESSION() transforme la représentation ASN1 externe d'une session SSL ou TLS, stockée en données binaires à l'emplacement pp de taille length, en un objet SSL_SESSION.

i2d_SSL_SESSION() transforme l'objet SSL_SESSION in en représentation ASN1 et la stocke à l'emplacement mémoire pointé par pp. La taille de la représentation ASN1 est renvoyée. Si pp est le pointeur NULL, seule la taille est calculée et renvoyée.

NOTES

L'objet SSL_SESSION est construit à partir de plusieurs parties issues de malloc(), il ne peut donc pas être déplacé, copié ou stocké directement. Afin de stocker les données de session sur le disque ou dans une base de données, elles doivent être transformées en représentation ASN1 binaire.

Lors de l'utilisation de d2i_SSL_SESSION(), l'objet SSL_SESSION est automatiquement alloué. Le compteur de références est 1, de telle sorte que la session doit être supprimée explicitement en utilisant SSL_SESSION_free(3), sauf si l'objet SSL_SESSION a complètement pris le dessus, lorsqu'il est appelé depuis la get_session_cb() (consultez SSL_CTX_sess_set_get_cb(3)).

Les objets SSL_SESSION conservent des informations internes sur les liens à propos de la liste du cache de sessions, lorsqu'ils sont insérés dans le cache de sessions d'un objet SSL_CTX. Un objet SSL_SESSION, quel que soit son compteur de références, ne doit donc être utilisé qu'avec un objet SSL_CTX (et les objets SSL créés à partir de cet objet SSL_CTX).

Lors de l'utilisation de i2d_SSL_SESSION(), l'emplacement de mémoire pointé par pp doit être assez grand pour y placer la représentation binaire de la session. La taille de représentation ASN1 créée n'a pas de limite connue, donc la quantité d'espace nécessaire devrait être obtenue en appelant d'abord i2d_SSL_SESSION() avec pp=NULL afin d'allouer la mémoire avant d'appeler de nouveau i2d_SSL_SESSION(). Remarquez que cela avancera la valeur contenue dans *pp donc il est nécessaire de sauvegarder une copie de l’emplacement d’origine. Par exemple :
 int i,j;
 char *p, *temp;
 i = i2d_SSL_SESSION(sess, NULL);
 p = temp = malloc(i);
 j = i2d_SSL_SESSION(sess, &temp);
 assert(i == j);
 assert(p+i == temp);

VALEURS DE RETOUR

d2i_SSL_SESSION() renvoie un pointeur vers l'objet SSL_SESSION nouvellement alloué. En cas d'échec, le pointeur NULL est renvoyé et le message d'erreur peut être récupéré depuis la pile d'erreur.

i2d_SSL_SESSION() renvoie la taille de la représentation ASN1 en octet. Quand la session n'est pas valable, 0 est renvoyé et aucune opération n'est réalisée.

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.