2 * Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved.
4 * Licensed under the Apache License 2.0 (the "License"). You may not use
5 * this file except in compliance with the License. You can obtain a copy
6 * in the file LICENSE in the source distribution or at
7 * https://www.openssl.org/source/license.html
11 * MDC2 low level APIs are deprecated for public use, but still ok for
14 #include "internal/deprecated.h"
16 #include <openssl/crypto.h>
17 #include <openssl/params.h>
18 #include <openssl/mdc2.h>
19 #include <openssl/core_names.h>
20 #include <openssl/err.h>
21 #include <openssl/proverr.h>
22 #include "prov/digestcommon.h"
23 #include "prov/implementations.h"
25 static OSSL_FUNC_digest_set_ctx_params_fn mdc2_set_ctx_params
;
26 static OSSL_FUNC_digest_settable_ctx_params_fn mdc2_settable_ctx_params
;
28 static const OSSL_PARAM known_mdc2_settable_ctx_params
[] = {
29 OSSL_PARAM_uint(OSSL_DIGEST_PARAM_PAD_TYPE
, NULL
),
33 static const OSSL_PARAM
*mdc2_settable_ctx_params(ossl_unused
void *provctx
)
35 return known_mdc2_settable_ctx_params
;
38 static int mdc2_set_ctx_params(void *vctx
, const OSSL_PARAM params
[])
41 MDC2_CTX
*ctx
= (MDC2_CTX
*)vctx
;
43 if (ctx
!= NULL
&& params
!= NULL
) {
44 p
= OSSL_PARAM_locate_const(params
, OSSL_DIGEST_PARAM_PAD_TYPE
);
45 if (p
!= NULL
&& !OSSL_PARAM_get_uint(p
, &ctx
->pad_type
)) {
46 ERR_raise(ERR_LIB_PROV
, PROV_R_FAILED_TO_GET_PARAMETER
);
51 return 0; /* Null Parameter */
54 /* ossl_mdc2_functions */
55 IMPLEMENT_digest_functions_with_settable_ctx(
56 mdc2
, MDC2_CTX
, MDC2_BLOCK
, MDC2_DIGEST_LENGTH
, 0,
57 MDC2_Init
, MDC2_Update
, MDC2_Final
,
58 mdc2_settable_ctx_params
, mdc2_set_ctx_params
)