1e71b7053SJung-uk Kim=pod 2e71b7053SJung-uk Kim 3e71b7053SJung-uk Kim=head1 NAME 4e71b7053SJung-uk Kim 5e71b7053SJung-uk Kimssl - OpenSSL SSL/TLS library 6e71b7053SJung-uk Kim 7e71b7053SJung-uk Kim=head1 SYNOPSIS 8e71b7053SJung-uk Kim 9e71b7053SJung-uk KimSee the individual manual pages for details. 10e71b7053SJung-uk Kim 11e71b7053SJung-uk Kim=head1 DESCRIPTION 12e71b7053SJung-uk Kim 13*b077aed3SPierre ProncheryThe OpenSSL B<ssl> library implements several versions of the 14*b077aed3SPierre ProncherySecure Sockets Layer, Transport Layer Security, and Datagram Transport Layer 15*b077aed3SPierre ProncherySecurity protocols. 16*b077aed3SPierre ProncheryThis page gives a brief overview of the extensive API and data types 17*b077aed3SPierre Proncheryprovided by the library. 18e71b7053SJung-uk Kim 19e71b7053SJung-uk KimAn B<SSL_CTX> object is created as a framework to establish 20e71b7053SJung-uk KimTLS/SSL enabled connections (see L<SSL_CTX_new(3)>). 21e71b7053SJung-uk KimVarious options regarding certificates, algorithms etc. can be set 22e71b7053SJung-uk Kimin this object. 23e71b7053SJung-uk Kim 24e71b7053SJung-uk KimWhen a network connection has been created, it can be assigned to an 25e71b7053SJung-uk KimB<SSL> object. After the B<SSL> object has been created using 26e71b7053SJung-uk KimL<SSL_new(3)>, L<SSL_set_fd(3)> or 27e71b7053SJung-uk KimL<SSL_set_bio(3)> can be used to associate the network 28e71b7053SJung-uk Kimconnection with the object. 29e71b7053SJung-uk Kim 30e71b7053SJung-uk KimWhen the TLS/SSL handshake is performed using 31e71b7053SJung-uk KimL<SSL_accept(3)> or L<SSL_connect(3)> 32e71b7053SJung-uk Kimrespectively. 33e71b7053SJung-uk KimL<SSL_read_ex(3)>, L<SSL_read(3)>, L<SSL_write_ex(3)> and L<SSL_write(3)> are 34e71b7053SJung-uk Kimused to read and write data on the TLS/SSL connection. 35e71b7053SJung-uk KimL<SSL_shutdown(3)> can be used to shut down the 36e71b7053SJung-uk KimTLS/SSL connection. 37e71b7053SJung-uk Kim 38e71b7053SJung-uk Kim=head1 DATA STRUCTURES 39e71b7053SJung-uk Kim 40*b077aed3SPierre ProncheryHere are some of the main data structures in the library. 41e71b7053SJung-uk Kim 42e71b7053SJung-uk Kim=over 4 43e71b7053SJung-uk Kim 44e71b7053SJung-uk Kim=item B<SSL_METHOD> (SSL Method) 45e71b7053SJung-uk Kim 46e71b7053SJung-uk KimThis is a dispatch structure describing the internal B<ssl> library 47e71b7053SJung-uk Kimmethods/functions which implement the various protocol versions (SSLv3 48e71b7053SJung-uk KimTLSv1, ...). It's needed to create an B<SSL_CTX>. 49e71b7053SJung-uk Kim 50e71b7053SJung-uk Kim=item B<SSL_CIPHER> (SSL Cipher) 51e71b7053SJung-uk Kim 52e71b7053SJung-uk KimThis structure holds the algorithm information for a particular cipher which 53e71b7053SJung-uk Kimare a core part of the SSL/TLS protocol. The available ciphers are configured 54e71b7053SJung-uk Kimon a B<SSL_CTX> basis and the actual ones used are then part of the 55e71b7053SJung-uk KimB<SSL_SESSION>. 56e71b7053SJung-uk Kim 57e71b7053SJung-uk Kim=item B<SSL_CTX> (SSL Context) 58e71b7053SJung-uk Kim 59e71b7053SJung-uk KimThis is the global context structure which is created by a server or client 60e71b7053SJung-uk Kimonce per program life-time and which holds mainly default values for the 61e71b7053SJung-uk KimB<SSL> structures which are later created for the connections. 62e71b7053SJung-uk Kim 63e71b7053SJung-uk Kim=item B<SSL_SESSION> (SSL Session) 64e71b7053SJung-uk Kim 65e71b7053SJung-uk KimThis is a structure containing the current TLS/SSL session details for a 66e71b7053SJung-uk Kimconnection: B<SSL_CIPHER>s, client and server certificates, keys, etc. 67e71b7053SJung-uk Kim 68e71b7053SJung-uk Kim=item B<SSL> (SSL Connection) 69e71b7053SJung-uk Kim 70e71b7053SJung-uk KimThis is the main SSL/TLS structure which is created by a server or client per 71e71b7053SJung-uk Kimestablished connection. This actually is the core structure in the SSL API. 72e71b7053SJung-uk KimAt run-time the application usually deals with this structure which has 73e71b7053SJung-uk Kimlinks to mostly all other structures. 74e71b7053SJung-uk Kim 75e71b7053SJung-uk Kim=back 76e71b7053SJung-uk Kim 77e71b7053SJung-uk Kim=head1 HEADER FILES 78e71b7053SJung-uk Kim 79e71b7053SJung-uk KimCurrently the OpenSSL B<ssl> library provides the following C header files 80e71b7053SJung-uk Kimcontaining the prototypes for the data structures and functions: 81e71b7053SJung-uk Kim 82e71b7053SJung-uk Kim=over 4 83e71b7053SJung-uk Kim 84*b077aed3SPierre Pronchery=item F<< <openssl/ssl.h> >> 85e71b7053SJung-uk Kim 86e71b7053SJung-uk KimThis is the common header file for the SSL/TLS API. Include it into your 87e71b7053SJung-uk Kimprogram to make the API of the B<ssl> library available. It internally 88e71b7053SJung-uk Kimincludes both more private SSL headers and headers from the B<crypto> library. 89e71b7053SJung-uk KimWhenever you need hard-core details on the internals of the SSL API, look 90e71b7053SJung-uk Kiminside this header file. 91*b077aed3SPierre ProncheryThis file also includes the others listed below. 92e71b7053SJung-uk Kim 93*b077aed3SPierre Pronchery=item F<< <openssl/ssl2.h> >> 94e71b7053SJung-uk Kim 95e71b7053SJung-uk KimUnused. Present for backwards compatibility only. 96e71b7053SJung-uk Kim 97*b077aed3SPierre Pronchery=item F<< <openssl/ssl3.h> >> 98e71b7053SJung-uk Kim 99e71b7053SJung-uk KimThis is the sub header file dealing with the SSLv3 protocol only. 100e71b7053SJung-uk Kim 101*b077aed3SPierre Pronchery=item F<< <openssl/tls1.h> >> 102e71b7053SJung-uk Kim 103e71b7053SJung-uk KimThis is the sub header file dealing with the TLSv1 protocol only. 104e71b7053SJung-uk Kim 105e71b7053SJung-uk Kim=back 106e71b7053SJung-uk Kim 107e71b7053SJung-uk Kim=head1 COPYRIGHT 108e71b7053SJung-uk Kim 109e71b7053SJung-uk KimCopyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. 110e71b7053SJung-uk Kim 111*b077aed3SPierre ProncheryLicensed under the Apache License 2.0 (the "License"). You may not use 112e71b7053SJung-uk Kimthis file except in compliance with the License. You can obtain a copy 113e71b7053SJung-uk Kimin the file LICENSE in the source distribution or at 114e71b7053SJung-uk KimL<https://www.openssl.org/source/license.html>. 115e71b7053SJung-uk Kim 116e71b7053SJung-uk Kim=cut 117