|  | =pod | 
|  |  | 
|  | =head1 NAME | 
|  |  | 
|  | SSL_CTX_set_psk_client_callback, SSL_set_psk_client_callback - set PSK client callback | 
|  |  | 
|  | =head1 SYNOPSIS | 
|  |  | 
|  | #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)); | 
|  |  | 
|  |  | 
|  | =head1 DESCRIPTION | 
|  |  | 
|  | A client application must provide a callback function which is called | 
|  | when the client is sending the ClientKeyExchange message to the server. | 
|  |  | 
|  | The purpose of the callback function is to select the PSK identity and | 
|  | the pre-shared key to use during the connection setup phase. | 
|  |  | 
|  | The callback is set using functions SSL_CTX_set_psk_client_callback() | 
|  | or SSL_set_psk_client_callback(). The callback function is given the | 
|  | connection in parameter B<ssl>, a B<NULL>-terminated PSK identity hint | 
|  | sent by the server in parameter B<hint>, a buffer B<identity> of | 
|  | length B<max_identity_len> bytes where the resulting | 
|  | B<NULL>-terminated identity is to be stored, and a buffer B<psk> of | 
|  | length B<max_psk_len> bytes where the resulting pre-shared key is to | 
|  | be stored. | 
|  |  | 
|  | =head1 NOTES | 
|  |  | 
|  | Note that parameter B<hint> given to the callback may be B<NULL>. | 
|  |  | 
|  | =head1 RETURN VALUES | 
|  |  | 
|  | Return values from the client callback are interpreted as follows: | 
|  |  | 
|  | On success (callback found a PSK identity and a pre-shared key to use) | 
|  | the length (> 0) of B<psk> in bytes is returned. | 
|  |  | 
|  | Otherwise or on errors callback should return 0. In this case | 
|  | the connection setup fails. | 
|  |  | 
|  | =head1 COPYRIGHT | 
|  |  | 
|  | Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved. | 
|  |  | 
|  | Licensed under the OpenSSL license (the "License").  You may not use | 
|  | this file except in compliance with the License.  You can obtain a copy | 
|  | in the file LICENSE in the source distribution or at | 
|  | L<https://www.openssl.org/source/license.html>. | 
|  |  | 
|  | Copyright 2005 Nokia. | 
|  |  | 
|  | =cut |