aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGilles Chehade <gilles@poolp.org>2020-12-02 00:13:20 +0100
committerGilles Chehade <gilles@poolp.org>2020-12-02 00:13:20 +0100
commit19c7f9e791894ffc586095f7f8ef25bd939d6585 (patch)
treec1648808aa9ef7d1b4d0e9cd4210ce8517302cde
parentMerge branch 'master' into openssl-ecdsa (diff)
parentwhitespces (diff)
downloadOpenSMTPD-19c7f9e791894ffc586095f7f8ef25bd939d6585.tar.xz
OpenSMTPD-19c7f9e791894ffc586095f7f8ef25bd939d6585.zip
Merge branch 'openssl-ecdsa' of ssh://github.com/OpenSMTPD/OpenSMTPD into openssl-ecdsa
-rw-r--r--usr.sbin/smtpd/ca.c27
1 files changed, 24 insertions, 3 deletions
diff --git a/usr.sbin/smtpd/ca.c b/usr.sbin/smtpd/ca.c
index a107eb31..a8862cdc 100644
--- a/usr.sbin/smtpd/ca.c
+++ b/usr.sbin/smtpd/ca.c
@@ -641,6 +641,28 @@ ecdsae_do_verify(const unsigned char *dgst, int dgst_len,
}
#else
int
+ecdsae_keygen(EC_KEY *eckey)
+{
+ int (*keygen)(EC_KEY *key);
+ EC_KEY_METHOD_get_keygen(ecdsa_default,
+ &keygen);
+ return keygen(eckey);
+}
+
+int
+ecdsae_compute_key(unsigned char **psec, size_t *pseclen,
+ const EC_POINT *pub_key, const EC_KEY *ecdh)
+{
+ int (*ckey)(unsigned char **psec,
+ size_t *pseclen,
+ const EC_POINT *pub_key,
+ const EC_KEY *ecdh);
+ EC_KEY_METHOD_get_compute_key(ecdsa_default,
+ &ckey);
+ return ckey(psec, pseclen, pub_key, ecdh);
+}
+
+int
ecdsae_sign(int type, const unsigned char *dgst, int dlen, unsigned char *sig,
unsigned int *siglen, const BIGNUM *kinv, const BIGNUM *r, EC_KEY *eckey)
{
@@ -656,9 +678,6 @@ ecdsae_sign(int type, const unsigned char *dgst, int dlen, unsigned char *sig,
NULL,
NULL);
return (sign(type, dgst, dlen, sig, siglen, kinv, r, eckey));
-
-
- return 0;
}
@@ -867,6 +886,8 @@ ecdsa_engine_init(void)
goto fail;
}
+ EC_KEY_METHOD_set_keygen(ecdsae_method, ecdsae_keygen);
+ EC_KEY_METHOD_set_compute_key(ecdsae_method, ecdsae_compute_key);
EC_KEY_METHOD_set_sign(ecdsae_method, ecdsae_sign, ecdsae_sign_setup,
ecdsae_do_sign);
EC_KEY_METHOD_set_verify(ecdsae_method, ecdsae_verify, ecdsae_do_verify);