Coverage Report

Created: 2026-04-01 06:39

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/openssl36/providers/implementations/include/prov/digestcommon.h
Line
Count
Source
1
/*
2
 * Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved.
3
 *
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
8
 */
9
10
#ifndef OSSL_PROVIDERS_DIGESTCOMMON_H
11
#define OSSL_PROVIDERS_DIGESTCOMMON_H
12
13
#include <openssl/core_dispatch.h>
14
#include <openssl/core_names.h>
15
#include <openssl/params.h>
16
#include "prov/providercommon.h"
17
18
/* Internal flags that can be queried */
19
1.08k
#define PROV_DIGEST_FLAG_XOF 0x0001
20
1.08k
#define PROV_DIGEST_FLAG_ALGID_ABSENT 0x0002
21
22
#ifdef __cplusplus
23
extern "C" {
24
#endif
25
26
#define PROV_FUNC_DIGEST_GET_PARAM(name, blksize, dgstsize, flags)               \
27
    static OSSL_FUNC_digest_get_params_fn name##_get_params;                     \
28
    static int name##_get_params(OSSL_PARAM params[])                            \
29
2.15k
    {                                                                            \
30
2.15k
        return ossl_digest_default_get_params(params, blksize, dgstsize, flags); \
31
2.15k
    }
md5_prov.c:md5_get_params
Line
Count
Source
29
91
    {                                                                            \
30
91
        return ossl_digest_default_get_params(params, blksize, dgstsize, flags); \
31
91
    }
md5_sha1_prov.c:md5_sha1_get_params
Line
Count
Source
29
91
    {                                                                            \
30
91
        return ossl_digest_default_get_params(params, blksize, dgstsize, flags); \
31
91
    }
null_prov.c:nullmd_get_params
Line
Count
Source
29
91
    {                                                                            \
30
91
        return ossl_digest_default_get_params(params, blksize, dgstsize, flags); \
31
91
    }
ripemd_prov.c:ripemd160_get_params
Line
Count
Source
29
91
    {                                                                            \
30
91
        return ossl_digest_default_get_params(params, blksize, dgstsize, flags); \
31
91
    }
sha2_prov.c:sha1_get_params
Line
Count
Source
29
91
    {                                                                            \
30
91
        return ossl_digest_default_get_params(params, blksize, dgstsize, flags); \
31
91
    }
sha2_prov.c:sha224_get_params
Line
Count
Source
29
91
    {                                                                            \
30
91
        return ossl_digest_default_get_params(params, blksize, dgstsize, flags); \
31
91
    }
sha2_prov.c:sha256_get_params
Line
Count
Source
29
91
    {                                                                            \
30
91
        return ossl_digest_default_get_params(params, blksize, dgstsize, flags); \
31
91
    }
sha2_prov.c:sha256_192_internal_get_params
Line
Count
Source
29
38
    {                                                                            \
30
38
        return ossl_digest_default_get_params(params, blksize, dgstsize, flags); \
31
38
    }
sha2_prov.c:sha384_get_params
Line
Count
Source
29
91
    {                                                                            \
30
91
        return ossl_digest_default_get_params(params, blksize, dgstsize, flags); \
31
91
    }
sha2_prov.c:sha512_get_params
Line
Count
Source
29
91
    {                                                                            \
30
91
        return ossl_digest_default_get_params(params, blksize, dgstsize, flags); \
31
91
    }
sha2_prov.c:sha512_224_get_params
Line
Count
Source
29
91
    {                                                                            \
30
91
        return ossl_digest_default_get_params(params, blksize, dgstsize, flags); \
31
91
    }
sha2_prov.c:sha512_256_get_params
Line
Count
Source
29
91
    {                                                                            \
30
91
        return ossl_digest_default_get_params(params, blksize, dgstsize, flags); \
31
91
    }
sha3_prov.c:sha3_224_get_params
Line
Count
Source
29
91
    {                                                                            \
30
91
        return ossl_digest_default_get_params(params, blksize, dgstsize, flags); \
31
91
    }
sha3_prov.c:sha3_256_get_params
Line
Count
Source
29
91
    {                                                                            \
30
91
        return ossl_digest_default_get_params(params, blksize, dgstsize, flags); \
31
91
    }
sha3_prov.c:sha3_384_get_params
Line
Count
Source
29
91
    {                                                                            \
30
91
        return ossl_digest_default_get_params(params, blksize, dgstsize, flags); \
31
91
    }
sha3_prov.c:sha3_512_get_params
Line
Count
Source
29
91
    {                                                                            \
30
91
        return ossl_digest_default_get_params(params, blksize, dgstsize, flags); \
31
91
    }
sha3_prov.c:keccak_224_get_params
Line
Count
Source
29
84
    {                                                                            \
30
84
        return ossl_digest_default_get_params(params, blksize, dgstsize, flags); \
31
84
    }
sha3_prov.c:keccak_256_get_params
Line
Count
Source
29
84
    {                                                                            \
30
84
        return ossl_digest_default_get_params(params, blksize, dgstsize, flags); \
31
84
    }
sha3_prov.c:keccak_384_get_params
Line
Count
Source
29
84
    {                                                                            \
30
84
        return ossl_digest_default_get_params(params, blksize, dgstsize, flags); \
31
84
    }
sha3_prov.c:keccak_512_get_params
Line
Count
Source
29
84
    {                                                                            \
30
84
        return ossl_digest_default_get_params(params, blksize, dgstsize, flags); \
31
84
    }
sha3_prov.c:shake_128_get_params
Line
Count
Source
29
91
    {                                                                            \
30
91
        return ossl_digest_default_get_params(params, blksize, dgstsize, flags); \
31
91
    }
sha3_prov.c:shake_256_get_params
Line
Count
Source
29
91
    {                                                                            \
30
91
        return ossl_digest_default_get_params(params, blksize, dgstsize, flags); \
31
91
    }
sha3_prov.c:keccak_kmac_128_get_params
Line
Count
Source
29
72
    {                                                                            \
30
72
        return ossl_digest_default_get_params(params, blksize, dgstsize, flags); \
31
72
    }
sha3_prov.c:keccak_kmac_256_get_params
Line
Count
Source
29
72
    {                                                                            \
30
72
        return ossl_digest_default_get_params(params, blksize, dgstsize, flags); \
31
72
    }
sm3_prov.c:sm3_get_params
Line
Count
Source
29
91
    {                                                                            \
30
91
        return ossl_digest_default_get_params(params, blksize, dgstsize, flags); \
31
91
    }
32
33
#define PROV_DISPATCH_FUNC_DIGEST_GET_PARAMS(name)                      \
34
    { OSSL_FUNC_DIGEST_GET_PARAMS, (void (*)(void))name##_get_params }, \
35
    {                                                                   \
36
        OSSL_FUNC_DIGEST_GETTABLE_PARAMS,                               \
37
            (void (*)(void))ossl_digest_default_gettable_params         \
38
    }
39
40
#define PROV_FUNC_DIGEST_FINAL(name, dgstsize, fin)                               \
41
    static OSSL_FUNC_digest_final_fn name##_internal_final;                       \
42
    static int name##_internal_final(void *ctx, unsigned char *out, size_t *outl, \
43
        size_t outsz)                                                             \
44
499M
    {                                                                             \
45
499M
        if (ossl_prov_is_running() && outsz >= dgstsize && fin(out, ctx)) {       \
46
499M
            *outl = dgstsize;                                                     \
47
499M
            return 1;                                                             \
48
499M
        }                                                                         \
49
499M
        return 0;                                                                 \
50
499M
    }
md5_prov.c:md5_internal_final
Line
Count
Source
44
889k
    {                                                                             \
45
889k
        if (ossl_prov_is_running() && outsz >= dgstsize && fin(out, ctx)) {       \
46
889k
            *outl = dgstsize;                                                     \
47
889k
            return 1;                                                             \
48
889k
        }                                                                         \
49
889k
        return 0;                                                                 \
50
889k
    }
md5_sha1_prov.c:md5_sha1_internal_final
Line
Count
Source
44
24.0k
    {                                                                             \
45
24.0k
        if (ossl_prov_is_running() && outsz >= dgstsize && fin(out, ctx)) {       \
46
24.0k
            *outl = dgstsize;                                                     \
47
24.0k
            return 1;                                                             \
48
24.0k
        }                                                                         \
49
24.0k
        return 0;                                                                 \
50
24.0k
    }
ripemd_prov.c:ripemd160_internal_final
Line
Count
Source
44
2.80M
    {                                                                             \
45
2.80M
        if (ossl_prov_is_running() && outsz >= dgstsize && fin(out, ctx)) {       \
46
2.80M
            *outl = dgstsize;                                                     \
47
2.80M
            return 1;                                                             \
48
2.80M
        }                                                                         \
49
2.80M
        return 0;                                                                 \
50
2.80M
    }
sha2_prov.c:sha1_internal_final
Line
Count
Source
44
2.22M
    {                                                                             \
45
2.22M
        if (ossl_prov_is_running() && outsz >= dgstsize && fin(out, ctx)) {       \
46
2.22M
            *outl = dgstsize;                                                     \
47
2.22M
            return 1;                                                             \
48
2.22M
        }                                                                         \
49
2.22M
        return 0;                                                                 \
50
2.22M
    }
sha2_prov.c:sha224_internal_final
Line
Count
Source
44
696k
    {                                                                             \
45
696k
        if (ossl_prov_is_running() && outsz >= dgstsize && fin(out, ctx)) {       \
46
696k
            *outl = dgstsize;                                                     \
47
696k
            return 1;                                                             \
48
696k
        }                                                                         \
49
696k
        return 0;                                                                 \
50
696k
    }
sha2_prov.c:sha256_internal_final
Line
Count
Source
44
464M
    {                                                                             \
45
464M
        if (ossl_prov_is_running() && outsz >= dgstsize && fin(out, ctx)) {       \
46
464M
            *outl = dgstsize;                                                     \
47
464M
            return 1;                                                             \
48
464M
        }                                                                         \
49
464M
        return 0;                                                                 \
50
464M
    }
Unexecuted instantiation: sha2_prov.c:sha256_192_internal_internal_final
sha2_prov.c:sha384_internal_final
Line
Count
Source
44
2.37M
    {                                                                             \
45
2.37M
        if (ossl_prov_is_running() && outsz >= dgstsize && fin(out, ctx)) {       \
46
2.37M
            *outl = dgstsize;                                                     \
47
2.37M
            return 1;                                                             \
48
2.37M
        }                                                                         \
49
2.37M
        return 0;                                                                 \
50
2.37M
    }
sha2_prov.c:sha512_internal_final
Line
Count
Source
44
24.3M
    {                                                                             \
45
24.3M
        if (ossl_prov_is_running() && outsz >= dgstsize && fin(out, ctx)) {       \
46
24.3M
            *outl = dgstsize;                                                     \
47
24.3M
            return 1;                                                             \
48
24.3M
        }                                                                         \
49
24.3M
        return 0;                                                                 \
50
24.3M
    }
sha2_prov.c:sha512_224_internal_final
Line
Count
Source
44
493k
    {                                                                             \
45
493k
        if (ossl_prov_is_running() && outsz >= dgstsize && fin(out, ctx)) {       \
46
493k
            *outl = dgstsize;                                                     \
47
493k
            return 1;                                                             \
48
493k
        }                                                                         \
49
493k
        return 0;                                                                 \
50
493k
    }
sha2_prov.c:sha512_256_internal_final
Line
Count
Source
44
213k
    {                                                                             \
45
213k
        if (ossl_prov_is_running() && outsz >= dgstsize && fin(out, ctx)) {       \
46
213k
            *outl = dgstsize;                                                     \
47
213k
            return 1;                                                             \
48
213k
        }                                                                         \
49
213k
        return 0;                                                                 \
50
213k
    }
sm3_prov.c:sm3_internal_final
Line
Count
Source
44
7.28k
    {                                                                             \
45
7.28k
        if (ossl_prov_is_running() && outsz >= dgstsize && fin(out, ctx)) {       \
46
7.28k
            *outl = dgstsize;                                                     \
47
7.28k
            return 1;                                                             \
48
7.28k
        }                                                                         \
49
7.28k
        return 0;                                                                 \
50
7.28k
    }
51
52
#define PROV_DISPATCH_FUNC_DIGEST_CONSTRUCT_START(                               \
53
    name, CTX, blksize, dgstsize, flags, upd, fin)                               \
