159191Skris=pod 259191Skris 359191Skris=head1 NAME 459191Skris 568651SkrisOpenSSL_add_all_algorithms, OpenSSL_add_all_ciphers, OpenSSL_add_all_digests - 668651Skrisadd algorithms to internal table 759191Skris 859191Skris=head1 SYNOPSIS 959191Skris 1059191Skris #include <openssl/evp.h> 1159191Skris 1259191Skris void OpenSSL_add_all_algorithms(void); 1359191Skris void OpenSSL_add_all_ciphers(void); 1459191Skris void OpenSSL_add_all_digests(void); 1559191Skris 1659191Skris void EVP_cleanup(void); 1759191Skris 1859191Skris=head1 DESCRIPTION 1959191Skris 2059191SkrisOpenSSL keeps an internal table of digest algorithms and ciphers. It uses 2159191Skristhis table to lookup ciphers via functions such as EVP_get_cipher_byname(). 2259191Skris 2359191SkrisOpenSSL_add_all_digests() adds all digest algorithms to the table. 2459191Skris 2559191SkrisOpenSSL_add_all_algorithms() adds all algorithms to the table (digests and 2659191Skrisciphers). 2759191Skris 2859191SkrisOpenSSL_add_all_ciphers() adds all encryption algorithms to the table including 2959191Skrispassword based encryption algorithms. 3059191Skris 3159191SkrisEVP_cleanup() removes all ciphers and digests from the table. 3259191Skris 3359191Skris=head1 RETURN VALUES 3459191Skris 3559191SkrisNone of the functions return a value. 3659191Skris 3759191Skris=head1 NOTES 3859191Skris 39127128SnectarA typical application will call OpenSSL_add_all_algorithms() initially and 4059191SkrisEVP_cleanup() before exiting. 4159191Skris 4259191SkrisAn application does not need to add algorithms to use them explicitly, for example 4359191Skrisby EVP_sha1(). It just needs to add them if it (or any of the functions it calls) 4459191Skrisneeds to lookup algorithms. 4559191Skris 4659191SkrisThe cipher and digest lookup functions are used in many parts of the library. If 4768651Skristhe table is not initialized several functions will misbehave and complain they 4859191Skriscannot find algorithms. This includes the PEM, PKCS#12, SSL and S/MIME libraries. 4959191SkrisThis is a common query in the OpenSSL mailing lists. 5059191Skris 5159191SkrisCalling OpenSSL_add_all_algorithms() links in all algorithms: as a result a 5259191Skrisstatically linked executable can be quite large. If this is important it is possible 5359191Skristo just add the required ciphers and digests. 5459191Skris 5559191Skris=head1 BUGS 5659191Skris 5759191SkrisAlthough the functions do not return error codes it is possible for them to fail. 5859191SkrisThis will only happen as a result of a memory allocation failure so this is not 5959191Skristoo much of a problem in practice. 6059191Skris 6159191Skris=head1 SEE ALSO 6259191Skris 6359191SkrisL<evp(3)|evp(3)>, L<EVP_DigestInit(3)|EVP_DigestInit(3)>, 6459191SkrisL<EVP_EncryptInit(3)|EVP_EncryptInit(3)> 6559191Skris 6659191Skris=cut 67