159191Skris=pod 259191Skris 359191Skris=head1 NAME 459191Skris 559191Skriscrypto - OpenSSL cryptographic library 659191Skris 759191Skris=head1 SYNOPSIS 859191Skris 959191Skris=head1 DESCRIPTION 1059191Skris 1159191SkrisThe OpenSSL B<crypto> library implements a wide range of cryptographic 1259191Skrisalgorithms used in various Internet standards. The services provided 1359191Skrisby this library are used by the OpenSSL implementations of SSL, TLS 1459191Skrisand S/MIME, and they have also been used to implement SSH, OpenPGP, and 1559191Skrisother cryptographic standards. 1659191Skris 1759191Skris=head1 OVERVIEW 1859191Skris 1959191SkrisB<libcrypto> consists of a number of sub-libraries that implement the 2059191Skrisindividual algorithms. 2159191Skris 2259191SkrisThe functionality includes symmetric encryption, public key 2359191Skriscryptography and key agreement, certificate handling, cryptographic 2459191Skrishash functions and a cryptographic pseudo-random number generator. 2559191Skris 2659191Skris=over 4 2759191Skris 2859191Skris=item SYMMETRIC CIPHERS 2959191Skris 3059191SkrisL<blowfish(3)|blowfish(3)>, L<cast(3)|cast(3)>, L<des(3)|des(3)>, 3159191SkrisL<idea(3)|idea(3)>, L<rc2(3)|rc2(3)>, L<rc4(3)|rc4(3)>, L<rc5(3)|rc5(3)> 3259191Skris 3359191Skris=item PUBLIC KEY CRYPTOGRAPHY AND KEY AGREEMENT 3459191Skris 3559191SkrisL<dsa(3)|dsa(3)>, L<dh(3)|dh(3)>, L<rsa(3)|rsa(3)> 3659191Skris 3759191Skris=item CERTIFICATES 3859191Skris 3959191SkrisL<x509(3)|x509(3)>, L<x509v3(3)|x509v3(3)> 4059191Skris 4159191Skris=item AUTHENTICATION CODES, HASH FUNCTIONS 4259191Skris 4368651SkrisL<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>, L<md4(3)|md4(3)>, 4468651SkrisL<md5(3)|md5(3)>, L<mdc2(3)|mdc2(3)>, L<ripemd(3)|ripemd(3)>, 4568651SkrisL<sha(3)|sha(3)> 4659191Skris 4759191Skris=item AUXILIARY FUNCTIONS 4859191Skris 49100928SnectarL<err(3)|err(3)>, L<threads(3)|threads(3)>, L<rand(3)|rand(3)>, 50100928SnectarL<OPENSSL_VERSION_NUMBER(3)|OPENSSL_VERSION_NUMBER(3)> 5159191Skris 5259191Skris=item INPUT/OUTPUT, DATA ENCODING 5359191Skris 5459191SkrisL<asn1(3)|asn1(3)>, L<bio(3)|bio(3)>, L<evp(3)|evp(3)>, L<pem(3)|pem(3)>, 5559191SkrisL<pkcs7(3)|pkcs7(3)>, L<pkcs12(3)|pkcs12(3)> 5659191Skris 5759191Skris=item INTERNAL FUNCTIONS 5859191Skris 5959191SkrisL<bn(3)|bn(3)>, L<buffer(3)|buffer(3)>, L<lhash(3)|lhash(3)>, 6059191SkrisL<objects(3)|objects(3)>, L<stack(3)|stack(3)>, 6159191SkrisL<txt_db(3)|txt_db(3)> 6259191Skris 6359191Skris=back 6459191Skris 65109998Smarkm=head1 NOTES 66109998Smarkm 67109998SmarkmSome of the newer functions follow a naming convention using the numbers 68109998SmarkmB<0> and B<1>. For example the functions: 69109998Smarkm 70109998Smarkm int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev); 71109998Smarkm int X509_add1_trust_object(X509 *x, ASN1_OBJECT *obj); 72109998Smarkm 73109998SmarkmThe B<0> version uses the supplied structure pointer directly 74109998Smarkmin the parent and it will be freed up when the parent is freed. 75109998SmarkmIn the above example B<crl> would be freed but B<rev> would not. 76109998Smarkm 77109998SmarkmThe B<1> function uses a copy of the supplied structure pointer 78109998Smarkm(or in some cases increases its link count) in the parent and 79109998Smarkmso both (B<x> and B<obj> above) should be freed up. 80109998Smarkm 8159191Skris=head1 SEE ALSO 8259191Skris 8359191SkrisL<openssl(1)|openssl(1)>, L<ssl(3)|ssl(3)> 8459191Skris 8559191Skris=cut 86