54
    static OSSL_FUNC_digest_newctx_fn name##_newctx;                             \
55
    static OSSL_FUNC_digest_freectx_fn name##_freectx;                           \
56
    static OSSL_FUNC_digest_dupctx_fn name##_dupctx;                             \
57
    static void *name##_newctx(void *prov_ctx)                                   \
58
3.83M
    {                                                                            \
59
3.83M
        CTX *ctx = ossl_prov_is_running() ? OPENSSL_zalloc(sizeof(*ctx)) : NULL; \
60
3.83M
        return ctx;                                                              \
61
3.83M
    }                                                                            \
62
    static void name##_freectx(void *vctx)                                       \
63
12.3M
    {                                                                            \
64
12.3M
        CTX *ctx = (CTX *)vctx;                                                  \
65
12.3M
        OPENSSL_clear_free(ctx, sizeof(*ctx));                                   \
66
12.3M
    }                                                                            \
md5_prov.c:md5_freectx
Line
Count
Source
63
1.68M
    {                                                                            \
64
1.68M
        CTX *ctx = (CTX *)vctx;                                                  \
65
1.68M
        OPENSSL_clear_free(ctx, sizeof(*ctx));                                   \
66
1.68M
    }                                                                            \
md5_sha1_prov.c:md5_sha1_freectx
Line
Count
Source
63
25.5k
    {                                                                            \
64
25.5k
        CTX *ctx = (CTX *)vctx;                                                  \
65
25.5k
        OPENSSL_clear_free(ctx, sizeof(*ctx));                                   \
66
25.5k
    }                                                                            \
