HEX
Server: nginx/1.28.1
System: Linux 10-41-63-61 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64
User: www (1001)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: //usr/local/openssl/man/man3/SSL_set_psk_client_callback.3
.\" -*- mode: troff; coding: utf-8 -*-
.\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43)
.\"
.\" 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
..
.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
.ie n \{\
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    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 >0, 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 "SSL_CTX_set_psk_client_callback 3"
.TH SSL_CTX_set_psk_client_callback 3 2019-12-20 1.0.2u 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 NAME
SSL_CTX_set_psk_client_callback, SSL_set_psk_client_callback \- set PSK client callback
.SH SYNOPSIS
.IX Header "SYNOPSIS"
.Vb 1
\& #include <openssl/ssl.h>
\&
\& void SSL_CTX_set_psk_client_callback(SSL_CTX *ctx,
\&        unsigned int (*callback)(SSL *ssl, const char *hint,
\&        char *identity, unsigned int max_identity_len,
\&        unsigned char *psk, unsigned int max_psk_len));
\& void SSL_set_psk_client_callback(SSL *ssl,
\&        unsigned int (*callback)(SSL *ssl, const char *hint,
\&        char *identity, unsigned int max_identity_len,
\&        unsigned char *psk, unsigned int max_psk_len));
.Ve
.SH DESCRIPTION
.IX Header "DESCRIPTION"
A client application must provide a callback function which is called
when the client is sending the ClientKeyExchange message to the server.
.PP
The purpose of the callback function is to select the PSK identity and
the pre-shared key to use during the connection setup phase.
.PP
The callback is set using functions \fBSSL_CTX_set_psk_client_callback()\fR
or \fBSSL_set_psk_client_callback()\fR. The callback function is given the
connection in parameter \fBssl\fR, a \fBNULL\fR\-terminated PSK identity hint
sent by the server in parameter \fBhint\fR, a buffer \fBidentity\fR of
length \fBmax_identity_len\fR bytes where the the resulting
\&\fBNULL\fR\-terminated identity is to be stored, and a buffer \fBpsk\fR of
length \fBmax_psk_len\fR bytes where the resulting pre-shared key is to
be stored.
.SH NOTES
.IX Header "NOTES"
Note that parameter \fBhint\fR given to the callback may be \fBNULL\fR.
.SH "RETURN VALUES"
.IX Header "RETURN VALUES"
Return values from the client callback are interpreted as follows:
.PP
On success (callback found a PSK identity and a pre-shared key to use)
the length (> 0) of \fBpsk\fR in bytes is returned.
.PP
Otherwise or on errors callback should return 0. In this case
the connection setup fails.