1*10e00d17Sschwarze.\" $OpenBSD: SSL_get_ex_new_index.3,v 1.4 2018/03/27 17:35:50 schwarze Exp $ 2d50a83fdSschwarze.\" OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400 3f1a3c524Sschwarze.\" 4d50a83fdSschwarze.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>. 5d50a83fdSschwarze.\" Copyright (c) 2001, 2005 The OpenSSL Project. All rights reserved. 6f1a3c524Sschwarze.\" 7d50a83fdSschwarze.\" Redistribution and use in source and binary forms, with or without 8d50a83fdSschwarze.\" modification, are permitted provided that the following conditions 9d50a83fdSschwarze.\" are met: 10d50a83fdSschwarze.\" 11d50a83fdSschwarze.\" 1. Redistributions of source code must retain the above copyright 12d50a83fdSschwarze.\" notice, this list of conditions and the following disclaimer. 13d50a83fdSschwarze.\" 14d50a83fdSschwarze.\" 2. Redistributions in binary form must reproduce the above copyright 15d50a83fdSschwarze.\" notice, this list of conditions and the following disclaimer in 16d50a83fdSschwarze.\" the documentation and/or other materials provided with the 17d50a83fdSschwarze.\" distribution. 18d50a83fdSschwarze.\" 19d50a83fdSschwarze.\" 3. All advertising materials mentioning features or use of this 20d50a83fdSschwarze.\" software must display the following acknowledgment: 21d50a83fdSschwarze.\" "This product includes software developed by the OpenSSL Project 22d50a83fdSschwarze.\" for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 23d50a83fdSschwarze.\" 24d50a83fdSschwarze.\" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 25d50a83fdSschwarze.\" endorse or promote products derived from this software without 26d50a83fdSschwarze.\" prior written permission. For written permission, please contact 27d50a83fdSschwarze.\" openssl-core@openssl.org. 28d50a83fdSschwarze.\" 29d50a83fdSschwarze.\" 5. Products derived from this software may not be called "OpenSSL" 30d50a83fdSschwarze.\" nor may "OpenSSL" appear in their names without prior written 31d50a83fdSschwarze.\" permission of the OpenSSL Project. 32d50a83fdSschwarze.\" 33d50a83fdSschwarze.\" 6. Redistributions of any form whatsoever must retain the following 34d50a83fdSschwarze.\" acknowledgment: 35d50a83fdSschwarze.\" "This product includes software developed by the OpenSSL Project 36d50a83fdSschwarze.\" for use in the OpenSSL Toolkit (http://www.openssl.org/)" 37d50a83fdSschwarze.\" 38d50a83fdSschwarze.\" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 39d50a83fdSschwarze.\" EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 40d50a83fdSschwarze.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 41d50a83fdSschwarze.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 42d50a83fdSschwarze.\" ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 43d50a83fdSschwarze.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 44d50a83fdSschwarze.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 45d50a83fdSschwarze.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 46d50a83fdSschwarze.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 47d50a83fdSschwarze.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 48d50a83fdSschwarze.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 49d50a83fdSschwarze.\" OF THE POSSIBILITY OF SUCH DAMAGE. 50d50a83fdSschwarze.\" 51*10e00d17Sschwarze.Dd $Mdocdate: March 27 2018 $ 52f1a3c524Sschwarze.Dt SSL_GET_EX_NEW_INDEX 3 53f1a3c524Sschwarze.Os 54f1a3c524Sschwarze.Sh NAME 55f1a3c524Sschwarze.Nm SSL_get_ex_new_index , 56f1a3c524Sschwarze.Nm SSL_set_ex_data , 57f1a3c524Sschwarze.Nm SSL_get_ex_data 58f1a3c524Sschwarze.Nd internal application specific data functions 59f1a3c524Sschwarze.Sh SYNOPSIS 60f1a3c524Sschwarze.In openssl/ssl.h 61f1a3c524Sschwarze.Ft int 62f1a3c524Sschwarze.Fo SSL_get_ex_new_index 63f1a3c524Sschwarze.Fa "long argl" 64f1a3c524Sschwarze.Fa "void *argp" 65f1a3c524Sschwarze.Fa "CRYPTO_EX_new *new_func" 66f1a3c524Sschwarze.Fa "CRYPTO_EX_dup *dup_func" 67f1a3c524Sschwarze.Fa "CRYPTO_EX_free *free_func" 68f1a3c524Sschwarze.Fc 69f1a3c524Sschwarze.Ft int 70f1a3c524Sschwarze.Fn SSL_set_ex_data "SSL *ssl" "int idx" "void *arg" 71f1a3c524Sschwarze.Ft void * 72f1a3c524Sschwarze.Fn SSL_get_ex_data "const SSL *ssl" "int idx" 73f1a3c524Sschwarze.Bd -literal 74f1a3c524Sschwarzetypedef int new_func(void *parent, void *ptr, CRYPTO_EX_DATA *ad, 75f1a3c524Sschwarze int idx, long argl, void *argp); 76f1a3c524Sschwarzetypedef void free_func(void *parent, void *ptr, CRYPTO_EX_DATA *ad, 77f1a3c524Sschwarze int idx, long argl, void *argp); 78f1a3c524Sschwarzetypedef int dup_func(CRYPTO_EX_DATA *to, CRYPTO_EX_DATA *from, void *from_d, 79f1a3c524Sschwarze int idx, long argl, void *argp); 80f1a3c524Sschwarze.Ed 81f1a3c524Sschwarze.Sh DESCRIPTION 82f1a3c524SschwarzeSeveral OpenSSL structures can have application specific data attached to them. 83f1a3c524SschwarzeThese functions are used internally by OpenSSL to manipulate application 84f1a3c524Sschwarzespecific data attached to a specific structure. 85f1a3c524Sschwarze.Pp 86f1a3c524Sschwarze.Fn SSL_get_ex_new_index 87f1a3c524Sschwarzeis used to register a new index for application specific data. 88f1a3c524Sschwarze.Pp 89f1a3c524Sschwarze.Fn SSL_set_ex_data 90f1a3c524Sschwarzeis used to store application data at 91f1a3c524Sschwarze.Fa arg 92f1a3c524Sschwarzefor 93f1a3c524Sschwarze.Fa idx 94f1a3c524Sschwarzeinto the 95f1a3c524Sschwarze.Fa ssl 96f1a3c524Sschwarzeobject. 97f1a3c524Sschwarze.Pp 98f1a3c524Sschwarze.Fn SSL_get_ex_data 99f1a3c524Sschwarzeis used to retrieve the information for 100f1a3c524Sschwarze.Fa idx 101f1a3c524Sschwarzefrom 102f1a3c524Sschwarze.Fa ssl . 103f1a3c524Sschwarze.Pp 104f1a3c524SschwarzeA detailed description for the 105f1a3c524Sschwarze.Fn *_get_ex_new_index 106f1a3c524Sschwarzefunctionality can be found in 107f1a3c524Sschwarze.Xr RSA_get_ex_new_index 3 . 108f1a3c524SschwarzeThe 109f1a3c524Sschwarze.Fn *_get_ex_data 110f1a3c524Sschwarzeand 111f1a3c524Sschwarze.Fn *_set_ex_data 112f1a3c524Sschwarzefunctionality is described in 113f1a3c524Sschwarze.Xr CRYPTO_set_ex_data 3 . 114f1a3c524Sschwarze.Sh EXAMPLES 115f1a3c524SschwarzeAn example of how to use the functionality is included in the example 116f1a3c524Sschwarze.Fn verify_callback 117f1a3c524Sschwarzein 118f1a3c524Sschwarze.Xr SSL_CTX_set_verify 3 . 119f1a3c524Sschwarze.Sh SEE ALSO 120f1a3c524Sschwarze.Xr CRYPTO_set_ex_data 3 , 121f1a3c524Sschwarze.Xr RSA_get_ex_new_index 3 , 122f1a3c524Sschwarze.Xr ssl 3 , 123f1a3c524Sschwarze.Xr SSL_CTX_set_verify 3 12489e35aa1Sschwarze.Sh HISTORY 125*10e00d17SschwarzePrecursor functions 126*10e00d17Sschwarze.Fn SSL_set_app_data 127*10e00d17Sschwarzeand 128*10e00d17Sschwarze.Fn SSL_get_app_data 129*10e00d17Sschwarzefirst appeared in SSLeay 0.6.1. 130*10e00d17Sschwarze.Pp 13189e35aa1Sschwarze.Fn SSL_get_ex_new_index , 13289e35aa1Sschwarze.Fn SSL_set_ex_data , 13389e35aa1Sschwarzeand 13489e35aa1Sschwarze.Fn SSL_get_ex_data 13589e35aa1Sschwarzefirst appeared in SSLeay 0.9.0 and have been available since 13689e35aa1Sschwarze.Ox 2.4 . 137