null_prov.c:nullmd_freectx
Line
Count
Source
63
97
    {                                                                            \
64
97
        CTX *ctx = (CTX *)vctx;                                                  \
65
97
        OPENSSL_clear_free(ctx, sizeof(*ctx));                                   \
66
97
    }                                                                            \
ripemd_prov.c:ripemd160_freectx
Line
Count
Source
63
265k
    {                                                                            \
64
265k
        CTX *ctx = (CTX *)vctx;                                                  \
65
265k
        OPENSSL_clear_free(ctx, sizeof(*ctx));                                   \
66
265k
    }                                                                            \
sha2_prov.c:sha1_freectx
Line
Count
Source
63
3.24M
    {                                                                            \
64
3.24M
        CTX *ctx = (CTX *)vctx;                                                  \
65
3.24M
        OPENSSL_clear_free(ctx, sizeof(*ctx));                                   \
66
3.24M
    }                                                                            \
sha2_prov.c:sha224_freectx
Line
Count
Source
63
56.9k
    {                                                                            \
64
56.9k
        CTX *ctx = (CTX *)vctx;                                                  \
65
56.9k
        OPENSSL_clear_free(ctx, sizeof(*ctx));                                   \
66
56.9k
    }                                                                            \
sha2_prov.c:sha256_freectx
Line
Count
Source
63
3.54M
    {                                                                            \
64
3.54M
        CTX *ctx = (CTX *)vctx;                                                  \
65
3.54M
        OPENSSL_clear_free(ctx, sizeof(*ctx));                                   \
66
3.54M
    }                                                                            \
