Update ECDSA and ECDH for OPENSSL_NO_ENGINE.
[openssl.git] / crypto / ecdsa / ecs_sign.c
index c1d3e3bf3cb39e22cfb29020fe6a8135e0d0ede2..4667c8cfcc4e7ca5849d7814310d23ac7707b786 100644 (file)
  */
 
 #include "ecdsa.h"
+#ifndef OPENSSL_NO_ENGINE
 #include <openssl/engine.h>
+#endif
 
-ECDSA_SIG * ECDSA_do_sign(const unsigned char *dgst, int dlen, ECDSA *ecdsa)
+ECDSA_SIG * ECDSA_do_sign(const unsigned char *dgst, int dlen, EC_KEY *eckey)
 {
-       return ecdsa->meth->ecdsa_do_sign(dgst, dlen, ecdsa);
+       ECDSA_DATA *ecdsa = ecdsa_check(eckey);
+       if (ecdsa == NULL)
+               return NULL;
+       return ecdsa->meth->ecdsa_do_sign(dgst, dlen, eckey);
 }
 
-int ECDSA_sign(int type, const unsigned char *dgst, int dlen, unsigned char *sig,
-            unsigned int *siglen, ECDSA *ecdsa)
+int ECDSA_sign(int type, const unsigned char *dgst, int dlen, unsigned char 
+               *sig, unsigned int *siglen, EC_KEY *eckey)
 {
        ECDSA_SIG *s;
-       s=ECDSA_do_sign(dgst,dlen,ecdsa);
+       s=ECDSA_do_sign(dgst,dlen,eckey);
        if (s == NULL)
        {
                *siglen=0;
@@ -76,7 +81,11 @@ int ECDSA_sign(int type, const unsigned char *dgst, int dlen, unsigned char *sig
        return(1);
 }
 
-int ECDSA_sign_setup(ECDSA *ecdsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp)
+int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in, BIGNUM **kinvp, 
+               BIGNUM **rp)
 {
-       return ecdsa->meth->ecdsa_sign_setup(ecdsa, ctx_in, kinvp, rp);
+       ECDSA_DATA *ecdsa = ecdsa_check(eckey);
+       if (ecdsa == NULL)
+               return 0;
+       return ecdsa->meth->ecdsa_sign_setup(eckey, ctx_in, kinvp, rp); 
 }