diff options
author | Andy Polyakov <appro@openssl.org> | 2017-08-10 22:39:40 +0200 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2017-08-12 12:20:06 +0200 |
commit | cd8d1456c97ad17fb147f4fdcbb5ba8c983b8bb8 (patch) | |
tree | 44b5612ac04d4bae41080a982bc14623259f5744 /include | |
parent | bbe9c3d51afa33d883abed3700d33c256afff46b (diff) |
Add EVP_DigestFinalXOF, interface to extendable-output functions, XOFs.
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/4137)
Diffstat (limited to 'include')
-rw-r--r-- | include/openssl/evp.h | 6 | ||||
-rw-r--r-- | include/openssl/evperr.h | 2 |
2 files changed, 8 insertions, 0 deletions
diff --git a/include/openssl/evp.h b/include/openssl/evp.h index dd02077e05..e472ea2cba 100644 --- a/include/openssl/evp.h +++ b/include/openssl/evp.h @@ -109,6 +109,9 @@ int (*EVP_MD_meth_get_ctrl(const EVP_MD *md))(EVP_MD_CTX *ctx, int cmd, /* digest can only handle a single block */ # define EVP_MD_FLAG_ONESHOT 0x0001 +/* digest is extensible-output function, XOF */ +# define EVP_MD_FLAG_XOF 0x0002 + /* DigestAlgorithmIdentifier flags... */ # define EVP_MD_FLAG_DIGALGID_MASK 0x0018 @@ -132,6 +135,7 @@ int (*EVP_MD_meth_get_ctrl(const EVP_MD *md))(EVP_MD_CTX *ctx, int cmd, # define EVP_MD_CTRL_DIGALGID 0x1 # define EVP_MD_CTRL_MICALG 0x2 +# define EVP_MD_CTRL_XOF_LEN 0x3 /* Minimum Algorithm specific ctrl value */ @@ -546,6 +550,8 @@ __owur int EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in); __owur int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); __owur int EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s); +__owur int EVP_DigestFinalXOF(EVP_MD_CTX *ctx, unsigned char *md, + size_t len); int EVP_read_pw_string(char *buf, int length, const char *prompt, int verify); int EVP_read_pw_string_min(char *buf, int minlen, int maxlen, diff --git a/include/openssl/evperr.h b/include/openssl/evperr.h index 334d84e625..750d68f9b0 100644 --- a/include/openssl/evperr.h +++ b/include/openssl/evperr.h @@ -40,6 +40,7 @@ int ERR_load_EVP_strings(void); # define EVP_F_EVP_CIPHER_CTX_SET_KEY_LENGTH 122 # define EVP_F_EVP_DECRYPTFINAL_EX 101 # define EVP_F_EVP_DECRYPTUPDATE 166 +# define EVP_F_EVP_DIGESTFINALXOF 174 # define EVP_F_EVP_DIGESTINIT_EX 128 # define EVP_F_EVP_ENCRYPTFINAL_EX 127 # define EVP_F_EVP_ENCRYPTUPDATE 167 @@ -136,6 +137,7 @@ int ERR_load_EVP_strings(void); # define EVP_R_MESSAGE_DIGEST_IS_NULL 159 # define EVP_R_METHOD_NOT_SUPPORTED 144 # define EVP_R_MISSING_PARAMETERS 103 +# define EVP_R_NOT_XOF_OR_INVALID_LENGTH 178 # define EVP_R_NO_CIPHER_SET 131 # define EVP_R_NO_DEFAULT_DIGEST 158 # define EVP_R_NO_DIGEST_SET 139 |