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