crypto/threads_pthread.c: refactor all atomics fallbacks for type safety
[openssl.git] / providers / implementations / digests / md5_sha1_prov.c
index 4d87e2fec60661562c6e42b5230b96034846beb5..e7b8389b2b5c7b7eb97f0ed9425d17d3fb028ede 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved.
  *
  * Licensed under the Apache License 2.0 (the "License").  You may not use
  * this file except in compliance with the License.  You can obtain a copy
 #include "prov/digestcommon.h"
 #include "prov/implementations.h"
 
-static OSSL_OP_digest_set_ctx_params_fn md5_sha1_set_ctx_params;
-static OSSL_OP_digest_settable_ctx_params_fn md5_sha1_settable_ctx_params;
+static OSSL_FUNC_digest_set_ctx_params_fn md5_sha1_set_ctx_params;
+static OSSL_FUNC_digest_settable_ctx_params_fn md5_sha1_settable_ctx_params;
 
 static const OSSL_PARAM known_md5_sha1_settable_ctx_params[] = {
     {OSSL_DIGEST_PARAM_SSL3_MS, OSSL_PARAM_OCTET_STRING, NULL, 0, 0},
     OSSL_PARAM_END
 };
 
-static const OSSL_PARAM *md5_sha1_settable_ctx_params(void)
+static const OSSL_PARAM *md5_sha1_settable_ctx_params(ossl_unused void *ctx,
+                                                      ossl_unused void *provctx)
 {
     return known_md5_sha1_settable_ctx_params;
 }
@@ -41,17 +42,20 @@ static int md5_sha1_set_ctx_params(void *vctx, const OSSL_PARAM params[])
     const OSSL_PARAM *p;
     MD5_SHA1_CTX *ctx = (MD5_SHA1_CTX *)vctx;
 
-    if (ctx != NULL && params != NULL) {
-        p = OSSL_PARAM_locate_const(params, OSSL_DIGEST_PARAM_SSL3_MS);
-        if (p != NULL && p->data_type == OSSL_PARAM_OCTET_STRING)
-            return md5_sha1_ctrl(ctx, EVP_CTRL_SSL3_MASTER_SECRET, p->data_size,
-                                 p->data);
-    }
-    return 0;
+    if (ctx == NULL)
+        return 0;
+    if (params == NULL)
+        return 1;
+
+    p = OSSL_PARAM_locate_const(params, OSSL_DIGEST_PARAM_SSL3_MS);
+    if (p != NULL && p->data_type == OSSL_PARAM_OCTET_STRING)
+        return ossl_md5_sha1_ctrl(ctx, EVP_CTRL_SSL3_MASTER_SECRET,
+                                  p->data_size, p->data);
+    return 1;
 }
 
-/* md5_sha1_functions */
+/* ossl_md5_sha1_functions */
 IMPLEMENT_digest_functions_with_settable_ctx(
     md5_sha1, MD5_SHA1_CTX, MD5_SHA1_CBLOCK, MD5_SHA1_DIGEST_LENGTH, 0,
-    md5_sha1_init, md5_sha1_update, md5_sha1_final,
+    ossl_md5_sha1_init, ossl_md5_sha1_update, ossl_md5_sha1_final,
     md5_sha1_settable_ctx_params, md5_sha1_set_ctx_params)