more const
[openssl.git] / crypto / ecdsa / ecs_vrf.c
index 58c98b5593fef6fcc92b51da8e64dd051b55ac15..465b6025fbad05fdd3cb14b3706649902255825f 100644 (file)
@@ -1,4 +1,7 @@
 /* crypto/ecdsa/ecdsa_vrf.c */
+/*
+ * Written by Nils Larsch for the OpenSSL project
+ */
 /* ====================================================================
  * Copyright (c) 1998-2002 The OpenSSL Project.  All rights reserved.
  *
  */
 
 #include "ecdsa.h"
+#ifndef OPENSSL_NO_ENGINE
 #include <openssl/engine.h>
+#endif
 
 /* returns
  *      1: correct signature
  *      0: incorrect signature
  *     -1: error
  */
-int ECDSA_do_verify(const unsigned char *dgst, int dgst_len, ECDSA_SIG *sig, ECDSA *ecdsa)
+int ECDSA_do_verify(const unsigned char *dgst, int dgst_len, 
+               const ECDSA_SIG *sig, EC_KEY *eckey)
        {
-       return ecdsa->meth->ecdsa_do_verify(dgst, dgst_len, sig, ecdsa);
+       ECDSA_DATA *ecdsa = ecdsa_check(eckey);
+       if (ecdsa == NULL)
+               return 0;
+       return ecdsa->meth->ecdsa_do_verify(dgst, dgst_len, sig, eckey);
        }
 
 /* returns
@@ -71,15 +80,16 @@ int ECDSA_do_verify(const unsigned char *dgst, int dgst_len, ECDSA_SIG *sig, ECD
  *      0: incorrect signature
  *     -1: error
  */
-int ECDSA_verify(int type, const unsigned char *dgst, int dgst_len, const unsigned char *sigbuf, int sig_len, ECDSA *ecdsa)
+int ECDSA_verify(int type, const unsigned char *dgst, int dgst_len,
+               const unsigned char *sigbuf, int sig_len, EC_KEY *eckey)
        {
        ECDSA_SIG *s;
        int ret=-1;
 
        s = ECDSA_SIG_new();
        if (s == NULL) return(ret);
-       if (d2i_ECDSA_SIG(&s,&sigbuf,sig_len) == NULL) goto err;
-       ret=ECDSA_do_verify(dgst,dgst_len,s,ecdsa);
+       if (d2i_ECDSA_SIG(&s, &sigbuf, sig_len) == NULL) goto err;
+       ret=ECDSA_do_verify(dgst, dgst_len, s, eckey);
 err:
        ECDSA_SIG_free(s);
        return(ret);