/src/boringssl/crypto/fipsmodule/delocate.h
Line | Count | Source |
1 | | // Copyright 2017 The BoringSSL Authors |
2 | | // |
3 | | // Licensed under the Apache License, Version 2.0 (the "License"); |
4 | | // you may not use this file except in compliance with the License. |
5 | | // You may obtain a copy of the License at |
6 | | // |
7 | | // https://www.apache.org/licenses/LICENSE-2.0 |
8 | | // |
9 | | // Unless required by applicable law or agreed to in writing, software |
10 | | // distributed under the License is distributed on an "AS IS" BASIS, |
11 | | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
12 | | // See the License for the specific language governing permissions and |
13 | | // limitations under the License. |
14 | | |
15 | | #ifndef OPENSSL_HEADER_CRYPTO_FIPSMODULE_DELOCATE_H |
16 | | #define OPENSSL_HEADER_CRYPTO_FIPSMODULE_DELOCATE_H |
17 | | |
18 | | #include <openssl/base.h> |
19 | | |
20 | | #include "../internal.h" |
21 | | |
22 | | |
23 | | #if defined(BORINGSSL_PREFIX) |
24 | | #define BCM_ADD_PREFIX(name) BORINGSSL_ADD_PREFIX(bcm_##name) |
25 | | #else |
26 | | #define BCM_ADD_PREFIX(name) bcm_##name |
27 | | #endif |
28 | | |
29 | | #if !defined(BORINGSSL_SHARED_LIBRARY) && defined(BORINGSSL_FIPS) && \ |
30 | | !defined(OPENSSL_ASAN) && !defined(OPENSSL_MSAN) |
31 | | #define DEFINE_BSS_GET(type, name, init_expr) \ |
32 | | /* delocate needs C linkage and for |name| to be unique across BCM. */ \ |
33 | | extern "C" { \ |
34 | | extern type BCM_ADD_PREFIX(name); \ |
35 | | type BCM_ADD_PREFIX(name) init_expr; \ |
36 | | type *BCM_ADD_PREFIX(name##_bss_get)() __attribute__((const)); \ |
37 | | } /* extern "C" */ \ |
38 | | \ |
39 | | /* The getter functions are exported, but static variables are usually named \ |
40 | | * with short names. Define a static wrapper function so the caller can use \ |
41 | | * a short name, while the symbol itself is prefixed. */ \ |
42 | | static type *name##_bss_get() { return BCM_ADD_PREFIX(name##_bss_get)(); } |
43 | | #else |
44 | | #define DEFINE_BSS_GET(type, name, init_expr) \ |
45 | | static type name init_expr; \ |
46 | 2.09M | static type *name##_bss_get() { return &name; }bcm.cc:BN_value_one_once_bss_get() Line | Count | Source | 46 | 916 | static type *name##_bss_get() { return &name; } |
bcm.cc:BN_value_one_storage_bss_get() Line | Count | Source | 46 | 933 | static type *name##_bss_get() { return &name; } |
bcm.cc:EVP_aes_128_cbc_once_bss_get() Line | Count | Source | 46 | 5.15k | static type *name##_bss_get() { return &name; } |
bcm.cc:EVP_aes_128_cbc_storage_bss_get() Line | Count | Source | 46 | 5.16k | static type *name##_bss_get() { return &name; } |
Unexecuted instantiation: bcm.cc:EVP_aes_128_ctr_once_bss_get() Unexecuted instantiation: bcm.cc:EVP_aes_128_ctr_storage_bss_get() Unexecuted instantiation: bcm.cc:EVP_aes_128_ofb_once_bss_get() Unexecuted instantiation: bcm.cc:EVP_aes_128_ofb_storage_bss_get() Unexecuted instantiation: bcm.cc:EVP_aes_128_gcm_once_bss_get() Unexecuted instantiation: bcm.cc:EVP_aes_128_gcm_storage_bss_get() Unexecuted instantiation: bcm.cc:EVP_aes_192_cbc_once_bss_get() Unexecuted instantiation: bcm.cc:EVP_aes_192_cbc_storage_bss_get() Unexecuted instantiation: bcm.cc:EVP_aes_192_ctr_once_bss_get() Unexecuted instantiation: bcm.cc:EVP_aes_192_ctr_storage_bss_get() Unexecuted instantiation: bcm.cc:EVP_aes_192_ofb_once_bss_get() Unexecuted instantiation: bcm.cc:EVP_aes_192_ofb_storage_bss_get() Unexecuted instantiation: bcm.cc:EVP_aes_192_gcm_once_bss_get() Unexecuted instantiation: bcm.cc:EVP_aes_192_gcm_storage_bss_get() bcm.cc:EVP_aes_256_cbc_once_bss_get() Line | Count | Source | 46 | 21.4k | static type *name##_bss_get() { return &name; } |
bcm.cc:EVP_aes_256_cbc_storage_bss_get() Line | Count | Source | 46 | 21.4k | static type *name##_bss_get() { return &name; } |
Unexecuted instantiation: bcm.cc:EVP_aes_256_ctr_once_bss_get() Unexecuted instantiation: bcm.cc:EVP_aes_256_ctr_storage_bss_get() Unexecuted instantiation: bcm.cc:EVP_aes_256_ofb_once_bss_get() Unexecuted instantiation: bcm.cc:EVP_aes_256_ofb_storage_bss_get() Unexecuted instantiation: bcm.cc:EVP_aes_256_gcm_once_bss_get() Unexecuted instantiation: bcm.cc:EVP_aes_256_gcm_storage_bss_get() Unexecuted instantiation: bcm.cc:aes_hw_128_ecb_once_bss_get() Unexecuted instantiation: bcm.cc:aes_hw_128_ecb_storage_bss_get() Unexecuted instantiation: bcm.cc:aes_128_ecb_generic_once_bss_get() Unexecuted instantiation: bcm.cc:aes_128_ecb_generic_storage_bss_get() Unexecuted instantiation: bcm.cc:aes_hw_192_ecb_once_bss_get() Unexecuted instantiation: bcm.cc:aes_hw_192_ecb_storage_bss_get() Unexecuted instantiation: bcm.cc:aes_192_ecb_generic_once_bss_get() Unexecuted instantiation: bcm.cc:aes_192_ecb_generic_storage_bss_get() Unexecuted instantiation: bcm.cc:aes_hw_256_ecb_once_bss_get() Unexecuted instantiation: bcm.cc:aes_hw_256_ecb_storage_bss_get() Unexecuted instantiation: bcm.cc:aes_256_ecb_generic_once_bss_get() Unexecuted instantiation: bcm.cc:aes_256_ecb_generic_storage_bss_get() bcm.cc:EVP_aead_aes_128_gcm_once_bss_get() Line | Count | Source | 46 | 274 | static type *name##_bss_get() { return &name; } |
bcm.cc:EVP_aead_aes_128_gcm_storage_bss_get() Line | Count | Source | 46 | 277 | static type *name##_bss_get() { return &name; } |
Unexecuted instantiation: bcm.cc:EVP_aead_aes_192_gcm_once_bss_get() Unexecuted instantiation: bcm.cc:EVP_aead_aes_192_gcm_storage_bss_get() Unexecuted instantiation: bcm.cc:EVP_aead_aes_256_gcm_once_bss_get() Unexecuted instantiation: bcm.cc:EVP_aead_aes_256_gcm_storage_bss_get() Unexecuted instantiation: bcm.cc:EVP_aead_aes_128_gcm_randnonce_once_bss_get() Unexecuted instantiation: bcm.cc:EVP_aead_aes_128_gcm_randnonce_storage_bss_get() Unexecuted instantiation: bcm.cc:EVP_aead_aes_256_gcm_randnonce_once_bss_get() Unexecuted instantiation: bcm.cc:EVP_aead_aes_256_gcm_randnonce_storage_bss_get() bcm.cc:EVP_aead_aes_128_gcm_tls12_once_bss_get() Line | Count | Source | 46 | 60.5k | static type *name##_bss_get() { return &name; } |
bcm.cc:EVP_aead_aes_128_gcm_tls12_storage_bss_get() Line | Count | Source | 46 | 60.5k | static type *name##_bss_get() { return &name; } |
bcm.cc:EVP_aead_aes_256_gcm_tls12_once_bss_get() Line | Count | Source | 46 | 25.4k | static type *name##_bss_get() { return &name; } |
bcm.cc:EVP_aead_aes_256_gcm_tls12_storage_bss_get() Line | Count | Source | 46 | 25.4k | static type *name##_bss_get() { return &name; } |
bcm.cc:EVP_aead_aes_128_gcm_tls13_once_bss_get() Line | Count | Source | 46 | 37.9k | static type *name##_bss_get() { return &name; } |
bcm.cc:EVP_aead_aes_128_gcm_tls13_storage_bss_get() Line | Count | Source | 46 | 37.9k | static type *name##_bss_get() { return &name; } |
bcm.cc:EVP_aead_aes_256_gcm_tls13_once_bss_get() Line | Count | Source | 46 | 36.9k | static type *name##_bss_get() { return &name; } |
bcm.cc:EVP_aead_aes_256_gcm_tls13_storage_bss_get() Line | Count | Source | 46 | 36.9k | static type *name##_bss_get() { return &name; } |
Unexecuted instantiation: bcm.cc:EVP_aead_aes_128_ccm_bluetooth_once_bss_get() Unexecuted instantiation: bcm.cc:EVP_aead_aes_128_ccm_bluetooth_storage_bss_get() Unexecuted instantiation: bcm.cc:EVP_aead_aes_128_ccm_bluetooth_8_once_bss_get() Unexecuted instantiation: bcm.cc:EVP_aead_aes_128_ccm_bluetooth_8_storage_bss_get() Unexecuted instantiation: bcm.cc:EVP_aead_aes_128_ccm_matter_once_bss_get() Unexecuted instantiation: bcm.cc:EVP_aead_aes_128_ccm_matter_storage_bss_get() bcm.cc:EVP_sha1_once_bss_get() Line | Count | Source | 46 | 44.2k | static type *name##_bss_get() { return &name; } |
bcm.cc:EVP_sha1_storage_bss_get() Line | Count | Source | 46 | 44.2k | static type *name##_bss_get() { return &name; } |
bcm.cc:EVP_sha224_once_bss_get() Line | Count | Source | 46 | 42 | static type *name##_bss_get() { return &name; } |
bcm.cc:EVP_sha224_storage_bss_get() Line | Count | Source | 46 | 46 | static type *name##_bss_get() { return &name; } |
bcm.cc:EVP_sha256_once_bss_get() Line | Count | Source | 46 | 236k | static type *name##_bss_get() { return &name; } |
bcm.cc:EVP_sha256_storage_bss_get() Line | Count | Source | 46 | 236k | static type *name##_bss_get() { return &name; } |
bcm.cc:EVP_sha384_once_bss_get() Line | Count | Source | 46 | 120k | static type *name##_bss_get() { return &name; } |
bcm.cc:EVP_sha384_storage_bss_get() Line | Count | Source | 46 | 120k | static type *name##_bss_get() { return &name; } |
bcm.cc:EVP_sha512_once_bss_get() Line | Count | Source | 46 | 14.1k | static type *name##_bss_get() { return &name; } |
bcm.cc:EVP_sha512_storage_bss_get() Line | Count | Source | 46 | 14.1k | static type *name##_bss_get() { return &name; } |
Unexecuted instantiation: bcm.cc:EVP_sha512_256_once_bss_get() Unexecuted instantiation: bcm.cc:EVP_sha512_256_storage_bss_get() bcm.cc:md_pctx_ops_once_bss_get() Line | Count | Source | 46 | 57.1k | static type *name##_bss_get() { return &name; } |
bcm.cc:md_pctx_ops_storage_bss_get() Line | Count | Source | 46 | 57.1k | static type *name##_bss_get() { return &name; } |
bcm.cc:EC_group_p224_once_bss_get() Line | Count | Source | 46 | 64.2k | static type *name##_bss_get() { return &name; } |
bcm.cc:EC_group_p224_storage_bss_get() Line | Count | Source | 46 | 64.2k | static type *name##_bss_get() { return &name; } |
bcm.cc:EC_group_p256_once_bss_get() Line | Count | Source | 46 | 67.8k | static type *name##_bss_get() { return &name; } |
bcm.cc:EC_group_p256_storage_bss_get() Line | Count | Source | 46 | 67.9k | static type *name##_bss_get() { return &name; } |
bcm.cc:EC_group_p384_once_bss_get() Line | Count | Source | 46 | 24.0k | static type *name##_bss_get() { return &name; } |
bcm.cc:EC_group_p384_storage_bss_get() Line | Count | Source | 46 | 24.0k | static type *name##_bss_get() { return &name; } |
bcm.cc:EC_group_p521_once_bss_get() Line | Count | Source | 46 | 9.11k | static type *name##_bss_get() { return &name; } |
bcm.cc:EC_group_p521_storage_bss_get() Line | Count | Source | 46 | 9.12k | static type *name##_bss_get() { return &name; } |
bcm.cc:g_ec_ex_data_class_bss_get() Line | Count | Source | 46 | 61.0k | static type *name##_bss_get() { return &name; } |
bcm.cc:bssl::EC_GFp_mont_method_once_bss_get() Line | Count | Source | 46 | 45 | static type *name##_bss_get() { return &name; } |
bcm.cc:bssl::EC_GFp_mont_method_storage_bss_get() Line | Count | Source | 46 | 64 | static type *name##_bss_get() { return &name; } |
bcm.cc:bssl::EC_GFp_nistz256_method_once_bss_get() Line | Count | Source | 46 | 19 | static type *name##_bss_get() { return &name; } |
bcm.cc:bssl::EC_GFp_nistz256_method_storage_bss_get() Line | Count | Source | 46 | 38 | static type *name##_bss_get() { return &name; } |
Unexecuted instantiation: bcm.cc:bssl::EC_GFp_nistp256_method_once_bss_get() Unexecuted instantiation: bcm.cc:bssl::EC_GFp_nistp256_method_storage_bss_get() bcm.cc:g_rsa_ex_data_class_bss_get() Line | Count | Source | 46 | 126k | static type *name##_bss_get() { return &name; } |
Unexecuted instantiation: bcm.cc:g_small_factors_once_bss_get() Unexecuted instantiation: bcm.cc:g_small_factors_storage_bss_get() bcm.cc:bssl::RSA_default_method_once_bss_get() Line | Count | Source | 46 | 126k | static type *name##_bss_get() { return &name; } |
bcm.cc:bssl::RSA_default_method_storage_bss_get() Line | Count | Source | 46 | 126k | static type *name##_bss_get() { return &name; } |
|
47 | | #endif |
48 | | |
49 | | // For FIPS builds we require each of these objects be all zero. |
50 | | #define DEFINE_STATIC_ONCE(name) \ |
51 | | DEFINE_BSS_GET(bssl::CRYPTO_once_t, name, = CRYPTO_ONCE_INIT) |
52 | | #define DEFINE_STATIC_MUTEX(name) \ |
53 | | DEFINE_BSS_GET(bssl::StaticMutex, name, /* default ctor */) |
54 | | #define DEFINE_STATIC_EX_DATA_CLASS(name) \ |
55 | | DEFINE_BSS_GET(bssl::ExDataClass, name, /* default ctor */) |
56 | | |
57 | | #define DEFINE_DATA(type, name, accessor_decorations) \ |
58 | | DEFINE_BSS_GET(type, name##_storage, {}) \ |
59 | | DEFINE_STATIC_ONCE(name##_once) \ |
60 | | static void name##_do_init(type *out); \ |
61 | 233 | static void name##_init() { name##_do_init(name##_storage_bss_get()); } \bcm.cc:BN_value_one_init() Line | Count | Source | 61 | 17 | static void name##_init() { name##_do_init(name##_storage_bss_get()); } \ |
bcm.cc:EVP_aes_128_cbc_init() Line | Count | Source | 61 | 7 | static void name##_init() { name##_do_init(name##_storage_bss_get()); } \ |
Unexecuted instantiation: bcm.cc:EVP_aes_128_ctr_init() Unexecuted instantiation: bcm.cc:EVP_aes_128_ofb_init() Unexecuted instantiation: bcm.cc:EVP_aes_128_gcm_init() Unexecuted instantiation: bcm.cc:EVP_aes_192_cbc_init() Unexecuted instantiation: bcm.cc:EVP_aes_192_ctr_init() Unexecuted instantiation: bcm.cc:EVP_aes_192_ofb_init() Unexecuted instantiation: bcm.cc:EVP_aes_192_gcm_init() bcm.cc:EVP_aes_256_cbc_init() Line | Count | Source | 61 | 6 | static void name##_init() { name##_do_init(name##_storage_bss_get()); } \ |
Unexecuted instantiation: bcm.cc:EVP_aes_256_ctr_init() Unexecuted instantiation: bcm.cc:EVP_aes_256_ofb_init() Unexecuted instantiation: bcm.cc:EVP_aes_256_gcm_init() Unexecuted instantiation: bcm.cc:aes_hw_128_ecb_init() Unexecuted instantiation: bcm.cc:aes_128_ecb_generic_init() Unexecuted instantiation: bcm.cc:aes_hw_192_ecb_init() Unexecuted instantiation: bcm.cc:aes_192_ecb_generic_init() Unexecuted instantiation: bcm.cc:aes_hw_256_ecb_init() Unexecuted instantiation: bcm.cc:aes_256_ecb_generic_init() bcm.cc:EVP_aead_aes_128_gcm_init() Line | Count | Source | 61 | 3 | static void name##_init() { name##_do_init(name##_storage_bss_get()); } \ |
Unexecuted instantiation: bcm.cc:EVP_aead_aes_192_gcm_init() Unexecuted instantiation: bcm.cc:EVP_aead_aes_256_gcm_init() Unexecuted instantiation: bcm.cc:EVP_aead_aes_128_gcm_randnonce_init() Unexecuted instantiation: bcm.cc:EVP_aead_aes_256_gcm_randnonce_init() bcm.cc:EVP_aead_aes_128_gcm_tls12_init() Line | Count | Source | 61 | 6 | static void name##_init() { name##_do_init(name##_storage_bss_get()); } \ |
bcm.cc:EVP_aead_aes_256_gcm_tls12_init() Line | Count | Source | 61 | 6 | static void name##_init() { name##_do_init(name##_storage_bss_get()); } \ |
bcm.cc:EVP_aead_aes_128_gcm_tls13_init() Line | Count | Source | 61 | 6 | static void name##_init() { name##_do_init(name##_storage_bss_get()); } \ |
bcm.cc:EVP_aead_aes_256_gcm_tls13_init() Line | Count | Source | 61 | 6 | static void name##_init() { name##_do_init(name##_storage_bss_get()); } \ |
Unexecuted instantiation: bcm.cc:EVP_aead_aes_128_ccm_bluetooth_init() Unexecuted instantiation: bcm.cc:EVP_aead_aes_128_ccm_bluetooth_8_init() Unexecuted instantiation: bcm.cc:EVP_aead_aes_128_ccm_matter_init() Line | Count | Source | 61 | 11 | static void name##_init() { name##_do_init(name##_storage_bss_get()); } \ |
Line | Count | Source | 61 | 4 | static void name##_init() { name##_do_init(name##_storage_bss_get()); } \ |
Line | Count | Source | 61 | 11 | static void name##_init() { name##_do_init(name##_storage_bss_get()); } \ |
Line | Count | Source | 61 | 10 | static void name##_init() { name##_do_init(name##_storage_bss_get()); } \ |
Line | Count | Source | 61 | 10 | static void name##_init() { name##_do_init(name##_storage_bss_get()); } \ |
Unexecuted instantiation: bcm.cc:EVP_sha512_256_init() bcm.cc:md_pctx_ops_init() Line | Count | Source | 61 | 6 | static void name##_init() { name##_do_init(name##_storage_bss_get()); } \ |
bcm.cc:EC_group_p224_init() Line | Count | Source | 61 | 19 | static void name##_init() { name##_do_init(name##_storage_bss_get()); } \ |
bcm.cc:EC_group_p256_init() Line | Count | Source | 61 | 19 | static void name##_init() { name##_do_init(name##_storage_bss_get()); } \ |
bcm.cc:EC_group_p384_init() Line | Count | Source | 61 | 13 | static void name##_init() { name##_do_init(name##_storage_bss_get()); } \ |
bcm.cc:EC_group_p521_init() Line | Count | Source | 61 | 13 | static void name##_init() { name##_do_init(name##_storage_bss_get()); } \ |
bcm.cc:bssl::EC_GFp_mont_method_init() Line | Count | Source | 61 | 19 | static void name##_init() { name##_do_init(name##_storage_bss_get()); } \ |
bcm.cc:bssl::EC_GFp_nistz256_method_init() Line | Count | Source | 61 | 19 | static void name##_init() { name##_do_init(name##_storage_bss_get()); } \ |
Unexecuted instantiation: bcm.cc:bssl::EC_GFp_nistp256_method_init() Unexecuted instantiation: bcm.cc:g_small_factors_init() bcm.cc:bssl::RSA_default_method_init() Line | Count | Source | 61 | 22 | static void name##_init() { name##_do_init(name##_storage_bss_get()); } \ |
|
62 | 953k | accessor_decorations type *name() { \ |
63 | 953k | bssl::CRYPTO_once(name##_once_bss_get(), name##_init); \ |
64 | 953k | /* See http://c-faq.com/ansi/constmismatch.html for why the following \ |
65 | 953k | * cast is needed. */ \ |
66 | 953k | return (const type *)name##_storage_bss_get(); \ |
67 | 953k | } \ Line | Count | Source | 62 | 916 | accessor_decorations type *name() { \ | 63 | 916 | bssl::CRYPTO_once(name##_once_bss_get(), name##_init); \ | 64 | 916 | /* See http://c-faq.com/ansi/constmismatch.html for why the following \ | 65 | 916 | * cast is needed. */ \ | 66 | 916 | return (const type *)name##_storage_bss_get(); \ | 67 | 916 | } \ |
Line | Count | Source | 62 | 5.15k | accessor_decorations type *name() { \ | 63 | 5.15k | bssl::CRYPTO_once(name##_once_bss_get(), name##_init); \ | 64 | 5.15k | /* See http://c-faq.com/ansi/constmismatch.html for why the following \ | 65 | 5.15k | * cast is needed. */ \ | 66 | 5.15k | return (const type *)name##_storage_bss_get(); \ | 67 | 5.15k | } \ |
Unexecuted instantiation: EVP_aes_128_ctr Unexecuted instantiation: EVP_aes_128_ofb Unexecuted instantiation: EVP_aes_128_gcm Unexecuted instantiation: EVP_aes_192_cbc Unexecuted instantiation: EVP_aes_192_ctr Unexecuted instantiation: EVP_aes_192_ofb Unexecuted instantiation: EVP_aes_192_gcm Line | Count | Source | 62 | 21.4k | accessor_decorations type *name() { \ | 63 | 21.4k | bssl::CRYPTO_once(name##_once_bss_get(), name##_init); \ | 64 | 21.4k | /* See http://c-faq.com/ansi/constmismatch.html for why the following \ | 65 | 21.4k | * cast is needed. */ \ | 66 | 21.4k | return (const type *)name##_storage_bss_get(); \ | 67 | 21.4k | } \ |
Unexecuted instantiation: EVP_aes_256_ctr Unexecuted instantiation: EVP_aes_256_ofb Unexecuted instantiation: EVP_aes_256_gcm Line | Count | Source | 62 | 274 | accessor_decorations type *name() { \ | 63 | 274 | bssl::CRYPTO_once(name##_once_bss_get(), name##_init); \ | 64 | 274 | /* See http://c-faq.com/ansi/constmismatch.html for why the following \ | 65 | 274 | * cast is needed. */ \ | 66 | 274 | return (const type *)name##_storage_bss_get(); \ | 67 | 274 | } \ |
Unexecuted instantiation: EVP_aead_aes_192_gcm Unexecuted instantiation: EVP_aead_aes_256_gcm Unexecuted instantiation: EVP_aead_aes_128_gcm_randnonce Unexecuted instantiation: EVP_aead_aes_256_gcm_randnonce EVP_aead_aes_128_gcm_tls12 Line | Count | Source | 62 | 60.5k | accessor_decorations type *name() { \ | 63 | 60.5k | bssl::CRYPTO_once(name##_once_bss_get(), name##_init); \ | 64 | 60.5k | /* See http://c-faq.com/ansi/constmismatch.html for why the following \ | 65 | 60.5k | * cast is needed. */ \ | 66 | 60.5k | return (const type *)name##_storage_bss_get(); \ | 67 | 60.5k | } \ |
EVP_aead_aes_256_gcm_tls12 Line | Count | Source | 62 | 25.4k | accessor_decorations type *name() { \ | 63 | 25.4k | bssl::CRYPTO_once(name##_once_bss_get(), name##_init); \ | 64 | 25.4k | /* See http://c-faq.com/ansi/constmismatch.html for why the following \ | 65 | 25.4k | * cast is needed. */ \ | 66 | 25.4k | return (const type *)name##_storage_bss_get(); \ | 67 | 25.4k | } \ |
EVP_aead_aes_128_gcm_tls13 Line | Count | Source | 62 | 37.9k | accessor_decorations type *name() { \ | 63 | 37.9k | bssl::CRYPTO_once(name##_once_bss_get(), name##_init); \ | 64 | 37.9k | /* See http://c-faq.com/ansi/constmismatch.html for why the following \ | 65 | 37.9k | * cast is needed. */ \ | 66 | 37.9k | return (const type *)name##_storage_bss_get(); \ | 67 | 37.9k | } \ |
EVP_aead_aes_256_gcm_tls13 Line | Count | Source | 62 | 36.9k | accessor_decorations type *name() { \ | 63 | 36.9k | bssl::CRYPTO_once(name##_once_bss_get(), name##_init); \ | 64 | 36.9k | /* See http://c-faq.com/ansi/constmismatch.html for why the following \ | 65 | 36.9k | * cast is needed. */ \ | 66 | 36.9k | return (const type *)name##_storage_bss_get(); \ | 67 | 36.9k | } \ |
Unexecuted instantiation: EVP_aead_aes_128_ccm_bluetooth Unexecuted instantiation: EVP_aead_aes_128_ccm_bluetooth_8 Unexecuted instantiation: EVP_aead_aes_128_ccm_matter Line | Count | Source | 62 | 44.2k | accessor_decorations type *name() { \ | 63 | 44.2k | bssl::CRYPTO_once(name##_once_bss_get(), name##_init); \ | 64 | 44.2k | /* See http://c-faq.com/ansi/constmismatch.html for why the following \ | 65 | 44.2k | * cast is needed. */ \ | 66 | 44.2k | return (const type *)name##_storage_bss_get(); \ | 67 | 44.2k | } \ |
Line | Count | Source | 62 | 42 | accessor_decorations type *name() { \ | 63 | 42 | bssl::CRYPTO_once(name##_once_bss_get(), name##_init); \ | 64 | 42 | /* See http://c-faq.com/ansi/constmismatch.html for why the following \ | 65 | 42 | * cast is needed. */ \ | 66 | 42 | return (const type *)name##_storage_bss_get(); \ | 67 | 42 | } \ |
Line | Count | Source | 62 | 236k | accessor_decorations type *name() { \ | 63 | 236k | bssl::CRYPTO_once(name##_once_bss_get(), name##_init); \ | 64 | 236k | /* See http://c-faq.com/ansi/constmismatch.html for why the following \ | 65 | 236k | * cast is needed. */ \ | 66 | 236k | return (const type *)name##_storage_bss_get(); \ | 67 | 236k | } \ |
Line | Count | Source | 62 | 120k | accessor_decorations type *name() { \ | 63 | 120k | bssl::CRYPTO_once(name##_once_bss_get(), name##_init); \ | 64 | 120k | /* See http://c-faq.com/ansi/constmismatch.html for why the following \ | 65 | 120k | * cast is needed. */ \ | 66 | 120k | return (const type *)name##_storage_bss_get(); \ | 67 | 120k | } \ |
Line | Count | Source | 62 | 14.1k | accessor_decorations type *name() { \ | 63 | 14.1k | bssl::CRYPTO_once(name##_once_bss_get(), name##_init); \ | 64 | 14.1k | /* See http://c-faq.com/ansi/constmismatch.html for why the following \ | 65 | 14.1k | * cast is needed. */ \ | 66 | 14.1k | return (const type *)name##_storage_bss_get(); \ | 67 | 14.1k | } \ |
Unexecuted instantiation: EVP_sha512_256 Line | Count | Source | 62 | 64.2k | accessor_decorations type *name() { \ | 63 | 64.2k | bssl::CRYPTO_once(name##_once_bss_get(), name##_init); \ | 64 | 64.2k | /* See http://c-faq.com/ansi/constmismatch.html for why the following \ | 65 | 64.2k | * cast is needed. */ \ | 66 | 64.2k | return (const type *)name##_storage_bss_get(); \ | 67 | 64.2k | } \ |
Line | Count | Source | 62 | 67.8k | accessor_decorations type *name() { \ | 63 | 67.8k | bssl::CRYPTO_once(name##_once_bss_get(), name##_init); \ | 64 | 67.8k | /* See http://c-faq.com/ansi/constmismatch.html for why the following \ | 65 | 67.8k | * cast is needed. */ \ | 66 | 67.8k | return (const type *)name##_storage_bss_get(); \ | 67 | 67.8k | } \ |
Line | Count | Source | 62 | 24.0k | accessor_decorations type *name() { \ | 63 | 24.0k | bssl::CRYPTO_once(name##_once_bss_get(), name##_init); \ | 64 | 24.0k | /* See http://c-faq.com/ansi/constmismatch.html for why the following \ | 65 | 24.0k | * cast is needed. */ \ | 66 | 24.0k | return (const type *)name##_storage_bss_get(); \ | 67 | 24.0k | } \ |
Line | Count | Source | 62 | 9.11k | accessor_decorations type *name() { \ | 63 | 9.11k | bssl::CRYPTO_once(name##_once_bss_get(), name##_init); \ | 64 | 9.11k | /* See http://c-faq.com/ansi/constmismatch.html for why the following \ | 65 | 9.11k | * cast is needed. */ \ | 66 | 9.11k | return (const type *)name##_storage_bss_get(); \ | 67 | 9.11k | } \ |
bssl::EC_GFp_mont_method() Line | Count | Source | 62 | 45 | accessor_decorations type *name() { \ | 63 | 45 | bssl::CRYPTO_once(name##_once_bss_get(), name##_init); \ | 64 | 45 | /* See http://c-faq.com/ansi/constmismatch.html for why the following \ | 65 | 45 | * cast is needed. */ \ | 66 | 45 | return (const type *)name##_storage_bss_get(); \ | 67 | 45 | } \ |
bssl::EC_GFp_nistz256_method() Line | Count | Source | 62 | 19 | accessor_decorations type *name() { \ | 63 | 19 | bssl::CRYPTO_once(name##_once_bss_get(), name##_init); \ | 64 | 19 | /* See http://c-faq.com/ansi/constmismatch.html for why the following \ | 65 | 19 | * cast is needed. */ \ | 66 | 19 | return (const type *)name##_storage_bss_get(); \ | 67 | 19 | } \ |
Unexecuted instantiation: bssl::EC_GFp_nistp256_method() bssl::RSA_default_method() Line | Count | Source | 62 | 126k | accessor_decorations type *name() { \ | 63 | 126k | bssl::CRYPTO_once(name##_once_bss_get(), name##_init); \ | 64 | 126k | /* See http://c-faq.com/ansi/constmismatch.html for why the following \ | 65 | 126k | * cast is needed. */ \ | 66 | 126k | return (const type *)name##_storage_bss_get(); \ | 67 | 126k | } \ |
Unexecuted instantiation: bcm.cc:aes_hw_128_ecb() Unexecuted instantiation: bcm.cc:aes_128_ecb_generic() Unexecuted instantiation: bcm.cc:aes_hw_192_ecb() Unexecuted instantiation: bcm.cc:aes_192_ecb_generic() Unexecuted instantiation: bcm.cc:aes_hw_256_ecb() Unexecuted instantiation: bcm.cc:aes_256_ecb_generic() Line | Count | Source | 62 | 57.1k | accessor_decorations type *name() { \ | 63 | 57.1k | bssl::CRYPTO_once(name##_once_bss_get(), name##_init); \ | 64 | 57.1k | /* See http://c-faq.com/ansi/constmismatch.html for why the following \ | 65 | 57.1k | * cast is needed. */ \ | 66 | 57.1k | return (const type *)name##_storage_bss_get(); \ | 67 | 57.1k | } \ |
Unexecuted instantiation: bcm.cc:g_small_factors() |
68 | | static void name##_do_init(type *out) |
69 | | |
70 | | // DEFINE_METHOD_FUNCTION defines a function named |name| which returns a |
71 | | // method table of type const |type|*. In FIPS mode, to avoid rel.ro data, it |
72 | | // is split into a CRYPTO_once_t-guarded initializer in the module and |
73 | | // unhashed, non-module accessor functions to space reserved in the BSS. The |
74 | | // method table is initialized by a caller-supplied function which takes a |
75 | | // parameter named |out| of type |type|*. The caller should follow the macro |
76 | | // invocation with the body of this function: |
77 | | // |
78 | | // DEFINE_METHOD_FUNCTION(EVP_MD, EVP_md4) { |
79 | | // out->type = NID_md4; |
80 | | // out->md_size = MD4_DIGEST_LENGTH; |
81 | | // out->flags = 0; |
82 | | // out->init = md4_init; |
83 | | // out->update = md4_update; |
84 | | // out->final = md4_final; |
85 | | // out->block_size = 64; |
86 | | // out->ctx_size = sizeof(MD4_CTX); |
87 | | // } |
88 | | // |
89 | | // This mechanism does not use a static initializer because their execution |
90 | | // order is undefined. See FIPS.md for more details. |
91 | | #define DEFINE_METHOD_FUNCTION(type, name) DEFINE_DATA(type, name, const) |
92 | | |
93 | | #define DEFINE_LOCAL_DATA(type, name) DEFINE_DATA(type, name, static const) |
94 | | |
95 | | #endif // OPENSSL_HEADER_CRYPTO_FIPSMODULE_DELOCATE_H |