|  | =pod | 
|  |  | 
|  | =head1 NAME | 
|  |  | 
|  | OpenSSL_add_all_algorithms, OpenSSL_add_all_ciphers, OpenSSL_add_all_digests - | 
|  | add algorithms to internal table | 
|  |  | 
|  | =head1 SYNOPSIS | 
|  |  | 
|  | #include <openssl/evp.h> | 
|  |  | 
|  | void OpenSSL_add_all_algorithms(void); | 
|  | void OpenSSL_add_all_ciphers(void); | 
|  | void OpenSSL_add_all_digests(void); | 
|  |  | 
|  | void EVP_cleanup(void); | 
|  |  | 
|  | =head1 DESCRIPTION | 
|  |  | 
|  | OpenSSL keeps an internal table of digest algorithms and ciphers. It uses | 
|  | this table to lookup ciphers via functions such as EVP_get_cipher_byname(). | 
|  |  | 
|  | OpenSSL_add_all_digests() adds all digest algorithms to the table. | 
|  |  | 
|  | OpenSSL_add_all_algorithms() adds all algorithms to the table (digests and | 
|  | ciphers). | 
|  |  | 
|  | OpenSSL_add_all_ciphers() adds all encryption algorithms to the table including | 
|  | password based encryption algorithms. | 
|  |  | 
|  | EVP_cleanup() removes all ciphers and digests from the table. | 
|  |  | 
|  | =head1 RETURN VALUES | 
|  |  | 
|  | None of the functions return a value. | 
|  |  | 
|  | =head1 NOTES | 
|  |  | 
|  | A typical application will will call OpenSSL_add_all_algorithms() initially and | 
|  | EVP_cleanup() before exiting. | 
|  |  | 
|  | An application does not need to add algorithms to use them explicitly, for example | 
|  | by EVP_sha1(). It just needs to add them if it (or any of the functions it calls) | 
|  | needs to lookup algorithms. | 
|  |  | 
|  | The cipher and digest lookup functions are used in many parts of the library. If | 
|  | the table is not initialized several functions will misbehave and complain they | 
|  | cannot find algorithms. This includes the PEM, PKCS#12, SSL and S/MIME libraries. | 
|  | This is a common query in the OpenSSL mailing lists. | 
|  |  | 
|  | Calling OpenSSL_add_all_algorithms() links in all algorithms: as a result a | 
|  | statically linked executable can be quite large. If this is important it is possible | 
|  | to just add the required ciphers and digests. | 
|  |  | 
|  | =head1 BUGS | 
|  |  | 
|  | Although the functions do not return error codes it is possible for them to fail. | 
|  | This will only happen as a result of a memory allocation failure so this is not | 
|  | too much of a problem in practice. | 
|  |  | 
|  | =head1 SEE ALSO | 
|  |  | 
|  | L<evp(3)|evp(3)>, L<EVP_DigestInit(3)|EVP_DigestInit(3)>, | 
|  | L<EVP_EncryptInit(3)|EVP_EncryptInit(3)> | 
|  |  | 
|  | =cut |