From c0efda00e985b63717ff2087e3f2206fbabe764f Mon Sep 17 00:00:00 2001 From: "Dr. Stephen Henson" Date: Tue, 27 Oct 2015 18:29:41 +0000 Subject: extend EC_KEY_METHOD for signing support Reviewed-by: Richard Levitte --- crypto/ec/ec_lcl.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/crypto/ec/ec_lcl.h b/crypto/ec/ec_lcl.h index 38b8c80f6b..b18e8821df 100644 --- a/crypto/ec/ec_lcl.h +++ b/crypto/ec/ec_lcl.h @@ -571,6 +571,14 @@ struct ec_key_method_st { EC_KEY *ecdh, void *(*KDF) (const void *in, size_t inlen, void *out, size_t *outlen)); + + int (*sign_setup)(EC_KEY *eckey, BN_CTX *ctx_in, BIGNUM **kinvp, + BIGNUM **rp); + ECDSA_SIG *(*sign_sig)(const unsigned char *dgst, int dgst_len, + const BIGNUM *in_kinv, const BIGNUM *in_r, + EC_KEY *eckey); + int (*verify_sig)(const unsigned char *dgst, int dgst_len, + const ECDSA_SIG *sig, EC_KEY *eckey); } /* EC_KEY_METHOD */ ; #define EC_KEY_METHOD_DYNAMIC 1 @@ -585,3 +593,11 @@ struct ECDSA_SIG_st { BIGNUM *r; BIGNUM *s; }; + +int ossl_ecdsa_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in, BIGNUM **kinvp, + BIGNUM **rp); +ECDSA_SIG *ossl_ecdsa_sign_sig(const unsigned char *dgst, int dgst_len, + const BIGNUM *in_kinv, const BIGNUM *in_r, + EC_KEY *eckey); +int ossl_ecdsa_verify_sig(const unsigned char *dgst, int dgst_len, + const ECDSA_SIG *sig, EC_KEY *eckey); -- cgit v1.2.3