summaryrefslogtreecommitdiffstats
path: root/lib/libcrypto/man/OpenSSL_add_all_algorithms.3
diff options
context:
space:
mode:
authorschwarze <schwarze@openbsd.org>2016-11-03 12:21:50 +0000
committerschwarze <schwarze@openbsd.org>2016-11-03 12:21:50 +0000
commitd18d18159f8ec018fc55b5ad8038427970fcea13 (patch)
tree57cf495e75e0d267f2f9d12d704b3a2d8a6bd8a5 /lib/libcrypto/man/OpenSSL_add_all_algorithms.3
parentconvert remaining ASN1 object manuals from pod to mdoc (diff)
downloadwireguard-openbsd-d18d18159f8ec018fc55b5ad8038427970fcea13.tar.xz
wireguard-openbsd-d18d18159f8ec018fc55b5ad8038427970fcea13.zip
convert configuration manuals from pod to mdoc
Diffstat (limited to 'lib/libcrypto/man/OpenSSL_add_all_algorithms.3')
-rw-r--r--lib/libcrypto/man/OpenSSL_add_all_algorithms.371
1 files changed, 71 insertions, 0 deletions
diff --git a/lib/libcrypto/man/OpenSSL_add_all_algorithms.3 b/lib/libcrypto/man/OpenSSL_add_all_algorithms.3
new file mode 100644
index 00000000000..b6e93a939e6
--- /dev/null
+++ b/lib/libcrypto/man/OpenSSL_add_all_algorithms.3
@@ -0,0 +1,71 @@
+.Dd $Mdocdate: November 3 2016 $
+.Dt OPENSSL_ADD_ALL_ALGORITHMS 3
+.Os
+.Sh NAME
+.Nm OpenSSL_add_all_algorithms ,
+.Nm OpenSSL_add_all_ciphers ,
+.Nm OpenSSL_add_all_digests ,
+.Nm EVP_cleanup
+.Nd add algorithms to internal table
+.Sh SYNOPSIS
+.In openssl/evp.h
+.Ft void
+.Fn OpenSSL_add_all_algorithms void
+.Ft void
+.Fn OpenSSL_add_all_ciphers void
+.Ft void
+.Fn OpenSSL_add_all_digests void
+.Ft void
+.Fn EVP_cleanup void
+.Sh DESCRIPTION
+OpenSSL keeps an internal table of digest algorithms and ciphers.
+It uses this table to lookup ciphers via functions such as
+.Xr EVP_get_cipherbyname 3 .
+.Pp
+.Fn OpenSSL_add_all_algorithms
+adds all algorithms to the table (digests and ciphers).
+.Pp
+.Fn OpenSSL_add_all_digests
+adds all digest algorithms to the table.
+.Pp
+.Fn OpenSSL_add_all_ciphers
+adds all encryption algorithms to the table including password based
+encryption algorithms.
+.Pp
+.Fn EVP_cleanup
+removes all ciphers and digests from the table.
+.Pp
+A typical application will call
+.Fn OpenSSL_add_all_algorithms
+initially and
+.Fn EVP_cleanup
+before exiting.
+.Pp
+An application does not need to add algorithms to use them explicitly,
+for example by
+.Xr EVP_sha1 3 .
+It just needs to add them if it (or any of the functions it calls) needs
+to lookup algorithms.
+.Pp
+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.
+.Pp
+Calling
+.Fn 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.
+.Sh SEE ALSO
+.Xr evp 3 ,
+.Xr EVP_DigestInit 3 ,
+.Xr EVP_EncryptInit 3
+.Sh 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.