7870fb80e284372ff2cbb2cfac7ae81358818596
[openssl.git] / doc / crypto / crypto.pod
1 =pod
2
3 =head1 NAME
4
5 crypto - OpenSSL cryptographic library
6
7 =head1 DESCRIPTION
8
9 The OpenSSL B<crypto> library implements a wide range of cryptographic
10 algorithms used in various Internet standards. The services provided
11 by this library are used by the OpenSSL implementations of SSL, TLS
12 and S/MIME, and they have also been used to implement SSH, OpenPGP, and
13 other cryptographic standards.
14
15 =head1 OVERVIEW
16
17 B<libcrypto> consists of a number of sub-libraries that implement the
18 individual algorithms.
19
20 The functionality includes symmetric encryption, public key
21 cryptography and key agreement, certificate handling, cryptographic
22 hash functions, cryptographic pseudo-random number generator, and
23 various utilities.
24
25 See the individual manual pages for details.
26
27 =head1 NOTES
28
29 Some of the newer functions follow a naming convention using the numbers
30 B<0> and B<1>. For example the functions:
31
32  int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev);
33  int X509_add1_trust_object(X509 *x, ASN1_OBJECT *obj);
34
35 The B<0> version uses the supplied structure pointer directly
36 in the parent and it will be freed up when the parent is freed.
37 In the above example B<crl> would be freed but B<rev> would not.
38
39 The B<1> function uses a copy of the supplied structure pointer
40 (or in some cases increases its link count) in the parent and
41 so both (B<x> and B<obj> above) should be freed up.
42
43 =head1 SEE ALSO
44
45 L<openssl(1)>, L<ssl(3)>
46
47 =head1 COPYRIGHT
48
49 Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
50
51 Licensed under the OpenSSL license (the "License").  You may not use
52 this file except in compliance with the License.  You can obtain a copy
53 in the file LICENSE in the source distribution or at
54 L<https://www.openssl.org/source/license.html>.
55
56 =cut