2000-09-21 00:55:26 +08:00
|
|
|
=pod
|
|
|
|
|
|
|
|
=head1 NAME
|
|
|
|
|
2019-04-11 22:47:13 +08:00
|
|
|
SSL_get_peer_certificate,
|
|
|
|
SSL_get0_peer_certificate,
|
|
|
|
SSL_get1_peer_certificate - get the X509 certificate of the peer
|
2000-09-21 00:55:26 +08:00
|
|
|
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
|
|
|
|
#include <openssl/ssl.h>
|
|
|
|
|
2005-03-30 19:50:14 +08:00
|
|
|
X509 *SSL_get_peer_certificate(const SSL *ssl);
|
2019-04-11 22:47:13 +08:00
|
|
|
X509 *SSL_get0_peer_certificate(const SSL *ssl);
|
|
|
|
X509 *SSL_get1_peer_certificate(const SSL *ssl);
|
2000-09-21 00:55:26 +08:00
|
|
|
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
|
2019-04-11 22:47:13 +08:00
|
|
|
These functions return a pointer to the X509 certificate the
|
2000-09-21 00:55:26 +08:00
|
|
|
peer presented. If the peer did not present a certificate, NULL is returned.
|
|
|
|
|
|
|
|
=head1 NOTES
|
|
|
|
|
2001-04-17 21:18:56 +08:00
|
|
|
Due to the protocol definition, a TLS/SSL server will always send a
|
|
|
|
certificate, if present. A client will only send a certificate when
|
2001-09-07 14:13:40 +08:00
|
|
|
explicitly requested to do so by the server (see
|
2015-08-18 03:21:33 +08:00
|
|
|
L<SSL_CTX_set_verify(3)>). If an anonymous cipher
|
2001-04-17 21:18:56 +08:00
|
|
|
is used, no certificates are sent.
|
|
|
|
|
2000-09-21 00:55:26 +08:00
|
|
|
That a certificate is returned does not indicate information about the
|
2015-08-18 03:21:33 +08:00
|
|
|
verification state, use L<SSL_get_verify_result(3)>
|
2000-09-21 00:55:26 +08:00
|
|
|
to check the verification state.
|
|
|
|
|
2019-04-11 22:47:13 +08:00
|
|
|
The reference count of the X509 object returned by SSL_get1_peer_certificate()
|
|
|
|
is incremented by one, so that it will not be destroyed when the session
|
|
|
|
containing the peer certificate is freed. The X509 object must be explicitly
|
|
|
|
freed using X509_free().
|
|
|
|
|
|
|
|
The reference count of the X509 object returned by SSL_get0_peer_certificate()
|
|
|
|
is not incremented, and must not be freed.
|
|
|
|
|
|
|
|
SSL_get_peer_certificate() is an alias of SSL_get1_peer_certificate().
|
2000-09-21 00:55:26 +08:00
|
|
|
|
|
|
|
=head1 RETURN VALUES
|
|
|
|
|
|
|
|
The following return values can occur:
|
|
|
|
|
|
|
|
=over 4
|
|
|
|
|
|
|
|
=item NULL
|
|
|
|
|
|
|
|
No certificate was presented by the peer or no connection was established.
|
|
|
|
|
|
|
|
=item Pointer to an X509 certificate
|
|
|
|
|
|
|
|
The return value points to the certificate presented by the peer.
|
|
|
|
|
|
|
|
=back
|
|
|
|
|
|
|
|
=head1 SEE ALSO
|
|
|
|
|
2016-11-11 16:33:09 +08:00
|
|
|
L<ssl(7)>, L<SSL_get_verify_result(3)>,
|
2015-08-18 03:21:33 +08:00
|
|
|
L<SSL_CTX_set_verify(3)>
|
2000-09-21 00:55:26 +08:00
|
|
|
|
2019-04-11 22:47:13 +08:00
|
|
|
=head1 HISTORY
|
|
|
|
|
|
|
|
SSL_get0_peer_certificate() and SSL_get1_peer_certificate() were added in 3.0.0.
|
|
|
|
SSL_get_peer_certificate() was deprecated in 3.0.0.
|
|
|
|
|
2016-05-18 23:44:05 +08:00
|
|
|
=head1 COPYRIGHT
|
|
|
|
|
2019-04-11 22:47:13 +08:00
|
|
|
Copyright 2000-2020 The OpenSSL Project Authors. All Rights Reserved.
|
2016-05-18 23:44:05 +08:00
|
|
|
|
2018-12-06 21:04:44 +08:00
|
|
|
Licensed under the Apache License 2.0 (the "License"). You may not use
|
2016-05-18 23:44:05 +08:00
|
|
|
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>.
|
|
|
|
|
|
|
|
=cut
|