sha2_prov.c:sha256_192_internal_freectx
Line
Count
Source
63
1
    {                                                                            \
64
1
        CTX *ctx = (CTX *)vctx;                                                  \
65
1
        OPENSSL_clear_free(ctx, sizeof(*ctx));                                   \
66
1
    }                                                                            \
sha2_prov.c:sha384_freectx
Line
Count
Source
63
3.34M
    {                                                                            \
64
3.34M
        CTX *ctx = (CTX *)vctx;                                                  \
65
3.34M
        OPENSSL_clear_free(ctx, sizeof(*ctx));                                   \
66
3.34M
    }                                                                            \
sha2_prov.c:sha512_freectx
Line
Count
Source
63
120k
    {                                                                            \
64
120k
        CTX *ctx = (CTX *)vctx;                                                  \
65
120k
        OPENSSL_clear_free(ctx, sizeof(*ctx));                                   \
66
120k
    }                                                                            \
sha2_prov.c:sha512_224_freectx
Line
Count
Source
63
7.81k
    {                                                                            \
64
7.81k
        CTX *ctx = (CTX *)vctx;                                                  \
65
7.81k
        OPENSSL_clear_free(ctx, sizeof(*ctx));                                   \
66
7.81k
    }                                                                            \
sha2_prov.c:sha512_256_freectx
Line
Count
Source
63
10.7k
    {                                                                            \
64
10.7k
        CTX *ctx = (CTX *)vctx;                                                  \
65
10.7k
        OPENSSL_clear_free(ctx, sizeof(*ctx));                                   \
66
10.7k
    }                                                                            \
