.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.29) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "fr::ssl::SSL_CTX_set_custom_cli_ext 3SSL" .TH fr::ssl::SSL_CTX_set_custom_cli_ext 3SSL "2015-12-31" "1.0.2a 1.0.2c" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NOM" .IX Header "NOM" SSL_CTX_add_client_custom_ext, SSL_CTX_add_server_custom_ext \- Gestion personnalisée d’extension \s-1TLS\s0 .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fB #include \fR .PP \&\fB int SSL_CTX_add_client_custom_ext(\s-1SSL_CTX\s0 *\fR\fIctx\fR\fB, unsigned int\fR \fIext_type\fR\fB,\fR \fBcustom_ext_add_cb\fR \fIadd_cb\fR\fB,\fR \fBcustom_ext_free_cb\fR \fIfree_cb\fR\fB, void *\fR\fIadd_arg\fR\fB,\fR \fBcustom_ext_parse_cb\fR \fIparse_cb\fR\fB,\fR \fBvoid *\fR\fIparse_arg\fR\fB);\fR .PP \&\fB int SSL_CTX_add_server_custom_ext(\s-1SSL_CTX\s0 *\fR\fIctx\fR\fB, unsigned int\fR \fIext_type\fR\fB,\fR \fBcustom_ext_add_cb\fR \fIadd_cb\fR\fB,\fR \fBcustom_ext_free_cb\fR \fIfree_cb\fR\fB, void *\fR\fIadd_arg\fR\fB,\fR \fBcustom_ext_parse_cb\fR \fIparse_cb\fR\fB,\fR \fBvoid *\fR\fIparse_arg\fR\fB);\fR .PP \&\fB int SSL_extension_supported(unsigned int\fR \fIext_type\fR\fB);\fR .PP \&\fB typedef int (*\fR\fIcustom_ext_add_cb\fR\fB)(\s-1SSL\s0 *s\fR\fB, unsigned int\fR \fIext_type\fR\fB,\fR \fBconst unsigned char **\fR\fIout\fR\fB,\fR \fBsize_t *\fR\fIoutlen\fR\fB, int *\fR\fIal\fR\fB,\fR \fBvoid *\fR\fIadd_arg\fR\fB);\fR .PP \&\fB typedef void (*\fR\fIcustom_ext_free_cb\fR\fB)(\s-1SSL\s0 *s, unsigned intB\fR \fIext_type\fR\fB,\fR \fBconst unsigned char *\fR\fIout\fR\fB,\fR \fBvoid *\fR\fIadd_arg\fR\fB);\fR .PP \&\fB typedef int (*\fR\fIcustom_ext_parse_cb\fR\fB)(\s-1SSL\s0 *s, unsigned intB\fR \fIext_type\fR\fB,\fR \fBconst unsigned char *\fR\fIin\fR\fB,\fR \fBsize_t\fR \fIinlen\fR\fB, int *\fR\fIal\fR\fB,\fR \fBvoid *\fR\fIparse_arg\fR\fB);\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBSSL_CTX_add_client_custom_ext\fR() ajoute une extension personnalisée pour un client \s-1TLS\s0 avec une extension de type \fIext_type\fR et les rappels \&\fIadd_cb\fR, \fIfree_cb\fR et \fIparse_cb\fR. .PP \&\fBSSL_CTX_add_server_custom_ext\fR() ajoute une extension personnalisée pour un serveur \s-1TLS\s0 avec une extension de type \fIext_type\fR et les rappels \&\fIadd_cb\fR, \fIfree_cb\fR et \fIparse_cb\fR. .PP Dans les deux cas, le type d’extension ne doit pas être géré en interne par OpenSSL, sinon une erreur se produit. .PP \&\fBSSL_extension_supported\fR() renvoie \fB1\fR si l’extension \fIext_type\fR est gérée en interne par OpenSSL ou autrement \fB0\fR. .SH "FONCTIONS DE RAPPEL D’EXTENSION" .IX Header "FONCTIONS DE RAPPEL D’EXTENSION" Le rappel \fIadd_cb\fR est demandé pour envoyer des données d’extension personnalisée à inclure dans ClientHello pour un client \s-1TLS\s0 ou ServerHello pour un serveur \s-1TLS.\s0 Le paramètre \fIext_type\fR est défini au type d’extension qui sera ajouté et le paramètre \fIadd_arg\fR à la valeur définie lorsque le gestionnaire d’extension a été ajouté. .PP Si l’application veut inclure l’extension \fIext_type\fR, elle doit définir \&\fI*out\fR aux données d’extension, définir \fI*outlen\fR à la longueur des données d’extension et renvoyer \fB1\fR. .PP Si le rappel \fIadd_cb\fR ne veut pas inclure l’extension, il doit renvoyer \&\fB0\fR. .PP Si le rappel \fIadd_cb\fR renvoie \fB\-1\fR, une erreur fatale d’initiation de connexion s’est produite avec un message d’alerte \s-1TLS\s0 indiqué dans \fI*al\fR. .PP Pour les clients (mais pas les serveurs), si \fIadd_cb\fR est défini à \s-1NULL,\s0 une extension de longueur zéro est ajoutée pour \fIext_type\fR. .PP Pour les clients, chaque \fIadd_cb\fR enregistré est toujours appelé pour savoir si l’application veut ajouter une extension à ClientHello. .PP Pour les serveurs, chaque \fIadd_cb\fR enregistré est appelé une fois, si et seulement si l’extension correspondante a été intégrée dans ClientHello, pour savoir si l’application veut ajouter l’extension à ServerHello. C’est\-à\-dire, sans extension correspondante dans ClientHello, \&\fIadd_cb\fR n’est pas appelé. .PP Si une extension est ajoutée (c’est\-à\-dire, \fIadd_cb\fR renvoie \fB1\fR), \&\fIfree_cb\fR est appelé (s’il est défini) avec la valeur de \fIout\fR définie par le rappel d’ajout. Il peut être utilisé pour libérer n’importe quelles données d’extension variables définies par \fIadd_cb\fR. Puisque \fIout\fR est constant (pour permettre l’utilisation de données constantes dans \&\fIadd_cb\fR), les applications peuvent nécessiter de rejeter cette constance pour libérer les données. .PP Le rappel \fIparse_cb\fR reçoit des données pour des extensions \s-1TLS.\s0 Pour les clients \s-1TLS\s0 les données d’extension proviennent de ServerHello et pour les serveurs \s-1TLS\s0 de ClientHello. .PP Les données d’extension consistent en \fIinlen\fR octets dans le tampon \fIin\fR pour l’extension \fIextension_type\fR. .PP Si \fIparse_cb\fR juge les données d’extension valables, il doit renvoyer \&\fB1\fR. S’il renvoie \fB0\fR ou une valeur négative, une erreur fatale d’initiation de connexion se produit avec un message d’alerte indiqué dans \&\fI*al\fR. .PP Le tampon \fIin\fR est un tampon interne temporaire qui ne sera plus valable après le renvoi du rappel. .SH "NOTES" .IX Header "NOTES" Les paramètres \fIadd_arg\fR et \fIparse_arg\fR peuvent être définis à des valeurs arbitraires transmises aux rappels correspondants. Ils peuvent, par exemple, servir au stockage des données d’extension reçues dans une structure appropriée ou à transmettre les données d’extension à ajouter ou libérer lors de l’ajout de l’extension. .PP Le paramètre \fIext_type\fR correspond au champ \fIextension_type\fR de la \&\s-1RFC 5246 \s0(entre autres). Ce n’est \fBpas\fR un identifiant (\s-1NID\s0). .PP Si la même extension personnalisée est reçue plusieurs fois, une alerte \&\fIdecode_error\fR fatale est envoyée et l’initiation de connexion échoue. Si une extension personnalisée est reçue dans ServerHello qui n’avait pas été envoyée dans ClientHello, une alerte \fIunsupported_extension\fR est envoyée et l’initiation de connexion avorte. Le rappel \fIadd_cb\fR de ServerHello est seulement appelé si l’extension correspondante a été reçue dans ClientHello. Cela est conforme aux spécifications \s-1TLS.\s0 Ce comportement assure que chaque rappel est fait au plus une fois et qu’une application ne puisse envoyer une extension non sollicitée. .SH "VALEURS DE RETOUR" .IX Header "VALEURS DE RETOUR" \&\fBSSL_CTX_add_client_custom_ext\fR() et \fBSSL_CTX_add_server_custom_ext\fR() renvoient \fB1\fR pour un succès et \fB0\fR pour un échec. Un échec peut se produire si un essai est fait d’ajouter plus d’une fois le même \fIext_type\fR, si un essai est fait d’utiliser un type d’extension utilisé en interne par OpenSSL ou si une erreur interne se produit (par exemple un échec d’allocation mémoire). .PP \&\fBSSL_extension_supported\fR() renvoie \fB1\fR si l’extension \fIext_type\fR est gérée en interne par OpenSSL ou autrement \fB0\fR. .SH "TRADUCTION" .IX Header "TRADUCTION" La traduction de cette page de manuel est maintenue par les membres de la liste . Veuillez signaler toute erreur de traduction par un rapport de bogue sur le paquet manpages-fr-extra.