summaryrefslogtreecommitdiff
path: root/doc/ssl/SSL_library_init.pod
blob: eed526e47efec90a3f035b1be2168e4730e5c587 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
=pod

=head1 NAME

SSL_library_init, OpenSSL_add_ssl_algorithms, SSLeay_add_ssl_algorithms
- initialize SSL library by registering algorithms

=head1 SYNOPSIS

 #include <openssl/ssl.h>

 int SSL_library_init(void);
 #define OpenSSL_add_ssl_algorithms()    SSL_library_init()
 #define SSLeay_add_ssl_algorithms()     SSL_library_init()

=head1 DESCRIPTION

SSL_library_init() registers the available ciphers and digests.

OpenSSL_add_ssl_algorithms() and SSLeay_add_ssl_algorithms() are synonyms
for SSL_library_init().

=head1 NOTES

SSL_library_init() must be called before any other action takes place.
SSL_library_init() is not reentrant. 

=head1 WARNING

SSL_library_init() only registers ciphers. Another important initialization
is the seeding of the PRNG (Pseudo Random Number Generator), which has to
be performed separately.

=head1 EXAMPLES

A typical TLS/SSL application will start with the library initialization,
will provide readable error messages and will seed the PRNG.

 SSL_load_error_strings();                /* readable error messages */
 SSL_library_init();                      /* initialize library */
 actions_to_seed_PRNG(); 

=head1 RETURN VALUES

SSL_library_init() always returns "1", so it is safe to discard the return
value.

=head1 SEE ALSO

L<ssl(3)|ssl(3)>, L<SSL_load_error_strings(3)|SSL_load_error_strings(3)>,
L<RAND_add(3)|RAND_add(3)>

=cut