|
@@ -3,9 +3,10 @@
|
|
|
=head1 NAME
|
|
|
|
|
|
EVP_MD_CTX_new, EVP_MD_CTX_reset, EVP_MD_CTX_free, EVP_MD_CTX_copy_ex,
|
|
|
-EVP_MD_CTX_ctrl, EVP_DigestInit_ex, EVP_DigestUpdate, EVP_DigestFinal_ex,
|
|
|
-EVP_DigestInit, EVP_DigestFinal, EVP_MD_CTX_copy, EVP_MD_type,
|
|
|
-EVP_MD_pkey_type, EVP_MD_size, EVP_MD_block_size, EVP_MD_CTX_md, EVP_MD_CTX_size,
|
|
|
+EVP_MD_CTX_ctrl, EVP_DigestInit_ex, EVP_DigestInit, EVP_DigestUpdate,
|
|
|
+EVP_DigestFinal_ex, EVP_DigestFinalXOF, EVP_DigestFinal,
|
|
|
+EVP_MD_CTX_copy, EVP_MD_type, EVP_MD_pkey_type, EVP_MD_size,
|
|
|
+EVP_MD_block_size, EVP_MD_CTX_md, EVP_MD_CTX_size,
|
|
|
EVP_MD_CTX_block_size, EVP_MD_CTX_type, EVP_md_null, EVP_md2, EVP_md5, EVP_sha1,
|
|
|
EVP_sha224, EVP_sha256, EVP_sha384, EVP_sha512, EVP_sha3_224, EVP_sha3_256,
|
|
|
EVP_sha3_384, EVP_sha3_512, EVP_mdc2, EVP_ripemd160, EVP_blake2b512,
|
|
@@ -24,6 +25,7 @@ EVP_get_digestbyobj - EVP digest routines
|
|
|
int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl);
|
|
|
int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, size_t cnt);
|
|
|
int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s);
|
|
|
+ int EVP_DigestFinalXOF(EVP_MD_CTX *ctx, unsigned char *md, size_t len);
|
|
|
|
|
|
int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in);
|
|
|
|
|
@@ -97,6 +99,12 @@ After calling EVP_DigestFinal_ex() no additional calls to EVP_DigestUpdate()
|
|
|
can be made, but EVP_DigestInit_ex() can be called to initialize a new
|
|
|
digest operation.
|
|
|
|
|
|
+EVP_DigestFinalXOF() interfaces to extendable-output functions, XOFs,
|
|
|
+such as SHAKE128 and SHAKE256. It retrieves the digest value from
|
|
|
+B<ctx> and places it in B<len>-sized <B>md. After calling this function
|
|
|
+no additional calls to EVP_DigestUpdate() can be made, but
|
|
|
+EVP_DigestInit_ex() can be called to initialize a new operation.
|
|
|
+
|
|
|
EVP_MD_CTX_copy_ex() 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
|