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
DKIM: fix $dkim_key_length in verify
[exim.git]
/
src
/
src
/
pdkim
/
signing.h
diff --git
a/src/src/pdkim/signing.h
b/src/src/pdkim/signing.h
index abf25598800f8ad7afd8dd36a08e713367fbb91e..6ecde7537f3d491c958f04ce9c22b2322125a3f7 100644
(file)
--- a/
src/src/pdkim/signing.h
+++ b/
src/src/pdkim/signing.h
@@
-1,7
+1,7
@@
/*
* PDKIM - a RFC4871 (DKIM) implementation
*
/*
* PDKIM - a RFC4871 (DKIM) implementation
*
- * Copyright (C)
2016
Exim maintainers
+ * Copyright (C)
1995 - 2018
Exim maintainers
*
* RSA signing/verification interface
*/
*
* RSA signing/verification interface
*/
@@
-19,39
+19,53
@@
#elif defined(SIGN_GNUTLS)
# include <gnutls/gnutls.h>
# include <gnutls/x509.h>
#elif defined(SIGN_GNUTLS)
# include <gnutls/gnutls.h>
# include <gnutls/x509.h>
-#
include <gnutls/abstract.h>
+# include <gnutls/abstract.h>
#elif defined(SIGN_GCRYPT)
#elif defined(SIGN_GCRYPT)
-#
include <gcrypt.h>
-#
include <libtasn1.h>
+# include <gcrypt.h>
+# include <libtasn1.h>
#endif
#include "../blob.h"
#endif
#include "../blob.h"
+typedef enum {
+ KEYTYPE_RSA,
+ KEYTYPE_ED25519
+} keytype;
+
+typedef enum {
+ KEYFMT_DER, /* an asn.1 structure */
+ KEYFMT_ED25519_BARE /* just the key */
+} keyformat;
+
#ifdef SIGN_OPENSSL
typedef struct {
#ifdef SIGN_OPENSSL
typedef struct {
- EVP_PKEY * key;
+ keytype keytype;
+ EVP_PKEY * key;
} es_ctx;
typedef struct {
} es_ctx;
typedef struct {
- EVP_PKEY * key;
+ keytype keytype;
+ EVP_PKEY * key;
} ev_ctx;
#elif defined(SIGN_GNUTLS)
typedef struct {
} ev_ctx;
#elif defined(SIGN_GNUTLS)
typedef struct {
- gnutls_x509_privkey_t key;
+ keytype keytype;
+ gnutls_privkey_t key;
} es_ctx;
typedef struct {
} es_ctx;
typedef struct {
+ keytype keytype;
gnutls_pubkey_t key;
} ev_ctx;
#elif defined(SIGN_GCRYPT)
typedef struct {
gnutls_pubkey_t key;
} ev_ctx;
#elif defined(SIGN_GCRYPT)
typedef struct {
-
int
keytype;
+
keytype
keytype;
gcry_mpi_t n;
gcry_mpi_t e;
gcry_mpi_t d;
gcry_mpi_t n;
gcry_mpi_t e;
gcry_mpi_t d;
@@
-63,7
+77,7
@@
typedef struct {
} es_ctx;
typedef struct {
} es_ctx;
typedef struct {
-
int
keytype;
+
keytype
keytype;
gcry_mpi_t n;
gcry_mpi_t e;
} ev_ctx;
gcry_mpi_t n;
gcry_mpi_t e;
} ev_ctx;
@@
-72,11
+86,11
@@
typedef struct {
extern void exim_dkim_init(void);
extern void exim_dkim_init(void);
-extern
blob * exim_dkim_data_append(blob *, int
*, uschar *);
+extern
gstring * exim_dkim_data_append(gstring
*, uschar *);
-extern const uschar * exim_dkim_signing_init(uschar *, es_ctx *);
+extern const uschar * exim_dkim_signing_init(
const
uschar *, es_ctx *);
extern const uschar * exim_dkim_sign(es_ctx *, hashmethod, blob *, blob *);
extern const uschar * exim_dkim_sign(es_ctx *, hashmethod, blob *, blob *);
-extern const uschar * exim_dkim_verify_init(blob *,
ev_ctx
*);
+extern const uschar * exim_dkim_verify_init(blob *,
keyformat, ev_ctx *, unsigned
*);
extern const uschar * exim_dkim_verify(ev_ctx *, hashmethod, blob *, blob *);
#endif /*DISABLE_DKIM*/
extern const uschar * exim_dkim_verify(ev_ctx *, hashmethod, blob *, blob *);
#endif /*DISABLE_DKIM*/