=item EVP_MD_CTX_new()
-Allocates, initializes and returns a digest context.
+Allocates and returns a digest context.
=item EVP_MD_CTX_reset()
=item EVP_DigestInit_ex()
Sets up digest context B<ctx> to use a digest B<type> from ENGINE B<impl>.
-B<ctx> must be initialized before calling this function. B<type> will typically
-be supplied by a function such as EVP_sha1(). If B<impl> is NULL then the
-default implementation of digest B<type> is used.
+B<type> will typically be supplied by a function such as EVP_sha1(). If
+B<impl> is NULL then the default implementation of digest B<type> is used.
=item EVP_DigestUpdate()
Can be used to copy the message digest state from B<in> to B<out>. This is
useful if large amounts of data are to be hashed which only differ in the last
-few bytes. B<out> must be initialized before calling this function.
+few bytes.
=item EVP_DigestInit()
-Behaves in the same way as EVP_DigestInit_ex() except the passed context B<ctx>
-does not have to be initialized, and it always uses the default digest
-implementation.
+Behaves in the same way as EVP_DigestInit_ex() except it always uses the
+default digest implementation.
=item EVP_DigestFinal()
EVP_EncryptInit(), EVP_DecryptInit() and EVP_CipherInit() behave in a
similar way to EVP_EncryptInit_ex(), EVP_DecryptInit_ex() and
-EVP_CipherInit_ex() except the B<ctx> parameter does not need to be
-initialized and they always use the default cipher implementation.
+EVP_CipherInit_ex() except they always use the default cipher implementation.
EVP_EncryptFinal(), EVP_DecryptFinal() and EVP_CipherFinal() are
identical to EVP_EncryptFinal_ex(), EVP_DecryptFinal_ex() and