Add single call public key sign and verify functions.
[openssl.git] / fips / ecdsa / fips_ecdsa_sign.c
index 0e86a50ef4bfc3e38eee8a9e30f8830f1240013f..847d44e784b7981c78bc8a0ca8bf6c864c71ab04 100644 (file)
@@ -87,3 +87,28 @@ int FIPS_ecdsa_verify_ctx(EC_KEY *key, EVP_MD_CTX *ctx, ECDSA_SIG *s)
        return ret;
        }
 
+int FIPS_ecdsa_verify(EC_KEY *key, const unsigned char *msg, size_t msglen,
+                       const EVP_MD *mhash, ECDSA_SIG *s)
+       {
+       int ret=-1;
+       unsigned char dig[EVP_MAX_MD_SIZE];
+       unsigned int dlen;
+        FIPS_digest(msg, msglen, dig, &dlen, mhash);
+       ret=FIPS_ecdsa_verify_digest(key, dig, dlen, s);
+       OPENSSL_cleanse(dig, dlen);
+       return ret;
+       }
+
+ECDSA_SIG * FIPS_ecdsa_sign(EC_KEY *key,
+                       const unsigned char *msg, size_t msglen,
+                       const EVP_MD *mhash)
+       {
+       ECDSA_SIG *s;
+       unsigned char dig[EVP_MAX_MD_SIZE];
+       unsigned int dlen;
+        FIPS_digest(msg, msglen, dig, &dlen, mhash);
+       s = FIPS_dsa_sign_digest(key, dig, dlen);
+       OPENSSL_cleanse(dig, dlen);
+       return s;
+       }
+