sm3_prov.c:sm3_freectx
Line
Count
Source
63
5.15k
    {                                                                            \
64
5.15k
        CTX *ctx = (CTX *)vctx;                                                  \
65
5.15k
        OPENSSL_clear_free(ctx, sizeof(*ctx));                                   \
66
5.15k
    }                                                                            \
67
    static void *name##_dupctx(void *ctx)                                        \
68
7.73M
    {                                                                            \
69
7.73M
        CTX *in = (CTX *)ctx;                                                    \
70
7.73M
        CTX *ret = ossl_prov_is_running() ? OPENSSL_malloc(sizeof(*ret)) : NULL; \
71
7.73M
        if (ret != NULL)                                                         \
72
7.73M
            *ret = *in;                                                          \
73
7.73M
        return ret;                                                              \
74
7.73M
    }                                                                            \
75
    static void name##_copyctx(void *voutctx, void *vinctx)                      \
76
6.23M
    {                                                                            \
77
6.23M
        CTX *outctx = (CTX *)voutctx;                                            \
78
6.23M
        CTX *inctx = (CTX *)vinctx;                                              \
79
6.23M
        *outctx = *inctx;                                                        \
80
6.23M
    }                                                                            \
md5_prov.c:md5_copyctx
Line
Count
Source
76
571k
    {                                                                            \
77
571k
        CTX *outctx = (CTX *)voutctx;                                            \
78
571k
        CTX *inctx = (CTX *)vinctx;                                              \
79
571k
        *outctx = *inctx;                                                        \
80
571k
    }                                                                            \
md5_sha1_prov.c:md5_sha1_copyctx
Line
Count
Source
76
11.2k
    {                                                                            \
77
11.2k
        CTX *outctx = (CTX *)voutctx;                                            \
78
11.2k
        CTX *inctx = (CTX *)vinctx;                                              \
79
11.2k
        *outctx = *inctx;                                                        \
80
11.2k
    }                                                                            \
null_prov.c:nullmd_copyctx
Line
Count
Source
76
43
    {                                                                            \
77
43
        CTX *outctx = (CTX *)voutctx;                                            \
78
43
        CTX *inctx = (CTX *)vinctx;                                              \
79
43
        *outctx = *inctx;                                                        \
80
43
    }                                                                            \
ripemd_prov.c:ripemd160_copyctx
Line
Count
Source
76
2.28k
    {                                                                            \
77
2.28k
        CTX *outctx = (CTX *)voutctx;                                            \
78
2.28k
        CTX *inctx = (CTX *)vinctx;                                              \
79
2.28k
        *outctx = *inctx;                                                        \
80
2.28k
    }                                                                            \
sha2_prov.c:sha1_copyctx
Line
Count
Source
76
1.11M
    {                                                                            \
77
1.11M
        CTX *outctx = (CTX *)voutctx;                                            \
78
1.11M
        CTX *inctx = (CTX *)vinctx;                                              \
79
1.11M
        *outctx = *inctx;                                                        \
80
1.11M
    }                                                                            \
sha2_prov.c:sha224_copyctx
Line
Count
Source
76
812k
    {                                                                            \
77
812k
        CTX *outctx = (CTX *)voutctx;                                            \
78
812k
        CTX *inctx = (CTX *)vinctx;                                              \
79
812k
        *outctx = *inctx;                                                        \
80
812k
    }                                                                            \
sha2_prov.c:sha256_copyctx
Line
Count
Source
76
2.15M
    {                                                                            \
77
2.15M
        CTX *outctx = (CTX *)voutctx;                                            \
78
2.15M
        CTX *inctx = (CTX *)vinctx;                                              \
79
2.15M
        *outctx = *inctx;                                                        \
80
2.15M
    }                                                                            \
Unexecuted instantiation: sha2_prov.c:sha256_192_internal_copyctx
sha2_prov.c:sha384_copyctx
Line
Count
Source
76
667k
    {                                                                            \
77
667k
        CTX *outctx = (CTX *)voutctx;                                            \
78
667k
        CTX *inctx = (CTX *)vinctx;                                              \
79
667k
        *outctx = *inctx;                                                        \
80
667k
    }                                                                            \
