]> git.ipfire.org Git - thirdparty/openssl.git/blame - doc/man3/SSL_CTX_set_cert_verify_callback.pod
Fix referenses in section 3 manuals
[thirdparty/openssl.git] / doc / man3 / SSL_CTX_set_cert_verify_callback.pod
CommitLineData
c4068186
LJ
1=pod
2
3=head1 NAME
4
5SSL_CTX_set_cert_verify_callback - set peer certificate verification procedure
6
7=head1 SYNOPSIS
8
9 #include <openssl/ssl.h>
10
aebb9aac 11 void SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx, int (*callback)(X509_STORE_CTX *, void *), void *arg);
c4068186
LJ
12
13=head1 DESCRIPTION
14
15SSL_CTX_set_cert_verify_callback() sets the verification callback function for
023ec151 16I<ctx>. SSL objects that are created from I<ctx> inherit the setting valid at
9b86974e 17the time when L<SSL_new(3)> is called.
c4068186
LJ
18
19=head1 NOTES
20
21Whenever a certificate is verified during a SSL/TLS handshake, a verification
22function is called. If the application does not explicitly specify a
23verification callback function, the built-in verification function is used.
023ec151 24If a verification callback I<callback> is specified via
c4068186 25SSL_CTX_set_cert_verify_callback(), the supplied callback function is called
023ec151 26instead. By setting I<callback> to NULL, the default behaviour is restored.
c4068186 27
023ec151 28When the verification must be performed, I<callback> will be called with
1bc74519 29the arguments callback(X509_STORE_CTX *x509_store_ctx, void *arg). The
023ec151 30argument I<arg> is specified by the application when setting I<callback>.
c4068186 31
023ec151
BM
32I<callback> should return 1 to indicate verification success and 0 to
33indicate verification failure. If SSL_VERIFY_PEER is set and I<callback>
c4068186
LJ
34returns 0, the handshake will fail. As the verification procedure may
35allow to continue the connection in case of failure (by always returning 1)
36the verification result must be set in any case using the B<error>
023ec151 37member of I<x509_store_ctx> so that the calling application will be informed
1bc74519 38about the detailed result of the verification procedure!
c4068186 39
023ec151 40Within I<x509_store_ctx>, I<callback> has access to the I<verify_callback>
9b86974e 41function set using L<SSL_CTX_set_verify(3)>.
c4068186
LJ
42
43=head1 WARNINGS
44
45Do not mix the verification callback described in this function with the
46B<verify_callback> function called during the verification process. The
9b86974e 47latter is set using the L<SSL_CTX_set_verify(3)>
c4068186
LJ
48family of functions.
49
50Providing a complete verification procedure including certificate purpose
51settings etc is a complex task. The built-in procedure is quite powerful
52and in most cases it should be sufficient to modify its behaviour using
53the B<verify_callback> function.
54
55=head1 BUGS
56
c4068186
LJ
57SSL_CTX_set_cert_verify_callback() does not provide diagnostic information.
58
59=head1 SEE ALSO
60
b97fdb57 61L<ssl(7)>, L<SSL_CTX_set_verify(3)>,
9b86974e
RS
62L<SSL_get_verify_result(3)>,
63L<SSL_CTX_load_verify_locations(3)>
c4068186 64
e2f92610
RS
65=head1 COPYRIGHT
66
67Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
68
69Licensed under the OpenSSL license (the "License"). You may not use
70this file except in compliance with the License. You can obtain a copy
71in the file LICENSE in the source distribution or at
72L<https://www.openssl.org/source/license.html>.
73
74=cut