git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix LibreSSL build
[exim.git]
/
src
/
src
/
hash.h
diff --git
a/src/src/hash.h
b/src/src/hash.h
index f1ebac467dc9c121d80a5fec84209d881dd5638e..588325baf29c2e7f960072a411cd485ba95f0945 100644
(file)
--- a/
src/src/hash.h
+++ b/
src/src/hash.h
@@
-1,7
+1,6
@@
/*
* Exim - an Internet mail transport agent
/*
* Exim - an Internet mail transport agent
- *
- * Copyright (C) 2016 Exim maintainers
+ * Copyright (c) The Exim Maintainers 1995 - 2022
*
* Hash interface functions
*/
*
* Hash interface functions
*/
@@
-12,7
+11,6
@@
#define HASH_H
#include "sha_ver.h"
#define HASH_H
#include "sha_ver.h"
-#include "blob.h"
#ifdef SHA_OPENSSL
# include <openssl/sha.h>
#ifdef SHA_OPENSSL
# include <openssl/sha.h>
@@
-30,9
+28,18
@@
/* Hash context for the exim_sha_* routines */
typedef enum hashmethod {
/* Hash context for the exim_sha_* routines */
typedef enum hashmethod {
+ HASH_BADTYPE,
+ HASH_NULL,
HASH_SHA1,
HASH_SHA1,
- HASH_SHA256,
- HASH_SHA3
+
+ HASH_SHA2_256,
+ HASH_SHA2_384,
+ HASH_SHA2_512,
+
+ HASH_SHA3_224,
+ HASH_SHA3_256,
+ HASH_SHA3_384,
+ HASH_SHA3_512,
} hashmethod;
typedef struct {
} hashmethod;
typedef struct {
@@
-42,7
+49,11
@@
typedef struct {
#ifdef SHA_OPENSSL
union {
SHA_CTX sha1; /* SHA1 block */
#ifdef SHA_OPENSSL
union {
SHA_CTX sha1; /* SHA1 block */
- SHA256_CTX sha2; /* SHA256 block */
+ SHA256_CTX sha2_256; /* SHA256 or 224 block */
+ SHA512_CTX sha2_512; /* SHA512 or 384 block */
+#ifdef EXIM_HAVE_SHA3
+ EVP_MD_CTX * mctx; /* SHA3 block */
+#endif
} u;
#elif defined(SHA_GNUTLS)
} u;
#elif defined(SHA_GNUTLS)
@@
-63,10
+74,10
@@
typedef struct {
} hctx;
} hctx;
-extern
void
exim_sha_init(hctx *, hashmethod);
+extern
BOOL
exim_sha_init(hctx *, hashmethod);
extern void exim_sha_update(hctx *, const uschar *a, int);
extern void exim_sha_update(hctx *, const uschar *a, int);
+extern void exim_sha_update_string(hctx *, const uschar *a);
extern void exim_sha_finish(hctx *, blob *);
extern void exim_sha_finish(hctx *, blob *);
-extern int exim_sha_hashlen(hctx *);
#endif
/* End of File */
#endif
/* End of File */