sha2_prov.c:sha512_copyctx
Line
Count
Source
76
377k
    {                                                                            \
77
377k
        CTX *outctx = (CTX *)voutctx;                                            \
78
377k
        CTX *inctx = (CTX *)vinctx;                                              \
79
377k
        *outctx = *inctx;                                                        \
80
377k
    }                                                                            \
sha2_prov.c:sha512_224_copyctx
Line
Count
Source
76
406k
    {                                                                            \
77
406k
        CTX *outctx = (CTX *)voutctx;                                            \
78
406k
        CTX *inctx = (CTX *)vinctx;                                              \
79
406k
        *outctx = *inctx;                                                        \
80
406k
    }                                                                            \
sha2_prov.c:sha512_256_copyctx
Line
Count
Source
76
111k
    {                                                                            \
77
111k
        CTX *outctx = (CTX *)voutctx;                                            \
78
111k
        CTX *inctx = (CTX *)vinctx;                                              \
79
111k
        *outctx = *inctx;                                                        \
80
111k
    }                                                                            \
sm3_prov.c:sm3_copyctx
Line
Count
Source
76
3.27k
    {                                                                            \
77
3.27k
        CTX *outctx = (CTX *)voutctx;                                            \
78
3.27k
        CTX *inctx = (CTX *)vinctx;                                              \
79
3.27k
        *outctx = *inctx;                                                        \
80
3.27k
    }                                                                            \
81
    PROV_FUNC_DIGEST_FINAL(name, dgstsize, fin)                                  \
82
    PROV_FUNC_DIGEST_GET_PARAM(name, blksize, dgstsize, flags)                   \
83
    const OSSL_DISPATCH ossl_##name##_functions[] = {                            \
84
        { OSSL_FUNC_DIGEST_NEWCTX, (void (*)(void))name##_newctx },              \
85
        { OSSL_FUNC_DIGEST_UPDATE, (void (*)(void))upd },                        \
86
        { OSSL_FUNC_DIGEST_FINAL, (void (*)(void))name##_internal_final },       \
87
        { OSSL_FUNC_DIGEST_FREECTX, (void (*)(void))name##_freectx },            \
88
        { OSSL_FUNC_DIGEST_DUPCTX, (void (*)(void))name##_dupctx },              \
89
        { OSSL_FUNC_DIGEST_COPYCTX, (void (*)(void))name##_copyctx },            \
90
        PROV_DISPATCH_FUNC_DIGEST_GET_PARAMS(name)
91
92
#define PROV_DISPATCH_FUNC_DIGEST_CONSTRUCT_END \
93
    {                                           \
94
        0, NULL                                 \
95
    }                                           \
96
    }                                           \
97
    ;
98
99
#define IMPLEMENT_digest_functions(                                                \
100
    name, CTX, blksize, dgstsize, flags, init, upd, fin)                           \
101
    static OSSL_FUNC_digest_init_fn name##_internal_init;                          \
102
    static int name##_internal_init(void *ctx,                                     \
103
        ossl_unused const OSSL_PARAM params[])                                     \
104
493M
    {                                                                              \
105
493M
        return ossl_prov_is_running() && init(ctx);                                \
106
493M
    }                                                                              \
md5_prov.c:md5_internal_init
Line
Count
Source
104
126k
    {                                                                              \
105
126k
        return ossl_prov_is_running() && init(ctx);                                \
106
126k
    }                                                                              \
null_prov.c:nullmd_internal_init
Line
Count
Source
104
165
    {                                                                              \
105
165
        return ossl_prov_is_running() && init(ctx);                                \
106
165
    }                                                                              \
ripemd_prov.c:ripemd160_internal_init
Line
Count
Source
104
2.80M
    {                                                                              \
105
2.80M
        return ossl_prov_is_running() && init(ctx);                                \
106
2.80M
    }                                                                              \
sha2_prov.c:sha224_internal_init
Line
Count
Source
104
294k
    {                                                                              \
105
294k
        return ossl_prov_is_running() && init(ctx);                                \
106
294k
    }                                                                              \
sha2_prov.c:sha256_internal_init
Line
Count
Source
104
463M
    {                                                                              \
105
463M
        return ossl_prov_is_running() && init(ctx);                                \
106
463M
    }                                                                              \
sha2_prov.c:sha256_192_internal_internal_init
Line
Count
Source
104
1
    {                                                                              \
105
1
        return ossl_prov_is_running() && init(ctx);                                \
106
1
    }                                                                              \
sha2_prov.c:sha384_internal_init
Line
Count
Source
104
2.18M
    {                                                                              \
105
2.18M
        return ossl_prov_is_running() && init(ctx);                                \
106
2.18M
    }                                                                              \
sha2_prov.c:sha512_internal_init
Line
Count
Source
104
24.2M
    {                                                                              \
105
24.2M
        return ossl_prov_is_running() && init(ctx);                                \
106
24.2M
    }                                                                              \
sha2_prov.c:sha512_224_internal_init
Line
Count
Source
104
291k
    {                                                                              \
105
291k
        return ossl_prov_is_running() && init(ctx);                                \
106
291k
    }                                                                              \
sha2_prov.c:sha512_256_internal_init
Line
Count
Source
104
158k
    {                                                                              \
105
158k
        return ossl_prov_is_running() && init(ctx);                                \
106
158k
    }                                                                              \
sm3_prov.c:sm3_internal_init
Line
Count
Source
104
7.42k
    {                                                                              \
105
7.42k
        return ossl_prov_is_running() && init(ctx);                                \
106
7.42k
    }                                                                              \
107
    PROV_DISPATCH_FUNC_DIGEST_CONSTRUCT_START(name, CTX, blksize, dgstsize, flags, \
108
        upd, fin),                                                                 \
109
        { OSSL_FUNC_DIGEST_INIT, (void (*)(void))name##_internal_init },           \
110
        PROV_DISPATCH_FUNC_DIGEST_CONSTRUCT_END
111
112
#define IMPLEMENT_digest_functions_with_settable_ctx(                                  \
113
    name, CTX, blksize, dgstsize, flags, init, upd, fin,                               \
114
    settable_ctx_params, set_ctx_params)                                               \
115
    static OSSL_FUNC_digest_init_fn name##_internal_init;                              \
116
    static int name##_internal_init(void *ctx, const OSSL_PARAM params[])              \
117
1.25M
    {                                                                                  \
118
1.25M
        return ossl_prov_is_running()                                                  \
119
1.25M
            && init(ctx)                                                               \
120
1.25M
            && set_ctx_params(ctx, params);                                            \
121
1.25M
    }                                                                                  \
md5_sha1_prov.c:md5_sha1_internal_init
Line
Count
Source
117
27.3k
    {                                                                                  \
118
27.3k
        return ossl_prov_is_running()                                                  \
119
27.3k
            && init(ctx)                                                               \
120
27.3k
            && set_ctx_params(ctx, params);                                            \
121
27.3k
    }                                                                                  \
sha2_prov.c:sha1_internal_init
Line
Count
Source
117
1.22M
    {                                                                                  \
118
1.22M
        return ossl_prov_is_running()                                                  \
119
1.22M
            && init(ctx)                                                               \
120
1.22M
            && set_ctx_params(ctx, params);                                            \
121
1.22M
    }                                                                                  \
122
    PROV_DISPATCH_FUNC_DIGEST_CONSTRUCT_START(name, CTX, blksize, dgstsize, flags,     \
123
        upd, fin),                                                                     \
124
        { OSSL_FUNC_DIGEST_INIT, (void (*)(void))name##_internal_init },               \
125
        { OSSL_FUNC_DIGEST_SETTABLE_CTX_PARAMS, (void (*)(void))settable_ctx_params }, \
126
        { OSSL_FUNC_DIGEST_SET_CTX_PARAMS, (void (*)(void))set_ctx_params },           \
127
        PROV_DISPATCH_FUNC_DIGEST_CONSTRUCT_END
128
129
const OSSL_PARAM *ossl_digest_default_gettable_params(void *provctx);
130
int ossl_digest_default_get_params(OSSL_PARAM params[], size_t blksz,
131
    size_t paramsz, unsigned long flags);
132
133
#ifdef __cplusplus
134
}
135
#endif
136
137
#endif /* OSSL_PROVIDERS_DIGESTCOMMON_H */