Coverage Report

Created: 2024-11-21 07:03

/src/boringssl/crypto/internal.h
Line
Count
Source (jump to first uncovered line)
1
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
2
 * All rights reserved.
3
 *
4
 * This package is an SSL implementation written
5
 * by Eric Young (eay@cryptsoft.com).
6
 * The implementation was written so as to conform with Netscapes SSL.
7
 *
8
 * This library is free for commercial and non-commercial use as long as
9
 * the following conditions are aheared to.  The following conditions
10
 * apply to all code found in this distribution, be it the RC4, RSA,
11
 * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
12
 * included with this distribution is covered by the same copyright terms
13
 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
14
 *
15
 * Copyright remains Eric Young's, and as such any Copyright notices in
16
 * the code are not to be removed.
17
 * If this package is used in a product, Eric Young should be given attribution
18
 * as the author of the parts of the library used.
19
 * This can be in the form of a textual message at program startup or
20
 * in documentation (online or textual) provided with the package.
21
 *
22
 * Redistribution and use in source and binary forms, with or without
23
 * modification, are permitted provided that the following conditions
24
 * are met:
25
 * 1. Redistributions of source code must retain the copyright
26
 *    notice, this list of conditions and the following disclaimer.
27
 * 2. Redistributions in binary form must reproduce the above copyright
28
 *    notice, this list of conditions and the following disclaimer in the
29
 *    documentation and/or other materials provided with the distribution.
30
 * 3. All advertising materials mentioning features or use of this software
31
 *    must display the following acknowledgement:
32
 *    "This product includes cryptographic software written by
33
 *     Eric Young (eay@cryptsoft.com)"
34
 *    The word 'cryptographic' can be left out if the rouines from the library
35
 *    being used are not cryptographic related :-).
36
 * 4. If you include any Windows specific code (or a derivative thereof) from
37
 *    the apps directory (application code) you must include an acknowledgement:
38
 *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
39
 *
40
 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
41
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
42
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
43
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
44
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
45
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
46
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
47
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
48
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
49
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
50
 * SUCH DAMAGE.
51
 *
52
 * The licence and distribution terms for any publically available version or
53
 * derivative of this code cannot be changed.  i.e. this code cannot simply be
54
 * copied and put under another distribution licence
55
 * [including the GNU Public Licence.]
56
 */
57
/* ====================================================================
58
 * Copyright (c) 1998-2001 The OpenSSL Project.  All rights reserved.
59
 *
60
 * Redistribution and use in source and binary forms, with or without
61
 * modification, are permitted provided that the following conditions
62
 * are met:
63
 *
64
 * 1. Redistributions of source code must retain the above copyright
65
 *    notice, this list of conditions and the following disclaimer.
66
 *
67
 * 2. Redistributions in binary form must reproduce the above copyright
68
 *    notice, this list of conditions and the following disclaimer in
69
 *    the documentation and/or other materials provided with the
70
 *    distribution.
71
 *
72
 * 3. All advertising materials mentioning features or use of this
73
 *    software must display the following acknowledgment:
74
 *    "This product includes software developed by the OpenSSL Project
75
 *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
76
 *
77
 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
78
 *    endorse or promote products derived from this software without
79
 *    prior written permission. For written permission, please contact
80
 *    openssl-core@openssl.org.
81
 *
82
 * 5. Products derived from this software may not be called "OpenSSL"
83
 *    nor may "OpenSSL" appear in their names without prior written
84
 *    permission of the OpenSSL Project.
85
 *
86
 * 6. Redistributions of any form whatsoever must retain the following
87
 *    acknowledgment:
88
 *    "This product includes software developed by the OpenSSL Project
89
 *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
90
 *
91
 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
92
 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
93
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
94
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
95
 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
96
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
97
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
98
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
99
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
100
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
101
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
102
 * OF THE POSSIBILITY OF SUCH DAMAGE.
103
 * ====================================================================
104
 *
105
 * This product includes cryptographic software written by Eric Young
106
 * (eay@cryptsoft.com).  This product includes software written by Tim
107
 * Hudson (tjh@cryptsoft.com). */
108
109
#ifndef OPENSSL_HEADER_CRYPTO_INTERNAL_H
110
#define OPENSSL_HEADER_CRYPTO_INTERNAL_H
111
112
#include <openssl/arm_arch.h>
113
#include <openssl/crypto.h>
114
#include <openssl/ex_data.h>
115
#include <openssl/stack.h>
116
#include <openssl/thread.h>
117
118
#include <assert.h>
119
#include <string.h>
120
121
#if defined(BORINGSSL_CONSTANT_TIME_VALIDATION)
122
#include <valgrind/memcheck.h>
123
#endif
124
125
#if defined(BORINGSSL_FIPS_BREAK_TESTS)
126
#include <stdlib.h>
127
#endif
128
129
#if !defined(__cplusplus)
130
#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 201112L
131
// BoringSSL requires C11 to build the library. The most likely cause of
132
// pre-C11 modes is stale -std=c99 or -std=gnu99 flags in build configuration.
133
// Such flags can be removed. If building with MSVC, build with /std:c11.
134
#error "BoringSSL must be built in C11 mode or higher."
135
#endif
136
#include <stdalign.h>
137
#endif
138
139
#if defined(OPENSSL_THREADS) && \
140
    (!defined(OPENSSL_WINDOWS) || defined(__MINGW32__))
141
#include <pthread.h>
142
#define OPENSSL_PTHREADS
143
#endif
144
145
#if defined(OPENSSL_THREADS) && !defined(OPENSSL_PTHREADS) && \
146
    defined(OPENSSL_WINDOWS)
147
#define OPENSSL_WINDOWS_THREADS
148
#endif
149
150
// Determine the atomics implementation to use with C.
151
#if !defined(__cplusplus)
152
#if !defined(OPENSSL_C11_ATOMIC) && defined(OPENSSL_THREADS) && \
153
    !defined(__STDC_NO_ATOMICS__)
154
#define OPENSSL_C11_ATOMIC
155
#endif
156
157
#if defined(OPENSSL_C11_ATOMIC)
158
#include <stdatomic.h>
159
#endif
160
161
// Older MSVC does not support C11 atomics, so we fallback to the Windows APIs.
162
// When both are available (e.g. clang-cl), we prefer the C11 ones. The Windows
163
// APIs don't allow some operations to be implemented as efficiently. This can
164
// be removed once we can rely on
165
// https://devblogs.microsoft.com/cppblog/c11-atomics-in-visual-studio-2022-version-17-5-preview-2/
166
#if !defined(OPENSSL_C11_ATOMIC) && defined(OPENSSL_THREADS) && \
167
    defined(OPENSSL_WINDOWS)
168
#define OPENSSL_WINDOWS_ATOMIC
169
#endif
170
#endif  // !__cplusplus
171
172
#if defined(OPENSSL_WINDOWS_THREADS) || defined(OPENSSL_WINDOWS_ATOMIC)
173
OPENSSL_MSVC_PRAGMA(warning(push, 3))
174
#include <windows.h>
175
OPENSSL_MSVC_PRAGMA(warning(pop))
176
#endif
177
178
#if defined(__cplusplus)
179
extern "C" {
180
#endif
181
182
183
#if !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_STATIC_ARMCAP) && \
184
    (defined(OPENSSL_X86) || defined(OPENSSL_X86_64) ||            \
185
     defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64))
186
// x86, x86_64, and the ARMs need to record the result of a cpuid/getauxval call
187
// for the asm to work correctly, unless compiled without asm code.
188
#define NEED_CPUID
189
190
// OPENSSL_cpuid_setup initializes the platform-specific feature cache. This
191
// function should not be called directly. Call |OPENSSL_init_cpuid| instead.
192
void OPENSSL_cpuid_setup(void);
193
194
// OPENSSL_init_cpuid initializes the platform-specific feature cache, if
195
// needed. This function is idempotent and may be called concurrently.
196
void OPENSSL_init_cpuid(void);
197
#else
198
0
OPENSSL_INLINE void OPENSSL_init_cpuid(void) {}
Unexecuted instantiation: a_int.c:OPENSSL_init_cpuid
Unexecuted instantiation: asn1_lib.c:OPENSSL_init_cpuid
Unexecuted instantiation: bcm.c:OPENSSL_init_cpuid
Unexecuted instantiation: cbb.c:OPENSSL_init_cpuid
Unexecuted instantiation: cbs.c:OPENSSL_init_cpuid
Unexecuted instantiation: convert.c:OPENSSL_init_cpuid
Unexecuted instantiation: crypto.c:OPENSSL_init_cpuid
Unexecuted instantiation: curve25519.c:OPENSSL_init_cpuid
Unexecuted instantiation: digest_extra.c:OPENSSL_init_cpuid
Unexecuted instantiation: dsa.c:OPENSSL_init_cpuid
Unexecuted instantiation: dsa_asn1.c:OPENSSL_init_cpuid
Unexecuted instantiation: e_aesctrhmac.c:OPENSSL_init_cpuid
Unexecuted instantiation: e_aesgcmsiv.c:OPENSSL_init_cpuid
Unexecuted instantiation: e_chacha20poly1305.c:OPENSSL_init_cpuid
Unexecuted instantiation: e_des.c:OPENSSL_init_cpuid
Unexecuted instantiation: e_rc2.c:OPENSSL_init_cpuid
Unexecuted instantiation: e_rc4.c:OPENSSL_init_cpuid
Unexecuted instantiation: e_tls.c:OPENSSL_init_cpuid
Unexecuted instantiation: ecdh_extra.c:OPENSSL_init_cpuid
Unexecuted instantiation: ecdsa_asn1.c:OPENSSL_init_cpuid
Unexecuted instantiation: engine.c:OPENSSL_init_cpuid
Unexecuted instantiation: err.c:OPENSSL_init_cpuid
Unexecuted instantiation: evp.c:OPENSSL_init_cpuid
Unexecuted instantiation: evp_ctx.c:OPENSSL_init_cpuid
Unexecuted instantiation: ex_data.c:OPENSSL_init_cpuid
Unexecuted instantiation: file.c:OPENSSL_init_cpuid
Unexecuted instantiation: fork_detect.c:OPENSSL_init_cpuid
Unexecuted instantiation: forkunsafe.c:OPENSSL_init_cpuid
Unexecuted instantiation: md4.c:OPENSSL_init_cpuid
Unexecuted instantiation: md5.c:OPENSSL_init_cpuid
Unexecuted instantiation: mem.c:OPENSSL_init_cpuid
Unexecuted instantiation: obj.c:OPENSSL_init_cpuid
Unexecuted instantiation: p_dh_asn1.c:OPENSSL_init_cpuid
Unexecuted instantiation: p_dsa_asn1.c:OPENSSL_init_cpuid
Unexecuted instantiation: p_ec.c:OPENSSL_init_cpuid
Unexecuted instantiation: p_ed25519_asn1.c:OPENSSL_init_cpuid
Unexecuted instantiation: p_hkdf.c:OPENSSL_init_cpuid
Unexecuted instantiation: p_rsa.c:OPENSSL_init_cpuid
Unexecuted instantiation: p_rsa_asn1.c:OPENSSL_init_cpuid
Unexecuted instantiation: p_x25519_asn1.c:OPENSSL_init_cpuid
Unexecuted instantiation: pbkdf.c:OPENSSL_init_cpuid
Unexecuted instantiation: poly1305_vec.c:OPENSSL_init_cpuid
Unexecuted instantiation: refcount.c:OPENSSL_init_cpuid
Unexecuted instantiation: rsa_asn1.c:OPENSSL_init_cpuid
Unexecuted instantiation: rsa_crypt.c:OPENSSL_init_cpuid
Unexecuted instantiation: scrypt.c:OPENSSL_init_cpuid
Unexecuted instantiation: siphash.c:OPENSSL_init_cpuid
Unexecuted instantiation: stack.c:OPENSSL_init_cpuid
Unexecuted instantiation: thread_pthread.c:OPENSSL_init_cpuid
Unexecuted instantiation: tls_cbc.c:OPENSSL_init_cpuid
Unexecuted instantiation: urandom.c:OPENSSL_init_cpuid
Unexecuted instantiation: a_bitstr.c:OPENSSL_init_cpuid
Unexecuted instantiation: a_object.c:OPENSSL_init_cpuid
Unexecuted instantiation: asn1_compat.c:OPENSSL_init_cpuid
Unexecuted instantiation: bio.c:OPENSSL_init_cpuid
Unexecuted instantiation: blake2.c:OPENSSL_init_cpuid
Unexecuted instantiation: chacha.c:OPENSSL_init_cpuid
Unexecuted instantiation: des.c:OPENSSL_init_cpuid
Unexecuted instantiation: ec_asn1.c:OPENSSL_init_cpuid
Unexecuted instantiation: lhash.c:OPENSSL_init_cpuid
Unexecuted instantiation: tasn_dec.c:OPENSSL_init_cpuid
Unexecuted instantiation: tasn_enc.c:OPENSSL_init_cpuid
Unexecuted instantiation: tasn_new.c:OPENSSL_init_cpuid
Unexecuted instantiation: tasn_utl.c:OPENSSL_init_cpuid
Unexecuted instantiation: pool.c:OPENSSL_init_cpuid
199
#endif
200
201
#if (defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64)) && \
202
    !defined(OPENSSL_STATIC_ARMCAP)
203
// OPENSSL_get_armcap_pointer_for_test returns a pointer to |OPENSSL_armcap_P|
204
// for unit tests. Any modifications to the value must be made before any other
205
// function call in BoringSSL.
206
OPENSSL_EXPORT uint32_t *OPENSSL_get_armcap_pointer_for_test(void);
207
#endif
208
209
210
// On non-MSVC 64-bit targets, we expect __uint128_t support. This includes
211
// clang-cl, which defines both __clang__ and _MSC_VER.
212
#if (!defined(_MSC_VER) || defined(__clang__)) && defined(OPENSSL_64_BIT)
213
#define BORINGSSL_HAS_UINT128
214
typedef __int128_t int128_t;
215
typedef __uint128_t uint128_t;
216
217
// __uint128_t division depends on intrinsics in the compiler runtime. Those
218
// intrinsics are missing in clang-cl (https://crbug.com/787617) and nanolibc.
219
// These may be bugs in the toolchain definition, but just disable it for now.
220
// EDK2's toolchain is missing __udivti3 (b/339380897) so cannot support
221
// 128-bit division currently.
222
#if !defined(_MSC_VER) && !defined(OPENSSL_NANOLIBC) && !defined(__EDK2_BORINGSSL__)
223
#define BORINGSSL_CAN_DIVIDE_UINT128
224
#endif
225
#endif
226
227
493k
#define OPENSSL_ARRAY_SIZE(array) (sizeof(array) / sizeof((array)[0]))
228
229
// Have a generic fall-through for different versions of C/C++.
230
#if defined(__cplusplus) && __cplusplus >= 201703L
231
#define OPENSSL_FALLTHROUGH [[fallthrough]]
232
#elif defined(__cplusplus) && __cplusplus >= 201103L && defined(__clang__)
233
#define OPENSSL_FALLTHROUGH [[clang::fallthrough]]
234
#elif defined(__cplusplus) && __cplusplus >= 201103L && defined(__GNUC__) && \
235
    __GNUC__ >= 7
236
#define OPENSSL_FALLTHROUGH [[gnu::fallthrough]]
237
#elif defined(__GNUC__) && __GNUC__ >= 7 // gcc 7
238
#define OPENSSL_FALLTHROUGH __attribute__ ((fallthrough))
239
#elif defined(__clang__)
240
#if __has_attribute(fallthrough) && __clang_major__ >= 5
241
// Clang 3.5, at least, complains about "error: declaration does not declare
242
// anything", possibily because we put a semicolon after this macro in
243
// practice. Thus limit it to >= Clang 5, which does work.
244
0
#define OPENSSL_FALLTHROUGH __attribute__ ((fallthrough))
245
#else // clang versions that do not support fallthrough.
246
#define OPENSSL_FALLTHROUGH
247
#endif
248
#else // C++11 on gcc 6, and all other cases
249
#define OPENSSL_FALLTHROUGH
250
#endif
251
252
// GCC-like compilers indicate SSE2 with |__SSE2__|. MSVC leaves the caller to
253
// know that x86_64 has SSE2, and uses _M_IX86_FP to indicate SSE2 on x86.
254
// https://learn.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=msvc-170
255
#if defined(__SSE2__) || defined(_M_AMD64) || defined(_M_X64) || \
256
    (defined(_M_IX86_FP) && _M_IX86_FP >= 2)
257
#define OPENSSL_SSE2
258
#endif
259
260
#if defined(OPENSSL_X86) && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_SSE2)
261
#error \
262
    "x86 assembly requires SSE2. Build with -msse2 (recommended), or disable assembly optimizations with -DOPENSSL_NO_ASM."
263
#endif
264
265
// For convenience in testing the fallback code, we allow disabling SSE2
266
// intrinsics via |OPENSSL_NO_SSE2_FOR_TESTING|. We require SSE2 on x86 and
267
// x86_64, so we would otherwise need to test such code on a non-x86 platform.
268
//
269
// This does not remove the above requirement for SSE2 support with assembly
270
// optimizations. It only disables some intrinsics-based optimizations so that
271
// we can test the fallback code on CI.
272
#if defined(OPENSSL_SSE2) && defined(OPENSSL_NO_SSE2_FOR_TESTING)
273
#undef OPENSSL_SSE2
274
#endif
275
276
#if defined(__GNUC__) || defined(__clang__)
277
#define OPENSSL_ATTR_CONST __attribute__((const))
278
#else
279
#define OPENSSL_ATTR_CONST
280
#endif
281
282
#if defined(BORINGSSL_MALLOC_FAILURE_TESTING)
283
// OPENSSL_reset_malloc_counter_for_testing, when malloc testing is enabled,
284
// resets the internal malloc counter, to simulate further malloc failures. This
285
// should be called in between independent tests, at a point where failure from
286
// a previous test will not impact subsequent ones.
287
OPENSSL_EXPORT void OPENSSL_reset_malloc_counter_for_testing(void);
288
289
// OPENSSL_disable_malloc_failures_for_testing, when malloc testing is enabled,
290
// disables simulated malloc failures. Calls to |OPENSSL_malloc| will not
291
// increment the malloc counter or synthesize failures. This may be used to skip
292
// simulating malloc failures in some region of code.
293
OPENSSL_EXPORT void OPENSSL_disable_malloc_failures_for_testing(void);
294
295
// OPENSSL_enable_malloc_failures_for_testing, when malloc testing is enabled,
296
// re-enables simulated malloc failures.
297
OPENSSL_EXPORT void OPENSSL_enable_malloc_failures_for_testing(void);
298
#else
299
0
OPENSSL_INLINE void OPENSSL_reset_malloc_counter_for_testing(void) {}
Unexecuted instantiation: a_int.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: asn1_lib.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: bcm.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: cbb.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: cbs.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: convert.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: crypto.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: curve25519.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: digest_extra.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: dsa.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: dsa_asn1.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: e_aesctrhmac.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: e_aesgcmsiv.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: e_chacha20poly1305.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: e_des.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: e_rc2.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: e_rc4.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: e_tls.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: ecdh_extra.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: ecdsa_asn1.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: engine.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: err.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: evp.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: evp_ctx.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: ex_data.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: file.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: fork_detect.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: forkunsafe.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: md4.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: md5.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: mem.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: obj.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: p_dh_asn1.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: p_dsa_asn1.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: p_ec.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: p_ed25519_asn1.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: p_hkdf.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: p_rsa.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: p_rsa_asn1.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: p_x25519_asn1.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: pbkdf.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: poly1305_vec.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: refcount.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: rsa_asn1.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: rsa_crypt.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: scrypt.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: siphash.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: stack.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: thread_pthread.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: tls_cbc.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: urandom.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: a_bitstr.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: a_object.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: asn1_compat.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: bio.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: blake2.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: chacha.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: des.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: ec_asn1.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: lhash.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: tasn_dec.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: tasn_enc.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: tasn_new.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: tasn_utl.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: pool.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: curve25519_64_adx.c:OPENSSL_reset_malloc_counter_for_testing
Unexecuted instantiation: cpu_intel.c:OPENSSL_reset_malloc_counter_for_testing
300
0
OPENSSL_INLINE void OPENSSL_disable_malloc_failures_for_testing(void) {}
Unexecuted instantiation: a_int.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: asn1_lib.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: bcm.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: cbb.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: cbs.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: convert.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: crypto.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: curve25519.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: digest_extra.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: dsa.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: dsa_asn1.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: e_aesctrhmac.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: e_aesgcmsiv.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: e_chacha20poly1305.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: e_des.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: e_rc2.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: e_rc4.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: e_tls.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: ecdh_extra.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: ecdsa_asn1.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: engine.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: err.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: evp.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: evp_ctx.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: ex_data.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: file.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: fork_detect.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: forkunsafe.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: md4.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: md5.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: mem.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: obj.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: p_dh_asn1.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: p_dsa_asn1.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: p_ec.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: p_ed25519_asn1.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: p_hkdf.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: p_rsa.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: p_rsa_asn1.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: p_x25519_asn1.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: pbkdf.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: poly1305_vec.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: refcount.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: rsa_asn1.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: rsa_crypt.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: scrypt.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: siphash.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: stack.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: thread_pthread.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: tls_cbc.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: urandom.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: a_bitstr.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: a_object.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: asn1_compat.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: bio.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: blake2.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: chacha.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: des.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: ec_asn1.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: lhash.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: tasn_dec.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: tasn_enc.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: tasn_new.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: tasn_utl.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: pool.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: curve25519_64_adx.c:OPENSSL_disable_malloc_failures_for_testing
Unexecuted instantiation: cpu_intel.c:OPENSSL_disable_malloc_failures_for_testing
301
0
OPENSSL_INLINE void OPENSSL_enable_malloc_failures_for_testing(void) {}
Unexecuted instantiation: a_int.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: asn1_lib.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: bcm.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: cbb.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: cbs.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: convert.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: crypto.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: curve25519.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: digest_extra.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: dsa.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: dsa_asn1.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: e_aesctrhmac.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: e_aesgcmsiv.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: e_chacha20poly1305.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: e_des.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: e_rc2.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: e_rc4.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: e_tls.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: ecdh_extra.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: ecdsa_asn1.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: engine.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: err.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: evp.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: evp_ctx.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: ex_data.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: file.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: fork_detect.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: forkunsafe.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: md4.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: md5.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: mem.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: obj.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: p_dh_asn1.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: p_dsa_asn1.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: p_ec.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: p_ed25519_asn1.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: p_hkdf.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: p_rsa.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: p_rsa_asn1.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: p_x25519_asn1.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: pbkdf.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: poly1305_vec.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: refcount.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: rsa_asn1.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: rsa_crypt.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: scrypt.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: siphash.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: stack.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: thread_pthread.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: tls_cbc.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: urandom.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: a_bitstr.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: a_object.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: asn1_compat.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: bio.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: blake2.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: chacha.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: des.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: ec_asn1.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: lhash.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: tasn_dec.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: tasn_enc.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: tasn_new.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: tasn_utl.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: pool.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: curve25519_64_adx.c:OPENSSL_enable_malloc_failures_for_testing
Unexecuted instantiation: cpu_intel.c:OPENSSL_enable_malloc_failures_for_testing
302
#endif
303
304
#if defined(__has_builtin)
305
#define OPENSSL_HAS_BUILTIN(x) __has_builtin(x)
306
#else
307
#define OPENSSL_HAS_BUILTIN(x) 0
308
#endif
309
310
311
// Pointer utility functions.
312
313
// buffers_alias returns one if |a| and |b| alias and zero otherwise.
314
static inline int buffers_alias(const void *a, size_t a_bytes,
315
2.21k
                                const void *b, size_t b_bytes) {
316
  // Cast |a| and |b| to integers. In C, pointer comparisons between unrelated
317
  // objects are undefined whereas pointer to integer conversions are merely
318
  // implementation-defined. We assume the implementation defined it in a sane
319
  // way.
320
2.21k
  uintptr_t a_u = (uintptr_t)a;
321
2.21k
  uintptr_t b_u = (uintptr_t)b;
322
2.21k
  return a_u + a_bytes > b_u && b_u + b_bytes > a_u;
323
2.21k
}
Unexecuted instantiation: a_int.c:buffers_alias
Unexecuted instantiation: asn1_lib.c:buffers_alias
bcm.c:buffers_alias
Line
Count
Source
315
1.39k
                                const void *b, size_t b_bytes) {
316
  // Cast |a| and |b| to integers. In C, pointer comparisons between unrelated
317
  // objects are undefined whereas pointer to integer conversions are merely
318
  // implementation-defined. We assume the implementation defined it in a sane
319
  // way.
320
1.39k
  uintptr_t a_u = (uintptr_t)a;
321
1.39k
  uintptr_t b_u = (uintptr_t)b;
322
1.39k
  return a_u + a_bytes > b_u && b_u + b_bytes > a_u;
323
1.39k
}
Unexecuted instantiation: cbb.c:buffers_alias
Unexecuted instantiation: cbs.c:buffers_alias
Unexecuted instantiation: convert.c:buffers_alias
Unexecuted instantiation: crypto.c:buffers_alias
curve25519.c:buffers_alias
Line
Count
Source
315
512
                                const void *b, size_t b_bytes) {
316
  // Cast |a| and |b| to integers. In C, pointer comparisons between unrelated
317
  // objects are undefined whereas pointer to integer conversions are merely
318
  // implementation-defined. We assume the implementation defined it in a sane
319
  // way.
320
512
  uintptr_t a_u = (uintptr_t)a;
321
512
  uintptr_t b_u = (uintptr_t)b;
322
512
  return a_u + a_bytes > b_u && b_u + b_bytes > a_u;
323
512
}
Unexecuted instantiation: digest_extra.c:buffers_alias
Unexecuted instantiation: dsa.c:buffers_alias
Unexecuted instantiation: dsa_asn1.c:buffers_alias
Unexecuted instantiation: e_aesctrhmac.c:buffers_alias
Unexecuted instantiation: e_aesgcmsiv.c:buffers_alias
Unexecuted instantiation: e_chacha20poly1305.c:buffers_alias
Unexecuted instantiation: e_des.c:buffers_alias
Unexecuted instantiation: e_rc2.c:buffers_alias
Unexecuted instantiation: e_rc4.c:buffers_alias
Unexecuted instantiation: e_tls.c:buffers_alias
Unexecuted instantiation: ecdh_extra.c:buffers_alias
Unexecuted instantiation: ecdsa_asn1.c:buffers_alias
Unexecuted instantiation: engine.c:buffers_alias
Unexecuted instantiation: err.c:buffers_alias
Unexecuted instantiation: evp.c:buffers_alias
Unexecuted instantiation: evp_ctx.c:buffers_alias
Unexecuted instantiation: ex_data.c:buffers_alias
Unexecuted instantiation: file.c:buffers_alias
Unexecuted instantiation: fork_detect.c:buffers_alias
Unexecuted instantiation: forkunsafe.c:buffers_alias
Unexecuted instantiation: md4.c:buffers_alias
Unexecuted instantiation: md5.c:buffers_alias
Unexecuted instantiation: mem.c:buffers_alias
Unexecuted instantiation: obj.c:buffers_alias
Unexecuted instantiation: p_dh_asn1.c:buffers_alias
Unexecuted instantiation: p_dsa_asn1.c:buffers_alias
Unexecuted instantiation: p_ec.c:buffers_alias
Unexecuted instantiation: p_ed25519_asn1.c:buffers_alias
Unexecuted instantiation: p_hkdf.c:buffers_alias
Unexecuted instantiation: p_rsa.c:buffers_alias
Unexecuted instantiation: p_rsa_asn1.c:buffers_alias
Unexecuted instantiation: p_x25519_asn1.c:buffers_alias
Unexecuted instantiation: pbkdf.c:buffers_alias
Unexecuted instantiation: poly1305_vec.c:buffers_alias
Unexecuted instantiation: refcount.c:buffers_alias
Unexecuted instantiation: rsa_asn1.c:buffers_alias
Unexecuted instantiation: rsa_crypt.c:buffers_alias
Unexecuted instantiation: scrypt.c:buffers_alias
Unexecuted instantiation: siphash.c:buffers_alias
Unexecuted instantiation: stack.c:buffers_alias
Unexecuted instantiation: thread_pthread.c:buffers_alias
Unexecuted instantiation: tls_cbc.c:buffers_alias
Unexecuted instantiation: urandom.c:buffers_alias
Unexecuted instantiation: a_bitstr.c:buffers_alias
Unexecuted instantiation: a_object.c:buffers_alias
Unexecuted instantiation: asn1_compat.c:buffers_alias
Unexecuted instantiation: bio.c:buffers_alias
Unexecuted instantiation: blake2.c:buffers_alias
chacha.c:buffers_alias
Line
Count
Source
315
304
                                const void *b, size_t b_bytes) {
316
  // Cast |a| and |b| to integers. In C, pointer comparisons between unrelated
317
  // objects are undefined whereas pointer to integer conversions are merely
318
  // implementation-defined. We assume the implementation defined it in a sane
319
  // way.
320
304
  uintptr_t a_u = (uintptr_t)a;
321
304
  uintptr_t b_u = (uintptr_t)b;
322
304
  return a_u + a_bytes > b_u && b_u + b_bytes > a_u;
323
304
}
Unexecuted instantiation: des.c:buffers_alias
Unexecuted instantiation: ec_asn1.c:buffers_alias
Unexecuted instantiation: lhash.c:buffers_alias
Unexecuted instantiation: tasn_dec.c:buffers_alias
Unexecuted instantiation: tasn_enc.c:buffers_alias
Unexecuted instantiation: tasn_new.c:buffers_alias
Unexecuted instantiation: tasn_utl.c:buffers_alias
Unexecuted instantiation: pool.c:buffers_alias
Unexecuted instantiation: curve25519_64_adx.c:buffers_alias
Unexecuted instantiation: cpu_intel.c:buffers_alias
324
325
// align_pointer returns |ptr|, advanced to |alignment|. |alignment| must be a
326
// power of two, and |ptr| must have at least |alignment - 1| bytes of scratch
327
// space.
328
3.17k
static inline void *align_pointer(void *ptr, size_t alignment) {
329
  // |alignment| must be a power of two.
330
3.17k
  assert(alignment != 0 && (alignment & (alignment - 1)) == 0);
331
  // Instead of aligning |ptr| as a |uintptr_t| and casting back, compute the
332
  // offset and advance in pointer space. C guarantees that casting from pointer
333
  // to |uintptr_t| and back gives the same pointer, but general
334
  // integer-to-pointer conversions are implementation-defined. GCC does define
335
  // it in the useful way, but this makes fewer assumptions.
336
3.17k
  uintptr_t offset = (0u - (uintptr_t)ptr) & (alignment - 1);
337
3.17k
  ptr = (char *)ptr + offset;
338
3.17k
  assert(((uintptr_t)ptr & (alignment - 1)) == 0);
339
3.17k
  return ptr;
340
3.17k
}
Unexecuted instantiation: a_int.c:align_pointer
Unexecuted instantiation: asn1_lib.c:align_pointer
bcm.c:align_pointer
Line
Count
Source
328
3.17k
static inline void *align_pointer(void *ptr, size_t alignment) {
329
  // |alignment| must be a power of two.
330
3.17k
  assert(alignment != 0 && (alignment & (alignment - 1)) == 0);
331
  // Instead of aligning |ptr| as a |uintptr_t| and casting back, compute the
332
  // offset and advance in pointer space. C guarantees that casting from pointer
333
  // to |uintptr_t| and back gives the same pointer, but general
334
  // integer-to-pointer conversions are implementation-defined. GCC does define
335
  // it in the useful way, but this makes fewer assumptions.
336
3.17k
  uintptr_t offset = (0u - (uintptr_t)ptr) & (alignment - 1);
337
3.17k
  ptr = (char *)ptr + offset;
338
3.17k
  assert(((uintptr_t)ptr & (alignment - 1)) == 0);
339
3.17k
  return ptr;
340
3.17k
}
Unexecuted instantiation: cbb.c:align_pointer
Unexecuted instantiation: cbs.c:align_pointer
Unexecuted instantiation: convert.c:align_pointer
Unexecuted instantiation: crypto.c:align_pointer
Unexecuted instantiation: curve25519.c:align_pointer
Unexecuted instantiation: digest_extra.c:align_pointer
Unexecuted instantiation: dsa.c:align_pointer
Unexecuted instantiation: dsa_asn1.c:align_pointer
Unexecuted instantiation: e_aesctrhmac.c:align_pointer
Unexecuted instantiation: e_aesgcmsiv.c:align_pointer
Unexecuted instantiation: e_chacha20poly1305.c:align_pointer
Unexecuted instantiation: e_des.c:align_pointer
Unexecuted instantiation: e_rc2.c:align_pointer
Unexecuted instantiation: e_rc4.c:align_pointer
Unexecuted instantiation: e_tls.c:align_pointer
Unexecuted instantiation: ecdh_extra.c:align_pointer
Unexecuted instantiation: ecdsa_asn1.c:align_pointer
Unexecuted instantiation: engine.c:align_pointer
Unexecuted instantiation: err.c:align_pointer
Unexecuted instantiation: evp.c:align_pointer
Unexecuted instantiation: evp_ctx.c:align_pointer
Unexecuted instantiation: ex_data.c:align_pointer
Unexecuted instantiation: file.c:align_pointer
Unexecuted instantiation: fork_detect.c:align_pointer
Unexecuted instantiation: forkunsafe.c:align_pointer
Unexecuted instantiation: md4.c:align_pointer
Unexecuted instantiation: md5.c:align_pointer
Unexecuted instantiation: mem.c:align_pointer
Unexecuted instantiation: obj.c:align_pointer
Unexecuted instantiation: p_dh_asn1.c:align_pointer
Unexecuted instantiation: p_dsa_asn1.c:align_pointer
Unexecuted instantiation: p_ec.c:align_pointer
Unexecuted instantiation: p_ed25519_asn1.c:align_pointer
Unexecuted instantiation: p_hkdf.c:align_pointer
Unexecuted instantiation: p_rsa.c:align_pointer
Unexecuted instantiation: p_rsa_asn1.c:align_pointer
Unexecuted instantiation: p_x25519_asn1.c:align_pointer
Unexecuted instantiation: pbkdf.c:align_pointer
Unexecuted instantiation: poly1305_vec.c:align_pointer
Unexecuted instantiation: refcount.c:align_pointer
Unexecuted instantiation: rsa_asn1.c:align_pointer
Unexecuted instantiation: rsa_crypt.c:align_pointer
Unexecuted instantiation: scrypt.c:align_pointer
Unexecuted instantiation: siphash.c:align_pointer
Unexecuted instantiation: stack.c:align_pointer
Unexecuted instantiation: thread_pthread.c:align_pointer
Unexecuted instantiation: tls_cbc.c:align_pointer
Unexecuted instantiation: urandom.c:align_pointer
Unexecuted instantiation: a_bitstr.c:align_pointer
Unexecuted instantiation: a_object.c:align_pointer
Unexecuted instantiation: asn1_compat.c:align_pointer
Unexecuted instantiation: bio.c:align_pointer
Unexecuted instantiation: blake2.c:align_pointer
Unexecuted instantiation: chacha.c:align_pointer
Unexecuted instantiation: des.c:align_pointer
Unexecuted instantiation: ec_asn1.c:align_pointer
Unexecuted instantiation: lhash.c:align_pointer
Unexecuted instantiation: tasn_dec.c:align_pointer
Unexecuted instantiation: tasn_enc.c:align_pointer
Unexecuted instantiation: tasn_new.c:align_pointer
Unexecuted instantiation: tasn_utl.c:align_pointer
Unexecuted instantiation: pool.c:align_pointer
Unexecuted instantiation: curve25519_64_adx.c:align_pointer
Unexecuted instantiation: cpu_intel.c:align_pointer
341
342
343
// Constant-time utility functions.
344
//
345
// The following methods return a bitmask of all ones (0xff...f) for true and 0
346
// for false. This is useful for choosing a value based on the result of a
347
// conditional in constant time. For example,
348
//
349
// if (a < b) {
350
//   c = a;
351
// } else {
352
//   c = b;
353
// }
354
//
355
// can be written as
356
//
357
// crypto_word_t lt = constant_time_lt_w(a, b);
358
// c = constant_time_select_w(lt, a, b);
359
360
// crypto_word_t is the type that most constant-time functions use. Ideally we
361
// would like it to be |size_t|, but NaCl builds in 64-bit mode with 32-bit
362
// pointers, which means that |size_t| can be 32 bits when |BN_ULONG| is 64
363
// bits. Since we want to be able to do constant-time operations on a
364
// |BN_ULONG|, |crypto_word_t| is defined as an unsigned value with the native
365
// word length.
366
#if defined(OPENSSL_64_BIT)
367
typedef uint64_t crypto_word_t;
368
#elif defined(OPENSSL_32_BIT)
369
typedef uint32_t crypto_word_t;
370
#else
371
#error "Must define either OPENSSL_32_BIT or OPENSSL_64_BIT"
372
#endif
373
374
0
#define CONSTTIME_TRUE_W ~((crypto_word_t)0)
375
18
#define CONSTTIME_FALSE_W ((crypto_word_t)0)
376
#define CONSTTIME_TRUE_8 ((uint8_t)0xff)
377
#define CONSTTIME_FALSE_8 ((uint8_t)0)
378
379
// value_barrier_w returns |a|, but prevents GCC and Clang from reasoning about
380
// the returned value. This is used to mitigate compilers undoing constant-time
381
// code, until we can express our requirements directly in the language.
382
//
383
// Note the compiler is aware that |value_barrier_w| has no side effects and
384
// always has the same output for a given input. This allows it to eliminate
385
// dead code, move computations across loops, and vectorize.
386
1.05G
static inline crypto_word_t value_barrier_w(crypto_word_t a) {
387
1.05G
#if defined(__GNUC__) || defined(__clang__)
388
1.05G
  __asm__("" : "+r"(a) : /* no inputs */);
389
1.05G
#endif
390
1.05G
  return a;
391
1.05G
}
Unexecuted instantiation: a_int.c:value_barrier_w
Unexecuted instantiation: asn1_lib.c:value_barrier_w
bcm.c:value_barrier_w
Line
Count
Source
386
1.05G
static inline crypto_word_t value_barrier_w(crypto_word_t a) {
387
1.05G
#if defined(__GNUC__) || defined(__clang__)
388
1.05G
  __asm__("" : "+r"(a) : /* no inputs */);
389
1.05G
#endif
390
1.05G
  return a;
391
1.05G
}
Unexecuted instantiation: cbb.c:value_barrier_w
Unexecuted instantiation: cbs.c:value_barrier_w
Unexecuted instantiation: convert.c:value_barrier_w
Unexecuted instantiation: crypto.c:value_barrier_w
curve25519.c:value_barrier_w
Line
Count
Source
386
49.1k
static inline crypto_word_t value_barrier_w(crypto_word_t a) {
387
49.1k
#if defined(__GNUC__) || defined(__clang__)
388
49.1k
  __asm__("" : "+r"(a) : /* no inputs */);
389
49.1k
#endif
390
49.1k
  return a;
391
49.1k
}
Unexecuted instantiation: digest_extra.c:value_barrier_w
Unexecuted instantiation: dsa.c:value_barrier_w
Unexecuted instantiation: dsa_asn1.c:value_barrier_w
Unexecuted instantiation: e_aesctrhmac.c:value_barrier_w
Unexecuted instantiation: e_aesgcmsiv.c:value_barrier_w
Unexecuted instantiation: e_chacha20poly1305.c:value_barrier_w
Unexecuted instantiation: e_des.c:value_barrier_w
Unexecuted instantiation: e_rc2.c:value_barrier_w
Unexecuted instantiation: e_rc4.c:value_barrier_w
Unexecuted instantiation: e_tls.c:value_barrier_w
Unexecuted instantiation: ecdh_extra.c:value_barrier_w
Unexecuted instantiation: ecdsa_asn1.c:value_barrier_w
Unexecuted instantiation: engine.c:value_barrier_w
Unexecuted instantiation: err.c:value_barrier_w
Unexecuted instantiation: evp.c:value_barrier_w
Unexecuted instantiation: evp_ctx.c:value_barrier_w
Unexecuted instantiation: ex_data.c:value_barrier_w
Unexecuted instantiation: file.c:value_barrier_w
Unexecuted instantiation: fork_detect.c:value_barrier_w
Unexecuted instantiation: forkunsafe.c:value_barrier_w
Unexecuted instantiation: md4.c:value_barrier_w
Unexecuted instantiation: md5.c:value_barrier_w
Unexecuted instantiation: mem.c:value_barrier_w
Unexecuted instantiation: obj.c:value_barrier_w
Unexecuted instantiation: p_dh_asn1.c:value_barrier_w
Unexecuted instantiation: p_dsa_asn1.c:value_barrier_w
Unexecuted instantiation: p_ec.c:value_barrier_w
Unexecuted instantiation: p_ed25519_asn1.c:value_barrier_w
Unexecuted instantiation: p_hkdf.c:value_barrier_w
Unexecuted instantiation: p_rsa.c:value_barrier_w
Unexecuted instantiation: p_rsa_asn1.c:value_barrier_w
Unexecuted instantiation: p_x25519_asn1.c:value_barrier_w
Unexecuted instantiation: pbkdf.c:value_barrier_w
Unexecuted instantiation: poly1305_vec.c:value_barrier_w
Unexecuted instantiation: refcount.c:value_barrier_w
Unexecuted instantiation: rsa_asn1.c:value_barrier_w
Unexecuted instantiation: rsa_crypt.c:value_barrier_w
Unexecuted instantiation: scrypt.c:value_barrier_w
Unexecuted instantiation: siphash.c:value_barrier_w
Unexecuted instantiation: stack.c:value_barrier_w
Unexecuted instantiation: thread_pthread.c:value_barrier_w
Unexecuted instantiation: tls_cbc.c:value_barrier_w
Unexecuted instantiation: urandom.c:value_barrier_w
Unexecuted instantiation: a_bitstr.c:value_barrier_w
Unexecuted instantiation: a_object.c:value_barrier_w
Unexecuted instantiation: asn1_compat.c:value_barrier_w
Unexecuted instantiation: bio.c:value_barrier_w
Unexecuted instantiation: blake2.c:value_barrier_w
Unexecuted instantiation: chacha.c:value_barrier_w
Unexecuted instantiation: des.c:value_barrier_w
Unexecuted instantiation: ec_asn1.c:value_barrier_w
Unexecuted instantiation: lhash.c:value_barrier_w
Unexecuted instantiation: tasn_dec.c:value_barrier_w
Unexecuted instantiation: tasn_enc.c:value_barrier_w
Unexecuted instantiation: tasn_new.c:value_barrier_w
Unexecuted instantiation: tasn_utl.c:value_barrier_w
Unexecuted instantiation: pool.c:value_barrier_w
Unexecuted instantiation: curve25519_64_adx.c:value_barrier_w
Unexecuted instantiation: cpu_intel.c:value_barrier_w
392
393
// value_barrier_u32 behaves like |value_barrier_w| but takes a |uint32_t|.
394
1.30G
static inline uint32_t value_barrier_u32(uint32_t a) {
395
1.30G
#if defined(__GNUC__) || defined(__clang__)
396
1.30G
  __asm__("" : "+r"(a) : /* no inputs */);
397
1.30G
#endif
398
1.30G
  return a;
399
1.30G
}
Unexecuted instantiation: a_int.c:value_barrier_u32
Unexecuted instantiation: asn1_lib.c:value_barrier_u32
bcm.c:value_barrier_u32
Line
Count
Source
394
1.30G
static inline uint32_t value_barrier_u32(uint32_t a) {
395
1.30G
#if defined(__GNUC__) || defined(__clang__)
396
1.30G
  __asm__("" : "+r"(a) : /* no inputs */);
397
1.30G
#endif
398
1.30G
  return a;
399
1.30G
}
Unexecuted instantiation: cbb.c:value_barrier_u32
Unexecuted instantiation: cbs.c:value_barrier_u32
Unexecuted instantiation: convert.c:value_barrier_u32
Unexecuted instantiation: crypto.c:value_barrier_u32
curve25519.c:value_barrier_u32
Line
Count
Source
394
19.4k
static inline uint32_t value_barrier_u32(uint32_t a) {
395
19.4k
#if defined(__GNUC__) || defined(__clang__)
396
19.4k
  __asm__("" : "+r"(a) : /* no inputs */);
397
19.4k
#endif
398
19.4k
  return a;
399
19.4k
}
Unexecuted instantiation: digest_extra.c:value_barrier_u32
Unexecuted instantiation: dsa.c:value_barrier_u32
Unexecuted instantiation: dsa_asn1.c:value_barrier_u32
Unexecuted instantiation: e_aesctrhmac.c:value_barrier_u32
Unexecuted instantiation: e_aesgcmsiv.c:value_barrier_u32
Unexecuted instantiation: e_chacha20poly1305.c:value_barrier_u32
Unexecuted instantiation: e_des.c:value_barrier_u32
Unexecuted instantiation: e_rc2.c:value_barrier_u32
Unexecuted instantiation: e_rc4.c:value_barrier_u32
Unexecuted instantiation: e_tls.c:value_barrier_u32
Unexecuted instantiation: ecdh_extra.c:value_barrier_u32
Unexecuted instantiation: ecdsa_asn1.c:value_barrier_u32
Unexecuted instantiation: engine.c:value_barrier_u32
Unexecuted instantiation: err.c:value_barrier_u32
Unexecuted instantiation: evp.c:value_barrier_u32
Unexecuted instantiation: evp_ctx.c:value_barrier_u32
Unexecuted instantiation: ex_data.c:value_barrier_u32
Unexecuted instantiation: file.c:value_barrier_u32
Unexecuted instantiation: fork_detect.c:value_barrier_u32
Unexecuted instantiation: forkunsafe.c:value_barrier_u32
Unexecuted instantiation: md4.c:value_barrier_u32
Unexecuted instantiation: md5.c:value_barrier_u32
Unexecuted instantiation: mem.c:value_barrier_u32
Unexecuted instantiation: obj.c:value_barrier_u32
Unexecuted instantiation: p_dh_asn1.c:value_barrier_u32
Unexecuted instantiation: p_dsa_asn1.c:value_barrier_u32
Unexecuted instantiation: p_ec.c:value_barrier_u32
Unexecuted instantiation: p_ed25519_asn1.c:value_barrier_u32
Unexecuted instantiation: p_hkdf.c:value_barrier_u32
Unexecuted instantiation: p_rsa.c:value_barrier_u32
Unexecuted instantiation: p_rsa_asn1.c:value_barrier_u32
Unexecuted instantiation: p_x25519_asn1.c:value_barrier_u32
Unexecuted instantiation: pbkdf.c:value_barrier_u32
Unexecuted instantiation: poly1305_vec.c:value_barrier_u32
Unexecuted instantiation: refcount.c:value_barrier_u32
Unexecuted instantiation: rsa_asn1.c:value_barrier_u32
Unexecuted instantiation: rsa_crypt.c:value_barrier_u32
Unexecuted instantiation: scrypt.c:value_barrier_u32
Unexecuted instantiation: siphash.c:value_barrier_u32
Unexecuted instantiation: stack.c:value_barrier_u32
Unexecuted instantiation: thread_pthread.c:value_barrier_u32
Unexecuted instantiation: tls_cbc.c:value_barrier_u32
Unexecuted instantiation: urandom.c:value_barrier_u32
Unexecuted instantiation: a_bitstr.c:value_barrier_u32
Unexecuted instantiation: a_object.c:value_barrier_u32
Unexecuted instantiation: asn1_compat.c:value_barrier_u32
Unexecuted instantiation: bio.c:value_barrier_u32
Unexecuted instantiation: blake2.c:value_barrier_u32
Unexecuted instantiation: chacha.c:value_barrier_u32
Unexecuted instantiation: des.c:value_barrier_u32
Unexecuted instantiation: ec_asn1.c:value_barrier_u32
Unexecuted instantiation: lhash.c:value_barrier_u32
Unexecuted instantiation: tasn_dec.c:value_barrier_u32
Unexecuted instantiation: tasn_enc.c:value_barrier_u32
Unexecuted instantiation: tasn_new.c:value_barrier_u32
Unexecuted instantiation: tasn_utl.c:value_barrier_u32
Unexecuted instantiation: pool.c:value_barrier_u32
Unexecuted instantiation: curve25519_64_adx.c:value_barrier_u32
Unexecuted instantiation: cpu_intel.c:value_barrier_u32
400
401
// value_barrier_u64 behaves like |value_barrier_w| but takes a |uint64_t|.
402
0
static inline uint64_t value_barrier_u64(uint64_t a) {
403
0
#if defined(__GNUC__) || defined(__clang__)
404
0
  __asm__("" : "+r"(a) : /* no inputs */);
405
0
#endif
406
0
  return a;
407
0
}
Unexecuted instantiation: a_int.c:value_barrier_u64
Unexecuted instantiation: asn1_lib.c:value_barrier_u64
Unexecuted instantiation: bcm.c:value_barrier_u64
Unexecuted instantiation: cbb.c:value_barrier_u64
Unexecuted instantiation: cbs.c:value_barrier_u64
Unexecuted instantiation: convert.c:value_barrier_u64
Unexecuted instantiation: crypto.c:value_barrier_u64
Unexecuted instantiation: curve25519.c:value_barrier_u64
Unexecuted instantiation: digest_extra.c:value_barrier_u64
Unexecuted instantiation: dsa.c:value_barrier_u64
Unexecuted instantiation: dsa_asn1.c:value_barrier_u64
Unexecuted instantiation: e_aesctrhmac.c:value_barrier_u64
Unexecuted instantiation: e_aesgcmsiv.c:value_barrier_u64
Unexecuted instantiation: e_chacha20poly1305.c:value_barrier_u64
Unexecuted instantiation: e_des.c:value_barrier_u64
Unexecuted instantiation: e_rc2.c:value_barrier_u64
Unexecuted instantiation: e_rc4.c:value_barrier_u64
Unexecuted instantiation: e_tls.c:value_barrier_u64
Unexecuted instantiation: ecdh_extra.c:value_barrier_u64
Unexecuted instantiation: ecdsa_asn1.c:value_barrier_u64
Unexecuted instantiation: engine.c:value_barrier_u64
Unexecuted instantiation: err.c:value_barrier_u64
Unexecuted instantiation: evp.c:value_barrier_u64
Unexecuted instantiation: evp_ctx.c:value_barrier_u64
Unexecuted instantiation: ex_data.c:value_barrier_u64
Unexecuted instantiation: file.c:value_barrier_u64
Unexecuted instantiation: fork_detect.c:value_barrier_u64
Unexecuted instantiation: forkunsafe.c:value_barrier_u64
Unexecuted instantiation: md4.c:value_barrier_u64
Unexecuted instantiation: md5.c:value_barrier_u64
Unexecuted instantiation: mem.c:value_barrier_u64
Unexecuted instantiation: obj.c:value_barrier_u64
Unexecuted instantiation: p_dh_asn1.c:value_barrier_u64
Unexecuted instantiation: p_dsa_asn1.c:value_barrier_u64
Unexecuted instantiation: p_ec.c:value_barrier_u64
Unexecuted instantiation: p_ed25519_asn1.c:value_barrier_u64
Unexecuted instantiation: p_hkdf.c:value_barrier_u64
Unexecuted instantiation: p_rsa.c:value_barrier_u64
Unexecuted instantiation: p_rsa_asn1.c:value_barrier_u64
Unexecuted instantiation: p_x25519_asn1.c:value_barrier_u64
Unexecuted instantiation: pbkdf.c:value_barrier_u64
Unexecuted instantiation: poly1305_vec.c:value_barrier_u64
Unexecuted instantiation: refcount.c:value_barrier_u64
Unexecuted instantiation: rsa_asn1.c:value_barrier_u64
Unexecuted instantiation: rsa_crypt.c:value_barrier_u64
Unexecuted instantiation: scrypt.c:value_barrier_u64
Unexecuted instantiation: siphash.c:value_barrier_u64
Unexecuted instantiation: stack.c:value_barrier_u64
Unexecuted instantiation: thread_pthread.c:value_barrier_u64
Unexecuted instantiation: tls_cbc.c:value_barrier_u64
Unexecuted instantiation: urandom.c:value_barrier_u64
Unexecuted instantiation: a_bitstr.c:value_barrier_u64
Unexecuted instantiation: a_object.c:value_barrier_u64
Unexecuted instantiation: asn1_compat.c:value_barrier_u64
Unexecuted instantiation: bio.c:value_barrier_u64
Unexecuted instantiation: blake2.c:value_barrier_u64
Unexecuted instantiation: chacha.c:value_barrier_u64
Unexecuted instantiation: des.c:value_barrier_u64
Unexecuted instantiation: ec_asn1.c:value_barrier_u64
Unexecuted instantiation: lhash.c:value_barrier_u64
Unexecuted instantiation: tasn_dec.c:value_barrier_u64
Unexecuted instantiation: tasn_enc.c:value_barrier_u64
Unexecuted instantiation: tasn_new.c:value_barrier_u64
Unexecuted instantiation: tasn_utl.c:value_barrier_u64
Unexecuted instantiation: pool.c:value_barrier_u64
Unexecuted instantiation: curve25519_64_adx.c:value_barrier_u64
Unexecuted instantiation: cpu_intel.c:value_barrier_u64
408
409
// |value_barrier_u8| could be defined as above, but compilers other than
410
// clang seem to still materialize 0x00..00MM instead of reusing 0x??..??MM.
411
412
// constant_time_msb_w returns the given value with the MSB copied to all the
413
// other bits.
414
109M
static inline crypto_word_t constant_time_msb_w(crypto_word_t a) {
415
109M
  return 0u - (a >> (sizeof(a) * 8 - 1));
416
109M
}
Unexecuted instantiation: a_int.c:constant_time_msb_w
Unexecuted instantiation: asn1_lib.c:constant_time_msb_w
bcm.c:constant_time_msb_w
Line
Count
Source
414
109M
static inline crypto_word_t constant_time_msb_w(crypto_word_t a) {
415
109M
  return 0u - (a >> (sizeof(a) * 8 - 1));
416
109M
}
Unexecuted instantiation: cbb.c:constant_time_msb_w
Unexecuted instantiation: cbs.c:constant_time_msb_w
Unexecuted instantiation: convert.c:constant_time_msb_w
Unexecuted instantiation: crypto.c:constant_time_msb_w
curve25519.c:constant_time_msb_w
Line
Count
Source
414
704
static inline crypto_word_t constant_time_msb_w(crypto_word_t a) {
415
704
  return 0u - (a >> (sizeof(a) * 8 - 1));
416
704
}
Unexecuted instantiation: digest_extra.c:constant_time_msb_w
Unexecuted instantiation: dsa.c:constant_time_msb_w
Unexecuted instantiation: dsa_asn1.c:constant_time_msb_w
Unexecuted instantiation: e_aesctrhmac.c:constant_time_msb_w
Unexecuted instantiation: e_aesgcmsiv.c:constant_time_msb_w
Unexecuted instantiation: e_chacha20poly1305.c:constant_time_msb_w
Unexecuted instantiation: e_des.c:constant_time_msb_w
Unexecuted instantiation: e_rc2.c:constant_time_msb_w
Unexecuted instantiation: e_rc4.c:constant_time_msb_w
Unexecuted instantiation: e_tls.c:constant_time_msb_w
Unexecuted instantiation: ecdh_extra.c:constant_time_msb_w
Unexecuted instantiation: ecdsa_asn1.c:constant_time_msb_w
Unexecuted instantiation: engine.c:constant_time_msb_w
Unexecuted instantiation: err.c:constant_time_msb_w
Unexecuted instantiation: evp.c:constant_time_msb_w
Unexecuted instantiation: evp_ctx.c:constant_time_msb_w
Unexecuted instantiation: ex_data.c:constant_time_msb_w
Unexecuted instantiation: file.c:constant_time_msb_w
Unexecuted instantiation: fork_detect.c:constant_time_msb_w
Unexecuted instantiation: forkunsafe.c:constant_time_msb_w
Unexecuted instantiation: md4.c:constant_time_msb_w
Unexecuted instantiation: md5.c:constant_time_msb_w
Unexecuted instantiation: mem.c:constant_time_msb_w
Unexecuted instantiation: obj.c:constant_time_msb_w
Unexecuted instantiation: p_dh_asn1.c:constant_time_msb_w
Unexecuted instantiation: p_dsa_asn1.c:constant_time_msb_w
Unexecuted instantiation: p_ec.c:constant_time_msb_w
Unexecuted instantiation: p_ed25519_asn1.c:constant_time_msb_w
Unexecuted instantiation: p_hkdf.c:constant_time_msb_w
Unexecuted instantiation: p_rsa.c:constant_time_msb_w
Unexecuted instantiation: p_rsa_asn1.c:constant_time_msb_w
Unexecuted instantiation: p_x25519_asn1.c:constant_time_msb_w
Unexecuted instantiation: pbkdf.c:constant_time_msb_w
Unexecuted instantiation: poly1305_vec.c:constant_time_msb_w
Unexecuted instantiation: refcount.c:constant_time_msb_w
Unexecuted instantiation: rsa_asn1.c:constant_time_msb_w
Unexecuted instantiation: rsa_crypt.c:constant_time_msb_w
Unexecuted instantiation: scrypt.c:constant_time_msb_w
Unexecuted instantiation: siphash.c:constant_time_msb_w
Unexecuted instantiation: stack.c:constant_time_msb_w
Unexecuted instantiation: thread_pthread.c:constant_time_msb_w
Unexecuted instantiation: tls_cbc.c:constant_time_msb_w
Unexecuted instantiation: urandom.c:constant_time_msb_w
Unexecuted instantiation: a_bitstr.c:constant_time_msb_w
Unexecuted instantiation: a_object.c:constant_time_msb_w
Unexecuted instantiation: asn1_compat.c:constant_time_msb_w
Unexecuted instantiation: bio.c:constant_time_msb_w
Unexecuted instantiation: blake2.c:constant_time_msb_w
Unexecuted instantiation: chacha.c:constant_time_msb_w
Unexecuted instantiation: des.c:constant_time_msb_w
Unexecuted instantiation: ec_asn1.c:constant_time_msb_w
Unexecuted instantiation: lhash.c:constant_time_msb_w
Unexecuted instantiation: tasn_dec.c:constant_time_msb_w
Unexecuted instantiation: tasn_enc.c:constant_time_msb_w
Unexecuted instantiation: tasn_new.c:constant_time_msb_w
Unexecuted instantiation: tasn_utl.c:constant_time_msb_w
Unexecuted instantiation: pool.c:constant_time_msb_w
Unexecuted instantiation: curve25519_64_adx.c:constant_time_msb_w
Unexecuted instantiation: cpu_intel.c:constant_time_msb_w
417
418
// constant_time_lt_w returns 0xff..f if a < b and 0 otherwise.
419
static inline crypto_word_t constant_time_lt_w(crypto_word_t a,
420
48.2M
                                               crypto_word_t b) {
421
  // Consider the two cases of the problem:
422
  //   msb(a) == msb(b): a < b iff the MSB of a - b is set.
423
  //   msb(a) != msb(b): a < b iff the MSB of b is set.
424
  //
425
  // If msb(a) == msb(b) then the following evaluates as:
426
  //   msb(a^((a^b)|((a-b)^a))) ==
427
  //   msb(a^((a-b) ^ a))       ==   (because msb(a^b) == 0)
428
  //   msb(a^a^(a-b))           ==   (rearranging)
429
  //   msb(a-b)                      (because ∀x. x^x == 0)
430
  //
431
  // Else, if msb(a) != msb(b) then the following evaluates as:
432
  //   msb(a^((a^b)|((a-b)^a))) ==
433
  //   msb(a^(𝟙 | ((a-b)^a)))   ==   (because msb(a^b) == 1 and 𝟙
434
  //                                  represents a value s.t. msb(𝟙) = 1)
435
  //   msb(a^𝟙)                 ==   (because ORing with 1 results in 1)
436
  //   msb(b)
437
  //
438
  //
439
  // Here is an SMT-LIB verification of this formula:
440
  //
441
  // (define-fun lt ((a (_ BitVec 32)) (b (_ BitVec 32))) (_ BitVec 32)
442
  //   (bvxor a (bvor (bvxor a b) (bvxor (bvsub a b) a)))
443
  // )
444
  //
445
  // (declare-fun a () (_ BitVec 32))
446
  // (declare-fun b () (_ BitVec 32))
447
  //
448
  // (assert (not (= (= #x00000001 (bvlshr (lt a b) #x0000001f)) (bvult a b))))
449
  // (check-sat)
450
  // (get-model)
451
48.2M
  return constant_time_msb_w(a^((a^b)|((a-b)^a)));
452
48.2M
}
Unexecuted instantiation: a_int.c:constant_time_lt_w
Unexecuted instantiation: asn1_lib.c:constant_time_lt_w
bcm.c:constant_time_lt_w
Line
Count
Source
420
48.2M
                                               crypto_word_t b) {
421
  // Consider the two cases of the problem:
422
  //   msb(a) == msb(b): a < b iff the MSB of a - b is set.
423
  //   msb(a) != msb(b): a < b iff the MSB of b is set.
424
  //
425
  // If msb(a) == msb(b) then the following evaluates as:
426
  //   msb(a^((a^b)|((a-b)^a))) ==
427
  //   msb(a^((a-b) ^ a))       ==   (because msb(a^b) == 0)
428
  //   msb(a^a^(a-b))           ==   (rearranging)
429
  //   msb(a-b)                      (because ∀x. x^x == 0)
430
  //
431
  // Else, if msb(a) != msb(b) then the following evaluates as:
432
  //   msb(a^((a^b)|((a-b)^a))) ==
433
  //   msb(a^(𝟙 | ((a-b)^a)))   ==   (because msb(a^b) == 1 and 𝟙
434
  //                                  represents a value s.t. msb(𝟙) = 1)
435
  //   msb(a^𝟙)                 ==   (because ORing with 1 results in 1)
436
  //   msb(b)
437
  //
438
  //
439
  // Here is an SMT-LIB verification of this formula:
440
  //
441
  // (define-fun lt ((a (_ BitVec 32)) (b (_ BitVec 32))) (_ BitVec 32)
442
  //   (bvxor a (bvor (bvxor a b) (bvxor (bvsub a b) a)))
443
  // )
444
  //
445
  // (declare-fun a () (_ BitVec 32))
446
  // (declare-fun b () (_ BitVec 32))
447
  //
448
  // (assert (not (= (= #x00000001 (bvlshr (lt a b) #x0000001f)) (bvult a b))))
449
  // (check-sat)
450
  // (get-model)
451
48.2M
  return constant_time_msb_w(a^((a^b)|((a-b)^a)));
452
48.2M
}
Unexecuted instantiation: cbb.c:constant_time_lt_w
Unexecuted instantiation: cbs.c:constant_time_lt_w
Unexecuted instantiation: convert.c:constant_time_lt_w
Unexecuted instantiation: crypto.c:constant_time_lt_w
Unexecuted instantiation: curve25519.c:constant_time_lt_w
Unexecuted instantiation: digest_extra.c:constant_time_lt_w
Unexecuted instantiation: dsa.c:constant_time_lt_w
Unexecuted instantiation: dsa_asn1.c:constant_time_lt_w
Unexecuted instantiation: e_aesctrhmac.c:constant_time_lt_w
Unexecuted instantiation: e_aesgcmsiv.c:constant_time_lt_w
Unexecuted instantiation: e_chacha20poly1305.c:constant_time_lt_w
Unexecuted instantiation: e_des.c:constant_time_lt_w
Unexecuted instantiation: e_rc2.c:constant_time_lt_w
Unexecuted instantiation: e_rc4.c:constant_time_lt_w
Unexecuted instantiation: e_tls.c:constant_time_lt_w
Unexecuted instantiation: ecdh_extra.c:constant_time_lt_w
Unexecuted instantiation: ecdsa_asn1.c:constant_time_lt_w
Unexecuted instantiation: engine.c:constant_time_lt_w
Unexecuted instantiation: err.c:constant_time_lt_w
Unexecuted instantiation: evp.c:constant_time_lt_w
Unexecuted instantiation: evp_ctx.c:constant_time_lt_w
Unexecuted instantiation: ex_data.c:constant_time_lt_w
Unexecuted instantiation: file.c:constant_time_lt_w
Unexecuted instantiation: fork_detect.c:constant_time_lt_w
Unexecuted instantiation: forkunsafe.c:constant_time_lt_w
Unexecuted instantiation: md4.c:constant_time_lt_w
Unexecuted instantiation: md5.c:constant_time_lt_w
Unexecuted instantiation: mem.c:constant_time_lt_w
Unexecuted instantiation: obj.c:constant_time_lt_w
Unexecuted instantiation: p_dh_asn1.c:constant_time_lt_w
Unexecuted instantiation: p_dsa_asn1.c:constant_time_lt_w
Unexecuted instantiation: p_ec.c:constant_time_lt_w
Unexecuted instantiation: p_ed25519_asn1.c:constant_time_lt_w
Unexecuted instantiation: p_hkdf.c:constant_time_lt_w
Unexecuted instantiation: p_rsa.c:constant_time_lt_w
Unexecuted instantiation: p_rsa_asn1.c:constant_time_lt_w
Unexecuted instantiation: p_x25519_asn1.c:constant_time_lt_w
Unexecuted instantiation: pbkdf.c:constant_time_lt_w
Unexecuted instantiation: poly1305_vec.c:constant_time_lt_w
Unexecuted instantiation: refcount.c:constant_time_lt_w
Unexecuted instantiation: rsa_asn1.c:constant_time_lt_w
Unexecuted instantiation: rsa_crypt.c:constant_time_lt_w
Unexecuted instantiation: scrypt.c:constant_time_lt_w
Unexecuted instantiation: siphash.c:constant_time_lt_w
Unexecuted instantiation: stack.c:constant_time_lt_w
Unexecuted instantiation: thread_pthread.c:constant_time_lt_w
Unexecuted instantiation: tls_cbc.c:constant_time_lt_w
Unexecuted instantiation: urandom.c:constant_time_lt_w
Unexecuted instantiation: a_bitstr.c:constant_time_lt_w
Unexecuted instantiation: a_object.c:constant_time_lt_w
Unexecuted instantiation: asn1_compat.c:constant_time_lt_w
Unexecuted instantiation: bio.c:constant_time_lt_w
Unexecuted instantiation: blake2.c:constant_time_lt_w
Unexecuted instantiation: chacha.c:constant_time_lt_w
Unexecuted instantiation: des.c:constant_time_lt_w
Unexecuted instantiation: ec_asn1.c:constant_time_lt_w
Unexecuted instantiation: lhash.c:constant_time_lt_w
Unexecuted instantiation: tasn_dec.c:constant_time_lt_w
Unexecuted instantiation: tasn_enc.c:constant_time_lt_w
Unexecuted instantiation: tasn_new.c:constant_time_lt_w
Unexecuted instantiation: tasn_utl.c:constant_time_lt_w
Unexecuted instantiation: pool.c:constant_time_lt_w
Unexecuted instantiation: curve25519_64_adx.c:constant_time_lt_w
Unexecuted instantiation: cpu_intel.c:constant_time_lt_w
453
454
// constant_time_lt_8 acts like |constant_time_lt_w| but returns an 8-bit
455
// mask.
456
0
static inline uint8_t constant_time_lt_8(crypto_word_t a, crypto_word_t b) {
457
0
  return (uint8_t)(constant_time_lt_w(a, b));
458
0
}
Unexecuted instantiation: a_int.c:constant_time_lt_8
Unexecuted instantiation: asn1_lib.c:constant_time_lt_8
Unexecuted instantiation: bcm.c:constant_time_lt_8
Unexecuted instantiation: cbb.c:constant_time_lt_8
Unexecuted instantiation: cbs.c:constant_time_lt_8
Unexecuted instantiation: convert.c:constant_time_lt_8
Unexecuted instantiation: crypto.c:constant_time_lt_8
Unexecuted instantiation: curve25519.c:constant_time_lt_8
Unexecuted instantiation: digest_extra.c:constant_time_lt_8
Unexecuted instantiation: dsa.c:constant_time_lt_8
Unexecuted instantiation: dsa_asn1.c:constant_time_lt_8
Unexecuted instantiation: e_aesctrhmac.c:constant_time_lt_8
Unexecuted instantiation: e_aesgcmsiv.c:constant_time_lt_8
Unexecuted instantiation: e_chacha20poly1305.c:constant_time_lt_8
Unexecuted instantiation: e_des.c:constant_time_lt_8
Unexecuted instantiation: e_rc2.c:constant_time_lt_8
Unexecuted instantiation: e_rc4.c:constant_time_lt_8
Unexecuted instantiation: e_tls.c:constant_time_lt_8
Unexecuted instantiation: ecdh_extra.c:constant_time_lt_8
Unexecuted instantiation: ecdsa_asn1.c:constant_time_lt_8
Unexecuted instantiation: engine.c:constant_time_lt_8
Unexecuted instantiation: err.c:constant_time_lt_8
Unexecuted instantiation: evp.c:constant_time_lt_8
Unexecuted instantiation: evp_ctx.c:constant_time_lt_8
Unexecuted instantiation: ex_data.c:constant_time_lt_8
Unexecuted instantiation: file.c:constant_time_lt_8
Unexecuted instantiation: fork_detect.c:constant_time_lt_8
Unexecuted instantiation: forkunsafe.c:constant_time_lt_8
Unexecuted instantiation: md4.c:constant_time_lt_8
Unexecuted instantiation: md5.c:constant_time_lt_8
Unexecuted instantiation: mem.c:constant_time_lt_8
Unexecuted instantiation: obj.c:constant_time_lt_8
Unexecuted instantiation: p_dh_asn1.c:constant_time_lt_8
Unexecuted instantiation: p_dsa_asn1.c:constant_time_lt_8
Unexecuted instantiation: p_ec.c:constant_time_lt_8
Unexecuted instantiation: p_ed25519_asn1.c:constant_time_lt_8
Unexecuted instantiation: p_hkdf.c:constant_time_lt_8
Unexecuted instantiation: p_rsa.c:constant_time_lt_8
Unexecuted instantiation: p_rsa_asn1.c:constant_time_lt_8
Unexecuted instantiation: p_x25519_asn1.c:constant_time_lt_8
Unexecuted instantiation: pbkdf.c:constant_time_lt_8
Unexecuted instantiation: poly1305_vec.c:constant_time_lt_8
Unexecuted instantiation: refcount.c:constant_time_lt_8
Unexecuted instantiation: rsa_asn1.c:constant_time_lt_8
Unexecuted instantiation: rsa_crypt.c:constant_time_lt_8
Unexecuted instantiation: scrypt.c:constant_time_lt_8
Unexecuted instantiation: siphash.c:constant_time_lt_8
Unexecuted instantiation: stack.c:constant_time_lt_8
Unexecuted instantiation: thread_pthread.c:constant_time_lt_8
Unexecuted instantiation: tls_cbc.c:constant_time_lt_8
Unexecuted instantiation: urandom.c:constant_time_lt_8
Unexecuted instantiation: a_bitstr.c:constant_time_lt_8
Unexecuted instantiation: a_object.c:constant_time_lt_8
Unexecuted instantiation: asn1_compat.c:constant_time_lt_8
Unexecuted instantiation: bio.c:constant_time_lt_8
Unexecuted instantiation: blake2.c:constant_time_lt_8
Unexecuted instantiation: chacha.c:constant_time_lt_8
Unexecuted instantiation: des.c:constant_time_lt_8
Unexecuted instantiation: ec_asn1.c:constant_time_lt_8
Unexecuted instantiation: lhash.c:constant_time_lt_8
Unexecuted instantiation: tasn_dec.c:constant_time_lt_8
Unexecuted instantiation: tasn_enc.c:constant_time_lt_8
Unexecuted instantiation: tasn_new.c:constant_time_lt_8
Unexecuted instantiation: tasn_utl.c:constant_time_lt_8
Unexecuted instantiation: pool.c:constant_time_lt_8
Unexecuted instantiation: curve25519_64_adx.c:constant_time_lt_8
Unexecuted instantiation: cpu_intel.c:constant_time_lt_8
459
460
// constant_time_ge_w returns 0xff..f if a >= b and 0 otherwise.
461
static inline crypto_word_t constant_time_ge_w(crypto_word_t a,
462
0
                                               crypto_word_t b) {
463
0
  return ~constant_time_lt_w(a, b);
464
0
}
Unexecuted instantiation: a_int.c:constant_time_ge_w
Unexecuted instantiation: asn1_lib.c:constant_time_ge_w
Unexecuted instantiation: bcm.c:constant_time_ge_w
Unexecuted instantiation: cbb.c:constant_time_ge_w
Unexecuted instantiation: cbs.c:constant_time_ge_w
Unexecuted instantiation: convert.c:constant_time_ge_w
Unexecuted instantiation: crypto.c:constant_time_ge_w
Unexecuted instantiation: curve25519.c:constant_time_ge_w
Unexecuted instantiation: digest_extra.c:constant_time_ge_w
Unexecuted instantiation: dsa.c:constant_time_ge_w
Unexecuted instantiation: dsa_asn1.c:constant_time_ge_w
Unexecuted instantiation: e_aesctrhmac.c:constant_time_ge_w
Unexecuted instantiation: e_aesgcmsiv.c:constant_time_ge_w
Unexecuted instantiation: e_chacha20poly1305.c:constant_time_ge_w
Unexecuted instantiation: e_des.c:constant_time_ge_w
Unexecuted instantiation: e_rc2.c:constant_time_ge_w
Unexecuted instantiation: e_rc4.c:constant_time_ge_w
Unexecuted instantiation: e_tls.c:constant_time_ge_w
Unexecuted instantiation: ecdh_extra.c:constant_time_ge_w
Unexecuted instantiation: ecdsa_asn1.c:constant_time_ge_w
Unexecuted instantiation: engine.c:constant_time_ge_w
Unexecuted instantiation: err.c:constant_time_ge_w
Unexecuted instantiation: evp.c:constant_time_ge_w
Unexecuted instantiation: evp_ctx.c:constant_time_ge_w
Unexecuted instantiation: ex_data.c:constant_time_ge_w
Unexecuted instantiation: file.c:constant_time_ge_w
Unexecuted instantiation: fork_detect.c:constant_time_ge_w
Unexecuted instantiation: forkunsafe.c:constant_time_ge_w
Unexecuted instantiation: md4.c:constant_time_ge_w
Unexecuted instantiation: md5.c:constant_time_ge_w
Unexecuted instantiation: mem.c:constant_time_ge_w
Unexecuted instantiation: obj.c:constant_time_ge_w
Unexecuted instantiation: p_dh_asn1.c:constant_time_ge_w
Unexecuted instantiation: p_dsa_asn1.c:constant_time_ge_w
Unexecuted instantiation: p_ec.c:constant_time_ge_w
Unexecuted instantiation: p_ed25519_asn1.c:constant_time_ge_w
Unexecuted instantiation: p_hkdf.c:constant_time_ge_w
Unexecuted instantiation: p_rsa.c:constant_time_ge_w
Unexecuted instantiation: p_rsa_asn1.c:constant_time_ge_w
Unexecuted instantiation: p_x25519_asn1.c:constant_time_ge_w
Unexecuted instantiation: pbkdf.c:constant_time_ge_w
Unexecuted instantiation: poly1305_vec.c:constant_time_ge_w
Unexecuted instantiation: refcount.c:constant_time_ge_w
Unexecuted instantiation: rsa_asn1.c:constant_time_ge_w
Unexecuted instantiation: rsa_crypt.c:constant_time_ge_w
Unexecuted instantiation: scrypt.c:constant_time_ge_w
Unexecuted instantiation: siphash.c:constant_time_ge_w
Unexecuted instantiation: stack.c:constant_time_ge_w
Unexecuted instantiation: thread_pthread.c:constant_time_ge_w
Unexecuted instantiation: tls_cbc.c:constant_time_ge_w
Unexecuted instantiation: urandom.c:constant_time_ge_w
Unexecuted instantiation: a_bitstr.c:constant_time_ge_w
Unexecuted instantiation: a_object.c:constant_time_ge_w
Unexecuted instantiation: asn1_compat.c:constant_time_ge_w
Unexecuted instantiation: bio.c:constant_time_ge_w
Unexecuted instantiation: blake2.c:constant_time_ge_w
Unexecuted instantiation: chacha.c:constant_time_ge_w
Unexecuted instantiation: des.c:constant_time_ge_w
Unexecuted instantiation: ec_asn1.c:constant_time_ge_w
Unexecuted instantiation: lhash.c:constant_time_ge_w
Unexecuted instantiation: tasn_dec.c:constant_time_ge_w
Unexecuted instantiation: tasn_enc.c:constant_time_ge_w
Unexecuted instantiation: tasn_new.c:constant_time_ge_w
Unexecuted instantiation: tasn_utl.c:constant_time_ge_w
Unexecuted instantiation: pool.c:constant_time_ge_w
Unexecuted instantiation: curve25519_64_adx.c:constant_time_ge_w
Unexecuted instantiation: cpu_intel.c:constant_time_ge_w
465
466
// constant_time_ge_8 acts like |constant_time_ge_w| but returns an 8-bit
467
// mask.
468
0
static inline uint8_t constant_time_ge_8(crypto_word_t a, crypto_word_t b) {
469
0
  return (uint8_t)(constant_time_ge_w(a, b));
470
0
}
Unexecuted instantiation: a_int.c:constant_time_ge_8
Unexecuted instantiation: asn1_lib.c:constant_time_ge_8
Unexecuted instantiation: bcm.c:constant_time_ge_8
Unexecuted instantiation: cbb.c:constant_time_ge_8
Unexecuted instantiation: cbs.c:constant_time_ge_8
Unexecuted instantiation: convert.c:constant_time_ge_8
Unexecuted instantiation: crypto.c:constant_time_ge_8
Unexecuted instantiation: curve25519.c:constant_time_ge_8
Unexecuted instantiation: digest_extra.c:constant_time_ge_8
Unexecuted instantiation: dsa.c:constant_time_ge_8
Unexecuted instantiation: dsa_asn1.c:constant_time_ge_8
Unexecuted instantiation: e_aesctrhmac.c:constant_time_ge_8
Unexecuted instantiation: e_aesgcmsiv.c:constant_time_ge_8
Unexecuted instantiation: e_chacha20poly1305.c:constant_time_ge_8
Unexecuted instantiation: e_des.c:constant_time_ge_8
Unexecuted instantiation: e_rc2.c:constant_time_ge_8
Unexecuted instantiation: e_rc4.c:constant_time_ge_8
Unexecuted instantiation: e_tls.c:constant_time_ge_8
Unexecuted instantiation: ecdh_extra.c:constant_time_ge_8
Unexecuted instantiation: ecdsa_asn1.c:constant_time_ge_8
Unexecuted instantiation: engine.c:constant_time_ge_8
Unexecuted instantiation: err.c:constant_time_ge_8
Unexecuted instantiation: evp.c:constant_time_ge_8
Unexecuted instantiation: evp_ctx.c:constant_time_ge_8
Unexecuted instantiation: ex_data.c:constant_time_ge_8
Unexecuted instantiation: file.c:constant_time_ge_8
Unexecuted instantiation: fork_detect.c:constant_time_ge_8
Unexecuted instantiation: forkunsafe.c:constant_time_ge_8
Unexecuted instantiation: md4.c:constant_time_ge_8
Unexecuted instantiation: md5.c:constant_time_ge_8
Unexecuted instantiation: mem.c:constant_time_ge_8
Unexecuted instantiation: obj.c:constant_time_ge_8
Unexecuted instantiation: p_dh_asn1.c:constant_time_ge_8
Unexecuted instantiation: p_dsa_asn1.c:constant_time_ge_8
Unexecuted instantiation: p_ec.c:constant_time_ge_8
Unexecuted instantiation: p_ed25519_asn1.c:constant_time_ge_8
Unexecuted instantiation: p_hkdf.c:constant_time_ge_8
Unexecuted instantiation: p_rsa.c:constant_time_ge_8
Unexecuted instantiation: p_rsa_asn1.c:constant_time_ge_8
Unexecuted instantiation: p_x25519_asn1.c:constant_time_ge_8
Unexecuted instantiation: pbkdf.c:constant_time_ge_8
Unexecuted instantiation: poly1305_vec.c:constant_time_ge_8
Unexecuted instantiation: refcount.c:constant_time_ge_8
Unexecuted instantiation: rsa_asn1.c:constant_time_ge_8
Unexecuted instantiation: rsa_crypt.c:constant_time_ge_8
Unexecuted instantiation: scrypt.c:constant_time_ge_8
Unexecuted instantiation: siphash.c:constant_time_ge_8
Unexecuted instantiation: stack.c:constant_time_ge_8
Unexecuted instantiation: thread_pthread.c:constant_time_ge_8
Unexecuted instantiation: tls_cbc.c:constant_time_ge_8
Unexecuted instantiation: urandom.c:constant_time_ge_8
Unexecuted instantiation: a_bitstr.c:constant_time_ge_8
Unexecuted instantiation: a_object.c:constant_time_ge_8
Unexecuted instantiation: asn1_compat.c:constant_time_ge_8
Unexecuted instantiation: bio.c:constant_time_ge_8
Unexecuted instantiation: blake2.c:constant_time_ge_8
Unexecuted instantiation: chacha.c:constant_time_ge_8
Unexecuted instantiation: des.c:constant_time_ge_8
Unexecuted instantiation: ec_asn1.c:constant_time_ge_8
Unexecuted instantiation: lhash.c:constant_time_ge_8
Unexecuted instantiation: tasn_dec.c:constant_time_ge_8
Unexecuted instantiation: tasn_enc.c:constant_time_ge_8
Unexecuted instantiation: tasn_new.c:constant_time_ge_8
Unexecuted instantiation: tasn_utl.c:constant_time_ge_8
Unexecuted instantiation: pool.c:constant_time_ge_8
Unexecuted instantiation: curve25519_64_adx.c:constant_time_ge_8
Unexecuted instantiation: cpu_intel.c:constant_time_ge_8
471
472
// constant_time_is_zero returns 0xff..f if a == 0 and 0 otherwise.
473
60.7M
static inline crypto_word_t constant_time_is_zero_w(crypto_word_t a) {
474
  // Here is an SMT-LIB verification of this formula:
475
  //
476
  // (define-fun is_zero ((a (_ BitVec 32))) (_ BitVec 32)
477
  //   (bvand (bvnot a) (bvsub a #x00000001))
478
  // )
479
  //
480
  // (declare-fun a () (_ BitVec 32))
481
  //
482
  // (assert (not (= (= #x00000001 (bvlshr (is_zero a) #x0000001f)) (= a #x00000000))))
483
  // (check-sat)
484
  // (get-model)
485
60.7M
  return constant_time_msb_w(~a & (a - 1));
486
60.7M
}
Unexecuted instantiation: a_int.c:constant_time_is_zero_w
Unexecuted instantiation: asn1_lib.c:constant_time_is_zero_w
bcm.c:constant_time_is_zero_w
Line
Count
Source
473
60.7M
static inline crypto_word_t constant_time_is_zero_w(crypto_word_t a) {
474
  // Here is an SMT-LIB verification of this formula:
475
  //
476
  // (define-fun is_zero ((a (_ BitVec 32))) (_ BitVec 32)
477
  //   (bvand (bvnot a) (bvsub a #x00000001))
478
  // )
479
  //
480
  // (declare-fun a () (_ BitVec 32))
481
  //
482
  // (assert (not (= (= #x00000001 (bvlshr (is_zero a) #x0000001f)) (= a #x00000000))))
483
  // (check-sat)
484
  // (get-model)
485
60.7M
  return constant_time_msb_w(~a & (a - 1));
486
60.7M
}
Unexecuted instantiation: cbb.c:constant_time_is_zero_w
Unexecuted instantiation: cbs.c:constant_time_is_zero_w
Unexecuted instantiation: convert.c:constant_time_is_zero_w
Unexecuted instantiation: crypto.c:constant_time_is_zero_w
curve25519.c:constant_time_is_zero_w
Line
Count
Source
473
640
static inline crypto_word_t constant_time_is_zero_w(crypto_word_t a) {
474
  // Here is an SMT-LIB verification of this formula:
475
  //
476
  // (define-fun is_zero ((a (_ BitVec 32))) (_ BitVec 32)
477
  //   (bvand (bvnot a) (bvsub a #x00000001))
478
  // )
479
  //
480
  // (declare-fun a () (_ BitVec 32))
481
  //
482
  // (assert (not (= (= #x00000001 (bvlshr (is_zero a) #x0000001f)) (= a #x00000000))))
483
  // (check-sat)
484
  // (get-model)
485
640
  return constant_time_msb_w(~a & (a - 1));
486
640
}
Unexecuted instantiation: digest_extra.c:constant_time_is_zero_w
Unexecuted instantiation: dsa.c:constant_time_is_zero_w
Unexecuted instantiation: dsa_asn1.c:constant_time_is_zero_w
Unexecuted instantiation: e_aesctrhmac.c:constant_time_is_zero_w
Unexecuted instantiation: e_aesgcmsiv.c:constant_time_is_zero_w
Unexecuted instantiation: e_chacha20poly1305.c:constant_time_is_zero_w
Unexecuted instantiation: e_des.c:constant_time_is_zero_w
Unexecuted instantiation: e_rc2.c:constant_time_is_zero_w
Unexecuted instantiation: e_rc4.c:constant_time_is_zero_w
Unexecuted instantiation: e_tls.c:constant_time_is_zero_w
Unexecuted instantiation: ecdh_extra.c:constant_time_is_zero_w
Unexecuted instantiation: ecdsa_asn1.c:constant_time_is_zero_w
Unexecuted instantiation: engine.c:constant_time_is_zero_w
Unexecuted instantiation: err.c:constant_time_is_zero_w
Unexecuted instantiation: evp.c:constant_time_is_zero_w
Unexecuted instantiation: evp_ctx.c:constant_time_is_zero_w
Unexecuted instantiation: ex_data.c:constant_time_is_zero_w
Unexecuted instantiation: file.c:constant_time_is_zero_w
Unexecuted instantiation: fork_detect.c:constant_time_is_zero_w
Unexecuted instantiation: forkunsafe.c:constant_time_is_zero_w
Unexecuted instantiation: md4.c:constant_time_is_zero_w
Unexecuted instantiation: md5.c:constant_time_is_zero_w
Unexecuted instantiation: mem.c:constant_time_is_zero_w
Unexecuted instantiation: obj.c:constant_time_is_zero_w
Unexecuted instantiation: p_dh_asn1.c:constant_time_is_zero_w
Unexecuted instantiation: p_dsa_asn1.c:constant_time_is_zero_w
Unexecuted instantiation: p_ec.c:constant_time_is_zero_w
Unexecuted instantiation: p_ed25519_asn1.c:constant_time_is_zero_w
Unexecuted instantiation: p_hkdf.c:constant_time_is_zero_w
Unexecuted instantiation: p_rsa.c:constant_time_is_zero_w
Unexecuted instantiation: p_rsa_asn1.c:constant_time_is_zero_w
Unexecuted instantiation: p_x25519_asn1.c:constant_time_is_zero_w
Unexecuted instantiation: pbkdf.c:constant_time_is_zero_w
Unexecuted instantiation: poly1305_vec.c:constant_time_is_zero_w
Unexecuted instantiation: refcount.c:constant_time_is_zero_w
Unexecuted instantiation: rsa_asn1.c:constant_time_is_zero_w
Unexecuted instantiation: rsa_crypt.c:constant_time_is_zero_w
Unexecuted instantiation: scrypt.c:constant_time_is_zero_w
Unexecuted instantiation: siphash.c:constant_time_is_zero_w
Unexecuted instantiation: stack.c:constant_time_is_zero_w
Unexecuted instantiation: thread_pthread.c:constant_time_is_zero_w
Unexecuted instantiation: tls_cbc.c:constant_time_is_zero_w
Unexecuted instantiation: urandom.c:constant_time_is_zero_w
Unexecuted instantiation: a_bitstr.c:constant_time_is_zero_w
Unexecuted instantiation: a_object.c:constant_time_is_zero_w
Unexecuted instantiation: asn1_compat.c:constant_time_is_zero_w
Unexecuted instantiation: bio.c:constant_time_is_zero_w
Unexecuted instantiation: blake2.c:constant_time_is_zero_w
Unexecuted instantiation: chacha.c:constant_time_is_zero_w
Unexecuted instantiation: des.c:constant_time_is_zero_w
Unexecuted instantiation: ec_asn1.c:constant_time_is_zero_w
Unexecuted instantiation: lhash.c:constant_time_is_zero_w
Unexecuted instantiation: tasn_dec.c:constant_time_is_zero_w
Unexecuted instantiation: tasn_enc.c:constant_time_is_zero_w
Unexecuted instantiation: tasn_new.c:constant_time_is_zero_w
Unexecuted instantiation: tasn_utl.c:constant_time_is_zero_w
Unexecuted instantiation: pool.c:constant_time_is_zero_w
Unexecuted instantiation: curve25519_64_adx.c:constant_time_is_zero_w
Unexecuted instantiation: cpu_intel.c:constant_time_is_zero_w
487
488
// constant_time_is_zero_8 acts like |constant_time_is_zero_w| but returns an
489
// 8-bit mask.
490
0
static inline uint8_t constant_time_is_zero_8(crypto_word_t a) {
491
0
  return (uint8_t)(constant_time_is_zero_w(a));
492
0
}
Unexecuted instantiation: a_int.c:constant_time_is_zero_8
Unexecuted instantiation: asn1_lib.c:constant_time_is_zero_8
Unexecuted instantiation: bcm.c:constant_time_is_zero_8
Unexecuted instantiation: cbb.c:constant_time_is_zero_8
Unexecuted instantiation: cbs.c:constant_time_is_zero_8
Unexecuted instantiation: convert.c:constant_time_is_zero_8
Unexecuted instantiation: crypto.c:constant_time_is_zero_8
Unexecuted instantiation: curve25519.c:constant_time_is_zero_8
Unexecuted instantiation: digest_extra.c:constant_time_is_zero_8
Unexecuted instantiation: dsa.c:constant_time_is_zero_8
Unexecuted instantiation: dsa_asn1.c:constant_time_is_zero_8
Unexecuted instantiation: e_aesctrhmac.c:constant_time_is_zero_8
Unexecuted instantiation: e_aesgcmsiv.c:constant_time_is_zero_8
Unexecuted instantiation: e_chacha20poly1305.c:constant_time_is_zero_8
Unexecuted instantiation: e_des.c:constant_time_is_zero_8
Unexecuted instantiation: e_rc2.c:constant_time_is_zero_8
Unexecuted instantiation: e_rc4.c:constant_time_is_zero_8
Unexecuted instantiation: e_tls.c:constant_time_is_zero_8
Unexecuted instantiation: ecdh_extra.c:constant_time_is_zero_8
Unexecuted instantiation: ecdsa_asn1.c:constant_time_is_zero_8
Unexecuted instantiation: engine.c:constant_time_is_zero_8
Unexecuted instantiation: err.c:constant_time_is_zero_8
Unexecuted instantiation: evp.c:constant_time_is_zero_8
Unexecuted instantiation: evp_ctx.c:constant_time_is_zero_8
Unexecuted instantiation: ex_data.c:constant_time_is_zero_8
Unexecuted instantiation: file.c:constant_time_is_zero_8
Unexecuted instantiation: fork_detect.c:constant_time_is_zero_8
Unexecuted instantiation: forkunsafe.c:constant_time_is_zero_8
Unexecuted instantiation: md4.c:constant_time_is_zero_8
Unexecuted instantiation: md5.c:constant_time_is_zero_8
Unexecuted instantiation: mem.c:constant_time_is_zero_8
Unexecuted instantiation: obj.c:constant_time_is_zero_8
Unexecuted instantiation: p_dh_asn1.c:constant_time_is_zero_8
Unexecuted instantiation: p_dsa_asn1.c:constant_time_is_zero_8
Unexecuted instantiation: p_ec.c:constant_time_is_zero_8
Unexecuted instantiation: p_ed25519_asn1.c:constant_time_is_zero_8
Unexecuted instantiation: p_hkdf.c:constant_time_is_zero_8
Unexecuted instantiation: p_rsa.c:constant_time_is_zero_8
Unexecuted instantiation: p_rsa_asn1.c:constant_time_is_zero_8
Unexecuted instantiation: p_x25519_asn1.c:constant_time_is_zero_8
Unexecuted instantiation: pbkdf.c:constant_time_is_zero_8
Unexecuted instantiation: poly1305_vec.c:constant_time_is_zero_8
Unexecuted instantiation: refcount.c:constant_time_is_zero_8
Unexecuted instantiation: rsa_asn1.c:constant_time_is_zero_8
Unexecuted instantiation: rsa_crypt.c:constant_time_is_zero_8
Unexecuted instantiation: scrypt.c:constant_time_is_zero_8
Unexecuted instantiation: siphash.c:constant_time_is_zero_8
Unexecuted instantiation: stack.c:constant_time_is_zero_8
Unexecuted instantiation: thread_pthread.c:constant_time_is_zero_8
Unexecuted instantiation: tls_cbc.c:constant_time_is_zero_8
Unexecuted instantiation: urandom.c:constant_time_is_zero_8
Unexecuted instantiation: a_bitstr.c:constant_time_is_zero_8
Unexecuted instantiation: a_object.c:constant_time_is_zero_8
Unexecuted instantiation: asn1_compat.c:constant_time_is_zero_8
Unexecuted instantiation: bio.c:constant_time_is_zero_8
Unexecuted instantiation: blake2.c:constant_time_is_zero_8
Unexecuted instantiation: chacha.c:constant_time_is_zero_8
Unexecuted instantiation: des.c:constant_time_is_zero_8
Unexecuted instantiation: ec_asn1.c:constant_time_is_zero_8
Unexecuted instantiation: lhash.c:constant_time_is_zero_8
Unexecuted instantiation: tasn_dec.c:constant_time_is_zero_8
Unexecuted instantiation: tasn_enc.c:constant_time_is_zero_8
Unexecuted instantiation: tasn_new.c:constant_time_is_zero_8
Unexecuted instantiation: tasn_utl.c:constant_time_is_zero_8
Unexecuted instantiation: pool.c:constant_time_is_zero_8
Unexecuted instantiation: curve25519_64_adx.c:constant_time_is_zero_8
Unexecuted instantiation: cpu_intel.c:constant_time_is_zero_8
493
494
// constant_time_eq_w returns 0xff..f if a == b and 0 otherwise.
495
static inline crypto_word_t constant_time_eq_w(crypto_word_t a,
496
60.2M
                                               crypto_word_t b) {
497
60.2M
  return constant_time_is_zero_w(a ^ b);
498
60.2M
}
Unexecuted instantiation: a_int.c:constant_time_eq_w
Unexecuted instantiation: asn1_lib.c:constant_time_eq_w
bcm.c:constant_time_eq_w
Line
Count
Source
496
60.2M
                                               crypto_word_t b) {
497
60.2M
  return constant_time_is_zero_w(a ^ b);
498
60.2M
}
Unexecuted instantiation: cbb.c:constant_time_eq_w
Unexecuted instantiation: cbs.c:constant_time_eq_w
Unexecuted instantiation: convert.c:constant_time_eq_w
Unexecuted instantiation: crypto.c:constant_time_eq_w
curve25519.c:constant_time_eq_w
Line
Count
Source
496
512
                                               crypto_word_t b) {
497
512
  return constant_time_is_zero_w(a ^ b);
498
512
}
Unexecuted instantiation: digest_extra.c:constant_time_eq_w
Unexecuted instantiation: dsa.c:constant_time_eq_w
Unexecuted instantiation: dsa_asn1.c:constant_time_eq_w
Unexecuted instantiation: e_aesctrhmac.c:constant_time_eq_w
Unexecuted instantiation: e_aesgcmsiv.c:constant_time_eq_w
Unexecuted instantiation: e_chacha20poly1305.c:constant_time_eq_w
Unexecuted instantiation: e_des.c:constant_time_eq_w
Unexecuted instantiation: e_rc2.c:constant_time_eq_w
Unexecuted instantiation: e_rc4.c:constant_time_eq_w
Unexecuted instantiation: e_tls.c:constant_time_eq_w
Unexecuted instantiation: ecdh_extra.c:constant_time_eq_w
Unexecuted instantiation: ecdsa_asn1.c:constant_time_eq_w
Unexecuted instantiation: engine.c:constant_time_eq_w
Unexecuted instantiation: err.c:constant_time_eq_w
Unexecuted instantiation: evp.c:constant_time_eq_w
Unexecuted instantiation: evp_ctx.c:constant_time_eq_w
Unexecuted instantiation: ex_data.c:constant_time_eq_w
Unexecuted instantiation: file.c:constant_time_eq_w
Unexecuted instantiation: fork_detect.c:constant_time_eq_w
Unexecuted instantiation: forkunsafe.c:constant_time_eq_w
Unexecuted instantiation: md4.c:constant_time_eq_w
Unexecuted instantiation: md5.c:constant_time_eq_w
Unexecuted instantiation: mem.c:constant_time_eq_w
Unexecuted instantiation: obj.c:constant_time_eq_w
Unexecuted instantiation: p_dh_asn1.c:constant_time_eq_w
Unexecuted instantiation: p_dsa_asn1.c:constant_time_eq_w
Unexecuted instantiation: p_ec.c:constant_time_eq_w
Unexecuted instantiation: p_ed25519_asn1.c:constant_time_eq_w
Unexecuted instantiation: p_hkdf.c:constant_time_eq_w
Unexecuted instantiation: p_rsa.c:constant_time_eq_w
Unexecuted instantiation: p_rsa_asn1.c:constant_time_eq_w
Unexecuted instantiation: p_x25519_asn1.c:constant_time_eq_w
Unexecuted instantiation: pbkdf.c:constant_time_eq_w
Unexecuted instantiation: poly1305_vec.c:constant_time_eq_w
Unexecuted instantiation: refcount.c:constant_time_eq_w
Unexecuted instantiation: rsa_asn1.c:constant_time_eq_w
Unexecuted instantiation: rsa_crypt.c:constant_time_eq_w
Unexecuted instantiation: scrypt.c:constant_time_eq_w
Unexecuted instantiation: siphash.c:constant_time_eq_w
Unexecuted instantiation: stack.c:constant_time_eq_w
Unexecuted instantiation: thread_pthread.c:constant_time_eq_w
Unexecuted instantiation: tls_cbc.c:constant_time_eq_w
Unexecuted instantiation: urandom.c:constant_time_eq_w
Unexecuted instantiation: a_bitstr.c:constant_time_eq_w
Unexecuted instantiation: a_object.c:constant_time_eq_w
Unexecuted instantiation: asn1_compat.c:constant_time_eq_w
Unexecuted instantiation: bio.c:constant_time_eq_w
Unexecuted instantiation: blake2.c:constant_time_eq_w
Unexecuted instantiation: chacha.c:constant_time_eq_w
Unexecuted instantiation: des.c:constant_time_eq_w
Unexecuted instantiation: ec_asn1.c:constant_time_eq_w
Unexecuted instantiation: lhash.c:constant_time_eq_w
Unexecuted instantiation: tasn_dec.c:constant_time_eq_w
Unexecuted instantiation: tasn_enc.c:constant_time_eq_w
Unexecuted instantiation: tasn_new.c:constant_time_eq_w
Unexecuted instantiation: tasn_utl.c:constant_time_eq_w
Unexecuted instantiation: pool.c:constant_time_eq_w
Unexecuted instantiation: curve25519_64_adx.c:constant_time_eq_w
Unexecuted instantiation: cpu_intel.c:constant_time_eq_w
499
500
// constant_time_eq_8 acts like |constant_time_eq_w| but returns an 8-bit
501
// mask.
502
0
static inline uint8_t constant_time_eq_8(crypto_word_t a, crypto_word_t b) {
503
0
  return (uint8_t)(constant_time_eq_w(a, b));
504
0
}
Unexecuted instantiation: a_int.c:constant_time_eq_8
Unexecuted instantiation: asn1_lib.c:constant_time_eq_8
Unexecuted instantiation: bcm.c:constant_time_eq_8
Unexecuted instantiation: cbb.c:constant_time_eq_8
Unexecuted instantiation: cbs.c:constant_time_eq_8
Unexecuted instantiation: convert.c:constant_time_eq_8
Unexecuted instantiation: crypto.c:constant_time_eq_8
Unexecuted instantiation: curve25519.c:constant_time_eq_8
Unexecuted instantiation: digest_extra.c:constant_time_eq_8
Unexecuted instantiation: dsa.c:constant_time_eq_8
Unexecuted instantiation: dsa_asn1.c:constant_time_eq_8
Unexecuted instantiation: e_aesctrhmac.c:constant_time_eq_8
Unexecuted instantiation: e_aesgcmsiv.c:constant_time_eq_8
Unexecuted instantiation: e_chacha20poly1305.c:constant_time_eq_8
Unexecuted instantiation: e_des.c:constant_time_eq_8
Unexecuted instantiation: e_rc2.c:constant_time_eq_8
Unexecuted instantiation: e_rc4.c:constant_time_eq_8
Unexecuted instantiation: e_tls.c:constant_time_eq_8
Unexecuted instantiation: ecdh_extra.c:constant_time_eq_8
Unexecuted instantiation: ecdsa_asn1.c:constant_time_eq_8
Unexecuted instantiation: engine.c:constant_time_eq_8
Unexecuted instantiation: err.c:constant_time_eq_8
Unexecuted instantiation: evp.c:constant_time_eq_8
Unexecuted instantiation: evp_ctx.c:constant_time_eq_8
Unexecuted instantiation: ex_data.c:constant_time_eq_8
Unexecuted instantiation: file.c:constant_time_eq_8
Unexecuted instantiation: fork_detect.c:constant_time_eq_8
Unexecuted instantiation: forkunsafe.c:constant_time_eq_8
Unexecuted instantiation: md4.c:constant_time_eq_8
Unexecuted instantiation: md5.c:constant_time_eq_8
Unexecuted instantiation: mem.c:constant_time_eq_8
Unexecuted instantiation: obj.c:constant_time_eq_8
Unexecuted instantiation: p_dh_asn1.c:constant_time_eq_8
Unexecuted instantiation: p_dsa_asn1.c:constant_time_eq_8
Unexecuted instantiation: p_ec.c:constant_time_eq_8
Unexecuted instantiation: p_ed25519_asn1.c:constant_time_eq_8
Unexecuted instantiation: p_hkdf.c:constant_time_eq_8
Unexecuted instantiation: p_rsa.c:constant_time_eq_8
Unexecuted instantiation: p_rsa_asn1.c:constant_time_eq_8
Unexecuted instantiation: p_x25519_asn1.c:constant_time_eq_8
Unexecuted instantiation: pbkdf.c:constant_time_eq_8
Unexecuted instantiation: poly1305_vec.c:constant_time_eq_8
Unexecuted instantiation: refcount.c:constant_time_eq_8
Unexecuted instantiation: rsa_asn1.c:constant_time_eq_8
Unexecuted instantiation: rsa_crypt.c:constant_time_eq_8
Unexecuted instantiation: scrypt.c:constant_time_eq_8
Unexecuted instantiation: siphash.c:constant_time_eq_8
Unexecuted instantiation: stack.c:constant_time_eq_8
Unexecuted instantiation: thread_pthread.c:constant_time_eq_8
Unexecuted instantiation: tls_cbc.c:constant_time_eq_8
Unexecuted instantiation: urandom.c:constant_time_eq_8
Unexecuted instantiation: a_bitstr.c:constant_time_eq_8
Unexecuted instantiation: a_object.c:constant_time_eq_8
Unexecuted instantiation: asn1_compat.c:constant_time_eq_8
Unexecuted instantiation: bio.c:constant_time_eq_8
Unexecuted instantiation: blake2.c:constant_time_eq_8
Unexecuted instantiation: chacha.c:constant_time_eq_8
Unexecuted instantiation: des.c:constant_time_eq_8
Unexecuted instantiation: ec_asn1.c:constant_time_eq_8
Unexecuted instantiation: lhash.c:constant_time_eq_8
Unexecuted instantiation: tasn_dec.c:constant_time_eq_8
Unexecuted instantiation: tasn_enc.c:constant_time_eq_8
Unexecuted instantiation: tasn_new.c:constant_time_eq_8
Unexecuted instantiation: tasn_utl.c:constant_time_eq_8
Unexecuted instantiation: pool.c:constant_time_eq_8
Unexecuted instantiation: curve25519_64_adx.c:constant_time_eq_8
Unexecuted instantiation: cpu_intel.c:constant_time_eq_8
505
506
// constant_time_eq_int acts like |constant_time_eq_w| but works on int
507
// values.
508
11.7M
static inline crypto_word_t constant_time_eq_int(int a, int b) {
509
11.7M
  return constant_time_eq_w((crypto_word_t)(a), (crypto_word_t)(b));
510
11.7M
}
Unexecuted instantiation: a_int.c:constant_time_eq_int
Unexecuted instantiation: asn1_lib.c:constant_time_eq_int
bcm.c:constant_time_eq_int
Line
Count
Source
508
11.7M
static inline crypto_word_t constant_time_eq_int(int a, int b) {
509
11.7M
  return constant_time_eq_w((crypto_word_t)(a), (crypto_word_t)(b));
510
11.7M
}
Unexecuted instantiation: cbb.c:constant_time_eq_int
Unexecuted instantiation: cbs.c:constant_time_eq_int
Unexecuted instantiation: convert.c:constant_time_eq_int
Unexecuted instantiation: crypto.c:constant_time_eq_int
Unexecuted instantiation: curve25519.c:constant_time_eq_int
Unexecuted instantiation: digest_extra.c:constant_time_eq_int
Unexecuted instantiation: dsa.c:constant_time_eq_int
Unexecuted instantiation: dsa_asn1.c:constant_time_eq_int
Unexecuted instantiation: e_aesctrhmac.c:constant_time_eq_int
Unexecuted instantiation: e_aesgcmsiv.c:constant_time_eq_int
Unexecuted instantiation: e_chacha20poly1305.c:constant_time_eq_int
Unexecuted instantiation: e_des.c:constant_time_eq_int
Unexecuted instantiation: e_rc2.c:constant_time_eq_int
Unexecuted instantiation: e_rc4.c:constant_time_eq_int
Unexecuted instantiation: e_tls.c:constant_time_eq_int
Unexecuted instantiation: ecdh_extra.c:constant_time_eq_int
Unexecuted instantiation: ecdsa_asn1.c:constant_time_eq_int
Unexecuted instantiation: engine.c:constant_time_eq_int
Unexecuted instantiation: err.c:constant_time_eq_int
Unexecuted instantiation: evp.c:constant_time_eq_int
Unexecuted instantiation: evp_ctx.c:constant_time_eq_int
Unexecuted instantiation: ex_data.c:constant_time_eq_int
Unexecuted instantiation: file.c:constant_time_eq_int
Unexecuted instantiation: fork_detect.c:constant_time_eq_int
Unexecuted instantiation: forkunsafe.c:constant_time_eq_int
Unexecuted instantiation: md4.c:constant_time_eq_int
Unexecuted instantiation: md5.c:constant_time_eq_int
Unexecuted instantiation: mem.c:constant_time_eq_int
Unexecuted instantiation: obj.c:constant_time_eq_int
Unexecuted instantiation: p_dh_asn1.c:constant_time_eq_int
Unexecuted instantiation: p_dsa_asn1.c:constant_time_eq_int
Unexecuted instantiation: p_ec.c:constant_time_eq_int
Unexecuted instantiation: p_ed25519_asn1.c:constant_time_eq_int
Unexecuted instantiation: p_hkdf.c:constant_time_eq_int
Unexecuted instantiation: p_rsa.c:constant_time_eq_int
Unexecuted instantiation: p_rsa_asn1.c:constant_time_eq_int
Unexecuted instantiation: p_x25519_asn1.c:constant_time_eq_int
Unexecuted instantiation: pbkdf.c:constant_time_eq_int
Unexecuted instantiation: poly1305_vec.c:constant_time_eq_int
Unexecuted instantiation: refcount.c:constant_time_eq_int
Unexecuted instantiation: rsa_asn1.c:constant_time_eq_int
Unexecuted instantiation: rsa_crypt.c:constant_time_eq_int
Unexecuted instantiation: scrypt.c:constant_time_eq_int
Unexecuted instantiation: siphash.c:constant_time_eq_int
Unexecuted instantiation: stack.c:constant_time_eq_int
Unexecuted instantiation: thread_pthread.c:constant_time_eq_int
Unexecuted instantiation: tls_cbc.c:constant_time_eq_int
Unexecuted instantiation: urandom.c:constant_time_eq_int
Unexecuted instantiation: a_bitstr.c:constant_time_eq_int
Unexecuted instantiation: a_object.c:constant_time_eq_int
Unexecuted instantiation: asn1_compat.c:constant_time_eq_int
Unexecuted instantiation: bio.c:constant_time_eq_int
Unexecuted instantiation: blake2.c:constant_time_eq_int
Unexecuted instantiation: chacha.c:constant_time_eq_int
Unexecuted instantiation: des.c:constant_time_eq_int
Unexecuted instantiation: ec_asn1.c:constant_time_eq_int
Unexecuted instantiation: lhash.c:constant_time_eq_int
Unexecuted instantiation: tasn_dec.c:constant_time_eq_int
Unexecuted instantiation: tasn_enc.c:constant_time_eq_int
Unexecuted instantiation: tasn_new.c:constant_time_eq_int
Unexecuted instantiation: tasn_utl.c:constant_time_eq_int
Unexecuted instantiation: pool.c:constant_time_eq_int
Unexecuted instantiation: curve25519_64_adx.c:constant_time_eq_int
Unexecuted instantiation: cpu_intel.c:constant_time_eq_int
511
512
// constant_time_eq_int_8 acts like |constant_time_eq_int| but returns an 8-bit
513
// mask.
514
0
static inline uint8_t constant_time_eq_int_8(int a, int b) {
515
0
  return constant_time_eq_8((crypto_word_t)(a), (crypto_word_t)(b));
516
0
}
Unexecuted instantiation: a_int.c:constant_time_eq_int_8
Unexecuted instantiation: asn1_lib.c:constant_time_eq_int_8
Unexecuted instantiation: bcm.c:constant_time_eq_int_8
Unexecuted instantiation: cbb.c:constant_time_eq_int_8
Unexecuted instantiation: cbs.c:constant_time_eq_int_8
Unexecuted instantiation: convert.c:constant_time_eq_int_8
Unexecuted instantiation: crypto.c:constant_time_eq_int_8
Unexecuted instantiation: curve25519.c:constant_time_eq_int_8
Unexecuted instantiation: digest_extra.c:constant_time_eq_int_8
Unexecuted instantiation: dsa.c:constant_time_eq_int_8
Unexecuted instantiation: dsa_asn1.c:constant_time_eq_int_8
Unexecuted instantiation: e_aesctrhmac.c:constant_time_eq_int_8
Unexecuted instantiation: e_aesgcmsiv.c:constant_time_eq_int_8
Unexecuted instantiation: e_chacha20poly1305.c:constant_time_eq_int_8
Unexecuted instantiation: e_des.c:constant_time_eq_int_8
Unexecuted instantiation: e_rc2.c:constant_time_eq_int_8
Unexecuted instantiation: e_rc4.c:constant_time_eq_int_8
Unexecuted instantiation: e_tls.c:constant_time_eq_int_8
Unexecuted instantiation: ecdh_extra.c:constant_time_eq_int_8
Unexecuted instantiation: ecdsa_asn1.c:constant_time_eq_int_8
Unexecuted instantiation: engine.c:constant_time_eq_int_8
Unexecuted instantiation: err.c:constant_time_eq_int_8
Unexecuted instantiation: evp.c:constant_time_eq_int_8
Unexecuted instantiation: evp_ctx.c:constant_time_eq_int_8
Unexecuted instantiation: ex_data.c:constant_time_eq_int_8
Unexecuted instantiation: file.c:constant_time_eq_int_8
Unexecuted instantiation: fork_detect.c:constant_time_eq_int_8
Unexecuted instantiation: forkunsafe.c:constant_time_eq_int_8
Unexecuted instantiation: md4.c:constant_time_eq_int_8
Unexecuted instantiation: md5.c:constant_time_eq_int_8
Unexecuted instantiation: mem.c:constant_time_eq_int_8
Unexecuted instantiation: obj.c:constant_time_eq_int_8
Unexecuted instantiation: p_dh_asn1.c:constant_time_eq_int_8
Unexecuted instantiation: p_dsa_asn1.c:constant_time_eq_int_8
Unexecuted instantiation: p_ec.c:constant_time_eq_int_8
Unexecuted instantiation: p_ed25519_asn1.c:constant_time_eq_int_8
Unexecuted instantiation: p_hkdf.c:constant_time_eq_int_8
Unexecuted instantiation: p_rsa.c:constant_time_eq_int_8
Unexecuted instantiation: p_rsa_asn1.c:constant_time_eq_int_8
Unexecuted instantiation: p_x25519_asn1.c:constant_time_eq_int_8
Unexecuted instantiation: pbkdf.c:constant_time_eq_int_8
Unexecuted instantiation: poly1305_vec.c:constant_time_eq_int_8
Unexecuted instantiation: refcount.c:constant_time_eq_int_8
Unexecuted instantiation: rsa_asn1.c:constant_time_eq_int_8
Unexecuted instantiation: rsa_crypt.c:constant_time_eq_int_8
Unexecuted instantiation: scrypt.c:constant_time_eq_int_8
Unexecuted instantiation: siphash.c:constant_time_eq_int_8
Unexecuted instantiation: stack.c:constant_time_eq_int_8
Unexecuted instantiation: thread_pthread.c:constant_time_eq_int_8
Unexecuted instantiation: tls_cbc.c:constant_time_eq_int_8
Unexecuted instantiation: urandom.c:constant_time_eq_int_8
Unexecuted instantiation: a_bitstr.c:constant_time_eq_int_8
Unexecuted instantiation: a_object.c:constant_time_eq_int_8
Unexecuted instantiation: asn1_compat.c:constant_time_eq_int_8
Unexecuted instantiation: bio.c:constant_time_eq_int_8
Unexecuted instantiation: blake2.c:constant_time_eq_int_8
Unexecuted instantiation: chacha.c:constant_time_eq_int_8
Unexecuted instantiation: des.c:constant_time_eq_int_8
Unexecuted instantiation: ec_asn1.c:constant_time_eq_int_8
Unexecuted instantiation: lhash.c:constant_time_eq_int_8
Unexecuted instantiation: tasn_dec.c:constant_time_eq_int_8
Unexecuted instantiation: tasn_enc.c:constant_time_eq_int_8
Unexecuted instantiation: tasn_new.c:constant_time_eq_int_8
Unexecuted instantiation: tasn_utl.c:constant_time_eq_int_8
Unexecuted instantiation: pool.c:constant_time_eq_int_8
Unexecuted instantiation: curve25519_64_adx.c:constant_time_eq_int_8
Unexecuted instantiation: cpu_intel.c:constant_time_eq_int_8
517
518
// constant_time_select_w returns (mask & a) | (~mask & b). When |mask| is all
519
// 1s or all 0s (as returned by the methods above), the select methods return
520
// either |a| (if |mask| is nonzero) or |b| (if |mask| is zero).
521
static inline crypto_word_t constant_time_select_w(crypto_word_t mask,
522
                                                   crypto_word_t a,
523
1.04G
                                                   crypto_word_t b) {
524
  // Clang recognizes this pattern as a select. While it usually transforms it
525
  // to a cmov, it sometimes further transforms it into a branch, which we do
526
  // not want.
527
  //
528
  // Hiding the value of the mask from the compiler evades this transformation.
529
1.04G
  mask = value_barrier_w(mask);
530
1.04G
  return (mask & a) | (~mask & b);
531
1.04G
}
Unexecuted instantiation: a_int.c:constant_time_select_w
Unexecuted instantiation: asn1_lib.c:constant_time_select_w
bcm.c:constant_time_select_w
Line
Count
Source
523
1.04G
                                                   crypto_word_t b) {
524
  // Clang recognizes this pattern as a select. While it usually transforms it
525
  // to a cmov, it sometimes further transforms it into a branch, which we do
526
  // not want.
527
  //
528
  // Hiding the value of the mask from the compiler evades this transformation.
529
1.04G
  mask = value_barrier_w(mask);
530
1.04G
  return (mask & a) | (~mask & b);
531
1.04G
}
Unexecuted instantiation: cbb.c:constant_time_select_w
Unexecuted instantiation: cbs.c:constant_time_select_w
Unexecuted instantiation: convert.c:constant_time_select_w
Unexecuted instantiation: crypto.c:constant_time_select_w
Unexecuted instantiation: curve25519.c:constant_time_select_w
Unexecuted instantiation: digest_extra.c:constant_time_select_w
Unexecuted instantiation: dsa.c:constant_time_select_w
Unexecuted instantiation: dsa_asn1.c:constant_time_select_w
Unexecuted instantiation: e_aesctrhmac.c:constant_time_select_w
Unexecuted instantiation: e_aesgcmsiv.c:constant_time_select_w
Unexecuted instantiation: e_chacha20poly1305.c:constant_time_select_w
Unexecuted instantiation: e_des.c:constant_time_select_w
Unexecuted instantiation: e_rc2.c:constant_time_select_w
Unexecuted instantiation: e_rc4.c:constant_time_select_w
Unexecuted instantiation: e_tls.c:constant_time_select_w
Unexecuted instantiation: ecdh_extra.c:constant_time_select_w
Unexecuted instantiation: ecdsa_asn1.c:constant_time_select_w
Unexecuted instantiation: engine.c:constant_time_select_w
Unexecuted instantiation: err.c:constant_time_select_w
Unexecuted instantiation: evp.c:constant_time_select_w
Unexecuted instantiation: evp_ctx.c:constant_time_select_w
Unexecuted instantiation: ex_data.c:constant_time_select_w
Unexecuted instantiation: file.c:constant_time_select_w
Unexecuted instantiation: fork_detect.c:constant_time_select_w
Unexecuted instantiation: forkunsafe.c:constant_time_select_w
Unexecuted instantiation: md4.c:constant_time_select_w
Unexecuted instantiation: md5.c:constant_time_select_w
Unexecuted instantiation: mem.c:constant_time_select_w
Unexecuted instantiation: obj.c:constant_time_select_w
Unexecuted instantiation: p_dh_asn1.c:constant_time_select_w
Unexecuted instantiation: p_dsa_asn1.c:constant_time_select_w
Unexecuted instantiation: p_ec.c:constant_time_select_w
Unexecuted instantiation: p_ed25519_asn1.c:constant_time_select_w
Unexecuted instantiation: p_hkdf.c:constant_time_select_w
Unexecuted instantiation: p_rsa.c:constant_time_select_w
Unexecuted instantiation: p_rsa_asn1.c:constant_time_select_w
Unexecuted instantiation: p_x25519_asn1.c:constant_time_select_w
Unexecuted instantiation: pbkdf.c:constant_time_select_w
Unexecuted instantiation: poly1305_vec.c:constant_time_select_w
Unexecuted instantiation: refcount.c:constant_time_select_w
Unexecuted instantiation: rsa_asn1.c:constant_time_select_w
Unexecuted instantiation: rsa_crypt.c:constant_time_select_w
Unexecuted instantiation: scrypt.c:constant_time_select_w
Unexecuted instantiation: siphash.c:constant_time_select_w
Unexecuted instantiation: stack.c:constant_time_select_w
Unexecuted instantiation: thread_pthread.c:constant_time_select_w
Unexecuted instantiation: tls_cbc.c:constant_time_select_w
Unexecuted instantiation: urandom.c:constant_time_select_w
Unexecuted instantiation: a_bitstr.c:constant_time_select_w
Unexecuted instantiation: a_object.c:constant_time_select_w
Unexecuted instantiation: asn1_compat.c:constant_time_select_w
Unexecuted instantiation: bio.c:constant_time_select_w
Unexecuted instantiation: blake2.c:constant_time_select_w
Unexecuted instantiation: chacha.c:constant_time_select_w
Unexecuted instantiation: des.c:constant_time_select_w
Unexecuted instantiation: ec_asn1.c:constant_time_select_w
Unexecuted instantiation: lhash.c:constant_time_select_w
Unexecuted instantiation: tasn_dec.c:constant_time_select_w
Unexecuted instantiation: tasn_enc.c:constant_time_select_w
Unexecuted instantiation: tasn_new.c:constant_time_select_w
Unexecuted instantiation: tasn_utl.c:constant_time_select_w
Unexecuted instantiation: pool.c:constant_time_select_w
Unexecuted instantiation: curve25519_64_adx.c:constant_time_select_w
Unexecuted instantiation: cpu_intel.c:constant_time_select_w
532
533
// constant_time_select_8 acts like |constant_time_select| but operates on
534
// 8-bit values.
535
static inline uint8_t constant_time_select_8(crypto_word_t mask, uint8_t a,
536
0
                                             uint8_t b) {
537
  // |mask| is a word instead of |uint8_t| to avoid materializing 0x000..0MM
538
  // Making both |mask| and its value barrier |uint8_t| would allow the compiler
539
  // to materialize 0x????..?MM instead, but only clang is that clever.
540
  // However, vectorization of bitwise operations seems to work better on
541
  // |uint8_t| than a mix of |uint64_t| and |uint8_t|, so |m| is cast to
542
  // |uint8_t| after the value barrier but before the bitwise operations.
543
0
  uint8_t m = value_barrier_w(mask);
544
0
  return (m & a) | (~m & b);
545
0
}
Unexecuted instantiation: a_int.c:constant_time_select_8
Unexecuted instantiation: asn1_lib.c:constant_time_select_8
Unexecuted instantiation: bcm.c:constant_time_select_8
Unexecuted instantiation: cbb.c:constant_time_select_8
Unexecuted instantiation: cbs.c:constant_time_select_8
Unexecuted instantiation: convert.c:constant_time_select_8
Unexecuted instantiation: crypto.c:constant_time_select_8
Unexecuted instantiation: curve25519.c:constant_time_select_8
Unexecuted instantiation: digest_extra.c:constant_time_select_8
Unexecuted instantiation: dsa.c:constant_time_select_8
Unexecuted instantiation: dsa_asn1.c:constant_time_select_8
Unexecuted instantiation: e_aesctrhmac.c:constant_time_select_8
Unexecuted instantiation: e_aesgcmsiv.c:constant_time_select_8
Unexecuted instantiation: e_chacha20poly1305.c:constant_time_select_8
Unexecuted instantiation: e_des.c:constant_time_select_8
Unexecuted instantiation: e_rc2.c:constant_time_select_8
Unexecuted instantiation: e_rc4.c:constant_time_select_8
Unexecuted instantiation: e_tls.c:constant_time_select_8
Unexecuted instantiation: ecdh_extra.c:constant_time_select_8
Unexecuted instantiation: ecdsa_asn1.c:constant_time_select_8
Unexecuted instantiation: engine.c:constant_time_select_8
Unexecuted instantiation: err.c:constant_time_select_8
Unexecuted instantiation: evp.c:constant_time_select_8
Unexecuted instantiation: evp_ctx.c:constant_time_select_8
Unexecuted instantiation: ex_data.c:constant_time_select_8
Unexecuted instantiation: file.c:constant_time_select_8
Unexecuted instantiation: fork_detect.c:constant_time_select_8
Unexecuted instantiation: forkunsafe.c:constant_time_select_8
Unexecuted instantiation: md4.c:constant_time_select_8
Unexecuted instantiation: md5.c:constant_time_select_8
Unexecuted instantiation: mem.c:constant_time_select_8
Unexecuted instantiation: obj.c:constant_time_select_8
Unexecuted instantiation: p_dh_asn1.c:constant_time_select_8
Unexecuted instantiation: p_dsa_asn1.c:constant_time_select_8
Unexecuted instantiation: p_ec.c:constant_time_select_8
Unexecuted instantiation: p_ed25519_asn1.c:constant_time_select_8
Unexecuted instantiation: p_hkdf.c:constant_time_select_8
Unexecuted instantiation: p_rsa.c:constant_time_select_8
Unexecuted instantiation: p_rsa_asn1.c:constant_time_select_8
Unexecuted instantiation: p_x25519_asn1.c:constant_time_select_8
Unexecuted instantiation: pbkdf.c:constant_time_select_8
Unexecuted instantiation: poly1305_vec.c:constant_time_select_8
Unexecuted instantiation: refcount.c:constant_time_select_8
Unexecuted instantiation: rsa_asn1.c:constant_time_select_8
Unexecuted instantiation: rsa_crypt.c:constant_time_select_8
Unexecuted instantiation: scrypt.c:constant_time_select_8
Unexecuted instantiation: siphash.c:constant_time_select_8
Unexecuted instantiation: stack.c:constant_time_select_8
Unexecuted instantiation: thread_pthread.c:constant_time_select_8
Unexecuted instantiation: tls_cbc.c:constant_time_select_8
Unexecuted instantiation: urandom.c:constant_time_select_8
Unexecuted instantiation: a_bitstr.c:constant_time_select_8
Unexecuted instantiation: a_object.c:constant_time_select_8
Unexecuted instantiation: asn1_compat.c:constant_time_select_8
Unexecuted instantiation: bio.c:constant_time_select_8
Unexecuted instantiation: blake2.c:constant_time_select_8
Unexecuted instantiation: chacha.c:constant_time_select_8
Unexecuted instantiation: des.c:constant_time_select_8
Unexecuted instantiation: ec_asn1.c:constant_time_select_8
Unexecuted instantiation: lhash.c:constant_time_select_8
Unexecuted instantiation: tasn_dec.c:constant_time_select_8
Unexecuted instantiation: tasn_enc.c:constant_time_select_8
Unexecuted instantiation: tasn_new.c:constant_time_select_8
Unexecuted instantiation: tasn_utl.c:constant_time_select_8
Unexecuted instantiation: pool.c:constant_time_select_8
Unexecuted instantiation: curve25519_64_adx.c:constant_time_select_8
Unexecuted instantiation: cpu_intel.c:constant_time_select_8
546
547
// constant_time_select_int acts like |constant_time_select| but operates on
548
// ints.
549
97.0M
static inline int constant_time_select_int(crypto_word_t mask, int a, int b) {
550
97.0M
  return (int)(constant_time_select_w(mask, (crypto_word_t)(a),
551
97.0M
                                      (crypto_word_t)(b)));
552
97.0M
}
Unexecuted instantiation: a_int.c:constant_time_select_int
Unexecuted instantiation: asn1_lib.c:constant_time_select_int
bcm.c:constant_time_select_int
Line
Count
Source
549
97.0M
static inline int constant_time_select_int(crypto_word_t mask, int a, int b) {
550
97.0M
  return (int)(constant_time_select_w(mask, (crypto_word_t)(a),
551
97.0M
                                      (crypto_word_t)(b)));
552
97.0M
}
Unexecuted instantiation: cbb.c:constant_time_select_int
Unexecuted instantiation: cbs.c:constant_time_select_int
Unexecuted instantiation: convert.c:constant_time_select_int
Unexecuted instantiation: crypto.c:constant_time_select_int
Unexecuted instantiation: curve25519.c:constant_time_select_int
Unexecuted instantiation: digest_extra.c:constant_time_select_int
Unexecuted instantiation: dsa.c:constant_time_select_int
Unexecuted instantiation: dsa_asn1.c:constant_time_select_int
Unexecuted instantiation: e_aesctrhmac.c:constant_time_select_int
Unexecuted instantiation: e_aesgcmsiv.c:constant_time_select_int
Unexecuted instantiation: e_chacha20poly1305.c:constant_time_select_int
Unexecuted instantiation: e_des.c:constant_time_select_int
Unexecuted instantiation: e_rc2.c:constant_time_select_int
Unexecuted instantiation: e_rc4.c:constant_time_select_int
Unexecuted instantiation: e_tls.c:constant_time_select_int
Unexecuted instantiation: ecdh_extra.c:constant_time_select_int
Unexecuted instantiation: ecdsa_asn1.c:constant_time_select_int
Unexecuted instantiation: engine.c:constant_time_select_int
Unexecuted instantiation: err.c:constant_time_select_int
Unexecuted instantiation: evp.c:constant_time_select_int
Unexecuted instantiation: evp_ctx.c:constant_time_select_int
Unexecuted instantiation: ex_data.c:constant_time_select_int
Unexecuted instantiation: file.c:constant_time_select_int
Unexecuted instantiation: fork_detect.c:constant_time_select_int
Unexecuted instantiation: forkunsafe.c:constant_time_select_int
Unexecuted instantiation: md4.c:constant_time_select_int
Unexecuted instantiation: md5.c:constant_time_select_int
Unexecuted instantiation: mem.c:constant_time_select_int
Unexecuted instantiation: obj.c:constant_time_select_int
Unexecuted instantiation: p_dh_asn1.c:constant_time_select_int
Unexecuted instantiation: p_dsa_asn1.c:constant_time_select_int
Unexecuted instantiation: p_ec.c:constant_time_select_int
Unexecuted instantiation: p_ed25519_asn1.c:constant_time_select_int
Unexecuted instantiation: p_hkdf.c:constant_time_select_int
Unexecuted instantiation: p_rsa.c:constant_time_select_int
Unexecuted instantiation: p_rsa_asn1.c:constant_time_select_int
Unexecuted instantiation: p_x25519_asn1.c:constant_time_select_int
Unexecuted instantiation: pbkdf.c:constant_time_select_int
Unexecuted instantiation: poly1305_vec.c:constant_time_select_int
Unexecuted instantiation: refcount.c:constant_time_select_int
Unexecuted instantiation: rsa_asn1.c:constant_time_select_int
Unexecuted instantiation: rsa_crypt.c:constant_time_select_int
Unexecuted instantiation: scrypt.c:constant_time_select_int
Unexecuted instantiation: siphash.c:constant_time_select_int
Unexecuted instantiation: stack.c:constant_time_select_int
Unexecuted instantiation: thread_pthread.c:constant_time_select_int
Unexecuted instantiation: tls_cbc.c:constant_time_select_int
Unexecuted instantiation: urandom.c:constant_time_select_int
Unexecuted instantiation: a_bitstr.c:constant_time_select_int
Unexecuted instantiation: a_object.c:constant_time_select_int
Unexecuted instantiation: asn1_compat.c:constant_time_select_int
Unexecuted instantiation: bio.c:constant_time_select_int
Unexecuted instantiation: blake2.c:constant_time_select_int
Unexecuted instantiation: chacha.c:constant_time_select_int
Unexecuted instantiation: des.c:constant_time_select_int
Unexecuted instantiation: ec_asn1.c:constant_time_select_int
Unexecuted instantiation: lhash.c:constant_time_select_int
Unexecuted instantiation: tasn_dec.c:constant_time_select_int
Unexecuted instantiation: tasn_enc.c:constant_time_select_int
Unexecuted instantiation: tasn_new.c:constant_time_select_int
Unexecuted instantiation: tasn_utl.c:constant_time_select_int
Unexecuted instantiation: pool.c:constant_time_select_int
Unexecuted instantiation: curve25519_64_adx.c:constant_time_select_int
Unexecuted instantiation: cpu_intel.c:constant_time_select_int
553
554
// constant_time_conditional_memcpy copies |n| bytes from |src| to |dst| if
555
// |mask| is 0xff..ff and does nothing if |mask| is 0. The |n|-byte memory
556
// ranges at |dst| and |src| must not overlap, as when calling |memcpy|.
557
static inline void constant_time_conditional_memcpy(void *dst, const void *src,
558
                                                    const size_t n,
559
0
                                                    const crypto_word_t mask) {
560
0
  assert(!buffers_alias(dst, n, src, n));
561
0
  uint8_t *out = (uint8_t *)dst;
562
0
  const uint8_t *in = (const uint8_t *)src;
563
0
  for (size_t i = 0; i < n; i++) {
564
0
    out[i] = constant_time_select_8(mask, in[i], out[i]);
565
0
  }
566
0
}
Unexecuted instantiation: a_int.c:constant_time_conditional_memcpy
Unexecuted instantiation: asn1_lib.c:constant_time_conditional_memcpy
Unexecuted instantiation: bcm.c:constant_time_conditional_memcpy
Unexecuted instantiation: cbb.c:constant_time_conditional_memcpy
Unexecuted instantiation: cbs.c:constant_time_conditional_memcpy
Unexecuted instantiation: convert.c:constant_time_conditional_memcpy
Unexecuted instantiation: crypto.c:constant_time_conditional_memcpy
Unexecuted instantiation: curve25519.c:constant_time_conditional_memcpy
Unexecuted instantiation: digest_extra.c:constant_time_conditional_memcpy
Unexecuted instantiation: dsa.c:constant_time_conditional_memcpy
Unexecuted instantiation: dsa_asn1.c:constant_time_conditional_memcpy
Unexecuted instantiation: e_aesctrhmac.c:constant_time_conditional_memcpy
Unexecuted instantiation: e_aesgcmsiv.c:constant_time_conditional_memcpy
Unexecuted instantiation: e_chacha20poly1305.c:constant_time_conditional_memcpy
Unexecuted instantiation: e_des.c:constant_time_conditional_memcpy
Unexecuted instantiation: e_rc2.c:constant_time_conditional_memcpy
Unexecuted instantiation: e_rc4.c:constant_time_conditional_memcpy
Unexecuted instantiation: e_tls.c:constant_time_conditional_memcpy
Unexecuted instantiation: ecdh_extra.c:constant_time_conditional_memcpy
Unexecuted instantiation: ecdsa_asn1.c:constant_time_conditional_memcpy
Unexecuted instantiation: engine.c:constant_time_conditional_memcpy
Unexecuted instantiation: err.c:constant_time_conditional_memcpy
Unexecuted instantiation: evp.c:constant_time_conditional_memcpy
Unexecuted instantiation: evp_ctx.c:constant_time_conditional_memcpy
Unexecuted instantiation: ex_data.c:constant_time_conditional_memcpy
Unexecuted instantiation: file.c:constant_time_conditional_memcpy
Unexecuted instantiation: fork_detect.c:constant_time_conditional_memcpy
Unexecuted instantiation: forkunsafe.c:constant_time_conditional_memcpy
Unexecuted instantiation: md4.c:constant_time_conditional_memcpy
Unexecuted instantiation: md5.c:constant_time_conditional_memcpy
Unexecuted instantiation: mem.c:constant_time_conditional_memcpy
Unexecuted instantiation: obj.c:constant_time_conditional_memcpy
Unexecuted instantiation: p_dh_asn1.c:constant_time_conditional_memcpy
Unexecuted instantiation: p_dsa_asn1.c:constant_time_conditional_memcpy
Unexecuted instantiation: p_ec.c:constant_time_conditional_memcpy
Unexecuted instantiation: p_ed25519_asn1.c:constant_time_conditional_memcpy
Unexecuted instantiation: p_hkdf.c:constant_time_conditional_memcpy
Unexecuted instantiation: p_rsa.c:constant_time_conditional_memcpy
Unexecuted instantiation: p_rsa_asn1.c:constant_time_conditional_memcpy
Unexecuted instantiation: p_x25519_asn1.c:constant_time_conditional_memcpy
Unexecuted instantiation: pbkdf.c:constant_time_conditional_memcpy
Unexecuted instantiation: poly1305_vec.c:constant_time_conditional_memcpy
Unexecuted instantiation: refcount.c:constant_time_conditional_memcpy
Unexecuted instantiation: rsa_asn1.c:constant_time_conditional_memcpy
Unexecuted instantiation: rsa_crypt.c:constant_time_conditional_memcpy
Unexecuted instantiation: scrypt.c:constant_time_conditional_memcpy
Unexecuted instantiation: siphash.c:constant_time_conditional_memcpy
Unexecuted instantiation: stack.c:constant_time_conditional_memcpy
Unexecuted instantiation: thread_pthread.c:constant_time_conditional_memcpy
Unexecuted instantiation: tls_cbc.c:constant_time_conditional_memcpy
Unexecuted instantiation: urandom.c:constant_time_conditional_memcpy
Unexecuted instantiation: a_bitstr.c:constant_time_conditional_memcpy
Unexecuted instantiation: a_object.c:constant_time_conditional_memcpy
Unexecuted instantiation: asn1_compat.c:constant_time_conditional_memcpy
Unexecuted instantiation: bio.c:constant_time_conditional_memcpy
Unexecuted instantiation: blake2.c:constant_time_conditional_memcpy
Unexecuted instantiation: chacha.c:constant_time_conditional_memcpy
Unexecuted instantiation: des.c:constant_time_conditional_memcpy
Unexecuted instantiation: ec_asn1.c:constant_time_conditional_memcpy
Unexecuted instantiation: lhash.c:constant_time_conditional_memcpy
Unexecuted instantiation: tasn_dec.c:constant_time_conditional_memcpy
Unexecuted instantiation: tasn_enc.c:constant_time_conditional_memcpy
Unexecuted instantiation: tasn_new.c:constant_time_conditional_memcpy
Unexecuted instantiation: tasn_utl.c:constant_time_conditional_memcpy
Unexecuted instantiation: pool.c:constant_time_conditional_memcpy
Unexecuted instantiation: curve25519_64_adx.c:constant_time_conditional_memcpy
Unexecuted instantiation: cpu_intel.c:constant_time_conditional_memcpy
567
568
// constant_time_conditional_memxor xors |n| bytes from |src| to |dst| if
569
// |mask| is 0xff..ff and does nothing if |mask| is 0. The |n|-byte memory
570
// ranges at |dst| and |src| must not overlap, as when calling |memcpy|.
571
static inline void constant_time_conditional_memxor(void *dst, const void *src,
572
                                                    size_t n,
573
512
                                                    const crypto_word_t mask) {
574
512
  assert(!buffers_alias(dst, n, src, n));
575
512
  uint8_t *out = (uint8_t *)dst;
576
512
  const uint8_t *in = (const uint8_t *)src;
577
#if defined(__GNUC__) && !defined(__clang__)
578
  // gcc 13.2.0 doesn't automatically vectorize this loop regardless of barrier
579
  typedef uint8_t v32u8 __attribute__((vector_size(32), aligned(1), may_alias));
580
  size_t n_vec = n&~(size_t)31;
581
  v32u8 masks = ((uint8_t)mask-(v32u8){}); // broadcast
582
  for (size_t i = 0; i < n_vec; i += 32) {
583
    *(v32u8*)&out[i] ^= masks & *(v32u8*)&in[i];
584
  }
585
  out += n_vec;
586
  n -= n_vec;
587
#endif
588
49.6k
  for (size_t i = 0; i < n; i++) {
589
49.1k
    out[i] ^= value_barrier_w(mask) & in[i];
590
49.1k
  }
591
512
}
Unexecuted instantiation: a_int.c:constant_time_conditional_memxor
Unexecuted instantiation: asn1_lib.c:constant_time_conditional_memxor
Unexecuted instantiation: bcm.c:constant_time_conditional_memxor
Unexecuted instantiation: cbb.c:constant_time_conditional_memxor
Unexecuted instantiation: cbs.c:constant_time_conditional_memxor
Unexecuted instantiation: convert.c:constant_time_conditional_memxor
Unexecuted instantiation: crypto.c:constant_time_conditional_memxor
curve25519.c:constant_time_conditional_memxor
Line
Count
Source
573
512
                                                    const crypto_word_t mask) {
574
512
  assert(!buffers_alias(dst, n, src, n));
575
512
  uint8_t *out = (uint8_t *)dst;
576
512
  const uint8_t *in = (const uint8_t *)src;
577
#if defined(__GNUC__) && !defined(__clang__)
578
  // gcc 13.2.0 doesn't automatically vectorize this loop regardless of barrier
579
  typedef uint8_t v32u8 __attribute__((vector_size(32), aligned(1), may_alias));
580
  size_t n_vec = n&~(size_t)31;
581
  v32u8 masks = ((uint8_t)mask-(v32u8){}); // broadcast
582
  for (size_t i = 0; i < n_vec; i += 32) {
583
    *(v32u8*)&out[i] ^= masks & *(v32u8*)&in[i];
584
  }
585
  out += n_vec;
586
  n -= n_vec;
587
#endif
588
49.6k
  for (size_t i = 0; i < n; i++) {
589
49.1k
    out[i] ^= value_barrier_w(mask) & in[i];
590
49.1k
  }
591
512
}
Unexecuted instantiation: digest_extra.c:constant_time_conditional_memxor
Unexecuted instantiation: dsa.c:constant_time_conditional_memxor
Unexecuted instantiation: dsa_asn1.c:constant_time_conditional_memxor
Unexecuted instantiation: e_aesctrhmac.c:constant_time_conditional_memxor
Unexecuted instantiation: e_aesgcmsiv.c:constant_time_conditional_memxor
Unexecuted instantiation: e_chacha20poly1305.c:constant_time_conditional_memxor
Unexecuted instantiation: e_des.c:constant_time_conditional_memxor
Unexecuted instantiation: e_rc2.c:constant_time_conditional_memxor
Unexecuted instantiation: e_rc4.c:constant_time_conditional_memxor
Unexecuted instantiation: e_tls.c:constant_time_conditional_memxor
Unexecuted instantiation: ecdh_extra.c:constant_time_conditional_memxor
Unexecuted instantiation: ecdsa_asn1.c:constant_time_conditional_memxor
Unexecuted instantiation: engine.c:constant_time_conditional_memxor
Unexecuted instantiation: err.c:constant_time_conditional_memxor
Unexecuted instantiation: evp.c:constant_time_conditional_memxor
Unexecuted instantiation: evp_ctx.c:constant_time_conditional_memxor
Unexecuted instantiation: ex_data.c:constant_time_conditional_memxor
Unexecuted instantiation: file.c:constant_time_conditional_memxor
Unexecuted instantiation: fork_detect.c:constant_time_conditional_memxor
Unexecuted instantiation: forkunsafe.c:constant_time_conditional_memxor
Unexecuted instantiation: md4.c:constant_time_conditional_memxor
Unexecuted instantiation: md5.c:constant_time_conditional_memxor
Unexecuted instantiation: mem.c:constant_time_conditional_memxor
Unexecuted instantiation: obj.c:constant_time_conditional_memxor
Unexecuted instantiation: p_dh_asn1.c:constant_time_conditional_memxor
Unexecuted instantiation: p_dsa_asn1.c:constant_time_conditional_memxor
Unexecuted instantiation: p_ec.c:constant_time_conditional_memxor
Unexecuted instantiation: p_ed25519_asn1.c:constant_time_conditional_memxor
Unexecuted instantiation: p_hkdf.c:constant_time_conditional_memxor
Unexecuted instantiation: p_rsa.c:constant_time_conditional_memxor
Unexecuted instantiation: p_rsa_asn1.c:constant_time_conditional_memxor
Unexecuted instantiation: p_x25519_asn1.c:constant_time_conditional_memxor
Unexecuted instantiation: pbkdf.c:constant_time_conditional_memxor
Unexecuted instantiation: poly1305_vec.c:constant_time_conditional_memxor
Unexecuted instantiation: refcount.c:constant_time_conditional_memxor
Unexecuted instantiation: rsa_asn1.c:constant_time_conditional_memxor
Unexecuted instantiation: rsa_crypt.c:constant_time_conditional_memxor
Unexecuted instantiation: scrypt.c:constant_time_conditional_memxor
Unexecuted instantiation: siphash.c:constant_time_conditional_memxor
Unexecuted instantiation: stack.c:constant_time_conditional_memxor
Unexecuted instantiation: thread_pthread.c:constant_time_conditional_memxor
Unexecuted instantiation: tls_cbc.c:constant_time_conditional_memxor
Unexecuted instantiation: urandom.c:constant_time_conditional_memxor
Unexecuted instantiation: a_bitstr.c:constant_time_conditional_memxor
Unexecuted instantiation: a_object.c:constant_time_conditional_memxor
Unexecuted instantiation: asn1_compat.c:constant_time_conditional_memxor
Unexecuted instantiation: bio.c:constant_time_conditional_memxor
Unexecuted instantiation: blake2.c:constant_time_conditional_memxor
Unexecuted instantiation: chacha.c:constant_time_conditional_memxor
Unexecuted instantiation: des.c:constant_time_conditional_memxor
Unexecuted instantiation: ec_asn1.c:constant_time_conditional_memxor
Unexecuted instantiation: lhash.c:constant_time_conditional_memxor
Unexecuted instantiation: tasn_dec.c:constant_time_conditional_memxor
Unexecuted instantiation: tasn_enc.c:constant_time_conditional_memxor
Unexecuted instantiation: tasn_new.c:constant_time_conditional_memxor
Unexecuted instantiation: tasn_utl.c:constant_time_conditional_memxor
Unexecuted instantiation: pool.c:constant_time_conditional_memxor
Unexecuted instantiation: curve25519_64_adx.c:constant_time_conditional_memxor
Unexecuted instantiation: cpu_intel.c:constant_time_conditional_memxor
592
593
#if defined(BORINGSSL_CONSTANT_TIME_VALIDATION)
594
595
// CONSTTIME_SECRET takes a pointer and a number of bytes and marks that region
596
// of memory as secret. Secret data is tracked as it flows to registers and
597
// other parts of a memory. If secret data is used as a condition for a branch,
598
// or as a memory index, it will trigger warnings in valgrind.
599
#define CONSTTIME_SECRET(ptr, len) VALGRIND_MAKE_MEM_UNDEFINED(ptr, len)
600
601
// CONSTTIME_DECLASSIFY takes a pointer and a number of bytes and marks that
602
// region of memory as public. Public data is not subject to constant-time
603
// rules.
604
#define CONSTTIME_DECLASSIFY(ptr, len) VALGRIND_MAKE_MEM_DEFINED(ptr, len)
605
606
#else
607
608
#define CONSTTIME_SECRET(ptr, len)
609
#define CONSTTIME_DECLASSIFY(ptr, len)
610
611
#endif  // BORINGSSL_CONSTANT_TIME_VALIDATION
612
613
1.64M
static inline crypto_word_t constant_time_declassify_w(crypto_word_t v) {
614
  // Return |v| through a value barrier to be safe. Valgrind-based constant-time
615
  // validation is partly to check the compiler has not undone any constant-time
616
  // work. Any place |BORINGSSL_CONSTANT_TIME_VALIDATION| influences
617
  // optimizations, this validation is inaccurate.
618
  //
619
  // However, by sending pointers through valgrind, we likely inhibit escape
620
  // analysis. On local variables, particularly booleans, we likely
621
  // significantly impact optimizations.
622
  //
623
  // Thus, to be safe, stick a value barrier, in hopes of comparably inhibiting
624
  // compiler analysis.
625
1.64M
  CONSTTIME_DECLASSIFY(&v, sizeof(v));
626
1.64M
  return value_barrier_w(v);
627
1.64M
}
Unexecuted instantiation: a_int.c:constant_time_declassify_w
Unexecuted instantiation: asn1_lib.c:constant_time_declassify_w
bcm.c:constant_time_declassify_w
Line
Count
Source
613
1.64M
static inline crypto_word_t constant_time_declassify_w(crypto_word_t v) {
614
  // Return |v| through a value barrier to be safe. Valgrind-based constant-time
615
  // validation is partly to check the compiler has not undone any constant-time
616
  // work. Any place |BORINGSSL_CONSTANT_TIME_VALIDATION| influences
617
  // optimizations, this validation is inaccurate.
618
  //
619
  // However, by sending pointers through valgrind, we likely inhibit escape
620
  // analysis. On local variables, particularly booleans, we likely
621
  // significantly impact optimizations.
622
  //
623
  // Thus, to be safe, stick a value barrier, in hopes of comparably inhibiting
624
  // compiler analysis.
625
1.64M
  CONSTTIME_DECLASSIFY(&v, sizeof(v));
626
1.64M
  return value_barrier_w(v);
627
1.64M
}
Unexecuted instantiation: cbb.c:constant_time_declassify_w
Unexecuted instantiation: cbs.c:constant_time_declassify_w
Unexecuted instantiation: convert.c:constant_time_declassify_w
Unexecuted instantiation: crypto.c:constant_time_declassify_w
Unexecuted instantiation: curve25519.c:constant_time_declassify_w
Unexecuted instantiation: digest_extra.c:constant_time_declassify_w
Unexecuted instantiation: dsa.c:constant_time_declassify_w
Unexecuted instantiation: dsa_asn1.c:constant_time_declassify_w
Unexecuted instantiation: e_aesctrhmac.c:constant_time_declassify_w
Unexecuted instantiation: e_aesgcmsiv.c:constant_time_declassify_w
Unexecuted instantiation: e_chacha20poly1305.c:constant_time_declassify_w
Unexecuted instantiation: e_des.c:constant_time_declassify_w
Unexecuted instantiation: e_rc2.c:constant_time_declassify_w
Unexecuted instantiation: e_rc4.c:constant_time_declassify_w
Unexecuted instantiation: e_tls.c:constant_time_declassify_w
Unexecuted instantiation: ecdh_extra.c:constant_time_declassify_w
Unexecuted instantiation: ecdsa_asn1.c:constant_time_declassify_w
Unexecuted instantiation: engine.c:constant_time_declassify_w
Unexecuted instantiation: err.c:constant_time_declassify_w
Unexecuted instantiation: evp.c:constant_time_declassify_w
Unexecuted instantiation: evp_ctx.c:constant_time_declassify_w
Unexecuted instantiation: ex_data.c:constant_time_declassify_w
Unexecuted instantiation: file.c:constant_time_declassify_w
Unexecuted instantiation: fork_detect.c:constant_time_declassify_w
Unexecuted instantiation: forkunsafe.c:constant_time_declassify_w
Unexecuted instantiation: md4.c:constant_time_declassify_w
Unexecuted instantiation: md5.c:constant_time_declassify_w
Unexecuted instantiation: mem.c:constant_time_declassify_w
Unexecuted instantiation: obj.c:constant_time_declassify_w
Unexecuted instantiation: p_dh_asn1.c:constant_time_declassify_w
Unexecuted instantiation: p_dsa_asn1.c:constant_time_declassify_w
Unexecuted instantiation: p_ec.c:constant_time_declassify_w
Unexecuted instantiation: p_ed25519_asn1.c:constant_time_declassify_w
Unexecuted instantiation: p_hkdf.c:constant_time_declassify_w
Unexecuted instantiation: p_rsa.c:constant_time_declassify_w
Unexecuted instantiation: p_rsa_asn1.c:constant_time_declassify_w
Unexecuted instantiation: p_x25519_asn1.c:constant_time_declassify_w
Unexecuted instantiation: pbkdf.c:constant_time_declassify_w
Unexecuted instantiation: poly1305_vec.c:constant_time_declassify_w
Unexecuted instantiation: refcount.c:constant_time_declassify_w
Unexecuted instantiation: rsa_asn1.c:constant_time_declassify_w
Unexecuted instantiation: rsa_crypt.c:constant_time_declassify_w
Unexecuted instantiation: scrypt.c:constant_time_declassify_w
Unexecuted instantiation: siphash.c:constant_time_declassify_w
Unexecuted instantiation: stack.c:constant_time_declassify_w
Unexecuted instantiation: thread_pthread.c:constant_time_declassify_w
Unexecuted instantiation: tls_cbc.c:constant_time_declassify_w
Unexecuted instantiation: urandom.c:constant_time_declassify_w
Unexecuted instantiation: a_bitstr.c:constant_time_declassify_w
Unexecuted instantiation: a_object.c:constant_time_declassify_w
Unexecuted instantiation: asn1_compat.c:constant_time_declassify_w
Unexecuted instantiation: bio.c:constant_time_declassify_w
Unexecuted instantiation: blake2.c:constant_time_declassify_w
Unexecuted instantiation: chacha.c:constant_time_declassify_w
Unexecuted instantiation: des.c:constant_time_declassify_w
Unexecuted instantiation: ec_asn1.c:constant_time_declassify_w
Unexecuted instantiation: lhash.c:constant_time_declassify_w
Unexecuted instantiation: tasn_dec.c:constant_time_declassify_w
Unexecuted instantiation: tasn_enc.c:constant_time_declassify_w
Unexecuted instantiation: tasn_new.c:constant_time_declassify_w
Unexecuted instantiation: tasn_utl.c:constant_time_declassify_w
Unexecuted instantiation: pool.c:constant_time_declassify_w
Unexecuted instantiation: curve25519_64_adx.c:constant_time_declassify_w
Unexecuted instantiation: cpu_intel.c:constant_time_declassify_w
628
629
1.30G
static inline int constant_time_declassify_int(int v) {
630
1.30G
  static_assert(sizeof(uint32_t) == sizeof(int),
631
1.30G
                "int is not the same size as uint32_t");
632
  // See comment above.
633
1.30G
  CONSTTIME_DECLASSIFY(&v, sizeof(v));
634
1.30G
  return value_barrier_u32(v);
635
1.30G
}
Unexecuted instantiation: a_int.c:constant_time_declassify_int
Unexecuted instantiation: asn1_lib.c:constant_time_declassify_int
bcm.c:constant_time_declassify_int
Line
Count
Source
629
1.30G
static inline int constant_time_declassify_int(int v) {
630
1.30G
  static_assert(sizeof(uint32_t) == sizeof(int),
631
1.30G
                "int is not the same size as uint32_t");
632
  // See comment above.
633
1.30G
  CONSTTIME_DECLASSIFY(&v, sizeof(v));
634
1.30G
  return value_barrier_u32(v);
635
1.30G
}
Unexecuted instantiation: cbb.c:constant_time_declassify_int
Unexecuted instantiation: cbs.c:constant_time_declassify_int
Unexecuted instantiation: convert.c:constant_time_declassify_int
Unexecuted instantiation: crypto.c:constant_time_declassify_int
curve25519.c:constant_time_declassify_int
Line
Count
Source
629
19.4k
static inline int constant_time_declassify_int(int v) {
630
19.4k
  static_assert(sizeof(uint32_t) == sizeof(int),
631
19.4k
                "int is not the same size as uint32_t");
632
  // See comment above.
633
19.4k
  CONSTTIME_DECLASSIFY(&v, sizeof(v));
634
19.4k
  return value_barrier_u32(v);
635
19.4k
}
Unexecuted instantiation: digest_extra.c:constant_time_declassify_int
Unexecuted instantiation: dsa.c:constant_time_declassify_int
Unexecuted instantiation: dsa_asn1.c:constant_time_declassify_int
Unexecuted instantiation: e_aesctrhmac.c:constant_time_declassify_int
Unexecuted instantiation: e_aesgcmsiv.c:constant_time_declassify_int
Unexecuted instantiation: e_chacha20poly1305.c:constant_time_declassify_int
Unexecuted instantiation: e_des.c:constant_time_declassify_int
Unexecuted instantiation: e_rc2.c:constant_time_declassify_int
Unexecuted instantiation: e_rc4.c:constant_time_declassify_int
Unexecuted instantiation: e_tls.c:constant_time_declassify_int
Unexecuted instantiation: ecdh_extra.c:constant_time_declassify_int
Unexecuted instantiation: ecdsa_asn1.c:constant_time_declassify_int
Unexecuted instantiation: engine.c:constant_time_declassify_int
Unexecuted instantiation: err.c:constant_time_declassify_int
Unexecuted instantiation: evp.c:constant_time_declassify_int
Unexecuted instantiation: evp_ctx.c:constant_time_declassify_int
Unexecuted instantiation: ex_data.c:constant_time_declassify_int
Unexecuted instantiation: file.c:constant_time_declassify_int
Unexecuted instantiation: fork_detect.c:constant_time_declassify_int
Unexecuted instantiation: forkunsafe.c:constant_time_declassify_int
Unexecuted instantiation: md4.c:constant_time_declassify_int
Unexecuted instantiation: md5.c:constant_time_declassify_int
Unexecuted instantiation: mem.c:constant_time_declassify_int
Unexecuted instantiation: obj.c:constant_time_declassify_int
Unexecuted instantiation: p_dh_asn1.c:constant_time_declassify_int
Unexecuted instantiation: p_dsa_asn1.c:constant_time_declassify_int
Unexecuted instantiation: p_ec.c:constant_time_declassify_int
Unexecuted instantiation: p_ed25519_asn1.c:constant_time_declassify_int
Unexecuted instantiation: p_hkdf.c:constant_time_declassify_int
Unexecuted instantiation: p_rsa.c:constant_time_declassify_int
Unexecuted instantiation: p_rsa_asn1.c:constant_time_declassify_int
Unexecuted instantiation: p_x25519_asn1.c:constant_time_declassify_int
Unexecuted instantiation: pbkdf.c:constant_time_declassify_int
Unexecuted instantiation: poly1305_vec.c:constant_time_declassify_int
Unexecuted instantiation: refcount.c:constant_time_declassify_int
Unexecuted instantiation: rsa_asn1.c:constant_time_declassify_int
Unexecuted instantiation: rsa_crypt.c:constant_time_declassify_int
Unexecuted instantiation: scrypt.c:constant_time_declassify_int
Unexecuted instantiation: siphash.c:constant_time_declassify_int
Unexecuted instantiation: stack.c:constant_time_declassify_int
Unexecuted instantiation: thread_pthread.c:constant_time_declassify_int
Unexecuted instantiation: tls_cbc.c:constant_time_declassify_int
Unexecuted instantiation: urandom.c:constant_time_declassify_int
Unexecuted instantiation: a_bitstr.c:constant_time_declassify_int
Unexecuted instantiation: a_object.c:constant_time_declassify_int
Unexecuted instantiation: asn1_compat.c:constant_time_declassify_int
Unexecuted instantiation: bio.c:constant_time_declassify_int
Unexecuted instantiation: blake2.c:constant_time_declassify_int
Unexecuted instantiation: chacha.c:constant_time_declassify_int
Unexecuted instantiation: des.c:constant_time_declassify_int
Unexecuted instantiation: ec_asn1.c:constant_time_declassify_int
Unexecuted instantiation: lhash.c:constant_time_declassify_int
Unexecuted instantiation: tasn_dec.c:constant_time_declassify_int
Unexecuted instantiation: tasn_enc.c:constant_time_declassify_int
Unexecuted instantiation: tasn_new.c:constant_time_declassify_int
Unexecuted instantiation: tasn_utl.c:constant_time_declassify_int
Unexecuted instantiation: pool.c:constant_time_declassify_int
Unexecuted instantiation: curve25519_64_adx.c:constant_time_declassify_int
Unexecuted instantiation: cpu_intel.c:constant_time_declassify_int
636
637
// declassify_assert behaves like |assert| but declassifies the result of
638
// evaluating |expr|. This allows the assertion to branch on the (presumably
639
// public) result, but still ensures that values leading up to the computation
640
// were secret.
641
1.30G
#define declassify_assert(expr) assert(constant_time_declassify_int(expr))
642
643
644
// Thread-safe initialisation.
645
646
#if !defined(OPENSSL_THREADS)
647
typedef uint32_t CRYPTO_once_t;
648
#define CRYPTO_ONCE_INIT 0
649
#elif defined(OPENSSL_WINDOWS_THREADS)
650
typedef INIT_ONCE CRYPTO_once_t;
651
#define CRYPTO_ONCE_INIT INIT_ONCE_STATIC_INIT
652
#elif defined(OPENSSL_PTHREADS)
653
typedef pthread_once_t CRYPTO_once_t;
654
#define CRYPTO_ONCE_INIT PTHREAD_ONCE_INIT
655
#else
656
#error "Unknown threading library"
657
#endif
658
659
// CRYPTO_once calls |init| exactly once per process. This is thread-safe: if
660
// concurrent threads call |CRYPTO_once| with the same |CRYPTO_once_t| argument
661
// then they will block until |init| completes, but |init| will have only been
662
// called once.
663
//
664
// The |once| argument must be a |CRYPTO_once_t| that has been initialised with
665
// the value |CRYPTO_ONCE_INIT|.
666
OPENSSL_EXPORT void CRYPTO_once(CRYPTO_once_t *once, void (*init)(void));
667
668
669
// Atomics.
670
//
671
// The following functions provide an API analogous to <stdatomic.h> from C11
672
// and abstract between a few variations on atomics we need to support.
673
674
#if defined(__cplusplus)
675
676
// In C++, we can't easily detect whether C will use |OPENSSL_C11_ATOMIC| or
677
// |OPENSSL_WINDOWS_ATOMIC|. Instead, we define a layout-compatible type without
678
// the corresponding functions. When we can rely on C11 atomics in MSVC, that
679
// will no longer be a concern.
680
typedef uint32_t CRYPTO_atomic_u32;
681
682
#elif defined(OPENSSL_C11_ATOMIC)
683
684
typedef _Atomic uint32_t CRYPTO_atomic_u32;
685
686
// This should be const, but the |OPENSSL_WINDOWS_ATOMIC| implementation is not
687
// const due to Windows limitations. When we can rely on C11 atomics, make this
688
// const-correct.
689
9.31k
OPENSSL_INLINE uint32_t CRYPTO_atomic_load_u32(CRYPTO_atomic_u32 *val) {
690
9.31k
  return atomic_load(val);
691
9.31k
}
Unexecuted instantiation: a_int.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: asn1_lib.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: bcm.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: cbb.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: cbs.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: convert.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: crypto.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: curve25519.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: digest_extra.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: dsa.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: dsa_asn1.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: e_des.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: e_rc2.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: e_rc4.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: e_tls.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: ecdh_extra.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: engine.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: err.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: evp.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: evp_ctx.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: ex_data.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: file.c:CRYPTO_atomic_load_u32
fork_detect.c:CRYPTO_atomic_load_u32
Line
Count
Source
689
4.28k
OPENSSL_INLINE uint32_t CRYPTO_atomic_load_u32(CRYPTO_atomic_u32 *val) {
690
4.28k
  return atomic_load(val);
691
4.28k
}
forkunsafe.c:CRYPTO_atomic_load_u32
Line
Count
Source
689
4.28k
OPENSSL_INLINE uint32_t CRYPTO_atomic_load_u32(CRYPTO_atomic_u32 *val) {
690
4.28k
  return atomic_load(val);
691
4.28k
}
Unexecuted instantiation: md4.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: md5.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: mem.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: obj.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: p_ec.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: p_hkdf.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: p_rsa.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: pbkdf.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: poly1305_vec.c:CRYPTO_atomic_load_u32
refcount.c:CRYPTO_atomic_load_u32
Line
Count
Source
689
736
OPENSSL_INLINE uint32_t CRYPTO_atomic_load_u32(CRYPTO_atomic_u32 *val) {
690
736
  return atomic_load(val);
691
736
}
Unexecuted instantiation: rsa_asn1.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: rsa_crypt.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: scrypt.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: siphash.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: stack.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: thread_pthread.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: tls_cbc.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: urandom.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: a_bitstr.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: a_object.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: asn1_compat.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: bio.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: blake2.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: chacha.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: des.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: ec_asn1.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: lhash.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: tasn_dec.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: tasn_enc.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: tasn_new.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: tasn_utl.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: pool.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_atomic_load_u32
Unexecuted instantiation: cpu_intel.c:CRYPTO_atomic_load_u32
692
693
OPENSSL_INLINE int CRYPTO_atomic_compare_exchange_weak_u32(
694
736
    CRYPTO_atomic_u32 *val, uint32_t *expected, uint32_t desired) {
695
736
  return atomic_compare_exchange_weak(val, expected, desired);
696
736
}
Unexecuted instantiation: a_int.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: asn1_lib.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: bcm.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: cbb.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: cbs.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: convert.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: crypto.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: curve25519.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: digest_extra.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: dsa.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: dsa_asn1.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: e_des.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: e_rc2.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: e_rc4.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: e_tls.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: ecdh_extra.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: engine.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: err.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: evp.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: evp_ctx.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: ex_data.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: file.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: fork_detect.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: forkunsafe.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: md4.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: md5.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: mem.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: obj.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: p_ec.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: p_hkdf.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: p_rsa.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: pbkdf.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: poly1305_vec.c:CRYPTO_atomic_compare_exchange_weak_u32
refcount.c:CRYPTO_atomic_compare_exchange_weak_u32
Line
Count
Source
694
736
    CRYPTO_atomic_u32 *val, uint32_t *expected, uint32_t desired) {
695
736
  return atomic_compare_exchange_weak(val, expected, desired);
696
736
}
Unexecuted instantiation: rsa_asn1.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: rsa_crypt.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: scrypt.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: siphash.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: stack.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: thread_pthread.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: tls_cbc.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: urandom.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: a_bitstr.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: a_object.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: asn1_compat.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: bio.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: blake2.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: chacha.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: des.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: ec_asn1.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: lhash.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: tasn_dec.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: tasn_enc.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: tasn_new.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: tasn_utl.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: pool.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_atomic_compare_exchange_weak_u32
Unexecuted instantiation: cpu_intel.c:CRYPTO_atomic_compare_exchange_weak_u32
697
698
OPENSSL_INLINE void CRYPTO_atomic_store_u32(CRYPTO_atomic_u32 *val,
699
2
                                            uint32_t desired) {
700
2
  atomic_store(val, desired);
701
2
}
Unexecuted instantiation: a_int.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: asn1_lib.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: bcm.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: cbb.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: cbs.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: convert.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: crypto.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: curve25519.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: digest_extra.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: dsa.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: dsa_asn1.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: e_des.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: e_rc2.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: e_rc4.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: e_tls.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: ecdh_extra.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: engine.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: err.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: evp.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: evp_ctx.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: ex_data.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: file.c:CRYPTO_atomic_store_u32
fork_detect.c:CRYPTO_atomic_store_u32
Line
Count
Source
699
2
                                            uint32_t desired) {
700
2
  atomic_store(val, desired);
701
2
}
Unexecuted instantiation: forkunsafe.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: md4.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: md5.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: mem.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: obj.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: p_ec.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: p_hkdf.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: p_rsa.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: pbkdf.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: poly1305_vec.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: refcount.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: rsa_asn1.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: rsa_crypt.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: scrypt.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: siphash.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: stack.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: thread_pthread.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: tls_cbc.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: urandom.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: a_bitstr.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: a_object.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: asn1_compat.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: bio.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: blake2.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: chacha.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: des.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: ec_asn1.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: lhash.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: tasn_dec.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: tasn_enc.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: tasn_new.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: tasn_utl.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: pool.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_atomic_store_u32
Unexecuted instantiation: cpu_intel.c:CRYPTO_atomic_store_u32
702
703
#elif defined(OPENSSL_WINDOWS_ATOMIC)
704
705
typedef LONG CRYPTO_atomic_u32;
706
707
OPENSSL_INLINE uint32_t CRYPTO_atomic_load_u32(volatile CRYPTO_atomic_u32 *val) {
708
  // This is not ideal because it still writes to a cacheline. MSVC is not able
709
  // to optimize this to a true atomic read, and Windows does not provide an
710
  // InterlockedLoad function.
711
  //
712
  // The Windows documentation [1] does say "Simple reads and writes to
713
  // properly-aligned 32-bit variables are atomic operations", but this is not
714
  // phrased in terms of the C11 and C++11 memory models, and indeed a read or
715
  // write seems to produce slightly different code on MSVC than a sequentially
716
  // consistent std::atomic::load in C++. Moreover, it is unclear if non-MSVC
717
  // compilers on Windows provide the same guarantees. Thus we avoid relying on
718
  // this and instead still use an interlocked function. This is still
719
  // preferable a global mutex, and eventually this code will be replaced by
720
  // [2]. Additionally, on clang-cl, we'll use the |OPENSSL_C11_ATOMIC| path.
721
  //
722
  // [1] https://learn.microsoft.com/en-us/windows/win32/sync/interlocked-variable-access
723
  // [2] https://devblogs.microsoft.com/cppblog/c11-atomics-in-visual-studio-2022-version-17-5-preview-2/
724
  return (uint32_t)InterlockedCompareExchange(val, 0, 0);
725
}
726
727
OPENSSL_INLINE int CRYPTO_atomic_compare_exchange_weak_u32(
728
    volatile CRYPTO_atomic_u32 *val, uint32_t *expected32, uint32_t desired) {
729
  LONG expected = (LONG)*expected32;
730
  LONG actual = InterlockedCompareExchange(val, (LONG)desired, expected);
731
  *expected32 = (uint32_t)actual;
732
  return actual == expected;
733
}
734
735
OPENSSL_INLINE void CRYPTO_atomic_store_u32(volatile CRYPTO_atomic_u32 *val,
736
                                            uint32_t desired) {
737
  InterlockedExchange(val, (LONG)desired);
738
}
739
740
#elif !defined(OPENSSL_THREADS)
741
742
typedef uint32_t CRYPTO_atomic_u32;
743
744
OPENSSL_INLINE uint32_t CRYPTO_atomic_load_u32(CRYPTO_atomic_u32 *val) {
745
  return *val;
746
}
747
748
OPENSSL_INLINE int CRYPTO_atomic_compare_exchange_weak_u32(
749
    CRYPTO_atomic_u32 *val, uint32_t *expected, uint32_t desired) {
750
  if (*val != *expected) {
751
    *expected = *val;
752
    return 0;
753
  }
754
  *val = desired;
755
  return 1;
756
}
757
758
OPENSSL_INLINE void CRYPTO_atomic_store_u32(CRYPTO_atomic_u32 *val,
759
                                            uint32_t desired) {
760
  *val = desired;
761
}
762
763
#else
764
765
// Require some atomics implementation. Contact BoringSSL maintainers if you
766
// have a platform with fails this check.
767
#error "Thread-compatible configurations require atomics"
768
769
#endif
770
771
// See the comment in the |__cplusplus| section above.
772
static_assert(sizeof(CRYPTO_atomic_u32) == sizeof(uint32_t),
773
              "CRYPTO_atomic_u32 does not match uint32_t size");
774
static_assert(alignof(CRYPTO_atomic_u32) == alignof(uint32_t),
775
              "CRYPTO_atomic_u32 does not match uint32_t alignment");
776
777
778
// Reference counting.
779
780
// CRYPTO_REFCOUNT_MAX is the value at which the reference count saturates.
781
736
#define CRYPTO_REFCOUNT_MAX 0xffffffff
782
783
// CRYPTO_refcount_inc atomically increments the value at |*count| unless the
784
// value would overflow. It's safe for multiple threads to concurrently call
785
// this or |CRYPTO_refcount_dec_and_test_zero| on the same
786
// |CRYPTO_refcount_t|.
787
OPENSSL_EXPORT void CRYPTO_refcount_inc(CRYPTO_refcount_t *count);
788
789
// CRYPTO_refcount_dec_and_test_zero tests the value at |*count|:
790
//   if it's zero, it crashes the address space.
791
//   if it's the maximum value, it returns zero.
792
//   otherwise, it atomically decrements it and returns one iff the resulting
793
//       value is zero.
794
//
795
// It's safe for multiple threads to concurrently call this or
796
// |CRYPTO_refcount_inc| on the same |CRYPTO_refcount_t|.
797
OPENSSL_EXPORT int CRYPTO_refcount_dec_and_test_zero(CRYPTO_refcount_t *count);
798
799
800
// Locks.
801
802
#if !defined(OPENSSL_THREADS)
803
typedef struct crypto_mutex_st {
804
  char padding;  // Empty structs have different sizes in C and C++.
805
} CRYPTO_MUTEX;
806
#define CRYPTO_MUTEX_INIT { 0 }
807
#elif defined(OPENSSL_WINDOWS_THREADS)
808
typedef SRWLOCK CRYPTO_MUTEX;
809
#define CRYPTO_MUTEX_INIT SRWLOCK_INIT
810
#elif defined(OPENSSL_PTHREADS)
811
typedef pthread_rwlock_t CRYPTO_MUTEX;
812
#define CRYPTO_MUTEX_INIT PTHREAD_RWLOCK_INITIALIZER
813
#else
814
#error "Unknown threading library"
815
#endif
816
817
// CRYPTO_MUTEX_init initialises |lock|. If |lock| is a static variable, use a
818
// |CRYPTO_MUTEX_INIT|.
819
OPENSSL_EXPORT void CRYPTO_MUTEX_init(CRYPTO_MUTEX *lock);
820
821
// CRYPTO_MUTEX_lock_read locks |lock| such that other threads may also have a
822
// read lock, but none may have a write lock.
823
OPENSSL_EXPORT void CRYPTO_MUTEX_lock_read(CRYPTO_MUTEX *lock);
824
825
// CRYPTO_MUTEX_lock_write locks |lock| such that no other thread has any type
826
// of lock on it.
827
OPENSSL_EXPORT void CRYPTO_MUTEX_lock_write(CRYPTO_MUTEX *lock);
828
829
// CRYPTO_MUTEX_unlock_read unlocks |lock| for reading.
830
OPENSSL_EXPORT void CRYPTO_MUTEX_unlock_read(CRYPTO_MUTEX *lock);
831
832
// CRYPTO_MUTEX_unlock_write unlocks |lock| for writing.
833
OPENSSL_EXPORT void CRYPTO_MUTEX_unlock_write(CRYPTO_MUTEX *lock);
834
835
// CRYPTO_MUTEX_cleanup releases all resources held by |lock|.
836
OPENSSL_EXPORT void CRYPTO_MUTEX_cleanup(CRYPTO_MUTEX *lock);
837
838
#if defined(__cplusplus)
839
extern "C++" {
840
841
BSSL_NAMESPACE_BEGIN
842
843
namespace internal {
844
845
// MutexLockBase is a RAII helper for CRYPTO_MUTEX locking.
846
template <void (*LockFunc)(CRYPTO_MUTEX *), void (*ReleaseFunc)(CRYPTO_MUTEX *)>
847
class MutexLockBase {
848
 public:
849
  explicit MutexLockBase(CRYPTO_MUTEX *mu) : mu_(mu) {
850
    assert(mu_ != nullptr);
851
    LockFunc(mu_);
852
  }
853
  ~MutexLockBase() { ReleaseFunc(mu_); }
854
  MutexLockBase(const MutexLockBase<LockFunc, ReleaseFunc> &) = delete;
855
  MutexLockBase &operator=(const MutexLockBase<LockFunc, ReleaseFunc> &) =
856
      delete;
857
858
 private:
859
  CRYPTO_MUTEX *const mu_;
860
};
861
862
}  // namespace internal
863
864
using MutexWriteLock =
865
    internal::MutexLockBase<CRYPTO_MUTEX_lock_write, CRYPTO_MUTEX_unlock_write>;
866
using MutexReadLock =
867
    internal::MutexLockBase<CRYPTO_MUTEX_lock_read, CRYPTO_MUTEX_unlock_read>;
868
869
BSSL_NAMESPACE_END
870
871
}  // extern "C++"
872
#endif  // defined(__cplusplus)
873
874
875
// Thread local storage.
876
877
// thread_local_data_t enumerates the types of thread-local data that can be
878
// stored.
879
typedef enum {
880
  OPENSSL_THREAD_LOCAL_ERR = 0,
881
  OPENSSL_THREAD_LOCAL_RAND,
882
  OPENSSL_THREAD_LOCAL_FIPS_COUNTERS,
883
  OPENSSL_THREAD_LOCAL_FIPS_SERVICE_INDICATOR_STATE,
884
  OPENSSL_THREAD_LOCAL_TEST,
885
  NUM_OPENSSL_THREAD_LOCALS,
886
} thread_local_data_t;
887
888
// thread_local_destructor_t is the type of a destructor function that will be
889
// called when a thread exits and its thread-local storage needs to be freed.
890
typedef void (*thread_local_destructor_t)(void *);
891
892
// CRYPTO_get_thread_local gets the pointer value that is stored for the
893
// current thread for the given index, or NULL if none has been set.
894
OPENSSL_EXPORT void *CRYPTO_get_thread_local(thread_local_data_t value);
895
896
// CRYPTO_set_thread_local sets a pointer value for the current thread at the
897
// given index. This function should only be called once per thread for a given
898
// |index|: rather than update the pointer value itself, update the data that
899
// is pointed to.
900
//
901
// The destructor function will be called when a thread exits to free this
902
// thread-local data. All calls to |CRYPTO_set_thread_local| with the same
903
// |index| should have the same |destructor| argument. The destructor may be
904
// called with a NULL argument if a thread that never set a thread-local
905
// pointer for |index|, exits. The destructor may be called concurrently with
906
// different arguments.
907
//
908
// This function returns one on success or zero on error. If it returns zero
909
// then |destructor| has been called with |value| already.
910
OPENSSL_EXPORT int CRYPTO_set_thread_local(
911
    thread_local_data_t index, void *value,
912
    thread_local_destructor_t destructor);
913
914
915
// ex_data
916
917
typedef struct crypto_ex_data_func_st CRYPTO_EX_DATA_FUNCS;
918
919
// CRYPTO_EX_DATA_CLASS tracks the ex_indices registered for a type which
920
// supports ex_data. It should defined as a static global within the module
921
// which defines that type.
922
typedef struct {
923
  CRYPTO_MUTEX lock;
924
  // funcs is a linked list of |CRYPTO_EX_DATA_FUNCS| structures. It may be
925
  // traversed without serialization only up to |num_funcs|. last points to the
926
  // final entry of |funcs|, or NULL if empty.
927
  CRYPTO_EX_DATA_FUNCS *funcs, *last;
928
  // num_funcs is the number of entries in |funcs|.
929
  CRYPTO_atomic_u32 num_funcs;
930
  // num_reserved is one if the ex_data index zero is reserved for legacy
931
  // |TYPE_get_app_data| functions.
932
  uint8_t num_reserved;
933
} CRYPTO_EX_DATA_CLASS;
934
935
#define CRYPTO_EX_DATA_CLASS_INIT {CRYPTO_MUTEX_INIT, NULL, NULL, 0, 0}
936
#define CRYPTO_EX_DATA_CLASS_INIT_WITH_APP_DATA \
937
    {CRYPTO_MUTEX_INIT, NULL, NULL, 0, 1}
938
939
// CRYPTO_get_ex_new_index_ex allocates a new index for |ex_data_class|. Each
940
// class of object should provide a wrapper function that uses the correct
941
// |CRYPTO_EX_DATA_CLASS|. It returns the new index on success and -1 on error.
942
OPENSSL_EXPORT int CRYPTO_get_ex_new_index_ex(
943
    CRYPTO_EX_DATA_CLASS *ex_data_class, long argl, void *argp,
944
    CRYPTO_EX_free *free_func);
945
946
// CRYPTO_set_ex_data sets an extra data pointer on a given object. Each class
947
// of object should provide a wrapper function.
948
OPENSSL_EXPORT int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int index, void *val);
949
950
// CRYPTO_get_ex_data returns an extra data pointer for a given object, or NULL
951
// if no such index exists. Each class of object should provide a wrapper
952
// function.
953
OPENSSL_EXPORT void *CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int index);
954
955
// CRYPTO_new_ex_data initialises a newly allocated |CRYPTO_EX_DATA|.
956
OPENSSL_EXPORT void CRYPTO_new_ex_data(CRYPTO_EX_DATA *ad);
957
958
// CRYPTO_free_ex_data frees |ad|, which is embedded inside |obj|, which is an
959
// object of the given class.
960
OPENSSL_EXPORT void CRYPTO_free_ex_data(CRYPTO_EX_DATA_CLASS *ex_data_class,
961
                                        void *obj, CRYPTO_EX_DATA *ad);
962
963
964
// Endianness conversions.
965
966
#if defined(__GNUC__) && __GNUC__ >= 2
967
0
static inline uint16_t CRYPTO_bswap2(uint16_t x) {
968
0
  return __builtin_bswap16(x);
969
0
}
Unexecuted instantiation: a_int.c:CRYPTO_bswap2
Unexecuted instantiation: asn1_lib.c:CRYPTO_bswap2
Unexecuted instantiation: bcm.c:CRYPTO_bswap2
Unexecuted instantiation: cbb.c:CRYPTO_bswap2
Unexecuted instantiation: cbs.c:CRYPTO_bswap2
Unexecuted instantiation: convert.c:CRYPTO_bswap2
Unexecuted instantiation: crypto.c:CRYPTO_bswap2
Unexecuted instantiation: curve25519.c:CRYPTO_bswap2
Unexecuted instantiation: digest_extra.c:CRYPTO_bswap2
Unexecuted instantiation: dsa.c:CRYPTO_bswap2
Unexecuted instantiation: dsa_asn1.c:CRYPTO_bswap2
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_bswap2
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_bswap2
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_bswap2
Unexecuted instantiation: e_des.c:CRYPTO_bswap2
Unexecuted instantiation: e_rc2.c:CRYPTO_bswap2
Unexecuted instantiation: e_rc4.c:CRYPTO_bswap2
Unexecuted instantiation: e_tls.c:CRYPTO_bswap2
Unexecuted instantiation: ecdh_extra.c:CRYPTO_bswap2
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_bswap2
Unexecuted instantiation: engine.c:CRYPTO_bswap2
Unexecuted instantiation: err.c:CRYPTO_bswap2
Unexecuted instantiation: evp.c:CRYPTO_bswap2
Unexecuted instantiation: evp_ctx.c:CRYPTO_bswap2
Unexecuted instantiation: ex_data.c:CRYPTO_bswap2
Unexecuted instantiation: file.c:CRYPTO_bswap2
Unexecuted instantiation: fork_detect.c:CRYPTO_bswap2
Unexecuted instantiation: forkunsafe.c:CRYPTO_bswap2
Unexecuted instantiation: md4.c:CRYPTO_bswap2
Unexecuted instantiation: md5.c:CRYPTO_bswap2
Unexecuted instantiation: mem.c:CRYPTO_bswap2
Unexecuted instantiation: obj.c:CRYPTO_bswap2
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_bswap2
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_bswap2
Unexecuted instantiation: p_ec.c:CRYPTO_bswap2
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_bswap2
Unexecuted instantiation: p_hkdf.c:CRYPTO_bswap2
Unexecuted instantiation: p_rsa.c:CRYPTO_bswap2
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_bswap2
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_bswap2
Unexecuted instantiation: pbkdf.c:CRYPTO_bswap2
Unexecuted instantiation: poly1305_vec.c:CRYPTO_bswap2
Unexecuted instantiation: refcount.c:CRYPTO_bswap2
Unexecuted instantiation: rsa_asn1.c:CRYPTO_bswap2
Unexecuted instantiation: rsa_crypt.c:CRYPTO_bswap2
Unexecuted instantiation: scrypt.c:CRYPTO_bswap2
Unexecuted instantiation: siphash.c:CRYPTO_bswap2
Unexecuted instantiation: stack.c:CRYPTO_bswap2
Unexecuted instantiation: thread_pthread.c:CRYPTO_bswap2
Unexecuted instantiation: tls_cbc.c:CRYPTO_bswap2
Unexecuted instantiation: urandom.c:CRYPTO_bswap2
Unexecuted instantiation: a_bitstr.c:CRYPTO_bswap2
Unexecuted instantiation: a_object.c:CRYPTO_bswap2
Unexecuted instantiation: asn1_compat.c:CRYPTO_bswap2
Unexecuted instantiation: bio.c:CRYPTO_bswap2
Unexecuted instantiation: blake2.c:CRYPTO_bswap2
Unexecuted instantiation: chacha.c:CRYPTO_bswap2
Unexecuted instantiation: des.c:CRYPTO_bswap2
Unexecuted instantiation: ec_asn1.c:CRYPTO_bswap2
Unexecuted instantiation: lhash.c:CRYPTO_bswap2
Unexecuted instantiation: tasn_dec.c:CRYPTO_bswap2
Unexecuted instantiation: tasn_enc.c:CRYPTO_bswap2
Unexecuted instantiation: tasn_new.c:CRYPTO_bswap2
Unexecuted instantiation: tasn_utl.c:CRYPTO_bswap2
Unexecuted instantiation: pool.c:CRYPTO_bswap2
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_bswap2
Unexecuted instantiation: cpu_intel.c:CRYPTO_bswap2
970
971
10.8M
static inline uint32_t CRYPTO_bswap4(uint32_t x) {
972
10.8M
  return __builtin_bswap32(x);
973
10.8M
}
Unexecuted instantiation: a_int.c:CRYPTO_bswap4
Unexecuted instantiation: asn1_lib.c:CRYPTO_bswap4
bcm.c:CRYPTO_bswap4
Line
Count
Source
971
10.8M
static inline uint32_t CRYPTO_bswap4(uint32_t x) {
972
10.8M
  return __builtin_bswap32(x);
973
10.8M
}
Unexecuted instantiation: cbb.c:CRYPTO_bswap4
Unexecuted instantiation: cbs.c:CRYPTO_bswap4
Unexecuted instantiation: convert.c:CRYPTO_bswap4
Unexecuted instantiation: crypto.c:CRYPTO_bswap4
Unexecuted instantiation: curve25519.c:CRYPTO_bswap4
Unexecuted instantiation: digest_extra.c:CRYPTO_bswap4
Unexecuted instantiation: dsa.c:CRYPTO_bswap4
Unexecuted instantiation: dsa_asn1.c:CRYPTO_bswap4
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_bswap4
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_bswap4
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_bswap4
Unexecuted instantiation: e_des.c:CRYPTO_bswap4
Unexecuted instantiation: e_rc2.c:CRYPTO_bswap4
Unexecuted instantiation: e_rc4.c:CRYPTO_bswap4
Unexecuted instantiation: e_tls.c:CRYPTO_bswap4
Unexecuted instantiation: ecdh_extra.c:CRYPTO_bswap4
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_bswap4
Unexecuted instantiation: engine.c:CRYPTO_bswap4
Unexecuted instantiation: err.c:CRYPTO_bswap4
Unexecuted instantiation: evp.c:CRYPTO_bswap4
Unexecuted instantiation: evp_ctx.c:CRYPTO_bswap4
Unexecuted instantiation: ex_data.c:CRYPTO_bswap4
Unexecuted instantiation: file.c:CRYPTO_bswap4
Unexecuted instantiation: fork_detect.c:CRYPTO_bswap4
Unexecuted instantiation: forkunsafe.c:CRYPTO_bswap4
Unexecuted instantiation: md4.c:CRYPTO_bswap4
Unexecuted instantiation: md5.c:CRYPTO_bswap4
Unexecuted instantiation: mem.c:CRYPTO_bswap4
Unexecuted instantiation: obj.c:CRYPTO_bswap4
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_bswap4
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_bswap4
Unexecuted instantiation: p_ec.c:CRYPTO_bswap4
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_bswap4
Unexecuted instantiation: p_hkdf.c:CRYPTO_bswap4
Unexecuted instantiation: p_rsa.c:CRYPTO_bswap4
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_bswap4
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_bswap4
Unexecuted instantiation: pbkdf.c:CRYPTO_bswap4
Unexecuted instantiation: poly1305_vec.c:CRYPTO_bswap4
Unexecuted instantiation: refcount.c:CRYPTO_bswap4
Unexecuted instantiation: rsa_asn1.c:CRYPTO_bswap4
Unexecuted instantiation: rsa_crypt.c:CRYPTO_bswap4
Unexecuted instantiation: scrypt.c:CRYPTO_bswap4
Unexecuted instantiation: siphash.c:CRYPTO_bswap4
Unexecuted instantiation: stack.c:CRYPTO_bswap4
Unexecuted instantiation: thread_pthread.c:CRYPTO_bswap4
Unexecuted instantiation: tls_cbc.c:CRYPTO_bswap4
Unexecuted instantiation: urandom.c:CRYPTO_bswap4
Unexecuted instantiation: a_bitstr.c:CRYPTO_bswap4
Unexecuted instantiation: a_object.c:CRYPTO_bswap4
Unexecuted instantiation: asn1_compat.c:CRYPTO_bswap4
Unexecuted instantiation: bio.c:CRYPTO_bswap4
Unexecuted instantiation: blake2.c:CRYPTO_bswap4
Unexecuted instantiation: chacha.c:CRYPTO_bswap4
Unexecuted instantiation: des.c:CRYPTO_bswap4
Unexecuted instantiation: ec_asn1.c:CRYPTO_bswap4
Unexecuted instantiation: lhash.c:CRYPTO_bswap4
Unexecuted instantiation: tasn_dec.c:CRYPTO_bswap4
Unexecuted instantiation: tasn_enc.c:CRYPTO_bswap4
Unexecuted instantiation: tasn_new.c:CRYPTO_bswap4
Unexecuted instantiation: tasn_utl.c:CRYPTO_bswap4
Unexecuted instantiation: pool.c:CRYPTO_bswap4
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_bswap4
Unexecuted instantiation: cpu_intel.c:CRYPTO_bswap4
974
975
2.45M
static inline uint64_t CRYPTO_bswap8(uint64_t x) {
976
2.45M
  return __builtin_bswap64(x);
977
2.45M
}
Unexecuted instantiation: a_int.c:CRYPTO_bswap8
Unexecuted instantiation: asn1_lib.c:CRYPTO_bswap8
bcm.c:CRYPTO_bswap8
Line
Count
Source
975
2.45M
static inline uint64_t CRYPTO_bswap8(uint64_t x) {
976
2.45M
  return __builtin_bswap64(x);
977
2.45M
}
Unexecuted instantiation: cbb.c:CRYPTO_bswap8
Unexecuted instantiation: cbs.c:CRYPTO_bswap8
Unexecuted instantiation: convert.c:CRYPTO_bswap8
Unexecuted instantiation: crypto.c:CRYPTO_bswap8
Unexecuted instantiation: curve25519.c:CRYPTO_bswap8
Unexecuted instantiation: digest_extra.c:CRYPTO_bswap8
Unexecuted instantiation: dsa.c:CRYPTO_bswap8
Unexecuted instantiation: dsa_asn1.c:CRYPTO_bswap8
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_bswap8
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_bswap8
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_bswap8
Unexecuted instantiation: e_des.c:CRYPTO_bswap8
Unexecuted instantiation: e_rc2.c:CRYPTO_bswap8
Unexecuted instantiation: e_rc4.c:CRYPTO_bswap8
Unexecuted instantiation: e_tls.c:CRYPTO_bswap8
Unexecuted instantiation: ecdh_extra.c:CRYPTO_bswap8
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_bswap8
Unexecuted instantiation: engine.c:CRYPTO_bswap8
Unexecuted instantiation: err.c:CRYPTO_bswap8
Unexecuted instantiation: evp.c:CRYPTO_bswap8
Unexecuted instantiation: evp_ctx.c:CRYPTO_bswap8
Unexecuted instantiation: ex_data.c:CRYPTO_bswap8
Unexecuted instantiation: file.c:CRYPTO_bswap8
Unexecuted instantiation: fork_detect.c:CRYPTO_bswap8
Unexecuted instantiation: forkunsafe.c:CRYPTO_bswap8
Unexecuted instantiation: md4.c:CRYPTO_bswap8
Unexecuted instantiation: md5.c:CRYPTO_bswap8
Unexecuted instantiation: mem.c:CRYPTO_bswap8
Unexecuted instantiation: obj.c:CRYPTO_bswap8
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_bswap8
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_bswap8
Unexecuted instantiation: p_ec.c:CRYPTO_bswap8
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_bswap8
Unexecuted instantiation: p_hkdf.c:CRYPTO_bswap8
Unexecuted instantiation: p_rsa.c:CRYPTO_bswap8
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_bswap8
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_bswap8
Unexecuted instantiation: pbkdf.c:CRYPTO_bswap8
Unexecuted instantiation: poly1305_vec.c:CRYPTO_bswap8
Unexecuted instantiation: refcount.c:CRYPTO_bswap8
Unexecuted instantiation: rsa_asn1.c:CRYPTO_bswap8
Unexecuted instantiation: rsa_crypt.c:CRYPTO_bswap8
Unexecuted instantiation: scrypt.c:CRYPTO_bswap8
Unexecuted instantiation: siphash.c:CRYPTO_bswap8
Unexecuted instantiation: stack.c:CRYPTO_bswap8
Unexecuted instantiation: thread_pthread.c:CRYPTO_bswap8
Unexecuted instantiation: tls_cbc.c:CRYPTO_bswap8
Unexecuted instantiation: urandom.c:CRYPTO_bswap8
Unexecuted instantiation: a_bitstr.c:CRYPTO_bswap8
Unexecuted instantiation: a_object.c:CRYPTO_bswap8
Unexecuted instantiation: asn1_compat.c:CRYPTO_bswap8
Unexecuted instantiation: bio.c:CRYPTO_bswap8
Unexecuted instantiation: blake2.c:CRYPTO_bswap8
Unexecuted instantiation: chacha.c:CRYPTO_bswap8
Unexecuted instantiation: des.c:CRYPTO_bswap8
Unexecuted instantiation: ec_asn1.c:CRYPTO_bswap8
Unexecuted instantiation: lhash.c:CRYPTO_bswap8
Unexecuted instantiation: tasn_dec.c:CRYPTO_bswap8
Unexecuted instantiation: tasn_enc.c:CRYPTO_bswap8
Unexecuted instantiation: tasn_new.c:CRYPTO_bswap8
Unexecuted instantiation: tasn_utl.c:CRYPTO_bswap8
Unexecuted instantiation: pool.c:CRYPTO_bswap8
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_bswap8
Unexecuted instantiation: cpu_intel.c:CRYPTO_bswap8
978
#elif defined(_MSC_VER)
979
OPENSSL_MSVC_PRAGMA(warning(push, 3))
980
#include <stdlib.h>
981
OPENSSL_MSVC_PRAGMA(warning(pop))
982
#pragma intrinsic(_byteswap_uint64, _byteswap_ulong, _byteswap_ushort)
983
static inline uint16_t CRYPTO_bswap2(uint16_t x) {
984
  return _byteswap_ushort(x);
985
}
986
987
static inline uint32_t CRYPTO_bswap4(uint32_t x) {
988
  return _byteswap_ulong(x);
989
}
990
991
static inline uint64_t CRYPTO_bswap8(uint64_t x) {
992
  return _byteswap_uint64(x);
993
}
994
#else
995
static inline uint16_t CRYPTO_bswap2(uint16_t x) {
996
  return (x >> 8) | (x << 8);
997
}
998
999
static inline uint32_t CRYPTO_bswap4(uint32_t x) {
1000
  x = (x >> 16) | (x << 16);
1001
  x = ((x & 0xff00ff00) >> 8) | ((x & 0x00ff00ff) << 8);
1002
  return x;
1003
}
1004
1005
static inline uint64_t CRYPTO_bswap8(uint64_t x) {
1006
  return CRYPTO_bswap4(x >> 32) | (((uint64_t)CRYPTO_bswap4(x)) << 32);
1007
}
1008
#endif
1009
1010
1011
// Language bug workarounds.
1012
//
1013
// Most C standard library functions are undefined if passed NULL, even when the
1014
// corresponding length is zero. This gives them (and, in turn, all functions
1015
// which call them) surprising behavior on empty arrays. Some compilers will
1016
// miscompile code due to this rule. See also
1017
// https://www.imperialviolet.org/2016/06/26/nonnull.html
1018
//
1019
// These wrapper functions behave the same as the corresponding C standard
1020
// functions, but behave as expected when passed NULL if the length is zero.
1021
//
1022
// Note |OPENSSL_memcmp| is a different function from |CRYPTO_memcmp|.
1023
1024
// C++ defines |memchr| as a const-correct overload.
1025
#if defined(__cplusplus)
1026
extern "C++" {
1027
1028
static inline const void *OPENSSL_memchr(const void *s, int c, size_t n) {
1029
  if (n == 0) {
1030
    return NULL;
1031
  }
1032
1033
  return memchr(s, c, n);
1034
}
1035
1036
static inline void *OPENSSL_memchr(void *s, int c, size_t n) {
1037
  if (n == 0) {
1038
    return NULL;
1039
  }
1040
1041
  return memchr(s, c, n);
1042
}
1043
1044
}  // extern "C++"
1045
#else  // __cplusplus
1046
1047
0
static inline void *OPENSSL_memchr(const void *s, int c, size_t n) {
1048
0
  if (n == 0) {
1049
0
    return NULL;
1050
0
  }
1051
1052
0
  return memchr(s, c, n);
1053
0
}
Unexecuted instantiation: a_int.c:OPENSSL_memchr
Unexecuted instantiation: asn1_lib.c:OPENSSL_memchr
Unexecuted instantiation: bcm.c:OPENSSL_memchr
Unexecuted instantiation: cbb.c:OPENSSL_memchr
Unexecuted instantiation: cbs.c:OPENSSL_memchr
Unexecuted instantiation: convert.c:OPENSSL_memchr
Unexecuted instantiation: crypto.c:OPENSSL_memchr
Unexecuted instantiation: curve25519.c:OPENSSL_memchr
Unexecuted instantiation: digest_extra.c:OPENSSL_memchr
Unexecuted instantiation: dsa.c:OPENSSL_memchr
Unexecuted instantiation: dsa_asn1.c:OPENSSL_memchr
Unexecuted instantiation: e_aesctrhmac.c:OPENSSL_memchr
Unexecuted instantiation: e_aesgcmsiv.c:OPENSSL_memchr
Unexecuted instantiation: e_chacha20poly1305.c:OPENSSL_memchr
Unexecuted instantiation: e_des.c:OPENSSL_memchr
Unexecuted instantiation: e_rc2.c:OPENSSL_memchr
Unexecuted instantiation: e_rc4.c:OPENSSL_memchr
Unexecuted instantiation: e_tls.c:OPENSSL_memchr
Unexecuted instantiation: ecdh_extra.c:OPENSSL_memchr
Unexecuted instantiation: ecdsa_asn1.c:OPENSSL_memchr
Unexecuted instantiation: engine.c:OPENSSL_memchr
Unexecuted instantiation: err.c:OPENSSL_memchr
Unexecuted instantiation: evp.c:OPENSSL_memchr
Unexecuted instantiation: evp_ctx.c:OPENSSL_memchr
Unexecuted instantiation: ex_data.c:OPENSSL_memchr
Unexecuted instantiation: file.c:OPENSSL_memchr
Unexecuted instantiation: fork_detect.c:OPENSSL_memchr
Unexecuted instantiation: forkunsafe.c:OPENSSL_memchr
Unexecuted instantiation: md4.c:OPENSSL_memchr
Unexecuted instantiation: md5.c:OPENSSL_memchr
Unexecuted instantiation: mem.c:OPENSSL_memchr
Unexecuted instantiation: obj.c:OPENSSL_memchr
Unexecuted instantiation: p_dh_asn1.c:OPENSSL_memchr
Unexecuted instantiation: p_dsa_asn1.c:OPENSSL_memchr
Unexecuted instantiation: p_ec.c:OPENSSL_memchr
Unexecuted instantiation: p_ed25519_asn1.c:OPENSSL_memchr
Unexecuted instantiation: p_hkdf.c:OPENSSL_memchr
Unexecuted instantiation: p_rsa.c:OPENSSL_memchr
Unexecuted instantiation: p_rsa_asn1.c:OPENSSL_memchr
Unexecuted instantiation: p_x25519_asn1.c:OPENSSL_memchr
Unexecuted instantiation: pbkdf.c:OPENSSL_memchr
Unexecuted instantiation: poly1305_vec.c:OPENSSL_memchr
Unexecuted instantiation: refcount.c:OPENSSL_memchr
Unexecuted instantiation: rsa_asn1.c:OPENSSL_memchr
Unexecuted instantiation: rsa_crypt.c:OPENSSL_memchr
Unexecuted instantiation: scrypt.c:OPENSSL_memchr
Unexecuted instantiation: siphash.c:OPENSSL_memchr
Unexecuted instantiation: stack.c:OPENSSL_memchr
Unexecuted instantiation: thread_pthread.c:OPENSSL_memchr
Unexecuted instantiation: tls_cbc.c:OPENSSL_memchr
Unexecuted instantiation: urandom.c:OPENSSL_memchr
Unexecuted instantiation: a_bitstr.c:OPENSSL_memchr
Unexecuted instantiation: a_object.c:OPENSSL_memchr
Unexecuted instantiation: asn1_compat.c:OPENSSL_memchr
Unexecuted instantiation: bio.c:OPENSSL_memchr
Unexecuted instantiation: blake2.c:OPENSSL_memchr
Unexecuted instantiation: chacha.c:OPENSSL_memchr
Unexecuted instantiation: des.c:OPENSSL_memchr
Unexecuted instantiation: ec_asn1.c:OPENSSL_memchr
Unexecuted instantiation: lhash.c:OPENSSL_memchr
Unexecuted instantiation: tasn_dec.c:OPENSSL_memchr
Unexecuted instantiation: tasn_enc.c:OPENSSL_memchr
Unexecuted instantiation: tasn_new.c:OPENSSL_memchr
Unexecuted instantiation: tasn_utl.c:OPENSSL_memchr
Unexecuted instantiation: pool.c:OPENSSL_memchr
Unexecuted instantiation: curve25519_64_adx.c:OPENSSL_memchr
Unexecuted instantiation: cpu_intel.c:OPENSSL_memchr
1054
1055
#endif  // __cplusplus
1056
1057
70
static inline int OPENSSL_memcmp(const void *s1, const void *s2, size_t n) {
1058
70
  if (n == 0) {
1059
0
    return 0;
1060
0
  }
1061
1062
70
  return memcmp(s1, s2, n);
1063
70
}
Unexecuted instantiation: a_int.c:OPENSSL_memcmp
Unexecuted instantiation: asn1_lib.c:OPENSSL_memcmp
bcm.c:OPENSSL_memcmp
Line
Count
Source
1057
9
static inline int OPENSSL_memcmp(const void *s1, const void *s2, size_t n) {
1058
9
  if (n == 0) {
1059
0
    return 0;
1060
0
  }
1061
1062
9
  return memcmp(s1, s2, n);
1063
9
}
Unexecuted instantiation: cbb.c:OPENSSL_memcmp
Unexecuted instantiation: cbs.c:OPENSSL_memcmp
Unexecuted instantiation: convert.c:OPENSSL_memcmp
Unexecuted instantiation: crypto.c:OPENSSL_memcmp
Unexecuted instantiation: curve25519.c:OPENSSL_memcmp
Unexecuted instantiation: digest_extra.c:OPENSSL_memcmp
dsa.c:OPENSSL_memcmp
Line
Count
Source
1057
61
static inline int OPENSSL_memcmp(const void *s1, const void *s2, size_t n) {
1058
61
  if (n == 0) {
1059
0
    return 0;
1060
0
  }
1061
1062
61
  return memcmp(s1, s2, n);
1063
61
}
Unexecuted instantiation: dsa_asn1.c:OPENSSL_memcmp
Unexecuted instantiation: e_aesctrhmac.c:OPENSSL_memcmp
Unexecuted instantiation: e_aesgcmsiv.c:OPENSSL_memcmp
Unexecuted instantiation: e_chacha20poly1305.c:OPENSSL_memcmp
Unexecuted instantiation: e_des.c:OPENSSL_memcmp
Unexecuted instantiation: e_rc2.c:OPENSSL_memcmp
Unexecuted instantiation: e_rc4.c:OPENSSL_memcmp
Unexecuted instantiation: e_tls.c:OPENSSL_memcmp
Unexecuted instantiation: ecdh_extra.c:OPENSSL_memcmp
Unexecuted instantiation: ecdsa_asn1.c:OPENSSL_memcmp
Unexecuted instantiation: engine.c:OPENSSL_memcmp
Unexecuted instantiation: err.c:OPENSSL_memcmp
Unexecuted instantiation: evp.c:OPENSSL_memcmp
Unexecuted instantiation: evp_ctx.c:OPENSSL_memcmp
Unexecuted instantiation: ex_data.c:OPENSSL_memcmp
Unexecuted instantiation: file.c:OPENSSL_memcmp
Unexecuted instantiation: fork_detect.c:OPENSSL_memcmp
Unexecuted instantiation: forkunsafe.c:OPENSSL_memcmp
Unexecuted instantiation: md4.c:OPENSSL_memcmp
Unexecuted instantiation: md5.c:OPENSSL_memcmp
Unexecuted instantiation: mem.c:OPENSSL_memcmp
Unexecuted instantiation: obj.c:OPENSSL_memcmp
Unexecuted instantiation: p_dh_asn1.c:OPENSSL_memcmp
Unexecuted instantiation: p_dsa_asn1.c:OPENSSL_memcmp
Unexecuted instantiation: p_ec.c:OPENSSL_memcmp
Unexecuted instantiation: p_ed25519_asn1.c:OPENSSL_memcmp
Unexecuted instantiation: p_hkdf.c:OPENSSL_memcmp
Unexecuted instantiation: p_rsa.c:OPENSSL_memcmp
Unexecuted instantiation: p_rsa_asn1.c:OPENSSL_memcmp
Unexecuted instantiation: p_x25519_asn1.c:OPENSSL_memcmp
Unexecuted instantiation: pbkdf.c:OPENSSL_memcmp
Unexecuted instantiation: poly1305_vec.c:OPENSSL_memcmp
Unexecuted instantiation: refcount.c:OPENSSL_memcmp
Unexecuted instantiation: rsa_asn1.c:OPENSSL_memcmp
Unexecuted instantiation: rsa_crypt.c:OPENSSL_memcmp
Unexecuted instantiation: scrypt.c:OPENSSL_memcmp
Unexecuted instantiation: siphash.c:OPENSSL_memcmp
Unexecuted instantiation: stack.c:OPENSSL_memcmp
Unexecuted instantiation: thread_pthread.c:OPENSSL_memcmp
Unexecuted instantiation: tls_cbc.c:OPENSSL_memcmp
Unexecuted instantiation: urandom.c:OPENSSL_memcmp
Unexecuted instantiation: a_bitstr.c:OPENSSL_memcmp
Unexecuted instantiation: a_object.c:OPENSSL_memcmp
Unexecuted instantiation: asn1_compat.c:OPENSSL_memcmp
Unexecuted instantiation: bio.c:OPENSSL_memcmp
Unexecuted instantiation: blake2.c:OPENSSL_memcmp
Unexecuted instantiation: chacha.c:OPENSSL_memcmp
Unexecuted instantiation: des.c:OPENSSL_memcmp
Unexecuted instantiation: ec_asn1.c:OPENSSL_memcmp
Unexecuted instantiation: lhash.c:OPENSSL_memcmp
Unexecuted instantiation: tasn_dec.c:OPENSSL_memcmp
Unexecuted instantiation: tasn_enc.c:OPENSSL_memcmp
Unexecuted instantiation: tasn_new.c:OPENSSL_memcmp
Unexecuted instantiation: tasn_utl.c:OPENSSL_memcmp
Unexecuted instantiation: pool.c:OPENSSL_memcmp
Unexecuted instantiation: curve25519_64_adx.c:OPENSSL_memcmp
Unexecuted instantiation: cpu_intel.c:OPENSSL_memcmp
1064
1065
26.2M
static inline void *OPENSSL_memcpy(void *dst, const void *src, size_t n) {
1066
26.2M
  if (n == 0) {
1067
51.1k
    return dst;
1068
51.1k
  }
1069
1070
26.1M
  return memcpy(dst, src, n);
1071
26.2M
}
Unexecuted instantiation: a_int.c:OPENSSL_memcpy
Unexecuted instantiation: asn1_lib.c:OPENSSL_memcpy
bcm.c:OPENSSL_memcpy
Line
Count
Source
1065
14.0M
static inline void *OPENSSL_memcpy(void *dst, const void *src, size_t n) {
1066
14.0M
  if (n == 0) {
1067
48.8k
    return dst;
1068
48.8k
  }
1069
1070
13.9M
  return memcpy(dst, src, n);
1071
14.0M
}
Unexecuted instantiation: cbb.c:OPENSSL_memcpy
Unexecuted instantiation: cbs.c:OPENSSL_memcpy
Unexecuted instantiation: convert.c:OPENSSL_memcpy
Unexecuted instantiation: crypto.c:OPENSSL_memcpy
curve25519.c:OPENSSL_memcpy
Line
Count
Source
1065
1
static inline void *OPENSSL_memcpy(void *dst, const void *src, size_t n) {
1066
1
  if (n == 0) {
1067
0
    return dst;
1068
0
  }
1069
1070
1
  return memcpy(dst, src, n);
1071
1
}
Unexecuted instantiation: digest_extra.c:OPENSSL_memcpy
dsa.c:OPENSSL_memcpy
Line
Count
Source
1065
540
static inline void *OPENSSL_memcpy(void *dst, const void *src, size_t n) {
1066
540
  if (n == 0) {
1067
0
    return dst;
1068
0
  }
1069
1070
540
  return memcpy(dst, src, n);
1071
540
}
Unexecuted instantiation: dsa_asn1.c:OPENSSL_memcpy
e_aesctrhmac.c:OPENSSL_memcpy
Line
Count
Source
1065
1
static inline void *OPENSSL_memcpy(void *dst, const void *src, size_t n) {
1066
1
  if (n == 0) {
1067
0
    return dst;
1068
0
  }
1069
1070
1
  return memcpy(dst, src, n);
1071
1
}
Unexecuted instantiation: e_aesgcmsiv.c:OPENSSL_memcpy
e_chacha20poly1305.c:OPENSSL_memcpy
Line
Count
Source
1065
306
static inline void *OPENSSL_memcpy(void *dst, const void *src, size_t n) {
1066
306
  if (n == 0) {
1067
0
    return dst;
1068
0
  }
1069
1070
306
  return memcpy(dst, src, n);
1071
306
}
Unexecuted instantiation: e_des.c:OPENSSL_memcpy
Unexecuted instantiation: e_rc2.c:OPENSSL_memcpy
Unexecuted instantiation: e_rc4.c:OPENSSL_memcpy
Unexecuted instantiation: e_tls.c:OPENSSL_memcpy
ecdh_extra.c:OPENSSL_memcpy
Line
Count
Source
1065
5
static inline void *OPENSSL_memcpy(void *dst, const void *src, size_t n) {
1066
5
  if (n == 0) {
1067
0
    return dst;
1068
0
  }
1069
1070
5
  return memcpy(dst, src, n);
1071
5
}
Unexecuted instantiation: ecdsa_asn1.c:OPENSSL_memcpy
Unexecuted instantiation: engine.c:OPENSSL_memcpy
Unexecuted instantiation: err.c:OPENSSL_memcpy
Unexecuted instantiation: evp.c:OPENSSL_memcpy
Unexecuted instantiation: evp_ctx.c:OPENSSL_memcpy
Unexecuted instantiation: ex_data.c:OPENSSL_memcpy
Unexecuted instantiation: file.c:OPENSSL_memcpy
Unexecuted instantiation: fork_detect.c:OPENSSL_memcpy
Unexecuted instantiation: forkunsafe.c:OPENSSL_memcpy
md4.c:OPENSSL_memcpy
Line
Count
Source
1065
1.78M
static inline void *OPENSSL_memcpy(void *dst, const void *src, size_t n) {
1066
1.78M
  if (n == 0) {
1067
0
    return dst;
1068
0
  }
1069
1070
1.78M
  return memcpy(dst, src, n);
1071
1.78M
}
md5.c:OPENSSL_memcpy
Line
Count
Source
1065
2.34M
static inline void *OPENSSL_memcpy(void *dst, const void *src, size_t n) {
1066
2.34M
  if (n == 0) {
1067
0
    return dst;
1068
0
  }
1069
1070
2.34M
  return memcpy(dst, src, n);
1071
2.34M
}
mem.c:OPENSSL_memcpy
Line
Count
Source
1065
31.4k
static inline void *OPENSSL_memcpy(void *dst, const void *src, size_t n) {
1066
31.4k
  if (n == 0) {
1067
0
    return dst;
1068
0
  }
1069
1070
31.4k
  return memcpy(dst, src, n);
1071
31.4k
}
Unexecuted instantiation: obj.c:OPENSSL_memcpy
Unexecuted instantiation: p_dh_asn1.c:OPENSSL_memcpy
Unexecuted instantiation: p_dsa_asn1.c:OPENSSL_memcpy
Unexecuted instantiation: p_ec.c:OPENSSL_memcpy
Unexecuted instantiation: p_ed25519_asn1.c:OPENSSL_memcpy
Unexecuted instantiation: p_hkdf.c:OPENSSL_memcpy
Unexecuted instantiation: p_rsa.c:OPENSSL_memcpy
Unexecuted instantiation: p_rsa_asn1.c:OPENSSL_memcpy
Unexecuted instantiation: p_x25519_asn1.c:OPENSSL_memcpy
pbkdf.c:OPENSSL_memcpy
Line
Count
Source
1065
7.22k
static inline void *OPENSSL_memcpy(void *dst, const void *src, size_t n) {
1066
7.22k
  if (n == 0) {
1067
0
    return dst;
1068
0
  }
1069
1070
7.22k
  return memcpy(dst, src, n);
1071
7.22k
}
poly1305_vec.c:OPENSSL_memcpy
Line
Count
Source
1065
2.35k
static inline void *OPENSSL_memcpy(void *dst, const void *src, size_t n) {
1066
2.35k
  if (n == 0) {
1067
31
    return dst;
1068
31
  }
1069
1070
2.32k
  return memcpy(dst, src, n);
1071
2.35k
}
Unexecuted instantiation: refcount.c:OPENSSL_memcpy
Unexecuted instantiation: rsa_asn1.c:OPENSSL_memcpy
Unexecuted instantiation: rsa_crypt.c:OPENSSL_memcpy
scrypt.c:OPENSSL_memcpy
Line
Count
Source
1065
23.5k
static inline void *OPENSSL_memcpy(void *dst, const void *src, size_t n) {
1066
23.5k
  if (n == 0) {
1067
0
    return dst;
1068
0
  }
1069
1070
23.5k
  return memcpy(dst, src, n);
1071
23.5k
}
Unexecuted instantiation: siphash.c:OPENSSL_memcpy
Unexecuted instantiation: stack.c:OPENSSL_memcpy
Unexecuted instantiation: thread_pthread.c:OPENSSL_memcpy
Unexecuted instantiation: tls_cbc.c:OPENSSL_memcpy
Unexecuted instantiation: urandom.c:OPENSSL_memcpy
Unexecuted instantiation: a_bitstr.c:OPENSSL_memcpy
Unexecuted instantiation: a_object.c:OPENSSL_memcpy
Unexecuted instantiation: asn1_compat.c:OPENSSL_memcpy
Unexecuted instantiation: bio.c:OPENSSL_memcpy
blake2.c:OPENSSL_memcpy
Line
Count
Source
1065
7.97M
static inline void *OPENSSL_memcpy(void *dst, const void *src, size_t n) {
1066
7.97M
  if (n == 0) {
1067
2.26k
    return dst;
1068
2.26k
  }
1069
1070
7.96M
  return memcpy(dst, src, n);
1071
7.97M
}
chacha.c:OPENSSL_memcpy
Line
Count
Source
1065
9.72k
static inline void *OPENSSL_memcpy(void *dst, const void *src, size_t n) {
1066
9.72k
  if (n == 0) {
1067
0
    return dst;
1068
0
  }
1069
1070
9.72k
  return memcpy(dst, src, n);
1071
9.72k
}
Unexecuted instantiation: des.c:OPENSSL_memcpy
Unexecuted instantiation: ec_asn1.c:OPENSSL_memcpy
Unexecuted instantiation: lhash.c:OPENSSL_memcpy
Unexecuted instantiation: tasn_dec.c:OPENSSL_memcpy
Unexecuted instantiation: tasn_enc.c:OPENSSL_memcpy
Unexecuted instantiation: tasn_new.c:OPENSSL_memcpy
Unexecuted instantiation: tasn_utl.c:OPENSSL_memcpy
Unexecuted instantiation: pool.c:OPENSSL_memcpy
Unexecuted instantiation: curve25519_64_adx.c:OPENSSL_memcpy
Unexecuted instantiation: cpu_intel.c:OPENSSL_memcpy
1072
1073
25.0k
static inline void *OPENSSL_memmove(void *dst, const void *src, size_t n) {
1074
25.0k
  if (n == 0) {
1075
0
    return dst;
1076
0
  }
1077
1078
25.0k
  return memmove(dst, src, n);
1079
25.0k
}
Unexecuted instantiation: a_int.c:OPENSSL_memmove
Unexecuted instantiation: asn1_lib.c:OPENSSL_memmove
bcm.c:OPENSSL_memmove
Line
Count
Source
1073
24.6k
static inline void *OPENSSL_memmove(void *dst, const void *src, size_t n) {
1074
24.6k
  if (n == 0) {
1075
0
    return dst;
1076
0
  }
1077
1078
24.6k
  return memmove(dst, src, n);
1079
24.6k
}
cbb.c:OPENSSL_memmove
Line
Count
Source
1073
168
static inline void *OPENSSL_memmove(void *dst, const void *src, size_t n) {
1074
168
  if (n == 0) {
1075
0
    return dst;
1076
0
  }
1077
1078
168
  return memmove(dst, src, n);
1079
168
}
Unexecuted instantiation: cbs.c:OPENSSL_memmove
Unexecuted instantiation: convert.c:OPENSSL_memmove
Unexecuted instantiation: crypto.c:OPENSSL_memmove
curve25519.c:OPENSSL_memmove
Line
Count
Source
1073
323
static inline void *OPENSSL_memmove(void *dst, const void *src, size_t n) {
1074
323
  if (n == 0) {
1075
0
    return dst;
1076
0
  }
1077
1078
323
  return memmove(dst, src, n);
1079
323
}
Unexecuted instantiation: digest_extra.c:OPENSSL_memmove
Unexecuted instantiation: dsa.c:OPENSSL_memmove
Unexecuted instantiation: dsa_asn1.c:OPENSSL_memmove
Unexecuted instantiation: e_aesctrhmac.c:OPENSSL_memmove
Unexecuted instantiation: e_aesgcmsiv.c:OPENSSL_memmove
Unexecuted instantiation: e_chacha20poly1305.c:OPENSSL_memmove
Unexecuted instantiation: e_des.c:OPENSSL_memmove
Unexecuted instantiation: e_rc2.c:OPENSSL_memmove
Unexecuted instantiation: e_rc4.c:OPENSSL_memmove
Unexecuted instantiation: e_tls.c:OPENSSL_memmove
Unexecuted instantiation: ecdh_extra.c:OPENSSL_memmove
Unexecuted instantiation: ecdsa_asn1.c:OPENSSL_memmove
Unexecuted instantiation: engine.c:OPENSSL_memmove
Unexecuted instantiation: err.c:OPENSSL_memmove
Unexecuted instantiation: evp.c:OPENSSL_memmove
Unexecuted instantiation: evp_ctx.c:OPENSSL_memmove
Unexecuted instantiation: ex_data.c:OPENSSL_memmove
Unexecuted instantiation: file.c:OPENSSL_memmove
Unexecuted instantiation: fork_detect.c:OPENSSL_memmove
Unexecuted instantiation: forkunsafe.c:OPENSSL_memmove
Unexecuted instantiation: md4.c:OPENSSL_memmove
Unexecuted instantiation: md5.c:OPENSSL_memmove
Unexecuted instantiation: mem.c:OPENSSL_memmove
Unexecuted instantiation: obj.c:OPENSSL_memmove
Unexecuted instantiation: p_dh_asn1.c:OPENSSL_memmove
Unexecuted instantiation: p_dsa_asn1.c:OPENSSL_memmove
Unexecuted instantiation: p_ec.c:OPENSSL_memmove
Unexecuted instantiation: p_ed25519_asn1.c:OPENSSL_memmove
Unexecuted instantiation: p_hkdf.c:OPENSSL_memmove
Unexecuted instantiation: p_rsa.c:OPENSSL_memmove
Unexecuted instantiation: p_rsa_asn1.c:OPENSSL_memmove
Unexecuted instantiation: p_x25519_asn1.c:OPENSSL_memmove
Unexecuted instantiation: pbkdf.c:OPENSSL_memmove
Unexecuted instantiation: poly1305_vec.c:OPENSSL_memmove
Unexecuted instantiation: refcount.c:OPENSSL_memmove
Unexecuted instantiation: rsa_asn1.c:OPENSSL_memmove
Unexecuted instantiation: rsa_crypt.c:OPENSSL_memmove
Unexecuted instantiation: scrypt.c:OPENSSL_memmove
Unexecuted instantiation: siphash.c:OPENSSL_memmove
Unexecuted instantiation: stack.c:OPENSSL_memmove
Unexecuted instantiation: thread_pthread.c:OPENSSL_memmove
Unexecuted instantiation: tls_cbc.c:OPENSSL_memmove
Unexecuted instantiation: urandom.c:OPENSSL_memmove
Unexecuted instantiation: a_bitstr.c:OPENSSL_memmove
Unexecuted instantiation: a_object.c:OPENSSL_memmove
Unexecuted instantiation: asn1_compat.c:OPENSSL_memmove
Unexecuted instantiation: bio.c:OPENSSL_memmove
Unexecuted instantiation: blake2.c:OPENSSL_memmove
Unexecuted instantiation: chacha.c:OPENSSL_memmove
Unexecuted instantiation: des.c:OPENSSL_memmove
Unexecuted instantiation: ec_asn1.c:OPENSSL_memmove
Unexecuted instantiation: lhash.c:OPENSSL_memmove
Unexecuted instantiation: tasn_dec.c:OPENSSL_memmove
Unexecuted instantiation: tasn_enc.c:OPENSSL_memmove
Unexecuted instantiation: tasn_new.c:OPENSSL_memmove
Unexecuted instantiation: tasn_utl.c:OPENSSL_memmove
Unexecuted instantiation: pool.c:OPENSSL_memmove
Unexecuted instantiation: curve25519_64_adx.c:OPENSSL_memmove
Unexecuted instantiation: cpu_intel.c:OPENSSL_memmove
1080
1081
7.70M
static inline void *OPENSSL_memset(void *dst, int c, size_t n) {
1082
7.70M
  if (n == 0) {
1083
2.58M
    return dst;
1084
2.58M
  }
1085
1086
5.12M
  return memset(dst, c, n);
1087
7.70M
}
Unexecuted instantiation: a_int.c:OPENSSL_memset
Unexecuted instantiation: asn1_lib.c:OPENSSL_memset
bcm.c:OPENSSL_memset
Line
Count
Source
1081
6.37M
static inline void *OPENSSL_memset(void *dst, int c, size_t n) {
1082
6.37M
  if (n == 0) {
1083
2.58M
    return dst;
1084
2.58M
  }
1085
1086
3.79M
  return memset(dst, c, n);
1087
6.37M
}
cbb.c:OPENSSL_memset
Line
Count
Source
1081
1.41k
static inline void *OPENSSL_memset(void *dst, int c, size_t n) {
1082
1.41k
  if (n == 0) {
1083
0
    return dst;
1084
0
  }
1085
1086
1.41k
  return memset(dst, c, n);
1087
1.41k
}
Unexecuted instantiation: cbs.c:OPENSSL_memset
Unexecuted instantiation: convert.c:OPENSSL_memset
Unexecuted instantiation: crypto.c:OPENSSL_memset
curve25519.c:OPENSSL_memset
Line
Count
Source
1081
4
static inline void *OPENSSL_memset(void *dst, int c, size_t n) {
1082
4
  if (n == 0) {
1083
0
    return dst;
1084
0
  }
1085
1086
4
  return memset(dst, c, n);
1087
4
}
Unexecuted instantiation: digest_extra.c:OPENSSL_memset
Unexecuted instantiation: dsa.c:OPENSSL_memset
Unexecuted instantiation: dsa_asn1.c:OPENSSL_memset
e_aesctrhmac.c:OPENSSL_memset
Line
Count
Source
1081
2
static inline void *OPENSSL_memset(void *dst, int c, size_t n) {
1082
2
  if (n == 0) {
1083
0
    return dst;
1084
0
  }
1085
1086
2
  return memset(dst, c, n);
1087
2
}
Unexecuted instantiation: e_aesgcmsiv.c:OPENSSL_memset
e_chacha20poly1305.c:OPENSSL_memset
Line
Count
Source
1081
152
static inline void *OPENSSL_memset(void *dst, int c, size_t n) {
1082
152
  if (n == 0) {
1083
0
    return dst;
1084
0
  }
1085
1086
152
  return memset(dst, c, n);
1087
152
}
Unexecuted instantiation: e_des.c:OPENSSL_memset
Unexecuted instantiation: e_rc2.c:OPENSSL_memset
Unexecuted instantiation: e_rc4.c:OPENSSL_memset
Unexecuted instantiation: e_tls.c:OPENSSL_memset
Unexecuted instantiation: ecdh_extra.c:OPENSSL_memset
Unexecuted instantiation: ecdsa_asn1.c:OPENSSL_memset
Unexecuted instantiation: engine.c:OPENSSL_memset
err.c:OPENSSL_memset
Line
Count
Source
1081
5.55k
static inline void *OPENSSL_memset(void *dst, int c, size_t n) {
1082
5.55k
  if (n == 0) {
1083
0
    return dst;
1084
0
  }
1085
1086
5.55k
  return memset(dst, c, n);
1087
5.55k
}
Unexecuted instantiation: evp.c:OPENSSL_memset
Unexecuted instantiation: evp_ctx.c:OPENSSL_memset
Unexecuted instantiation: ex_data.c:OPENSSL_memset
Unexecuted instantiation: file.c:OPENSSL_memset
Unexecuted instantiation: fork_detect.c:OPENSSL_memset
Unexecuted instantiation: forkunsafe.c:OPENSSL_memset
md4.c:OPENSSL_memset
Line
Count
Source
1081
7.08k
static inline void *OPENSSL_memset(void *dst, int c, size_t n) {
1082
7.08k
  if (n == 0) {
1083
51
    return dst;
1084
51
  }
1085
1086
7.03k
  return memset(dst, c, n);
1087
7.08k
}
md5.c:OPENSSL_memset
Line
Count
Source
1081
12.0k
static inline void *OPENSSL_memset(void *dst, int c, size_t n) {
1082
12.0k
  if (n == 0) {
1083
84
    return dst;
1084
84
  }
1085
1086
12.0k
  return memset(dst, c, n);
1087
12.0k
}
mem.c:OPENSSL_memset
Line
Count
Source
1081
1.30M
static inline void *OPENSSL_memset(void *dst, int c, size_t n) {
1082
1.30M
  if (n == 0) {
1083
0
    return dst;
1084
0
  }
1085
1086
1.30M
  return memset(dst, c, n);
1087
1.30M
}
Unexecuted instantiation: obj.c:OPENSSL_memset
Unexecuted instantiation: p_dh_asn1.c:OPENSSL_memset
Unexecuted instantiation: p_dsa_asn1.c:OPENSSL_memset
Unexecuted instantiation: p_ec.c:OPENSSL_memset
Unexecuted instantiation: p_ed25519_asn1.c:OPENSSL_memset
Unexecuted instantiation: p_hkdf.c:OPENSSL_memset
Unexecuted instantiation: p_rsa.c:OPENSSL_memset
Unexecuted instantiation: p_rsa_asn1.c:OPENSSL_memset
Unexecuted instantiation: p_x25519_asn1.c:OPENSSL_memset
Unexecuted instantiation: pbkdf.c:OPENSSL_memset
Unexecuted instantiation: poly1305_vec.c:OPENSSL_memset
Unexecuted instantiation: refcount.c:OPENSSL_memset
Unexecuted instantiation: rsa_asn1.c:OPENSSL_memset
Unexecuted instantiation: rsa_crypt.c:OPENSSL_memset
Unexecuted instantiation: scrypt.c:OPENSSL_memset
Unexecuted instantiation: siphash.c:OPENSSL_memset
Unexecuted instantiation: stack.c:OPENSSL_memset
thread_pthread.c:OPENSSL_memset
Line
Count
Source
1081
2
static inline void *OPENSSL_memset(void *dst, int c, size_t n) {
1082
2
  if (n == 0) {
1083
0
    return dst;
1084
0
  }
1085
1086
2
  return memset(dst, c, n);
1087
2
}
Unexecuted instantiation: tls_cbc.c:OPENSSL_memset
Unexecuted instantiation: urandom.c:OPENSSL_memset
Unexecuted instantiation: a_bitstr.c:OPENSSL_memset
Unexecuted instantiation: a_object.c:OPENSSL_memset
Unexecuted instantiation: asn1_compat.c:OPENSSL_memset
Unexecuted instantiation: bio.c:OPENSSL_memset
blake2.c:OPENSSL_memset
Line
Count
Source
1081
2.39k
static inline void *OPENSSL_memset(void *dst, int c, size_t n) {
1082
2.39k
  if (n == 0) {
1083
1
    return dst;
1084
1
  }
1085
1086
2.39k
  return memset(dst, c, n);
1087
2.39k
}
Unexecuted instantiation: chacha.c:OPENSSL_memset
Unexecuted instantiation: des.c:OPENSSL_memset
Unexecuted instantiation: ec_asn1.c:OPENSSL_memset
Unexecuted instantiation: lhash.c:OPENSSL_memset
Unexecuted instantiation: tasn_dec.c:OPENSSL_memset
Unexecuted instantiation: tasn_enc.c:OPENSSL_memset
Unexecuted instantiation: tasn_new.c:OPENSSL_memset
Unexecuted instantiation: tasn_utl.c:OPENSSL_memset
Unexecuted instantiation: pool.c:OPENSSL_memset
Unexecuted instantiation: curve25519_64_adx.c:OPENSSL_memset
Unexecuted instantiation: cpu_intel.c:OPENSSL_memset
1088
1089
1090
// Loads and stores.
1091
//
1092
// The following functions load and store sized integers with the specified
1093
// endianness. They use |memcpy|, and so avoid alignment or strict aliasing
1094
// requirements on the input and output pointers.
1095
1096
0
static inline uint16_t CRYPTO_load_u16_be(const void *in) {
1097
0
  uint16_t v;
1098
0
  OPENSSL_memcpy(&v, in, sizeof(v));
1099
0
  return CRYPTO_bswap2(v);
1100
0
}
Unexecuted instantiation: a_int.c:CRYPTO_load_u16_be
Unexecuted instantiation: asn1_lib.c:CRYPTO_load_u16_be
Unexecuted instantiation: bcm.c:CRYPTO_load_u16_be
Unexecuted instantiation: cbb.c:CRYPTO_load_u16_be
Unexecuted instantiation: cbs.c:CRYPTO_load_u16_be
Unexecuted instantiation: convert.c:CRYPTO_load_u16_be
Unexecuted instantiation: crypto.c:CRYPTO_load_u16_be
Unexecuted instantiation: curve25519.c:CRYPTO_load_u16_be
Unexecuted instantiation: digest_extra.c:CRYPTO_load_u16_be
Unexecuted instantiation: dsa.c:CRYPTO_load_u16_be
Unexecuted instantiation: dsa_asn1.c:CRYPTO_load_u16_be
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_load_u16_be
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_load_u16_be
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_load_u16_be
Unexecuted instantiation: e_des.c:CRYPTO_load_u16_be
Unexecuted instantiation: e_rc2.c:CRYPTO_load_u16_be
Unexecuted instantiation: e_rc4.c:CRYPTO_load_u16_be
Unexecuted instantiation: e_tls.c:CRYPTO_load_u16_be
Unexecuted instantiation: ecdh_extra.c:CRYPTO_load_u16_be
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_load_u16_be
Unexecuted instantiation: engine.c:CRYPTO_load_u16_be
Unexecuted instantiation: err.c:CRYPTO_load_u16_be
Unexecuted instantiation: evp.c:CRYPTO_load_u16_be
Unexecuted instantiation: evp_ctx.c:CRYPTO_load_u16_be
Unexecuted instantiation: ex_data.c:CRYPTO_load_u16_be
Unexecuted instantiation: file.c:CRYPTO_load_u16_be
Unexecuted instantiation: fork_detect.c:CRYPTO_load_u16_be
Unexecuted instantiation: forkunsafe.c:CRYPTO_load_u16_be
Unexecuted instantiation: md4.c:CRYPTO_load_u16_be
Unexecuted instantiation: md5.c:CRYPTO_load_u16_be
Unexecuted instantiation: mem.c:CRYPTO_load_u16_be
Unexecuted instantiation: obj.c:CRYPTO_load_u16_be
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_load_u16_be
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_load_u16_be
Unexecuted instantiation: p_ec.c:CRYPTO_load_u16_be
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_load_u16_be
Unexecuted instantiation: p_hkdf.c:CRYPTO_load_u16_be
Unexecuted instantiation: p_rsa.c:CRYPTO_load_u16_be
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_load_u16_be
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_load_u16_be
Unexecuted instantiation: pbkdf.c:CRYPTO_load_u16_be
Unexecuted instantiation: poly1305_vec.c:CRYPTO_load_u16_be
Unexecuted instantiation: refcount.c:CRYPTO_load_u16_be
Unexecuted instantiation: rsa_asn1.c:CRYPTO_load_u16_be
Unexecuted instantiation: rsa_crypt.c:CRYPTO_load_u16_be
Unexecuted instantiation: scrypt.c:CRYPTO_load_u16_be
Unexecuted instantiation: siphash.c:CRYPTO_load_u16_be
Unexecuted instantiation: stack.c:CRYPTO_load_u16_be
Unexecuted instantiation: thread_pthread.c:CRYPTO_load_u16_be
Unexecuted instantiation: tls_cbc.c:CRYPTO_load_u16_be
Unexecuted instantiation: urandom.c:CRYPTO_load_u16_be
Unexecuted instantiation: a_bitstr.c:CRYPTO_load_u16_be
Unexecuted instantiation: a_object.c:CRYPTO_load_u16_be
Unexecuted instantiation: asn1_compat.c:CRYPTO_load_u16_be
Unexecuted instantiation: bio.c:CRYPTO_load_u16_be
Unexecuted instantiation: blake2.c:CRYPTO_load_u16_be
Unexecuted instantiation: chacha.c:CRYPTO_load_u16_be
Unexecuted instantiation: des.c:CRYPTO_load_u16_be
Unexecuted instantiation: ec_asn1.c:CRYPTO_load_u16_be
Unexecuted instantiation: lhash.c:CRYPTO_load_u16_be
Unexecuted instantiation: tasn_dec.c:CRYPTO_load_u16_be
Unexecuted instantiation: tasn_enc.c:CRYPTO_load_u16_be
Unexecuted instantiation: tasn_new.c:CRYPTO_load_u16_be
Unexecuted instantiation: tasn_utl.c:CRYPTO_load_u16_be
Unexecuted instantiation: pool.c:CRYPTO_load_u16_be
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_load_u16_be
Unexecuted instantiation: cpu_intel.c:CRYPTO_load_u16_be
1101
1102
0
static inline void CRYPTO_store_u16_be(void *out, uint16_t v) {
1103
0
  v = CRYPTO_bswap2(v);
1104
0
  OPENSSL_memcpy(out, &v, sizeof(v));
1105
0
}
Unexecuted instantiation: a_int.c:CRYPTO_store_u16_be
Unexecuted instantiation: asn1_lib.c:CRYPTO_store_u16_be
Unexecuted instantiation: bcm.c:CRYPTO_store_u16_be
Unexecuted instantiation: cbb.c:CRYPTO_store_u16_be
Unexecuted instantiation: cbs.c:CRYPTO_store_u16_be
Unexecuted instantiation: convert.c:CRYPTO_store_u16_be
Unexecuted instantiation: crypto.c:CRYPTO_store_u16_be
Unexecuted instantiation: curve25519.c:CRYPTO_store_u16_be
Unexecuted instantiation: digest_extra.c:CRYPTO_store_u16_be
Unexecuted instantiation: dsa.c:CRYPTO_store_u16_be
Unexecuted instantiation: dsa_asn1.c:CRYPTO_store_u16_be
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_store_u16_be
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_store_u16_be
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_store_u16_be
Unexecuted instantiation: e_des.c:CRYPTO_store_u16_be
Unexecuted instantiation: e_rc2.c:CRYPTO_store_u16_be
Unexecuted instantiation: e_rc4.c:CRYPTO_store_u16_be
Unexecuted instantiation: e_tls.c:CRYPTO_store_u16_be
Unexecuted instantiation: ecdh_extra.c:CRYPTO_store_u16_be
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_store_u16_be
Unexecuted instantiation: engine.c:CRYPTO_store_u16_be
Unexecuted instantiation: err.c:CRYPTO_store_u16_be
Unexecuted instantiation: evp.c:CRYPTO_store_u16_be
Unexecuted instantiation: evp_ctx.c:CRYPTO_store_u16_be
Unexecuted instantiation: ex_data.c:CRYPTO_store_u16_be
Unexecuted instantiation: file.c:CRYPTO_store_u16_be
Unexecuted instantiation: fork_detect.c:CRYPTO_store_u16_be
Unexecuted instantiation: forkunsafe.c:CRYPTO_store_u16_be
Unexecuted instantiation: md4.c:CRYPTO_store_u16_be
Unexecuted instantiation: md5.c:CRYPTO_store_u16_be
Unexecuted instantiation: mem.c:CRYPTO_store_u16_be
Unexecuted instantiation: obj.c:CRYPTO_store_u16_be
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_store_u16_be
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_store_u16_be
Unexecuted instantiation: p_ec.c:CRYPTO_store_u16_be
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_store_u16_be
Unexecuted instantiation: p_hkdf.c:CRYPTO_store_u16_be
Unexecuted instantiation: p_rsa.c:CRYPTO_store_u16_be
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_store_u16_be
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_store_u16_be
Unexecuted instantiation: pbkdf.c:CRYPTO_store_u16_be
Unexecuted instantiation: poly1305_vec.c:CRYPTO_store_u16_be
Unexecuted instantiation: refcount.c:CRYPTO_store_u16_be
Unexecuted instantiation: rsa_asn1.c:CRYPTO_store_u16_be
Unexecuted instantiation: rsa_crypt.c:CRYPTO_store_u16_be
Unexecuted instantiation: scrypt.c:CRYPTO_store_u16_be
Unexecuted instantiation: siphash.c:CRYPTO_store_u16_be
Unexecuted instantiation: stack.c:CRYPTO_store_u16_be
Unexecuted instantiation: thread_pthread.c:CRYPTO_store_u16_be
Unexecuted instantiation: tls_cbc.c:CRYPTO_store_u16_be
Unexecuted instantiation: urandom.c:CRYPTO_store_u16_be
Unexecuted instantiation: a_bitstr.c:CRYPTO_store_u16_be
Unexecuted instantiation: a_object.c:CRYPTO_store_u16_be
Unexecuted instantiation: asn1_compat.c:CRYPTO_store_u16_be
Unexecuted instantiation: bio.c:CRYPTO_store_u16_be
Unexecuted instantiation: blake2.c:CRYPTO_store_u16_be
Unexecuted instantiation: chacha.c:CRYPTO_store_u16_be
Unexecuted instantiation: des.c:CRYPTO_store_u16_be
Unexecuted instantiation: ec_asn1.c:CRYPTO_store_u16_be
Unexecuted instantiation: lhash.c:CRYPTO_store_u16_be
Unexecuted instantiation: tasn_dec.c:CRYPTO_store_u16_be
Unexecuted instantiation: tasn_enc.c:CRYPTO_store_u16_be
Unexecuted instantiation: tasn_new.c:CRYPTO_store_u16_be
Unexecuted instantiation: tasn_utl.c:CRYPTO_store_u16_be
Unexecuted instantiation: pool.c:CRYPTO_store_u16_be
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_store_u16_be
Unexecuted instantiation: cpu_intel.c:CRYPTO_store_u16_be
1106
1107
4.06M
static inline uint32_t CRYPTO_load_u32_le(const void *in) {
1108
4.06M
  uint32_t v;
1109
4.06M
  OPENSSL_memcpy(&v, in, sizeof(v));
1110
4.06M
  return v;
1111
4.06M
}
Unexecuted instantiation: a_int.c:CRYPTO_load_u32_le
Unexecuted instantiation: asn1_lib.c:CRYPTO_load_u32_le
Unexecuted instantiation: bcm.c:CRYPTO_load_u32_le
Unexecuted instantiation: cbb.c:CRYPTO_load_u32_le
Unexecuted instantiation: cbs.c:CRYPTO_load_u32_le
Unexecuted instantiation: convert.c:CRYPTO_load_u32_le
Unexecuted instantiation: crypto.c:CRYPTO_load_u32_le
Unexecuted instantiation: curve25519.c:CRYPTO_load_u32_le
Unexecuted instantiation: digest_extra.c:CRYPTO_load_u32_le
Unexecuted instantiation: dsa.c:CRYPTO_load_u32_le
Unexecuted instantiation: dsa_asn1.c:CRYPTO_load_u32_le
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_load_u32_le
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_load_u32_le
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_load_u32_le
Unexecuted instantiation: e_des.c:CRYPTO_load_u32_le
Unexecuted instantiation: e_rc2.c:CRYPTO_load_u32_le
Unexecuted instantiation: e_rc4.c:CRYPTO_load_u32_le
Unexecuted instantiation: e_tls.c:CRYPTO_load_u32_le
Unexecuted instantiation: ecdh_extra.c:CRYPTO_load_u32_le
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_load_u32_le
Unexecuted instantiation: engine.c:CRYPTO_load_u32_le
Unexecuted instantiation: err.c:CRYPTO_load_u32_le
Unexecuted instantiation: evp.c:CRYPTO_load_u32_le
Unexecuted instantiation: evp_ctx.c:CRYPTO_load_u32_le
Unexecuted instantiation: ex_data.c:CRYPTO_load_u32_le
Unexecuted instantiation: file.c:CRYPTO_load_u32_le
Unexecuted instantiation: fork_detect.c:CRYPTO_load_u32_le
Unexecuted instantiation: forkunsafe.c:CRYPTO_load_u32_le
md4.c:CRYPTO_load_u32_le
Line
Count
Source
1107
1.75M
static inline uint32_t CRYPTO_load_u32_le(const void *in) {
1108
1.75M
  uint32_t v;
1109
1.75M
  OPENSSL_memcpy(&v, in, sizeof(v));
1110
1.75M
  return v;
1111
1.75M
}
md5.c:CRYPTO_load_u32_le
Line
Count
Source
1107
2.30M
static inline uint32_t CRYPTO_load_u32_le(const void *in) {
1108
2.30M
  uint32_t v;
1109
2.30M
  OPENSSL_memcpy(&v, in, sizeof(v));
1110
2.30M
  return v;
1111
2.30M
}
Unexecuted instantiation: mem.c:CRYPTO_load_u32_le
Unexecuted instantiation: obj.c:CRYPTO_load_u32_le
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_load_u32_le
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_load_u32_le
Unexecuted instantiation: p_ec.c:CRYPTO_load_u32_le
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_load_u32_le
Unexecuted instantiation: p_hkdf.c:CRYPTO_load_u32_le
Unexecuted instantiation: p_rsa.c:CRYPTO_load_u32_le
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_load_u32_le
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_load_u32_le
Unexecuted instantiation: pbkdf.c:CRYPTO_load_u32_le
poly1305_vec.c:CRYPTO_load_u32_le
Line
Count
Source
1107
608
static inline uint32_t CRYPTO_load_u32_le(const void *in) {
1108
608
  uint32_t v;
1109
608
  OPENSSL_memcpy(&v, in, sizeof(v));
1110
608
  return v;
1111
608
}
Unexecuted instantiation: refcount.c:CRYPTO_load_u32_le
Unexecuted instantiation: rsa_asn1.c:CRYPTO_load_u32_le
Unexecuted instantiation: rsa_crypt.c:CRYPTO_load_u32_le
Unexecuted instantiation: scrypt.c:CRYPTO_load_u32_le
Unexecuted instantiation: siphash.c:CRYPTO_load_u32_le
Unexecuted instantiation: stack.c:CRYPTO_load_u32_le
Unexecuted instantiation: thread_pthread.c:CRYPTO_load_u32_le
Unexecuted instantiation: tls_cbc.c:CRYPTO_load_u32_le
Unexecuted instantiation: urandom.c:CRYPTO_load_u32_le
Unexecuted instantiation: a_bitstr.c:CRYPTO_load_u32_le
Unexecuted instantiation: a_object.c:CRYPTO_load_u32_le
Unexecuted instantiation: asn1_compat.c:CRYPTO_load_u32_le
Unexecuted instantiation: bio.c:CRYPTO_load_u32_le
Unexecuted instantiation: blake2.c:CRYPTO_load_u32_le
chacha.c:CRYPTO_load_u32_le
Line
Count
Source
1107
4.56k
static inline uint32_t CRYPTO_load_u32_le(const void *in) {
1108
4.56k
  uint32_t v;
1109
4.56k
  OPENSSL_memcpy(&v, in, sizeof(v));
1110
4.56k
  return v;
1111
4.56k
}
Unexecuted instantiation: des.c:CRYPTO_load_u32_le
Unexecuted instantiation: ec_asn1.c:CRYPTO_load_u32_le
Unexecuted instantiation: lhash.c:CRYPTO_load_u32_le
Unexecuted instantiation: tasn_dec.c:CRYPTO_load_u32_le
Unexecuted instantiation: tasn_enc.c:CRYPTO_load_u32_le
Unexecuted instantiation: tasn_new.c:CRYPTO_load_u32_le
Unexecuted instantiation: tasn_utl.c:CRYPTO_load_u32_le
Unexecuted instantiation: pool.c:CRYPTO_load_u32_le
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_load_u32_le
Unexecuted instantiation: cpu_intel.c:CRYPTO_load_u32_le
1112
1113
52.7k
static inline void CRYPTO_store_u32_le(void *out, uint32_t v) {
1114
52.7k
  OPENSSL_memcpy(out, &v, sizeof(v));
1115
52.7k
}
Unexecuted instantiation: a_int.c:CRYPTO_store_u32_le
Unexecuted instantiation: asn1_lib.c:CRYPTO_store_u32_le
Unexecuted instantiation: bcm.c:CRYPTO_store_u32_le
Unexecuted instantiation: cbb.c:CRYPTO_store_u32_le
Unexecuted instantiation: cbs.c:CRYPTO_store_u32_le
Unexecuted instantiation: convert.c:CRYPTO_store_u32_le
Unexecuted instantiation: crypto.c:CRYPTO_store_u32_le
Unexecuted instantiation: curve25519.c:CRYPTO_store_u32_le
Unexecuted instantiation: digest_extra.c:CRYPTO_store_u32_le
Unexecuted instantiation: dsa.c:CRYPTO_store_u32_le
Unexecuted instantiation: dsa_asn1.c:CRYPTO_store_u32_le
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_store_u32_le
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_store_u32_le
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_store_u32_le
Unexecuted instantiation: e_des.c:CRYPTO_store_u32_le
Unexecuted instantiation: e_rc2.c:CRYPTO_store_u32_le
Unexecuted instantiation: e_rc4.c:CRYPTO_store_u32_le
Unexecuted instantiation: e_tls.c:CRYPTO_store_u32_le
Unexecuted instantiation: ecdh_extra.c:CRYPTO_store_u32_le
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_store_u32_le
Unexecuted instantiation: engine.c:CRYPTO_store_u32_le
Unexecuted instantiation: err.c:CRYPTO_store_u32_le
Unexecuted instantiation: evp.c:CRYPTO_store_u32_le
Unexecuted instantiation: evp_ctx.c:CRYPTO_store_u32_le
Unexecuted instantiation: ex_data.c:CRYPTO_store_u32_le
Unexecuted instantiation: file.c:CRYPTO_store_u32_le
Unexecuted instantiation: fork_detect.c:CRYPTO_store_u32_le
Unexecuted instantiation: forkunsafe.c:CRYPTO_store_u32_le
md4.c:CRYPTO_store_u32_le
Line
Count
Source
1113
17.8k
static inline void CRYPTO_store_u32_le(void *out, uint32_t v) {
1114
17.8k
  OPENSSL_memcpy(out, &v, sizeof(v));
1115
17.8k
}
md5.c:CRYPTO_store_u32_le
Line
Count
Source
1113
30.0k
static inline void CRYPTO_store_u32_le(void *out, uint32_t v) {
1114
30.0k
  OPENSSL_memcpy(out, &v, sizeof(v));
1115
30.0k
}
Unexecuted instantiation: mem.c:CRYPTO_store_u32_le
Unexecuted instantiation: obj.c:CRYPTO_store_u32_le
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_store_u32_le
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_store_u32_le
Unexecuted instantiation: p_ec.c:CRYPTO_store_u32_le
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_store_u32_le
Unexecuted instantiation: p_hkdf.c:CRYPTO_store_u32_le
Unexecuted instantiation: p_rsa.c:CRYPTO_store_u32_le
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_store_u32_le
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_store_u32_le
Unexecuted instantiation: pbkdf.c:CRYPTO_store_u32_le
Unexecuted instantiation: poly1305_vec.c:CRYPTO_store_u32_le
Unexecuted instantiation: refcount.c:CRYPTO_store_u32_le
Unexecuted instantiation: rsa_asn1.c:CRYPTO_store_u32_le
Unexecuted instantiation: rsa_crypt.c:CRYPTO_store_u32_le
Unexecuted instantiation: scrypt.c:CRYPTO_store_u32_le
Unexecuted instantiation: siphash.c:CRYPTO_store_u32_le
Unexecuted instantiation: stack.c:CRYPTO_store_u32_le
Unexecuted instantiation: thread_pthread.c:CRYPTO_store_u32_le
Unexecuted instantiation: tls_cbc.c:CRYPTO_store_u32_le
Unexecuted instantiation: urandom.c:CRYPTO_store_u32_le
Unexecuted instantiation: a_bitstr.c:CRYPTO_store_u32_le
Unexecuted instantiation: a_object.c:CRYPTO_store_u32_le
Unexecuted instantiation: asn1_compat.c:CRYPTO_store_u32_le
Unexecuted instantiation: bio.c:CRYPTO_store_u32_le
Unexecuted instantiation: blake2.c:CRYPTO_store_u32_le
chacha.c:CRYPTO_store_u32_le
Line
Count
Source
1113
4.86k
static inline void CRYPTO_store_u32_le(void *out, uint32_t v) {
1114
4.86k
  OPENSSL_memcpy(out, &v, sizeof(v));
1115
4.86k
}
Unexecuted instantiation: des.c:CRYPTO_store_u32_le
Unexecuted instantiation: ec_asn1.c:CRYPTO_store_u32_le
Unexecuted instantiation: lhash.c:CRYPTO_store_u32_le
Unexecuted instantiation: tasn_dec.c:CRYPTO_store_u32_le
Unexecuted instantiation: tasn_enc.c:CRYPTO_store_u32_le
Unexecuted instantiation: tasn_new.c:CRYPTO_store_u32_le
Unexecuted instantiation: tasn_utl.c:CRYPTO_store_u32_le
Unexecuted instantiation: pool.c:CRYPTO_store_u32_le
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_store_u32_le
Unexecuted instantiation: cpu_intel.c:CRYPTO_store_u32_le
1116
1117
10.5M
static inline uint32_t CRYPTO_load_u32_be(const void *in) {
1118
10.5M
  uint32_t v;
1119
10.5M
  OPENSSL_memcpy(&v, in, sizeof(v));
1120
10.5M
  return CRYPTO_bswap4(v);
1121
10.5M
}
Unexecuted instantiation: a_int.c:CRYPTO_load_u32_be
Unexecuted instantiation: asn1_lib.c:CRYPTO_load_u32_be
bcm.c:CRYPTO_load_u32_be
Line
Count
Source
1117
10.5M
static inline uint32_t CRYPTO_load_u32_be(const void *in) {
1118
10.5M
  uint32_t v;
1119
10.5M
  OPENSSL_memcpy(&v, in, sizeof(v));
1120
10.5M
  return CRYPTO_bswap4(v);
1121
10.5M
}
Unexecuted instantiation: cbb.c:CRYPTO_load_u32_be
Unexecuted instantiation: cbs.c:CRYPTO_load_u32_be
Unexecuted instantiation: convert.c:CRYPTO_load_u32_be
Unexecuted instantiation: crypto.c:CRYPTO_load_u32_be
Unexecuted instantiation: curve25519.c:CRYPTO_load_u32_be
Unexecuted instantiation: digest_extra.c:CRYPTO_load_u32_be
Unexecuted instantiation: dsa.c:CRYPTO_load_u32_be
Unexecuted instantiation: dsa_asn1.c:CRYPTO_load_u32_be
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_load_u32_be
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_load_u32_be
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_load_u32_be
Unexecuted instantiation: e_des.c:CRYPTO_load_u32_be
Unexecuted instantiation: e_rc2.c:CRYPTO_load_u32_be
Unexecuted instantiation: e_rc4.c:CRYPTO_load_u32_be
Unexecuted instantiation: e_tls.c:CRYPTO_load_u32_be
Unexecuted instantiation: ecdh_extra.c:CRYPTO_load_u32_be
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_load_u32_be
Unexecuted instantiation: engine.c:CRYPTO_load_u32_be
Unexecuted instantiation: err.c:CRYPTO_load_u32_be
Unexecuted instantiation: evp.c:CRYPTO_load_u32_be
Unexecuted instantiation: evp_ctx.c:CRYPTO_load_u32_be
Unexecuted instantiation: ex_data.c:CRYPTO_load_u32_be
Unexecuted instantiation: file.c:CRYPTO_load_u32_be
Unexecuted instantiation: fork_detect.c:CRYPTO_load_u32_be
Unexecuted instantiation: forkunsafe.c:CRYPTO_load_u32_be
Unexecuted instantiation: md4.c:CRYPTO_load_u32_be
Unexecuted instantiation: md5.c:CRYPTO_load_u32_be
Unexecuted instantiation: mem.c:CRYPTO_load_u32_be
Unexecuted instantiation: obj.c:CRYPTO_load_u32_be
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_load_u32_be
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_load_u32_be
Unexecuted instantiation: p_ec.c:CRYPTO_load_u32_be
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_load_u32_be
Unexecuted instantiation: p_hkdf.c:CRYPTO_load_u32_be
Unexecuted instantiation: p_rsa.c:CRYPTO_load_u32_be
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_load_u32_be
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_load_u32_be
Unexecuted instantiation: pbkdf.c:CRYPTO_load_u32_be
Unexecuted instantiation: poly1305_vec.c:CRYPTO_load_u32_be
Unexecuted instantiation: refcount.c:CRYPTO_load_u32_be
Unexecuted instantiation: rsa_asn1.c:CRYPTO_load_u32_be
Unexecuted instantiation: rsa_crypt.c:CRYPTO_load_u32_be
Unexecuted instantiation: scrypt.c:CRYPTO_load_u32_be
Unexecuted instantiation: siphash.c:CRYPTO_load_u32_be
Unexecuted instantiation: stack.c:CRYPTO_load_u32_be
Unexecuted instantiation: thread_pthread.c:CRYPTO_load_u32_be
Unexecuted instantiation: tls_cbc.c:CRYPTO_load_u32_be
Unexecuted instantiation: urandom.c:CRYPTO_load_u32_be
Unexecuted instantiation: a_bitstr.c:CRYPTO_load_u32_be
Unexecuted instantiation: a_object.c:CRYPTO_load_u32_be
Unexecuted instantiation: asn1_compat.c:CRYPTO_load_u32_be
Unexecuted instantiation: bio.c:CRYPTO_load_u32_be
Unexecuted instantiation: blake2.c:CRYPTO_load_u32_be
Unexecuted instantiation: chacha.c:CRYPTO_load_u32_be
Unexecuted instantiation: des.c:CRYPTO_load_u32_be
Unexecuted instantiation: ec_asn1.c:CRYPTO_load_u32_be
Unexecuted instantiation: lhash.c:CRYPTO_load_u32_be
Unexecuted instantiation: tasn_dec.c:CRYPTO_load_u32_be
Unexecuted instantiation: tasn_enc.c:CRYPTO_load_u32_be
Unexecuted instantiation: tasn_new.c:CRYPTO_load_u32_be
Unexecuted instantiation: tasn_utl.c:CRYPTO_load_u32_be
Unexecuted instantiation: pool.c:CRYPTO_load_u32_be
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_load_u32_be
Unexecuted instantiation: cpu_intel.c:CRYPTO_load_u32_be
1122
1123
364k
static inline void CRYPTO_store_u32_be(void *out, uint32_t v) {
1124
364k
  v = CRYPTO_bswap4(v);
1125
364k
  OPENSSL_memcpy(out, &v, sizeof(v));
1126
364k
}
Unexecuted instantiation: a_int.c:CRYPTO_store_u32_be
Unexecuted instantiation: asn1_lib.c:CRYPTO_store_u32_be
bcm.c:CRYPTO_store_u32_be
Line
Count
Source
1123
364k
static inline void CRYPTO_store_u32_be(void *out, uint32_t v) {
1124
364k
  v = CRYPTO_bswap4(v);
1125
364k
  OPENSSL_memcpy(out, &v, sizeof(v));
1126
364k
}
Unexecuted instantiation: cbb.c:CRYPTO_store_u32_be
Unexecuted instantiation: cbs.c:CRYPTO_store_u32_be
Unexecuted instantiation: convert.c:CRYPTO_store_u32_be
Unexecuted instantiation: crypto.c:CRYPTO_store_u32_be
Unexecuted instantiation: curve25519.c:CRYPTO_store_u32_be
Unexecuted instantiation: digest_extra.c:CRYPTO_store_u32_be
Unexecuted instantiation: dsa.c:CRYPTO_store_u32_be
Unexecuted instantiation: dsa_asn1.c:CRYPTO_store_u32_be
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_store_u32_be
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_store_u32_be
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_store_u32_be
Unexecuted instantiation: e_des.c:CRYPTO_store_u32_be
Unexecuted instantiation: e_rc2.c:CRYPTO_store_u32_be
Unexecuted instantiation: e_rc4.c:CRYPTO_store_u32_be
Unexecuted instantiation: e_tls.c:CRYPTO_store_u32_be
Unexecuted instantiation: ecdh_extra.c:CRYPTO_store_u32_be
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_store_u32_be
Unexecuted instantiation: engine.c:CRYPTO_store_u32_be
Unexecuted instantiation: err.c:CRYPTO_store_u32_be
Unexecuted instantiation: evp.c:CRYPTO_store_u32_be
Unexecuted instantiation: evp_ctx.c:CRYPTO_store_u32_be
Unexecuted instantiation: ex_data.c:CRYPTO_store_u32_be
Unexecuted instantiation: file.c:CRYPTO_store_u32_be
Unexecuted instantiation: fork_detect.c:CRYPTO_store_u32_be
Unexecuted instantiation: forkunsafe.c:CRYPTO_store_u32_be
Unexecuted instantiation: md4.c:CRYPTO_store_u32_be
Unexecuted instantiation: md5.c:CRYPTO_store_u32_be
Unexecuted instantiation: mem.c:CRYPTO_store_u32_be
Unexecuted instantiation: obj.c:CRYPTO_store_u32_be
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_store_u32_be
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_store_u32_be
Unexecuted instantiation: p_ec.c:CRYPTO_store_u32_be
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_store_u32_be
Unexecuted instantiation: p_hkdf.c:CRYPTO_store_u32_be
Unexecuted instantiation: p_rsa.c:CRYPTO_store_u32_be
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_store_u32_be
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_store_u32_be
Unexecuted instantiation: pbkdf.c:CRYPTO_store_u32_be
Unexecuted instantiation: poly1305_vec.c:CRYPTO_store_u32_be
Unexecuted instantiation: refcount.c:CRYPTO_store_u32_be
Unexecuted instantiation: rsa_asn1.c:CRYPTO_store_u32_be
Unexecuted instantiation: rsa_crypt.c:CRYPTO_store_u32_be
Unexecuted instantiation: scrypt.c:CRYPTO_store_u32_be
Unexecuted instantiation: siphash.c:CRYPTO_store_u32_be
Unexecuted instantiation: stack.c:CRYPTO_store_u32_be
Unexecuted instantiation: thread_pthread.c:CRYPTO_store_u32_be
Unexecuted instantiation: tls_cbc.c:CRYPTO_store_u32_be
Unexecuted instantiation: urandom.c:CRYPTO_store_u32_be
Unexecuted instantiation: a_bitstr.c:CRYPTO_store_u32_be
Unexecuted instantiation: a_object.c:CRYPTO_store_u32_be
Unexecuted instantiation: asn1_compat.c:CRYPTO_store_u32_be
Unexecuted instantiation: bio.c:CRYPTO_store_u32_be
Unexecuted instantiation: blake2.c:CRYPTO_store_u32_be
Unexecuted instantiation: chacha.c:CRYPTO_store_u32_be
Unexecuted instantiation: des.c:CRYPTO_store_u32_be
Unexecuted instantiation: ec_asn1.c:CRYPTO_store_u32_be
Unexecuted instantiation: lhash.c:CRYPTO_store_u32_be
Unexecuted instantiation: tasn_dec.c:CRYPTO_store_u32_be
Unexecuted instantiation: tasn_enc.c:CRYPTO_store_u32_be
Unexecuted instantiation: tasn_new.c:CRYPTO_store_u32_be
Unexecuted instantiation: tasn_utl.c:CRYPTO_store_u32_be
Unexecuted instantiation: pool.c:CRYPTO_store_u32_be
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_store_u32_be
Unexecuted instantiation: cpu_intel.c:CRYPTO_store_u32_be
1127
1128
7.88M
static inline uint64_t CRYPTO_load_u64_le(const void *in) {
1129
7.88M
  uint64_t v;
1130
7.88M
  OPENSSL_memcpy(&v, in, sizeof(v));
1131
7.88M
  return v;
1132
7.88M
}
Unexecuted instantiation: a_int.c:CRYPTO_load_u64_le
Unexecuted instantiation: asn1_lib.c:CRYPTO_load_u64_le
Unexecuted instantiation: bcm.c:CRYPTO_load_u64_le
Unexecuted instantiation: cbb.c:CRYPTO_load_u64_le
Unexecuted instantiation: cbs.c:CRYPTO_load_u64_le
Unexecuted instantiation: convert.c:CRYPTO_load_u64_le
Unexecuted instantiation: crypto.c:CRYPTO_load_u64_le
Unexecuted instantiation: curve25519.c:CRYPTO_load_u64_le
Unexecuted instantiation: digest_extra.c:CRYPTO_load_u64_le
Unexecuted instantiation: dsa.c:CRYPTO_load_u64_le
Unexecuted instantiation: dsa_asn1.c:CRYPTO_load_u64_le
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_load_u64_le
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_load_u64_le
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_load_u64_le
Unexecuted instantiation: e_des.c:CRYPTO_load_u64_le
Unexecuted instantiation: e_rc2.c:CRYPTO_load_u64_le
Unexecuted instantiation: e_rc4.c:CRYPTO_load_u64_le
Unexecuted instantiation: e_tls.c:CRYPTO_load_u64_le
Unexecuted instantiation: ecdh_extra.c:CRYPTO_load_u64_le
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_load_u64_le
Unexecuted instantiation: engine.c:CRYPTO_load_u64_le
Unexecuted instantiation: err.c:CRYPTO_load_u64_le
Unexecuted instantiation: evp.c:CRYPTO_load_u64_le
Unexecuted instantiation: evp_ctx.c:CRYPTO_load_u64_le
Unexecuted instantiation: ex_data.c:CRYPTO_load_u64_le
Unexecuted instantiation: file.c:CRYPTO_load_u64_le
Unexecuted instantiation: fork_detect.c:CRYPTO_load_u64_le
Unexecuted instantiation: forkunsafe.c:CRYPTO_load_u64_le
Unexecuted instantiation: md4.c:CRYPTO_load_u64_le
Unexecuted instantiation: md5.c:CRYPTO_load_u64_le
Unexecuted instantiation: mem.c:CRYPTO_load_u64_le
Unexecuted instantiation: obj.c:CRYPTO_load_u64_le
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_load_u64_le
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_load_u64_le
Unexecuted instantiation: p_ec.c:CRYPTO_load_u64_le
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_load_u64_le
Unexecuted instantiation: p_hkdf.c:CRYPTO_load_u64_le
Unexecuted instantiation: p_rsa.c:CRYPTO_load_u64_le
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_load_u64_le
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_load_u64_le
Unexecuted instantiation: pbkdf.c:CRYPTO_load_u64_le
poly1305_vec.c:CRYPTO_load_u64_le
Line
Count
Source
1128
642
static inline uint64_t CRYPTO_load_u64_le(const void *in) {
1129
642
  uint64_t v;
1130
642
  OPENSSL_memcpy(&v, in, sizeof(v));
1131
642
  return v;
1132
642
}
Unexecuted instantiation: refcount.c:CRYPTO_load_u64_le
Unexecuted instantiation: rsa_asn1.c:CRYPTO_load_u64_le
Unexecuted instantiation: rsa_crypt.c:CRYPTO_load_u64_le
Unexecuted instantiation: scrypt.c:CRYPTO_load_u64_le
Unexecuted instantiation: siphash.c:CRYPTO_load_u64_le
Unexecuted instantiation: stack.c:CRYPTO_load_u64_le
Unexecuted instantiation: thread_pthread.c:CRYPTO_load_u64_le
Unexecuted instantiation: tls_cbc.c:CRYPTO_load_u64_le
Unexecuted instantiation: urandom.c:CRYPTO_load_u64_le
Unexecuted instantiation: a_bitstr.c:CRYPTO_load_u64_le
Unexecuted instantiation: a_object.c:CRYPTO_load_u64_le
Unexecuted instantiation: asn1_compat.c:CRYPTO_load_u64_le
Unexecuted instantiation: bio.c:CRYPTO_load_u64_le
blake2.c:CRYPTO_load_u64_le
Line
Count
Source
1128
7.88M
static inline uint64_t CRYPTO_load_u64_le(const void *in) {
1129
7.88M
  uint64_t v;
1130
7.88M
  OPENSSL_memcpy(&v, in, sizeof(v));
1131
7.88M
  return v;
1132
7.88M
}
Unexecuted instantiation: chacha.c:CRYPTO_load_u64_le
Unexecuted instantiation: des.c:CRYPTO_load_u64_le
Unexecuted instantiation: ec_asn1.c:CRYPTO_load_u64_le
Unexecuted instantiation: lhash.c:CRYPTO_load_u64_le
Unexecuted instantiation: tasn_dec.c:CRYPTO_load_u64_le
Unexecuted instantiation: tasn_enc.c:CRYPTO_load_u64_le
Unexecuted instantiation: tasn_new.c:CRYPTO_load_u64_le
Unexecuted instantiation: tasn_utl.c:CRYPTO_load_u64_le
Unexecuted instantiation: pool.c:CRYPTO_load_u64_le
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_load_u64_le
Unexecuted instantiation: cpu_intel.c:CRYPTO_load_u64_le
1133
1134
304
static inline void CRYPTO_store_u64_le(void *out, uint64_t v) {
1135
304
  OPENSSL_memcpy(out, &v, sizeof(v));
1136
304
}
Unexecuted instantiation: a_int.c:CRYPTO_store_u64_le
Unexecuted instantiation: asn1_lib.c:CRYPTO_store_u64_le
Unexecuted instantiation: bcm.c:CRYPTO_store_u64_le
Unexecuted instantiation: cbb.c:CRYPTO_store_u64_le
Unexecuted instantiation: cbs.c:CRYPTO_store_u64_le
Unexecuted instantiation: convert.c:CRYPTO_store_u64_le
Unexecuted instantiation: crypto.c:CRYPTO_store_u64_le
Unexecuted instantiation: curve25519.c:CRYPTO_store_u64_le
Unexecuted instantiation: digest_extra.c:CRYPTO_store_u64_le
Unexecuted instantiation: dsa.c:CRYPTO_store_u64_le
Unexecuted instantiation: dsa_asn1.c:CRYPTO_store_u64_le
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_store_u64_le
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_store_u64_le
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_store_u64_le
Unexecuted instantiation: e_des.c:CRYPTO_store_u64_le
Unexecuted instantiation: e_rc2.c:CRYPTO_store_u64_le
Unexecuted instantiation: e_rc4.c:CRYPTO_store_u64_le
Unexecuted instantiation: e_tls.c:CRYPTO_store_u64_le
Unexecuted instantiation: ecdh_extra.c:CRYPTO_store_u64_le
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_store_u64_le
Unexecuted instantiation: engine.c:CRYPTO_store_u64_le
Unexecuted instantiation: err.c:CRYPTO_store_u64_le
Unexecuted instantiation: evp.c:CRYPTO_store_u64_le
Unexecuted instantiation: evp_ctx.c:CRYPTO_store_u64_le
Unexecuted instantiation: ex_data.c:CRYPTO_store_u64_le
Unexecuted instantiation: file.c:CRYPTO_store_u64_le
Unexecuted instantiation: fork_detect.c:CRYPTO_store_u64_le
Unexecuted instantiation: forkunsafe.c:CRYPTO_store_u64_le
Unexecuted instantiation: md4.c:CRYPTO_store_u64_le
Unexecuted instantiation: md5.c:CRYPTO_store_u64_le
Unexecuted instantiation: mem.c:CRYPTO_store_u64_le
Unexecuted instantiation: obj.c:CRYPTO_store_u64_le
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_store_u64_le
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_store_u64_le
Unexecuted instantiation: p_ec.c:CRYPTO_store_u64_le
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_store_u64_le
Unexecuted instantiation: p_hkdf.c:CRYPTO_store_u64_le
Unexecuted instantiation: p_rsa.c:CRYPTO_store_u64_le
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_store_u64_le
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_store_u64_le
Unexecuted instantiation: pbkdf.c:CRYPTO_store_u64_le
poly1305_vec.c:CRYPTO_store_u64_le
Line
Count
Source
1134
304
static inline void CRYPTO_store_u64_le(void *out, uint64_t v) {
1135
304
  OPENSSL_memcpy(out, &v, sizeof(v));
1136
304
}
Unexecuted instantiation: refcount.c:CRYPTO_store_u64_le
Unexecuted instantiation: rsa_asn1.c:CRYPTO_store_u64_le
Unexecuted instantiation: rsa_crypt.c:CRYPTO_store_u64_le
Unexecuted instantiation: scrypt.c:CRYPTO_store_u64_le
Unexecuted instantiation: siphash.c:CRYPTO_store_u64_le
Unexecuted instantiation: stack.c:CRYPTO_store_u64_le
Unexecuted instantiation: thread_pthread.c:CRYPTO_store_u64_le
Unexecuted instantiation: tls_cbc.c:CRYPTO_store_u64_le
Unexecuted instantiation: urandom.c:CRYPTO_store_u64_le
Unexecuted instantiation: a_bitstr.c:CRYPTO_store_u64_le
Unexecuted instantiation: a_object.c:CRYPTO_store_u64_le
Unexecuted instantiation: asn1_compat.c:CRYPTO_store_u64_le
Unexecuted instantiation: bio.c:CRYPTO_store_u64_le
Unexecuted instantiation: blake2.c:CRYPTO_store_u64_le
Unexecuted instantiation: chacha.c:CRYPTO_store_u64_le
Unexecuted instantiation: des.c:CRYPTO_store_u64_le
Unexecuted instantiation: ec_asn1.c:CRYPTO_store_u64_le
Unexecuted instantiation: lhash.c:CRYPTO_store_u64_le
Unexecuted instantiation: tasn_dec.c:CRYPTO_store_u64_le
Unexecuted instantiation: tasn_enc.c:CRYPTO_store_u64_le
Unexecuted instantiation: tasn_new.c:CRYPTO_store_u64_le
Unexecuted instantiation: tasn_utl.c:CRYPTO_store_u64_le
Unexecuted instantiation: pool.c:CRYPTO_store_u64_le
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_store_u64_le
Unexecuted instantiation: cpu_intel.c:CRYPTO_store_u64_le
1137
1138
2.10M
static inline uint64_t CRYPTO_load_u64_be(const void *ptr) {
1139
2.10M
  uint64_t ret;
1140
2.10M
  OPENSSL_memcpy(&ret, ptr, sizeof(ret));
1141
2.10M
  return CRYPTO_bswap8(ret);
1142
2.10M
}
Unexecuted instantiation: a_int.c:CRYPTO_load_u64_be
Unexecuted instantiation: asn1_lib.c:CRYPTO_load_u64_be
bcm.c:CRYPTO_load_u64_be
Line
Count
Source
1138
2.10M
static inline uint64_t CRYPTO_load_u64_be(const void *ptr) {
1139
2.10M
  uint64_t ret;
1140
2.10M
  OPENSSL_memcpy(&ret, ptr, sizeof(ret));
1141
2.10M
  return CRYPTO_bswap8(ret);
1142
2.10M
}
Unexecuted instantiation: cbb.c:CRYPTO_load_u64_be
Unexecuted instantiation: cbs.c:CRYPTO_load_u64_be
Unexecuted instantiation: convert.c:CRYPTO_load_u64_be
Unexecuted instantiation: crypto.c:CRYPTO_load_u64_be
Unexecuted instantiation: curve25519.c:CRYPTO_load_u64_be
Unexecuted instantiation: digest_extra.c:CRYPTO_load_u64_be
Unexecuted instantiation: dsa.c:CRYPTO_load_u64_be
Unexecuted instantiation: dsa_asn1.c:CRYPTO_load_u64_be
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_load_u64_be
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_load_u64_be
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_load_u64_be
Unexecuted instantiation: e_des.c:CRYPTO_load_u64_be
Unexecuted instantiation: e_rc2.c:CRYPTO_load_u64_be
Unexecuted instantiation: e_rc4.c:CRYPTO_load_u64_be
Unexecuted instantiation: e_tls.c:CRYPTO_load_u64_be
Unexecuted instantiation: ecdh_extra.c:CRYPTO_load_u64_be
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_load_u64_be
Unexecuted instantiation: engine.c:CRYPTO_load_u64_be
Unexecuted instantiation: err.c:CRYPTO_load_u64_be
Unexecuted instantiation: evp.c:CRYPTO_load_u64_be
Unexecuted instantiation: evp_ctx.c:CRYPTO_load_u64_be
Unexecuted instantiation: ex_data.c:CRYPTO_load_u64_be
Unexecuted instantiation: file.c:CRYPTO_load_u64_be
Unexecuted instantiation: fork_detect.c:CRYPTO_load_u64_be
Unexecuted instantiation: forkunsafe.c:CRYPTO_load_u64_be
Unexecuted instantiation: md4.c:CRYPTO_load_u64_be
Unexecuted instantiation: md5.c:CRYPTO_load_u64_be
Unexecuted instantiation: mem.c:CRYPTO_load_u64_be
Unexecuted instantiation: obj.c:CRYPTO_load_u64_be
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_load_u64_be
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_load_u64_be
Unexecuted instantiation: p_ec.c:CRYPTO_load_u64_be
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_load_u64_be
Unexecuted instantiation: p_hkdf.c:CRYPTO_load_u64_be
Unexecuted instantiation: p_rsa.c:CRYPTO_load_u64_be
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_load_u64_be
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_load_u64_be
Unexecuted instantiation: pbkdf.c:CRYPTO_load_u64_be
Unexecuted instantiation: poly1305_vec.c:CRYPTO_load_u64_be
Unexecuted instantiation: refcount.c:CRYPTO_load_u64_be
Unexecuted instantiation: rsa_asn1.c:CRYPTO_load_u64_be
Unexecuted instantiation: rsa_crypt.c:CRYPTO_load_u64_be
Unexecuted instantiation: scrypt.c:CRYPTO_load_u64_be
Unexecuted instantiation: siphash.c:CRYPTO_load_u64_be
Unexecuted instantiation: stack.c:CRYPTO_load_u64_be
Unexecuted instantiation: thread_pthread.c:CRYPTO_load_u64_be
Unexecuted instantiation: tls_cbc.c:CRYPTO_load_u64_be
Unexecuted instantiation: urandom.c:CRYPTO_load_u64_be
Unexecuted instantiation: a_bitstr.c:CRYPTO_load_u64_be
Unexecuted instantiation: a_object.c:CRYPTO_load_u64_be
Unexecuted instantiation: asn1_compat.c:CRYPTO_load_u64_be
Unexecuted instantiation: bio.c:CRYPTO_load_u64_be
Unexecuted instantiation: blake2.c:CRYPTO_load_u64_be
Unexecuted instantiation: chacha.c:CRYPTO_load_u64_be
Unexecuted instantiation: des.c:CRYPTO_load_u64_be
Unexecuted instantiation: ec_asn1.c:CRYPTO_load_u64_be
Unexecuted instantiation: lhash.c:CRYPTO_load_u64_be
Unexecuted instantiation: tasn_dec.c:CRYPTO_load_u64_be
Unexecuted instantiation: tasn_enc.c:CRYPTO_load_u64_be
Unexecuted instantiation: tasn_new.c:CRYPTO_load_u64_be
Unexecuted instantiation: tasn_utl.c:CRYPTO_load_u64_be
Unexecuted instantiation: pool.c:CRYPTO_load_u64_be
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_load_u64_be
Unexecuted instantiation: cpu_intel.c:CRYPTO_load_u64_be
1143
1144
59.7k
static inline void CRYPTO_store_u64_be(void *out, uint64_t v) {
1145
59.7k
  v = CRYPTO_bswap8(v);
1146
59.7k
  OPENSSL_memcpy(out, &v, sizeof(v));
1147
59.7k
}
Unexecuted instantiation: a_int.c:CRYPTO_store_u64_be
Unexecuted instantiation: asn1_lib.c:CRYPTO_store_u64_be
bcm.c:CRYPTO_store_u64_be
Line
Count
Source
1144
59.7k
static inline void CRYPTO_store_u64_be(void *out, uint64_t v) {
1145
59.7k
  v = CRYPTO_bswap8(v);
1146
59.7k
  OPENSSL_memcpy(out, &v, sizeof(v));
1147
59.7k
}
Unexecuted instantiation: cbb.c:CRYPTO_store_u64_be
Unexecuted instantiation: cbs.c:CRYPTO_store_u64_be
Unexecuted instantiation: convert.c:CRYPTO_store_u64_be
Unexecuted instantiation: crypto.c:CRYPTO_store_u64_be
Unexecuted instantiation: curve25519.c:CRYPTO_store_u64_be
Unexecuted instantiation: digest_extra.c:CRYPTO_store_u64_be
Unexecuted instantiation: dsa.c:CRYPTO_store_u64_be
Unexecuted instantiation: dsa_asn1.c:CRYPTO_store_u64_be
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_store_u64_be
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_store_u64_be
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_store_u64_be
Unexecuted instantiation: e_des.c:CRYPTO_store_u64_be
Unexecuted instantiation: e_rc2.c:CRYPTO_store_u64_be
Unexecuted instantiation: e_rc4.c:CRYPTO_store_u64_be
Unexecuted instantiation: e_tls.c:CRYPTO_store_u64_be
Unexecuted instantiation: ecdh_extra.c:CRYPTO_store_u64_be
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_store_u64_be
Unexecuted instantiation: engine.c:CRYPTO_store_u64_be
Unexecuted instantiation: err.c:CRYPTO_store_u64_be
Unexecuted instantiation: evp.c:CRYPTO_store_u64_be
Unexecuted instantiation: evp_ctx.c:CRYPTO_store_u64_be
Unexecuted instantiation: ex_data.c:CRYPTO_store_u64_be
Unexecuted instantiation: file.c:CRYPTO_store_u64_be
Unexecuted instantiation: fork_detect.c:CRYPTO_store_u64_be
Unexecuted instantiation: forkunsafe.c:CRYPTO_store_u64_be
Unexecuted instantiation: md4.c:CRYPTO_store_u64_be
Unexecuted instantiation: md5.c:CRYPTO_store_u64_be
Unexecuted instantiation: mem.c:CRYPTO_store_u64_be
Unexecuted instantiation: obj.c:CRYPTO_store_u64_be
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_store_u64_be
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_store_u64_be
Unexecuted instantiation: p_ec.c:CRYPTO_store_u64_be
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_store_u64_be
Unexecuted instantiation: p_hkdf.c:CRYPTO_store_u64_be
Unexecuted instantiation: p_rsa.c:CRYPTO_store_u64_be
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_store_u64_be
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_store_u64_be
Unexecuted instantiation: pbkdf.c:CRYPTO_store_u64_be
Unexecuted instantiation: poly1305_vec.c:CRYPTO_store_u64_be
Unexecuted instantiation: refcount.c:CRYPTO_store_u64_be
Unexecuted instantiation: rsa_asn1.c:CRYPTO_store_u64_be
Unexecuted instantiation: rsa_crypt.c:CRYPTO_store_u64_be
Unexecuted instantiation: scrypt.c:CRYPTO_store_u64_be
Unexecuted instantiation: siphash.c:CRYPTO_store_u64_be
Unexecuted instantiation: stack.c:CRYPTO_store_u64_be
Unexecuted instantiation: thread_pthread.c:CRYPTO_store_u64_be
Unexecuted instantiation: tls_cbc.c:CRYPTO_store_u64_be
Unexecuted instantiation: urandom.c:CRYPTO_store_u64_be
Unexecuted instantiation: a_bitstr.c:CRYPTO_store_u64_be
Unexecuted instantiation: a_object.c:CRYPTO_store_u64_be
Unexecuted instantiation: asn1_compat.c:CRYPTO_store_u64_be
Unexecuted instantiation: bio.c:CRYPTO_store_u64_be
Unexecuted instantiation: blake2.c:CRYPTO_store_u64_be
Unexecuted instantiation: chacha.c:CRYPTO_store_u64_be
Unexecuted instantiation: des.c:CRYPTO_store_u64_be
Unexecuted instantiation: ec_asn1.c:CRYPTO_store_u64_be
Unexecuted instantiation: lhash.c:CRYPTO_store_u64_be
Unexecuted instantiation: tasn_dec.c:CRYPTO_store_u64_be
Unexecuted instantiation: tasn_enc.c:CRYPTO_store_u64_be
Unexecuted instantiation: tasn_new.c:CRYPTO_store_u64_be
Unexecuted instantiation: tasn_utl.c:CRYPTO_store_u64_be
Unexecuted instantiation: pool.c:CRYPTO_store_u64_be
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_store_u64_be
Unexecuted instantiation: cpu_intel.c:CRYPTO_store_u64_be
1148
1149
20.9k
static inline crypto_word_t CRYPTO_load_word_le(const void *in) {
1150
20.9k
  crypto_word_t v;
1151
20.9k
  OPENSSL_memcpy(&v, in, sizeof(v));
1152
20.9k
  return v;
1153
20.9k
}
Unexecuted instantiation: a_int.c:CRYPTO_load_word_le
Unexecuted instantiation: asn1_lib.c:CRYPTO_load_word_le
bcm.c:CRYPTO_load_word_le
Line
Count
Source
1149
20.9k
static inline crypto_word_t CRYPTO_load_word_le(const void *in) {
1150
20.9k
  crypto_word_t v;
1151
20.9k
  OPENSSL_memcpy(&v, in, sizeof(v));
1152
20.9k
  return v;
1153
20.9k
}
Unexecuted instantiation: cbb.c:CRYPTO_load_word_le
Unexecuted instantiation: cbs.c:CRYPTO_load_word_le
Unexecuted instantiation: convert.c:CRYPTO_load_word_le
Unexecuted instantiation: crypto.c:CRYPTO_load_word_le
Unexecuted instantiation: curve25519.c:CRYPTO_load_word_le
Unexecuted instantiation: digest_extra.c:CRYPTO_load_word_le
Unexecuted instantiation: dsa.c:CRYPTO_load_word_le
Unexecuted instantiation: dsa_asn1.c:CRYPTO_load_word_le
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_load_word_le
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_load_word_le
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_load_word_le
Unexecuted instantiation: e_des.c:CRYPTO_load_word_le
Unexecuted instantiation: e_rc2.c:CRYPTO_load_word_le
Unexecuted instantiation: e_rc4.c:CRYPTO_load_word_le
Unexecuted instantiation: e_tls.c:CRYPTO_load_word_le
Unexecuted instantiation: ecdh_extra.c:CRYPTO_load_word_le
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_load_word_le
Unexecuted instantiation: engine.c:CRYPTO_load_word_le
Unexecuted instantiation: err.c:CRYPTO_load_word_le
Unexecuted instantiation: evp.c:CRYPTO_load_word_le
Unexecuted instantiation: evp_ctx.c:CRYPTO_load_word_le
Unexecuted instantiation: ex_data.c:CRYPTO_load_word_le
Unexecuted instantiation: file.c:CRYPTO_load_word_le
Unexecuted instantiation: fork_detect.c:CRYPTO_load_word_le
Unexecuted instantiation: forkunsafe.c:CRYPTO_load_word_le
Unexecuted instantiation: md4.c:CRYPTO_load_word_le
Unexecuted instantiation: md5.c:CRYPTO_load_word_le
Unexecuted instantiation: mem.c:CRYPTO_load_word_le
Unexecuted instantiation: obj.c:CRYPTO_load_word_le
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_load_word_le
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_load_word_le
Unexecuted instantiation: p_ec.c:CRYPTO_load_word_le
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_load_word_le
Unexecuted instantiation: p_hkdf.c:CRYPTO_load_word_le
Unexecuted instantiation: p_rsa.c:CRYPTO_load_word_le
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_load_word_le
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_load_word_le
Unexecuted instantiation: pbkdf.c:CRYPTO_load_word_le
Unexecuted instantiation: poly1305_vec.c:CRYPTO_load_word_le
Unexecuted instantiation: refcount.c:CRYPTO_load_word_le
Unexecuted instantiation: rsa_asn1.c:CRYPTO_load_word_le
Unexecuted instantiation: rsa_crypt.c:CRYPTO_load_word_le
Unexecuted instantiation: scrypt.c:CRYPTO_load_word_le
Unexecuted instantiation: siphash.c:CRYPTO_load_word_le
Unexecuted instantiation: stack.c:CRYPTO_load_word_le
Unexecuted instantiation: thread_pthread.c:CRYPTO_load_word_le
Unexecuted instantiation: tls_cbc.c:CRYPTO_load_word_le
Unexecuted instantiation: urandom.c:CRYPTO_load_word_le
Unexecuted instantiation: a_bitstr.c:CRYPTO_load_word_le
Unexecuted instantiation: a_object.c:CRYPTO_load_word_le
Unexecuted instantiation: asn1_compat.c:CRYPTO_load_word_le
Unexecuted instantiation: bio.c:CRYPTO_load_word_le
Unexecuted instantiation: blake2.c:CRYPTO_load_word_le
Unexecuted instantiation: chacha.c:CRYPTO_load_word_le
Unexecuted instantiation: des.c:CRYPTO_load_word_le
Unexecuted instantiation: ec_asn1.c:CRYPTO_load_word_le
Unexecuted instantiation: lhash.c:CRYPTO_load_word_le
Unexecuted instantiation: tasn_dec.c:CRYPTO_load_word_le
Unexecuted instantiation: tasn_enc.c:CRYPTO_load_word_le
Unexecuted instantiation: tasn_new.c:CRYPTO_load_word_le
Unexecuted instantiation: tasn_utl.c:CRYPTO_load_word_le
Unexecuted instantiation: pool.c:CRYPTO_load_word_le
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_load_word_le
Unexecuted instantiation: cpu_intel.c:CRYPTO_load_word_le
1154
1155
10.4k
static inline void CRYPTO_store_word_le(void *out, crypto_word_t v) {
1156
10.4k
  OPENSSL_memcpy(out, &v, sizeof(v));
1157
10.4k
}
Unexecuted instantiation: a_int.c:CRYPTO_store_word_le
Unexecuted instantiation: asn1_lib.c:CRYPTO_store_word_le
bcm.c:CRYPTO_store_word_le
Line
Count
Source
1155
10.4k
static inline void CRYPTO_store_word_le(void *out, crypto_word_t v) {
1156
10.4k
  OPENSSL_memcpy(out, &v, sizeof(v));
1157
10.4k
}
Unexecuted instantiation: cbb.c:CRYPTO_store_word_le
Unexecuted instantiation: cbs.c:CRYPTO_store_word_le
Unexecuted instantiation: convert.c:CRYPTO_store_word_le
Unexecuted instantiation: crypto.c:CRYPTO_store_word_le
Unexecuted instantiation: curve25519.c:CRYPTO_store_word_le
Unexecuted instantiation: digest_extra.c:CRYPTO_store_word_le
Unexecuted instantiation: dsa.c:CRYPTO_store_word_le
Unexecuted instantiation: dsa_asn1.c:CRYPTO_store_word_le
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_store_word_le
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_store_word_le
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_store_word_le
Unexecuted instantiation: e_des.c:CRYPTO_store_word_le
Unexecuted instantiation: e_rc2.c:CRYPTO_store_word_le
Unexecuted instantiation: e_rc4.c:CRYPTO_store_word_le
Unexecuted instantiation: e_tls.c:CRYPTO_store_word_le
Unexecuted instantiation: ecdh_extra.c:CRYPTO_store_word_le
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_store_word_le
Unexecuted instantiation: engine.c:CRYPTO_store_word_le
Unexecuted instantiation: err.c:CRYPTO_store_word_le
Unexecuted instantiation: evp.c:CRYPTO_store_word_le
Unexecuted instantiation: evp_ctx.c:CRYPTO_store_word_le
Unexecuted instantiation: ex_data.c:CRYPTO_store_word_le
Unexecuted instantiation: file.c:CRYPTO_store_word_le
Unexecuted instantiation: fork_detect.c:CRYPTO_store_word_le
Unexecuted instantiation: forkunsafe.c:CRYPTO_store_word_le
Unexecuted instantiation: md4.c:CRYPTO_store_word_le
Unexecuted instantiation: md5.c:CRYPTO_store_word_le
Unexecuted instantiation: mem.c:CRYPTO_store_word_le
Unexecuted instantiation: obj.c:CRYPTO_store_word_le
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_store_word_le
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_store_word_le
Unexecuted instantiation: p_ec.c:CRYPTO_store_word_le
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_store_word_le
Unexecuted instantiation: p_hkdf.c:CRYPTO_store_word_le
Unexecuted instantiation: p_rsa.c:CRYPTO_store_word_le
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_store_word_le
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_store_word_le
Unexecuted instantiation: pbkdf.c:CRYPTO_store_word_le
Unexecuted instantiation: poly1305_vec.c:CRYPTO_store_word_le
Unexecuted instantiation: refcount.c:CRYPTO_store_word_le
Unexecuted instantiation: rsa_asn1.c:CRYPTO_store_word_le
Unexecuted instantiation: rsa_crypt.c:CRYPTO_store_word_le
Unexecuted instantiation: scrypt.c:CRYPTO_store_word_le
Unexecuted instantiation: siphash.c:CRYPTO_store_word_le
Unexecuted instantiation: stack.c:CRYPTO_store_word_le
Unexecuted instantiation: thread_pthread.c:CRYPTO_store_word_le
Unexecuted instantiation: tls_cbc.c:CRYPTO_store_word_le
Unexecuted instantiation: urandom.c:CRYPTO_store_word_le
Unexecuted instantiation: a_bitstr.c:CRYPTO_store_word_le
Unexecuted instantiation: a_object.c:CRYPTO_store_word_le
Unexecuted instantiation: asn1_compat.c:CRYPTO_store_word_le
Unexecuted instantiation: bio.c:CRYPTO_store_word_le
Unexecuted instantiation: blake2.c:CRYPTO_store_word_le
Unexecuted instantiation: chacha.c:CRYPTO_store_word_le
Unexecuted instantiation: des.c:CRYPTO_store_word_le
Unexecuted instantiation: ec_asn1.c:CRYPTO_store_word_le
Unexecuted instantiation: lhash.c:CRYPTO_store_word_le
Unexecuted instantiation: tasn_dec.c:CRYPTO_store_word_le
Unexecuted instantiation: tasn_enc.c:CRYPTO_store_word_le
Unexecuted instantiation: tasn_new.c:CRYPTO_store_word_le
Unexecuted instantiation: tasn_utl.c:CRYPTO_store_word_le
Unexecuted instantiation: pool.c:CRYPTO_store_word_le
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_store_word_le
Unexecuted instantiation: cpu_intel.c:CRYPTO_store_word_le
1158
1159
284k
static inline crypto_word_t CRYPTO_load_word_be(const void *in) {
1160
284k
  crypto_word_t v;
1161
284k
  OPENSSL_memcpy(&v, in, sizeof(v));
1162
284k
#if defined(OPENSSL_64_BIT)
1163
284k
  static_assert(sizeof(v) == 8, "crypto_word_t has unexpected size");
1164
284k
  return CRYPTO_bswap8(v);
1165
#else
1166
  static_assert(sizeof(v) == 4, "crypto_word_t has unexpected size");
1167
  return CRYPTO_bswap4(v);
1168
#endif
1169
284k
}
Unexecuted instantiation: a_int.c:CRYPTO_load_word_be
Unexecuted instantiation: asn1_lib.c:CRYPTO_load_word_be
bcm.c:CRYPTO_load_word_be
Line
Count
Source
1159
284k
static inline crypto_word_t CRYPTO_load_word_be(const void *in) {
1160
284k
  crypto_word_t v;
1161
284k
  OPENSSL_memcpy(&v, in, sizeof(v));
1162
284k
#if defined(OPENSSL_64_BIT)
1163
284k
  static_assert(sizeof(v) == 8, "crypto_word_t has unexpected size");
1164
284k
  return CRYPTO_bswap8(v);
1165
#else
1166
  static_assert(sizeof(v) == 4, "crypto_word_t has unexpected size");
1167
  return CRYPTO_bswap4(v);
1168
#endif
1169
284k
}
Unexecuted instantiation: cbb.c:CRYPTO_load_word_be
Unexecuted instantiation: cbs.c:CRYPTO_load_word_be
Unexecuted instantiation: convert.c:CRYPTO_load_word_be
Unexecuted instantiation: crypto.c:CRYPTO_load_word_be
Unexecuted instantiation: curve25519.c:CRYPTO_load_word_be
Unexecuted instantiation: digest_extra.c:CRYPTO_load_word_be
Unexecuted instantiation: dsa.c:CRYPTO_load_word_be
Unexecuted instantiation: dsa_asn1.c:CRYPTO_load_word_be
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_load_word_be
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_load_word_be
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_load_word_be
Unexecuted instantiation: e_des.c:CRYPTO_load_word_be
Unexecuted instantiation: e_rc2.c:CRYPTO_load_word_be
Unexecuted instantiation: e_rc4.c:CRYPTO_load_word_be
Unexecuted instantiation: e_tls.c:CRYPTO_load_word_be
Unexecuted instantiation: ecdh_extra.c:CRYPTO_load_word_be
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_load_word_be
Unexecuted instantiation: engine.c:CRYPTO_load_word_be
Unexecuted instantiation: err.c:CRYPTO_load_word_be
Unexecuted instantiation: evp.c:CRYPTO_load_word_be
Unexecuted instantiation: evp_ctx.c:CRYPTO_load_word_be
Unexecuted instantiation: ex_data.c:CRYPTO_load_word_be
Unexecuted instantiation: file.c:CRYPTO_load_word_be
Unexecuted instantiation: fork_detect.c:CRYPTO_load_word_be
Unexecuted instantiation: forkunsafe.c:CRYPTO_load_word_be
Unexecuted instantiation: md4.c:CRYPTO_load_word_be
Unexecuted instantiation: md5.c:CRYPTO_load_word_be
Unexecuted instantiation: mem.c:CRYPTO_load_word_be
Unexecuted instantiation: obj.c:CRYPTO_load_word_be
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_load_word_be
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_load_word_be
Unexecuted instantiation: p_ec.c:CRYPTO_load_word_be
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_load_word_be
Unexecuted instantiation: p_hkdf.c:CRYPTO_load_word_be
Unexecuted instantiation: p_rsa.c:CRYPTO_load_word_be
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_load_word_be
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_load_word_be
Unexecuted instantiation: pbkdf.c:CRYPTO_load_word_be
Unexecuted instantiation: poly1305_vec.c:CRYPTO_load_word_be
Unexecuted instantiation: refcount.c:CRYPTO_load_word_be
Unexecuted instantiation: rsa_asn1.c:CRYPTO_load_word_be
Unexecuted instantiation: rsa_crypt.c:CRYPTO_load_word_be
Unexecuted instantiation: scrypt.c:CRYPTO_load_word_be
Unexecuted instantiation: siphash.c:CRYPTO_load_word_be
Unexecuted instantiation: stack.c:CRYPTO_load_word_be
Unexecuted instantiation: thread_pthread.c:CRYPTO_load_word_be
Unexecuted instantiation: tls_cbc.c:CRYPTO_load_word_be
Unexecuted instantiation: urandom.c:CRYPTO_load_word_be
Unexecuted instantiation: a_bitstr.c:CRYPTO_load_word_be
Unexecuted instantiation: a_object.c:CRYPTO_load_word_be
Unexecuted instantiation: asn1_compat.c:CRYPTO_load_word_be
Unexecuted instantiation: bio.c:CRYPTO_load_word_be
Unexecuted instantiation: blake2.c:CRYPTO_load_word_be
Unexecuted instantiation: chacha.c:CRYPTO_load_word_be
Unexecuted instantiation: des.c:CRYPTO_load_word_be
Unexecuted instantiation: ec_asn1.c:CRYPTO_load_word_be
Unexecuted instantiation: lhash.c:CRYPTO_load_word_be
Unexecuted instantiation: tasn_dec.c:CRYPTO_load_word_be
Unexecuted instantiation: tasn_enc.c:CRYPTO_load_word_be
Unexecuted instantiation: tasn_new.c:CRYPTO_load_word_be
Unexecuted instantiation: tasn_utl.c:CRYPTO_load_word_be
Unexecuted instantiation: pool.c:CRYPTO_load_word_be
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_load_word_be
Unexecuted instantiation: cpu_intel.c:CRYPTO_load_word_be
1170
1171
1172
// Bit rotation functions.
1173
//
1174
// Note these functions use |(-shift) & 31|, etc., because shifting by the bit
1175
// width is undefined. Both Clang and GCC recognize this pattern as a rotation,
1176
// but MSVC does not. Instead, we call MSVC's built-in functions.
1177
1178
67.0M
static inline uint32_t CRYPTO_rotl_u32(uint32_t value, int shift) {
1179
#if defined(_MSC_VER)
1180
  return _rotl(value, shift);
1181
#else
1182
67.0M
  return (value << shift) | (value >> ((-shift) & 31));
1183
67.0M
#endif
1184
67.0M
}
Unexecuted instantiation: a_int.c:CRYPTO_rotl_u32
Unexecuted instantiation: asn1_lib.c:CRYPTO_rotl_u32
bcm.c:CRYPTO_rotl_u32
Line
Count
Source
1178
51.0M
static inline uint32_t CRYPTO_rotl_u32(uint32_t value, int shift) {
1179
#if defined(_MSC_VER)
1180
  return _rotl(value, shift);
1181
#else
1182
51.0M
  return (value << shift) | (value >> ((-shift) & 31));
1183
51.0M
#endif
1184
51.0M
}
Unexecuted instantiation: cbb.c:CRYPTO_rotl_u32
Unexecuted instantiation: cbs.c:CRYPTO_rotl_u32
Unexecuted instantiation: convert.c:CRYPTO_rotl_u32
Unexecuted instantiation: crypto.c:CRYPTO_rotl_u32
Unexecuted instantiation: curve25519.c:CRYPTO_rotl_u32
Unexecuted instantiation: digest_extra.c:CRYPTO_rotl_u32
Unexecuted instantiation: dsa.c:CRYPTO_rotl_u32
Unexecuted instantiation: dsa_asn1.c:CRYPTO_rotl_u32
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_rotl_u32
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_rotl_u32
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_rotl_u32
Unexecuted instantiation: e_des.c:CRYPTO_rotl_u32
Unexecuted instantiation: e_rc2.c:CRYPTO_rotl_u32
Unexecuted instantiation: e_rc4.c:CRYPTO_rotl_u32
Unexecuted instantiation: e_tls.c:CRYPTO_rotl_u32
Unexecuted instantiation: ecdh_extra.c:CRYPTO_rotl_u32
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_rotl_u32
Unexecuted instantiation: engine.c:CRYPTO_rotl_u32
Unexecuted instantiation: err.c:CRYPTO_rotl_u32
Unexecuted instantiation: evp.c:CRYPTO_rotl_u32
Unexecuted instantiation: evp_ctx.c:CRYPTO_rotl_u32
Unexecuted instantiation: ex_data.c:CRYPTO_rotl_u32
Unexecuted instantiation: file.c:CRYPTO_rotl_u32
Unexecuted instantiation: fork_detect.c:CRYPTO_rotl_u32
Unexecuted instantiation: forkunsafe.c:CRYPTO_rotl_u32
md4.c:CRYPTO_rotl_u32
Line
Count
Source
1178
5.27M
static inline uint32_t CRYPTO_rotl_u32(uint32_t value, int shift) {
1179
#if defined(_MSC_VER)
1180
  return _rotl(value, shift);
1181
#else
1182
5.27M
  return (value << shift) | (value >> ((-shift) & 31));
1183
5.27M
#endif
1184
5.27M
}
md5.c:CRYPTO_rotl_u32
Line
Count
Source
1178
9.22M
static inline uint32_t CRYPTO_rotl_u32(uint32_t value, int shift) {
1179
#if defined(_MSC_VER)
1180
  return _rotl(value, shift);
1181
#else
1182
9.22M
  return (value << shift) | (value >> ((-shift) & 31));
1183
9.22M
#endif
1184
9.22M
}
Unexecuted instantiation: mem.c:CRYPTO_rotl_u32
Unexecuted instantiation: obj.c:CRYPTO_rotl_u32
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_rotl_u32
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_rotl_u32
Unexecuted instantiation: p_ec.c:CRYPTO_rotl_u32
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_rotl_u32
Unexecuted instantiation: p_hkdf.c:CRYPTO_rotl_u32
Unexecuted instantiation: p_rsa.c:CRYPTO_rotl_u32
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_rotl_u32
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_rotl_u32
Unexecuted instantiation: pbkdf.c:CRYPTO_rotl_u32
Unexecuted instantiation: poly1305_vec.c:CRYPTO_rotl_u32
Unexecuted instantiation: refcount.c:CRYPTO_rotl_u32
Unexecuted instantiation: rsa_asn1.c:CRYPTO_rotl_u32
Unexecuted instantiation: rsa_crypt.c:CRYPTO_rotl_u32
scrypt.c:CRYPTO_rotl_u32
Line
Count
Source
1178
1.42M
static inline uint32_t CRYPTO_rotl_u32(uint32_t value, int shift) {
1179
#if defined(_MSC_VER)
1180
  return _rotl(value, shift);
1181
#else
1182
1.42M
  return (value << shift) | (value >> ((-shift) & 31));
1183
1.42M
#endif
1184
1.42M
}
Unexecuted instantiation: siphash.c:CRYPTO_rotl_u32
Unexecuted instantiation: stack.c:CRYPTO_rotl_u32
Unexecuted instantiation: thread_pthread.c:CRYPTO_rotl_u32
Unexecuted instantiation: tls_cbc.c:CRYPTO_rotl_u32
Unexecuted instantiation: urandom.c:CRYPTO_rotl_u32
Unexecuted instantiation: a_bitstr.c:CRYPTO_rotl_u32
Unexecuted instantiation: a_object.c:CRYPTO_rotl_u32
Unexecuted instantiation: asn1_compat.c:CRYPTO_rotl_u32
Unexecuted instantiation: bio.c:CRYPTO_rotl_u32
Unexecuted instantiation: blake2.c:CRYPTO_rotl_u32
chacha.c:CRYPTO_rotl_u32
Line
Count
Source
1178
97.2k
static inline uint32_t CRYPTO_rotl_u32(uint32_t value, int shift) {
1179
#if defined(_MSC_VER)
1180
  return _rotl(value, shift);
1181
#else
1182
97.2k
  return (value << shift) | (value >> ((-shift) & 31));
1183
97.2k
#endif
1184
97.2k
}
Unexecuted instantiation: des.c:CRYPTO_rotl_u32
Unexecuted instantiation: ec_asn1.c:CRYPTO_rotl_u32
Unexecuted instantiation: lhash.c:CRYPTO_rotl_u32
Unexecuted instantiation: tasn_dec.c:CRYPTO_rotl_u32
Unexecuted instantiation: tasn_enc.c:CRYPTO_rotl_u32
Unexecuted instantiation: tasn_new.c:CRYPTO_rotl_u32
Unexecuted instantiation: tasn_utl.c:CRYPTO_rotl_u32
Unexecuted instantiation: pool.c:CRYPTO_rotl_u32
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_rotl_u32
Unexecuted instantiation: cpu_intel.c:CRYPTO_rotl_u32
1185
1186
245M
static inline uint32_t CRYPTO_rotr_u32(uint32_t value, int shift) {
1187
#if defined(_MSC_VER)
1188
  return _rotr(value, shift);
1189
#else
1190
245M
  return (value >> shift) | (value << ((-shift) & 31));
1191
245M
#endif
1192
245M
}
Unexecuted instantiation: a_int.c:CRYPTO_rotr_u32
Unexecuted instantiation: asn1_lib.c:CRYPTO_rotr_u32
bcm.c:CRYPTO_rotr_u32
Line
Count
Source
1186
245M
static inline uint32_t CRYPTO_rotr_u32(uint32_t value, int shift) {
1187
#if defined(_MSC_VER)
1188
  return _rotr(value, shift);
1189
#else
1190
245M
  return (value >> shift) | (value << ((-shift) & 31));
1191
245M
#endif
1192
245M
}
Unexecuted instantiation: cbb.c:CRYPTO_rotr_u32
Unexecuted instantiation: cbs.c:CRYPTO_rotr_u32
Unexecuted instantiation: convert.c:CRYPTO_rotr_u32
Unexecuted instantiation: crypto.c:CRYPTO_rotr_u32
Unexecuted instantiation: curve25519.c:CRYPTO_rotr_u32
Unexecuted instantiation: digest_extra.c:CRYPTO_rotr_u32
Unexecuted instantiation: dsa.c:CRYPTO_rotr_u32
Unexecuted instantiation: dsa_asn1.c:CRYPTO_rotr_u32
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_rotr_u32
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_rotr_u32
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_rotr_u32
Unexecuted instantiation: e_des.c:CRYPTO_rotr_u32
Unexecuted instantiation: e_rc2.c:CRYPTO_rotr_u32
Unexecuted instantiation: e_rc4.c:CRYPTO_rotr_u32
Unexecuted instantiation: e_tls.c:CRYPTO_rotr_u32
Unexecuted instantiation: ecdh_extra.c:CRYPTO_rotr_u32
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_rotr_u32
Unexecuted instantiation: engine.c:CRYPTO_rotr_u32
Unexecuted instantiation: err.c:CRYPTO_rotr_u32
Unexecuted instantiation: evp.c:CRYPTO_rotr_u32
Unexecuted instantiation: evp_ctx.c:CRYPTO_rotr_u32
Unexecuted instantiation: ex_data.c:CRYPTO_rotr_u32
Unexecuted instantiation: file.c:CRYPTO_rotr_u32
Unexecuted instantiation: fork_detect.c:CRYPTO_rotr_u32
Unexecuted instantiation: forkunsafe.c:CRYPTO_rotr_u32
Unexecuted instantiation: md4.c:CRYPTO_rotr_u32
Unexecuted instantiation: md5.c:CRYPTO_rotr_u32
Unexecuted instantiation: mem.c:CRYPTO_rotr_u32
Unexecuted instantiation: obj.c:CRYPTO_rotr_u32
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_rotr_u32
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_rotr_u32
Unexecuted instantiation: p_ec.c:CRYPTO_rotr_u32
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_rotr_u32
Unexecuted instantiation: p_hkdf.c:CRYPTO_rotr_u32
Unexecuted instantiation: p_rsa.c:CRYPTO_rotr_u32
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_rotr_u32
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_rotr_u32
Unexecuted instantiation: pbkdf.c:CRYPTO_rotr_u32
Unexecuted instantiation: poly1305_vec.c:CRYPTO_rotr_u32
Unexecuted instantiation: refcount.c:CRYPTO_rotr_u32
Unexecuted instantiation: rsa_asn1.c:CRYPTO_rotr_u32
Unexecuted instantiation: rsa_crypt.c:CRYPTO_rotr_u32
Unexecuted instantiation: scrypt.c:CRYPTO_rotr_u32
Unexecuted instantiation: siphash.c:CRYPTO_rotr_u32
Unexecuted instantiation: stack.c:CRYPTO_rotr_u32
Unexecuted instantiation: thread_pthread.c:CRYPTO_rotr_u32
Unexecuted instantiation: tls_cbc.c:CRYPTO_rotr_u32
Unexecuted instantiation: urandom.c:CRYPTO_rotr_u32
Unexecuted instantiation: a_bitstr.c:CRYPTO_rotr_u32
Unexecuted instantiation: a_object.c:CRYPTO_rotr_u32
Unexecuted instantiation: asn1_compat.c:CRYPTO_rotr_u32
Unexecuted instantiation: bio.c:CRYPTO_rotr_u32
Unexecuted instantiation: blake2.c:CRYPTO_rotr_u32
Unexecuted instantiation: chacha.c:CRYPTO_rotr_u32
des.c:CRYPTO_rotr_u32
Line
Count
Source
1186
140k
static inline uint32_t CRYPTO_rotr_u32(uint32_t value, int shift) {
1187
#if defined(_MSC_VER)
1188
  return _rotr(value, shift);
1189
#else
1190
140k
  return (value >> shift) | (value << ((-shift) & 31));
1191
140k
#endif
1192
140k
}
Unexecuted instantiation: ec_asn1.c:CRYPTO_rotr_u32
Unexecuted instantiation: lhash.c:CRYPTO_rotr_u32
Unexecuted instantiation: tasn_dec.c:CRYPTO_rotr_u32
Unexecuted instantiation: tasn_enc.c:CRYPTO_rotr_u32
Unexecuted instantiation: tasn_new.c:CRYPTO_rotr_u32
Unexecuted instantiation: tasn_utl.c:CRYPTO_rotr_u32
Unexecuted instantiation: pool.c:CRYPTO_rotr_u32
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_rotr_u32
Unexecuted instantiation: cpu_intel.c:CRYPTO_rotr_u32
1193
1194
0
static inline uint64_t CRYPTO_rotl_u64(uint64_t value, int shift) {
1195
#if defined(_MSC_VER)
1196
  return _rotl64(value, shift);
1197
#else
1198
0
  return (value << shift) | (value >> ((-shift) & 63));
1199
0
#endif
1200
0
}
Unexecuted instantiation: a_int.c:CRYPTO_rotl_u64
Unexecuted instantiation: asn1_lib.c:CRYPTO_rotl_u64
Unexecuted instantiation: bcm.c:CRYPTO_rotl_u64
Unexecuted instantiation: cbb.c:CRYPTO_rotl_u64
Unexecuted instantiation: cbs.c:CRYPTO_rotl_u64
Unexecuted instantiation: convert.c:CRYPTO_rotl_u64
Unexecuted instantiation: crypto.c:CRYPTO_rotl_u64
Unexecuted instantiation: curve25519.c:CRYPTO_rotl_u64
Unexecuted instantiation: digest_extra.c:CRYPTO_rotl_u64
Unexecuted instantiation: dsa.c:CRYPTO_rotl_u64
Unexecuted instantiation: dsa_asn1.c:CRYPTO_rotl_u64
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_rotl_u64
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_rotl_u64
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_rotl_u64
Unexecuted instantiation: e_des.c:CRYPTO_rotl_u64
Unexecuted instantiation: e_rc2.c:CRYPTO_rotl_u64
Unexecuted instantiation: e_rc4.c:CRYPTO_rotl_u64
Unexecuted instantiation: e_tls.c:CRYPTO_rotl_u64
Unexecuted instantiation: ecdh_extra.c:CRYPTO_rotl_u64
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_rotl_u64
Unexecuted instantiation: engine.c:CRYPTO_rotl_u64
Unexecuted instantiation: err.c:CRYPTO_rotl_u64
Unexecuted instantiation: evp.c:CRYPTO_rotl_u64
Unexecuted instantiation: evp_ctx.c:CRYPTO_rotl_u64
Unexecuted instantiation: ex_data.c:CRYPTO_rotl_u64
Unexecuted instantiation: file.c:CRYPTO_rotl_u64
Unexecuted instantiation: fork_detect.c:CRYPTO_rotl_u64
Unexecuted instantiation: forkunsafe.c:CRYPTO_rotl_u64
Unexecuted instantiation: md4.c:CRYPTO_rotl_u64
Unexecuted instantiation: md5.c:CRYPTO_rotl_u64
Unexecuted instantiation: mem.c:CRYPTO_rotl_u64
Unexecuted instantiation: obj.c:CRYPTO_rotl_u64
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_rotl_u64
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_rotl_u64
Unexecuted instantiation: p_ec.c:CRYPTO_rotl_u64
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_rotl_u64
Unexecuted instantiation: p_hkdf.c:CRYPTO_rotl_u64
Unexecuted instantiation: p_rsa.c:CRYPTO_rotl_u64
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_rotl_u64
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_rotl_u64
Unexecuted instantiation: pbkdf.c:CRYPTO_rotl_u64
Unexecuted instantiation: poly1305_vec.c:CRYPTO_rotl_u64
Unexecuted instantiation: refcount.c:CRYPTO_rotl_u64
Unexecuted instantiation: rsa_asn1.c:CRYPTO_rotl_u64
Unexecuted instantiation: rsa_crypt.c:CRYPTO_rotl_u64
Unexecuted instantiation: scrypt.c:CRYPTO_rotl_u64
Unexecuted instantiation: siphash.c:CRYPTO_rotl_u64
Unexecuted instantiation: stack.c:CRYPTO_rotl_u64
Unexecuted instantiation: thread_pthread.c:CRYPTO_rotl_u64
Unexecuted instantiation: tls_cbc.c:CRYPTO_rotl_u64
Unexecuted instantiation: urandom.c:CRYPTO_rotl_u64
Unexecuted instantiation: a_bitstr.c:CRYPTO_rotl_u64
Unexecuted instantiation: a_object.c:CRYPTO_rotl_u64
Unexecuted instantiation: asn1_compat.c:CRYPTO_rotl_u64
Unexecuted instantiation: bio.c:CRYPTO_rotl_u64
Unexecuted instantiation: blake2.c:CRYPTO_rotl_u64
Unexecuted instantiation: chacha.c:CRYPTO_rotl_u64
Unexecuted instantiation: des.c:CRYPTO_rotl_u64
Unexecuted instantiation: ec_asn1.c:CRYPTO_rotl_u64
Unexecuted instantiation: lhash.c:CRYPTO_rotl_u64
Unexecuted instantiation: tasn_dec.c:CRYPTO_rotl_u64
Unexecuted instantiation: tasn_enc.c:CRYPTO_rotl_u64
Unexecuted instantiation: tasn_new.c:CRYPTO_rotl_u64
Unexecuted instantiation: tasn_utl.c:CRYPTO_rotl_u64
Unexecuted instantiation: pool.c:CRYPTO_rotl_u64
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_rotl_u64
Unexecuted instantiation: cpu_intel.c:CRYPTO_rotl_u64
1201
1202
111M
static inline uint64_t CRYPTO_rotr_u64(uint64_t value, int shift) {
1203
#if defined(_MSC_VER)
1204
  return _rotr64(value, shift);
1205
#else
1206
111M
  return (value >> shift) | (value << ((-shift) & 63));
1207
111M
#endif
1208
111M
}
Unexecuted instantiation: a_int.c:CRYPTO_rotr_u64
Unexecuted instantiation: asn1_lib.c:CRYPTO_rotr_u64
bcm.c:CRYPTO_rotr_u64
Line
Count
Source
1202
95.9M
static inline uint64_t CRYPTO_rotr_u64(uint64_t value, int shift) {
1203
#if defined(_MSC_VER)
1204
  return _rotr64(value, shift);
1205
#else
1206
95.9M
  return (value >> shift) | (value << ((-shift) & 63));
1207
95.9M
#endif
1208
95.9M
}
Unexecuted instantiation: cbb.c:CRYPTO_rotr_u64
Unexecuted instantiation: cbs.c:CRYPTO_rotr_u64
Unexecuted instantiation: convert.c:CRYPTO_rotr_u64
Unexecuted instantiation: crypto.c:CRYPTO_rotr_u64
Unexecuted instantiation: curve25519.c:CRYPTO_rotr_u64
Unexecuted instantiation: digest_extra.c:CRYPTO_rotr_u64
Unexecuted instantiation: dsa.c:CRYPTO_rotr_u64
Unexecuted instantiation: dsa_asn1.c:CRYPTO_rotr_u64
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_rotr_u64
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_rotr_u64
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_rotr_u64
Unexecuted instantiation: e_des.c:CRYPTO_rotr_u64
Unexecuted instantiation: e_rc2.c:CRYPTO_rotr_u64
Unexecuted instantiation: e_rc4.c:CRYPTO_rotr_u64
Unexecuted instantiation: e_tls.c:CRYPTO_rotr_u64
Unexecuted instantiation: ecdh_extra.c:CRYPTO_rotr_u64
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_rotr_u64
Unexecuted instantiation: engine.c:CRYPTO_rotr_u64
Unexecuted instantiation: err.c:CRYPTO_rotr_u64
Unexecuted instantiation: evp.c:CRYPTO_rotr_u64
Unexecuted instantiation: evp_ctx.c:CRYPTO_rotr_u64
Unexecuted instantiation: ex_data.c:CRYPTO_rotr_u64
Unexecuted instantiation: file.c:CRYPTO_rotr_u64
Unexecuted instantiation: fork_detect.c:CRYPTO_rotr_u64
Unexecuted instantiation: forkunsafe.c:CRYPTO_rotr_u64
Unexecuted instantiation: md4.c:CRYPTO_rotr_u64
Unexecuted instantiation: md5.c:CRYPTO_rotr_u64
Unexecuted instantiation: mem.c:CRYPTO_rotr_u64
Unexecuted instantiation: obj.c:CRYPTO_rotr_u64
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_rotr_u64
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_rotr_u64
Unexecuted instantiation: p_ec.c:CRYPTO_rotr_u64
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_rotr_u64
Unexecuted instantiation: p_hkdf.c:CRYPTO_rotr_u64
Unexecuted instantiation: p_rsa.c:CRYPTO_rotr_u64
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_rotr_u64
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_rotr_u64
Unexecuted instantiation: pbkdf.c:CRYPTO_rotr_u64
Unexecuted instantiation: poly1305_vec.c:CRYPTO_rotr_u64
Unexecuted instantiation: refcount.c:CRYPTO_rotr_u64
Unexecuted instantiation: rsa_asn1.c:CRYPTO_rotr_u64
Unexecuted instantiation: rsa_crypt.c:CRYPTO_rotr_u64
Unexecuted instantiation: scrypt.c:CRYPTO_rotr_u64
Unexecuted instantiation: siphash.c:CRYPTO_rotr_u64
Unexecuted instantiation: stack.c:CRYPTO_rotr_u64
Unexecuted instantiation: thread_pthread.c:CRYPTO_rotr_u64
Unexecuted instantiation: tls_cbc.c:CRYPTO_rotr_u64
Unexecuted instantiation: urandom.c:CRYPTO_rotr_u64
Unexecuted instantiation: a_bitstr.c:CRYPTO_rotr_u64
Unexecuted instantiation: a_object.c:CRYPTO_rotr_u64
Unexecuted instantiation: asn1_compat.c:CRYPTO_rotr_u64
Unexecuted instantiation: bio.c:CRYPTO_rotr_u64
blake2.c:CRYPTO_rotr_u64
Line
Count
Source
1202
15.7M
static inline uint64_t CRYPTO_rotr_u64(uint64_t value, int shift) {
1203
#if defined(_MSC_VER)
1204
  return _rotr64(value, shift);
1205
#else
1206
15.7M
  return (value >> shift) | (value << ((-shift) & 63));
1207
15.7M
#endif
1208
15.7M
}
Unexecuted instantiation: chacha.c:CRYPTO_rotr_u64
Unexecuted instantiation: des.c:CRYPTO_rotr_u64
Unexecuted instantiation: ec_asn1.c:CRYPTO_rotr_u64
Unexecuted instantiation: lhash.c:CRYPTO_rotr_u64
Unexecuted instantiation: tasn_dec.c:CRYPTO_rotr_u64
Unexecuted instantiation: tasn_enc.c:CRYPTO_rotr_u64
Unexecuted instantiation: tasn_new.c:CRYPTO_rotr_u64
Unexecuted instantiation: tasn_utl.c:CRYPTO_rotr_u64
Unexecuted instantiation: pool.c:CRYPTO_rotr_u64
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_rotr_u64
Unexecuted instantiation: cpu_intel.c:CRYPTO_rotr_u64
1209
1210
1211
// Arithmetic functions.
1212
1213
// The most efficient versions of these functions on GCC and Clang depend on C11
1214
// |_Generic|. If we ever need to call these from C++, we'll need to add a
1215
// variant that uses C++ overloads instead.
1216
#if !defined(__cplusplus)
1217
1218
// CRYPTO_addc_* returns |x + y + carry|, and sets |*out_carry| to the carry
1219
// bit. |carry| must be zero or one.
1220
#if OPENSSL_HAS_BUILTIN(__builtin_addc)
1221
1222
#define CRYPTO_GENERIC_ADDC(x, y, carry, out_carry) \
1223
638M
  (_Generic((x),                                    \
1224
638M
      unsigned: __builtin_addc,                     \
1225
638M
      unsigned long: __builtin_addcl,               \
1226
638M
      unsigned long long: __builtin_addcll))((x), (y), (carry), (out_carry))
1227
1228
static inline uint32_t CRYPTO_addc_u32(uint32_t x, uint32_t y, uint32_t carry,
1229
0
                                       uint32_t *out_carry) {
1230
0
  declassify_assert(carry <= 1);
1231
0
  return CRYPTO_GENERIC_ADDC(x, y, carry, out_carry);
1232
0
}
Unexecuted instantiation: a_int.c:CRYPTO_addc_u32
Unexecuted instantiation: asn1_lib.c:CRYPTO_addc_u32
Unexecuted instantiation: bcm.c:CRYPTO_addc_u32
Unexecuted instantiation: cbb.c:CRYPTO_addc_u32
Unexecuted instantiation: cbs.c:CRYPTO_addc_u32
Unexecuted instantiation: convert.c:CRYPTO_addc_u32
Unexecuted instantiation: crypto.c:CRYPTO_addc_u32
Unexecuted instantiation: curve25519.c:CRYPTO_addc_u32
Unexecuted instantiation: digest_extra.c:CRYPTO_addc_u32
Unexecuted instantiation: dsa.c:CRYPTO_addc_u32
Unexecuted instantiation: dsa_asn1.c:CRYPTO_addc_u32
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_addc_u32
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_addc_u32
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_addc_u32
Unexecuted instantiation: e_des.c:CRYPTO_addc_u32
Unexecuted instantiation: e_rc2.c:CRYPTO_addc_u32
Unexecuted instantiation: e_rc4.c:CRYPTO_addc_u32
Unexecuted instantiation: e_tls.c:CRYPTO_addc_u32
Unexecuted instantiation: ecdh_extra.c:CRYPTO_addc_u32
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_addc_u32
Unexecuted instantiation: engine.c:CRYPTO_addc_u32
Unexecuted instantiation: err.c:CRYPTO_addc_u32
Unexecuted instantiation: evp.c:CRYPTO_addc_u32
Unexecuted instantiation: evp_ctx.c:CRYPTO_addc_u32
Unexecuted instantiation: ex_data.c:CRYPTO_addc_u32
Unexecuted instantiation: file.c:CRYPTO_addc_u32
Unexecuted instantiation: fork_detect.c:CRYPTO_addc_u32
Unexecuted instantiation: forkunsafe.c:CRYPTO_addc_u32
Unexecuted instantiation: md4.c:CRYPTO_addc_u32
Unexecuted instantiation: md5.c:CRYPTO_addc_u32
Unexecuted instantiation: mem.c:CRYPTO_addc_u32
Unexecuted instantiation: obj.c:CRYPTO_addc_u32
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_addc_u32
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_addc_u32
Unexecuted instantiation: p_ec.c:CRYPTO_addc_u32
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_addc_u32
Unexecuted instantiation: p_hkdf.c:CRYPTO_addc_u32
Unexecuted instantiation: p_rsa.c:CRYPTO_addc_u32
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_addc_u32
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_addc_u32
Unexecuted instantiation: pbkdf.c:CRYPTO_addc_u32
Unexecuted instantiation: poly1305_vec.c:CRYPTO_addc_u32
Unexecuted instantiation: refcount.c:CRYPTO_addc_u32
Unexecuted instantiation: rsa_asn1.c:CRYPTO_addc_u32
Unexecuted instantiation: rsa_crypt.c:CRYPTO_addc_u32
Unexecuted instantiation: scrypt.c:CRYPTO_addc_u32
Unexecuted instantiation: siphash.c:CRYPTO_addc_u32
Unexecuted instantiation: stack.c:CRYPTO_addc_u32
Unexecuted instantiation: thread_pthread.c:CRYPTO_addc_u32
Unexecuted instantiation: tls_cbc.c:CRYPTO_addc_u32
Unexecuted instantiation: urandom.c:CRYPTO_addc_u32
Unexecuted instantiation: a_bitstr.c:CRYPTO_addc_u32
Unexecuted instantiation: a_object.c:CRYPTO_addc_u32
Unexecuted instantiation: asn1_compat.c:CRYPTO_addc_u32
Unexecuted instantiation: bio.c:CRYPTO_addc_u32
Unexecuted instantiation: blake2.c:CRYPTO_addc_u32
Unexecuted instantiation: chacha.c:CRYPTO_addc_u32
Unexecuted instantiation: des.c:CRYPTO_addc_u32
Unexecuted instantiation: ec_asn1.c:CRYPTO_addc_u32
Unexecuted instantiation: lhash.c:CRYPTO_addc_u32
Unexecuted instantiation: tasn_dec.c:CRYPTO_addc_u32
Unexecuted instantiation: tasn_enc.c:CRYPTO_addc_u32
Unexecuted instantiation: tasn_new.c:CRYPTO_addc_u32
Unexecuted instantiation: tasn_utl.c:CRYPTO_addc_u32
Unexecuted instantiation: pool.c:CRYPTO_addc_u32
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_addc_u32
Unexecuted instantiation: cpu_intel.c:CRYPTO_addc_u32
1233
1234
static inline uint64_t CRYPTO_addc_u64(uint64_t x, uint64_t y, uint64_t carry,
1235
638M
                                       uint64_t *out_carry) {
1236
638M
  declassify_assert(carry <= 1);
1237
638M
  return CRYPTO_GENERIC_ADDC(x, y, carry, out_carry);
1238
638M
}
Unexecuted instantiation: a_int.c:CRYPTO_addc_u64
Unexecuted instantiation: asn1_lib.c:CRYPTO_addc_u64
bcm.c:CRYPTO_addc_u64
Line
Count
Source
1235
638M
                                       uint64_t *out_carry) {
1236
638M
  declassify_assert(carry <= 1);
1237
638M
  return CRYPTO_GENERIC_ADDC(x, y, carry, out_carry);
1238
638M
}
Unexecuted instantiation: cbb.c:CRYPTO_addc_u64
Unexecuted instantiation: cbs.c:CRYPTO_addc_u64
Unexecuted instantiation: convert.c:CRYPTO_addc_u64
Unexecuted instantiation: crypto.c:CRYPTO_addc_u64
Unexecuted instantiation: curve25519.c:CRYPTO_addc_u64
Unexecuted instantiation: digest_extra.c:CRYPTO_addc_u64
Unexecuted instantiation: dsa.c:CRYPTO_addc_u64
Unexecuted instantiation: dsa_asn1.c:CRYPTO_addc_u64
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_addc_u64
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_addc_u64
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_addc_u64
Unexecuted instantiation: e_des.c:CRYPTO_addc_u64
Unexecuted instantiation: e_rc2.c:CRYPTO_addc_u64
Unexecuted instantiation: e_rc4.c:CRYPTO_addc_u64
Unexecuted instantiation: e_tls.c:CRYPTO_addc_u64
Unexecuted instantiation: ecdh_extra.c:CRYPTO_addc_u64
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_addc_u64
Unexecuted instantiation: engine.c:CRYPTO_addc_u64
Unexecuted instantiation: err.c:CRYPTO_addc_u64
Unexecuted instantiation: evp.c:CRYPTO_addc_u64
Unexecuted instantiation: evp_ctx.c:CRYPTO_addc_u64
Unexecuted instantiation: ex_data.c:CRYPTO_addc_u64
Unexecuted instantiation: file.c:CRYPTO_addc_u64
Unexecuted instantiation: fork_detect.c:CRYPTO_addc_u64
Unexecuted instantiation: forkunsafe.c:CRYPTO_addc_u64
Unexecuted instantiation: md4.c:CRYPTO_addc_u64
Unexecuted instantiation: md5.c:CRYPTO_addc_u64
Unexecuted instantiation: mem.c:CRYPTO_addc_u64
Unexecuted instantiation: obj.c:CRYPTO_addc_u64
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_addc_u64
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_addc_u64
Unexecuted instantiation: p_ec.c:CRYPTO_addc_u64
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_addc_u64
Unexecuted instantiation: p_hkdf.c:CRYPTO_addc_u64
Unexecuted instantiation: p_rsa.c:CRYPTO_addc_u64
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_addc_u64
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_addc_u64
Unexecuted instantiation: pbkdf.c:CRYPTO_addc_u64
Unexecuted instantiation: poly1305_vec.c:CRYPTO_addc_u64
Unexecuted instantiation: refcount.c:CRYPTO_addc_u64
Unexecuted instantiation: rsa_asn1.c:CRYPTO_addc_u64
Unexecuted instantiation: rsa_crypt.c:CRYPTO_addc_u64
Unexecuted instantiation: scrypt.c:CRYPTO_addc_u64
Unexecuted instantiation: siphash.c:CRYPTO_addc_u64
Unexecuted instantiation: stack.c:CRYPTO_addc_u64
Unexecuted instantiation: thread_pthread.c:CRYPTO_addc_u64
Unexecuted instantiation: tls_cbc.c:CRYPTO_addc_u64
Unexecuted instantiation: urandom.c:CRYPTO_addc_u64
Unexecuted instantiation: a_bitstr.c:CRYPTO_addc_u64
Unexecuted instantiation: a_object.c:CRYPTO_addc_u64
Unexecuted instantiation: asn1_compat.c:CRYPTO_addc_u64
Unexecuted instantiation: bio.c:CRYPTO_addc_u64
Unexecuted instantiation: blake2.c:CRYPTO_addc_u64
Unexecuted instantiation: chacha.c:CRYPTO_addc_u64
Unexecuted instantiation: des.c:CRYPTO_addc_u64
Unexecuted instantiation: ec_asn1.c:CRYPTO_addc_u64
Unexecuted instantiation: lhash.c:CRYPTO_addc_u64
Unexecuted instantiation: tasn_dec.c:CRYPTO_addc_u64
Unexecuted instantiation: tasn_enc.c:CRYPTO_addc_u64
Unexecuted instantiation: tasn_new.c:CRYPTO_addc_u64
Unexecuted instantiation: tasn_utl.c:CRYPTO_addc_u64
Unexecuted instantiation: pool.c:CRYPTO_addc_u64
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_addc_u64
Unexecuted instantiation: cpu_intel.c:CRYPTO_addc_u64
1239
1240
#else
1241
1242
static inline uint32_t CRYPTO_addc_u32(uint32_t x, uint32_t y, uint32_t carry,
1243
                                       uint32_t *out_carry) {
1244
  declassify_assert(carry <= 1);
1245
  uint64_t ret = carry;
1246
  ret += (uint64_t)x + y;
1247
  *out_carry = (uint32_t)(ret >> 32);
1248
  return (uint32_t)ret;
1249
}
1250
1251
static inline uint64_t CRYPTO_addc_u64(uint64_t x, uint64_t y, uint64_t carry,
1252
                                       uint64_t *out_carry) {
1253
  declassify_assert(carry <= 1);
1254
#if defined(BORINGSSL_HAS_UINT128)
1255
  uint128_t ret = carry;
1256
  ret += (uint128_t)x + y;
1257
  *out_carry = (uint64_t)(ret >> 64);
1258
  return (uint64_t)ret;
1259
#else
1260
  x += carry;
1261
  carry = x < carry;
1262
  uint64_t ret = x + y;
1263
  carry += ret < x;
1264
  *out_carry = carry;
1265
  return ret;
1266
#endif
1267
}
1268
#endif
1269
1270
// CRYPTO_subc_* returns |x - y - borrow|, and sets |*out_borrow| to the borrow
1271
// bit. |borrow| must be zero or one.
1272
#if OPENSSL_HAS_BUILTIN(__builtin_subc)
1273
1274
#define CRYPTO_GENERIC_SUBC(x, y, borrow, out_borrow) \
1275
640M
  (_Generic((x),                                      \
1276
640M
      unsigned: __builtin_subc,                       \
1277
640M
      unsigned long: __builtin_subcl,                 \
1278
640M
      unsigned long long: __builtin_subcll))((x), (y), (borrow), (out_borrow))
1279
1280
static inline uint32_t CRYPTO_subc_u32(uint32_t x, uint32_t y, uint32_t borrow,
1281
0
                                       uint32_t *out_borrow) {
1282
0
  declassify_assert(borrow <= 1);
1283
0
  return CRYPTO_GENERIC_SUBC(x, y, borrow, out_borrow);
1284
0
}
Unexecuted instantiation: a_int.c:CRYPTO_subc_u32
Unexecuted instantiation: asn1_lib.c:CRYPTO_subc_u32
Unexecuted instantiation: bcm.c:CRYPTO_subc_u32
Unexecuted instantiation: cbb.c:CRYPTO_subc_u32
Unexecuted instantiation: cbs.c:CRYPTO_subc_u32
Unexecuted instantiation: convert.c:CRYPTO_subc_u32
Unexecuted instantiation: crypto.c:CRYPTO_subc_u32
Unexecuted instantiation: curve25519.c:CRYPTO_subc_u32
Unexecuted instantiation: digest_extra.c:CRYPTO_subc_u32
Unexecuted instantiation: dsa.c:CRYPTO_subc_u32
Unexecuted instantiation: dsa_asn1.c:CRYPTO_subc_u32
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_subc_u32
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_subc_u32
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_subc_u32
Unexecuted instantiation: e_des.c:CRYPTO_subc_u32
Unexecuted instantiation: e_rc2.c:CRYPTO_subc_u32
Unexecuted instantiation: e_rc4.c:CRYPTO_subc_u32
Unexecuted instantiation: e_tls.c:CRYPTO_subc_u32
Unexecuted instantiation: ecdh_extra.c:CRYPTO_subc_u32
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_subc_u32
Unexecuted instantiation: engine.c:CRYPTO_subc_u32
Unexecuted instantiation: err.c:CRYPTO_subc_u32
Unexecuted instantiation: evp.c:CRYPTO_subc_u32
Unexecuted instantiation: evp_ctx.c:CRYPTO_subc_u32
Unexecuted instantiation: ex_data.c:CRYPTO_subc_u32
Unexecuted instantiation: file.c:CRYPTO_subc_u32
Unexecuted instantiation: fork_detect.c:CRYPTO_subc_u32
Unexecuted instantiation: forkunsafe.c:CRYPTO_subc_u32
Unexecuted instantiation: md4.c:CRYPTO_subc_u32
Unexecuted instantiation: md5.c:CRYPTO_subc_u32
Unexecuted instantiation: mem.c:CRYPTO_subc_u32
Unexecuted instantiation: obj.c:CRYPTO_subc_u32
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_subc_u32
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_subc_u32
Unexecuted instantiation: p_ec.c:CRYPTO_subc_u32
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_subc_u32
Unexecuted instantiation: p_hkdf.c:CRYPTO_subc_u32
Unexecuted instantiation: p_rsa.c:CRYPTO_subc_u32
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_subc_u32
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_subc_u32
Unexecuted instantiation: pbkdf.c:CRYPTO_subc_u32
Unexecuted instantiation: poly1305_vec.c:CRYPTO_subc_u32
Unexecuted instantiation: refcount.c:CRYPTO_subc_u32
Unexecuted instantiation: rsa_asn1.c:CRYPTO_subc_u32
Unexecuted instantiation: rsa_crypt.c:CRYPTO_subc_u32
Unexecuted instantiation: scrypt.c:CRYPTO_subc_u32
Unexecuted instantiation: siphash.c:CRYPTO_subc_u32
Unexecuted instantiation: stack.c:CRYPTO_subc_u32
Unexecuted instantiation: thread_pthread.c:CRYPTO_subc_u32
Unexecuted instantiation: tls_cbc.c:CRYPTO_subc_u32
Unexecuted instantiation: urandom.c:CRYPTO_subc_u32
Unexecuted instantiation: a_bitstr.c:CRYPTO_subc_u32
Unexecuted instantiation: a_object.c:CRYPTO_subc_u32
Unexecuted instantiation: asn1_compat.c:CRYPTO_subc_u32
Unexecuted instantiation: bio.c:CRYPTO_subc_u32
Unexecuted instantiation: blake2.c:CRYPTO_subc_u32
Unexecuted instantiation: chacha.c:CRYPTO_subc_u32
Unexecuted instantiation: des.c:CRYPTO_subc_u32
Unexecuted instantiation: ec_asn1.c:CRYPTO_subc_u32
Unexecuted instantiation: lhash.c:CRYPTO_subc_u32
Unexecuted instantiation: tasn_dec.c:CRYPTO_subc_u32
Unexecuted instantiation: tasn_enc.c:CRYPTO_subc_u32
Unexecuted instantiation: tasn_new.c:CRYPTO_subc_u32
Unexecuted instantiation: tasn_utl.c:CRYPTO_subc_u32
Unexecuted instantiation: pool.c:CRYPTO_subc_u32
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_subc_u32
Unexecuted instantiation: cpu_intel.c:CRYPTO_subc_u32
1285
1286
static inline uint64_t CRYPTO_subc_u64(uint64_t x, uint64_t y, uint64_t borrow,
1287
640M
                                       uint64_t *out_borrow) {
1288
640M
  declassify_assert(borrow <= 1);
1289
640M
  return CRYPTO_GENERIC_SUBC(x, y, borrow, out_borrow);
1290
640M
}
Unexecuted instantiation: a_int.c:CRYPTO_subc_u64
Unexecuted instantiation: asn1_lib.c:CRYPTO_subc_u64
bcm.c:CRYPTO_subc_u64
Line
Count
Source
1287
640M
                                       uint64_t *out_borrow) {
1288
640M
  declassify_assert(borrow <= 1);
1289
640M
  return CRYPTO_GENERIC_SUBC(x, y, borrow, out_borrow);
1290
640M
}
Unexecuted instantiation: cbb.c:CRYPTO_subc_u64
Unexecuted instantiation: cbs.c:CRYPTO_subc_u64
Unexecuted instantiation: convert.c:CRYPTO_subc_u64
Unexecuted instantiation: crypto.c:CRYPTO_subc_u64
Unexecuted instantiation: curve25519.c:CRYPTO_subc_u64
Unexecuted instantiation: digest_extra.c:CRYPTO_subc_u64
Unexecuted instantiation: dsa.c:CRYPTO_subc_u64
Unexecuted instantiation: dsa_asn1.c:CRYPTO_subc_u64
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_subc_u64
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_subc_u64
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_subc_u64
Unexecuted instantiation: e_des.c:CRYPTO_subc_u64
Unexecuted instantiation: e_rc2.c:CRYPTO_subc_u64
Unexecuted instantiation: e_rc4.c:CRYPTO_subc_u64
Unexecuted instantiation: e_tls.c:CRYPTO_subc_u64
Unexecuted instantiation: ecdh_extra.c:CRYPTO_subc_u64
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_subc_u64
Unexecuted instantiation: engine.c:CRYPTO_subc_u64
Unexecuted instantiation: err.c:CRYPTO_subc_u64
Unexecuted instantiation: evp.c:CRYPTO_subc_u64
Unexecuted instantiation: evp_ctx.c:CRYPTO_subc_u64
Unexecuted instantiation: ex_data.c:CRYPTO_subc_u64
Unexecuted instantiation: file.c:CRYPTO_subc_u64
Unexecuted instantiation: fork_detect.c:CRYPTO_subc_u64
Unexecuted instantiation: forkunsafe.c:CRYPTO_subc_u64
Unexecuted instantiation: md4.c:CRYPTO_subc_u64
Unexecuted instantiation: md5.c:CRYPTO_subc_u64
Unexecuted instantiation: mem.c:CRYPTO_subc_u64
Unexecuted instantiation: obj.c:CRYPTO_subc_u64
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_subc_u64
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_subc_u64
Unexecuted instantiation: p_ec.c:CRYPTO_subc_u64
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_subc_u64
Unexecuted instantiation: p_hkdf.c:CRYPTO_subc_u64
Unexecuted instantiation: p_rsa.c:CRYPTO_subc_u64
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_subc_u64
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_subc_u64
Unexecuted instantiation: pbkdf.c:CRYPTO_subc_u64
Unexecuted instantiation: poly1305_vec.c:CRYPTO_subc_u64
Unexecuted instantiation: refcount.c:CRYPTO_subc_u64
Unexecuted instantiation: rsa_asn1.c:CRYPTO_subc_u64
Unexecuted instantiation: rsa_crypt.c:CRYPTO_subc_u64
Unexecuted instantiation: scrypt.c:CRYPTO_subc_u64
Unexecuted instantiation: siphash.c:CRYPTO_subc_u64
Unexecuted instantiation: stack.c:CRYPTO_subc_u64
Unexecuted instantiation: thread_pthread.c:CRYPTO_subc_u64
Unexecuted instantiation: tls_cbc.c:CRYPTO_subc_u64
Unexecuted instantiation: urandom.c:CRYPTO_subc_u64
Unexecuted instantiation: a_bitstr.c:CRYPTO_subc_u64
Unexecuted instantiation: a_object.c:CRYPTO_subc_u64
Unexecuted instantiation: asn1_compat.c:CRYPTO_subc_u64
Unexecuted instantiation: bio.c:CRYPTO_subc_u64
Unexecuted instantiation: blake2.c:CRYPTO_subc_u64
Unexecuted instantiation: chacha.c:CRYPTO_subc_u64
Unexecuted instantiation: des.c:CRYPTO_subc_u64
Unexecuted instantiation: ec_asn1.c:CRYPTO_subc_u64
Unexecuted instantiation: lhash.c:CRYPTO_subc_u64
Unexecuted instantiation: tasn_dec.c:CRYPTO_subc_u64
Unexecuted instantiation: tasn_enc.c:CRYPTO_subc_u64
Unexecuted instantiation: tasn_new.c:CRYPTO_subc_u64
Unexecuted instantiation: tasn_utl.c:CRYPTO_subc_u64
Unexecuted instantiation: pool.c:CRYPTO_subc_u64
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_subc_u64
Unexecuted instantiation: cpu_intel.c:CRYPTO_subc_u64
1291
1292
#else
1293
1294
static inline uint32_t CRYPTO_subc_u32(uint32_t x, uint32_t y, uint32_t borrow,
1295
                                       uint32_t *out_borrow) {
1296
  declassify_assert(borrow <= 1);
1297
  uint32_t ret = x - y - borrow;
1298
  *out_borrow = (x < y) | ((x == y) & borrow);
1299
  return ret;
1300
}
1301
1302
static inline uint64_t CRYPTO_subc_u64(uint64_t x, uint64_t y, uint64_t borrow,
1303
                                       uint64_t *out_borrow) {
1304
  declassify_assert(borrow <= 1);
1305
  uint64_t ret = x - y - borrow;
1306
  *out_borrow = (x < y) | ((x == y) & borrow);
1307
  return ret;
1308
}
1309
#endif
1310
1311
#if defined(OPENSSL_64_BIT)
1312
638M
#define CRYPTO_addc_w CRYPTO_addc_u64
1313
640M
#define CRYPTO_subc_w CRYPTO_subc_u64
1314
#else
1315
#define CRYPTO_addc_w CRYPTO_addc_u32
1316
#define CRYPTO_subc_w CRYPTO_subc_u32
1317
#endif
1318
1319
#endif  // !__cplusplus
1320
1321
1322
// FIPS functions.
1323
1324
#if defined(BORINGSSL_FIPS)
1325
1326
// BORINGSSL_FIPS_abort is called when a FIPS power-on or continuous test
1327
// fails. It prevents any further cryptographic operations by the current
1328
// process.
1329
void BORINGSSL_FIPS_abort(void) __attribute__((noreturn));
1330
1331
// boringssl_self_test_startup runs all startup self tests and returns one on
1332
// success or zero on error. Startup self tests do not include lazy tests.
1333
// Call |BORINGSSL_self_test| to run every self test.
1334
int boringssl_self_test_startup(void);
1335
1336
// boringssl_ensure_rsa_self_test checks whether the RSA self-test has been run
1337
// in this address space. If not, it runs it and crashes the address space if
1338
// unsuccessful.
1339
void boringssl_ensure_rsa_self_test(void);
1340
1341
// boringssl_ensure_ecc_self_test checks whether the ECDSA and ECDH self-test
1342
// has been run in this address space. If not, it runs it and crashes the
1343
// address space if unsuccessful.
1344
void boringssl_ensure_ecc_self_test(void);
1345
1346
// boringssl_ensure_ffdh_self_test checks whether the FFDH self-test has been
1347
// run in this address space. If not, it runs it and crashes the address space
1348
// if unsuccessful.
1349
void boringssl_ensure_ffdh_self_test(void);
1350
1351
#else
1352
1353
// Outside of FIPS mode, the lazy tests are no-ops.
1354
1355
0
OPENSSL_INLINE void boringssl_ensure_rsa_self_test(void) {}
Unexecuted instantiation: a_int.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: asn1_lib.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: bcm.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: cbb.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: cbs.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: convert.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: crypto.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: curve25519.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: digest_extra.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: dsa.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: dsa_asn1.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: e_aesctrhmac.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: e_aesgcmsiv.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: e_chacha20poly1305.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: e_des.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: e_rc2.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: e_rc4.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: e_tls.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: ecdh_extra.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: ecdsa_asn1.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: engine.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: err.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: evp.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: evp_ctx.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: ex_data.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: file.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: fork_detect.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: forkunsafe.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: md4.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: md5.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: mem.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: obj.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: p_dh_asn1.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: p_dsa_asn1.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: p_ec.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: p_ed25519_asn1.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: p_hkdf.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: p_rsa.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: p_rsa_asn1.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: p_x25519_asn1.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: pbkdf.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: poly1305_vec.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: refcount.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: rsa_asn1.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: rsa_crypt.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: scrypt.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: siphash.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: stack.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: thread_pthread.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: tls_cbc.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: urandom.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: a_bitstr.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: a_object.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: asn1_compat.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: bio.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: blake2.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: chacha.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: des.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: ec_asn1.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: lhash.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: tasn_dec.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: tasn_enc.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: tasn_new.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: tasn_utl.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: pool.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: curve25519_64_adx.c:boringssl_ensure_rsa_self_test
Unexecuted instantiation: cpu_intel.c:boringssl_ensure_rsa_self_test
1356
92
OPENSSL_INLINE void boringssl_ensure_ecc_self_test(void) {}
Unexecuted instantiation: a_int.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: asn1_lib.c:boringssl_ensure_ecc_self_test
bcm.c:boringssl_ensure_ecc_self_test
Line
Count
Source
1356
92
OPENSSL_INLINE void boringssl_ensure_ecc_self_test(void) {}
Unexecuted instantiation: cbb.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: cbs.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: convert.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: crypto.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: curve25519.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: digest_extra.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: dsa.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: dsa_asn1.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: e_aesctrhmac.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: e_aesgcmsiv.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: e_chacha20poly1305.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: e_des.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: e_rc2.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: e_rc4.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: e_tls.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: ecdh_extra.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: ecdsa_asn1.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: engine.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: err.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: evp.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: evp_ctx.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: ex_data.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: file.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: fork_detect.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: forkunsafe.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: md4.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: md5.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: mem.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: obj.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: p_dh_asn1.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: p_dsa_asn1.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: p_ec.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: p_ed25519_asn1.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: p_hkdf.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: p_rsa.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: p_rsa_asn1.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: p_x25519_asn1.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: pbkdf.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: poly1305_vec.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: refcount.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: rsa_asn1.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: rsa_crypt.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: scrypt.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: siphash.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: stack.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: thread_pthread.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: tls_cbc.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: urandom.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: a_bitstr.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: a_object.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: asn1_compat.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: bio.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: blake2.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: chacha.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: des.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: ec_asn1.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: lhash.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: tasn_dec.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: tasn_enc.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: tasn_new.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: tasn_utl.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: pool.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: curve25519_64_adx.c:boringssl_ensure_ecc_self_test
Unexecuted instantiation: cpu_intel.c:boringssl_ensure_ecc_self_test
1357
114
OPENSSL_INLINE void boringssl_ensure_ffdh_self_test(void) {}
Unexecuted instantiation: a_int.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: asn1_lib.c:boringssl_ensure_ffdh_self_test
bcm.c:boringssl_ensure_ffdh_self_test
Line
Count
Source
1357
114
OPENSSL_INLINE void boringssl_ensure_ffdh_self_test(void) {}
Unexecuted instantiation: cbb.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: cbs.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: convert.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: crypto.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: curve25519.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: digest_extra.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: dsa.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: dsa_asn1.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: e_aesctrhmac.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: e_aesgcmsiv.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: e_chacha20poly1305.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: e_des.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: e_rc2.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: e_rc4.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: e_tls.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: ecdh_extra.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: ecdsa_asn1.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: engine.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: err.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: evp.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: evp_ctx.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: ex_data.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: file.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: fork_detect.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: forkunsafe.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: md4.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: md5.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: mem.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: obj.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: p_dh_asn1.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: p_dsa_asn1.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: p_ec.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: p_ed25519_asn1.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: p_hkdf.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: p_rsa.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: p_rsa_asn1.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: p_x25519_asn1.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: pbkdf.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: poly1305_vec.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: refcount.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: rsa_asn1.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: rsa_crypt.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: scrypt.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: siphash.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: stack.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: thread_pthread.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: tls_cbc.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: urandom.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: a_bitstr.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: a_object.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: asn1_compat.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: bio.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: blake2.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: chacha.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: des.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: ec_asn1.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: lhash.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: tasn_dec.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: tasn_enc.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: tasn_new.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: tasn_utl.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: pool.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: curve25519_64_adx.c:boringssl_ensure_ffdh_self_test
Unexecuted instantiation: cpu_intel.c:boringssl_ensure_ffdh_self_test
1358
1359
#endif  // FIPS
1360
1361
// boringssl_self_test_sha256 performs a SHA-256 KAT.
1362
int boringssl_self_test_sha256(void);
1363
1364
// boringssl_self_test_sha512 performs a SHA-512 KAT.
1365
int boringssl_self_test_sha512(void);
1366
1367
// boringssl_self_test_hmac_sha256 performs an HMAC-SHA-256 KAT.
1368
int boringssl_self_test_hmac_sha256(void);
1369
1370
#if defined(BORINGSSL_FIPS_COUNTERS)
1371
void boringssl_fips_inc_counter(enum fips_counter_t counter);
1372
#else
1373
1.06k
OPENSSL_INLINE void boringssl_fips_inc_counter(enum fips_counter_t counter) {}
Unexecuted instantiation: a_int.c:boringssl_fips_inc_counter
Unexecuted instantiation: asn1_lib.c:boringssl_fips_inc_counter
bcm.c:boringssl_fips_inc_counter
Line
Count
Source
1373
1.06k
OPENSSL_INLINE void boringssl_fips_inc_counter(enum fips_counter_t counter) {}
Unexecuted instantiation: cbb.c:boringssl_fips_inc_counter
Unexecuted instantiation: cbs.c:boringssl_fips_inc_counter
Unexecuted instantiation: convert.c:boringssl_fips_inc_counter
Unexecuted instantiation: crypto.c:boringssl_fips_inc_counter
Unexecuted instantiation: curve25519.c:boringssl_fips_inc_counter
Unexecuted instantiation: digest_extra.c:boringssl_fips_inc_counter
Unexecuted instantiation: dsa.c:boringssl_fips_inc_counter
Unexecuted instantiation: dsa_asn1.c:boringssl_fips_inc_counter
Unexecuted instantiation: e_aesctrhmac.c:boringssl_fips_inc_counter
Unexecuted instantiation: e_aesgcmsiv.c:boringssl_fips_inc_counter
Unexecuted instantiation: e_chacha20poly1305.c:boringssl_fips_inc_counter
Unexecuted instantiation: e_des.c:boringssl_fips_inc_counter
Unexecuted instantiation: e_rc2.c:boringssl_fips_inc_counter
Unexecuted instantiation: e_rc4.c:boringssl_fips_inc_counter
Unexecuted instantiation: e_tls.c:boringssl_fips_inc_counter
Unexecuted instantiation: ecdh_extra.c:boringssl_fips_inc_counter
Unexecuted instantiation: ecdsa_asn1.c:boringssl_fips_inc_counter
Unexecuted instantiation: engine.c:boringssl_fips_inc_counter
Unexecuted instantiation: err.c:boringssl_fips_inc_counter
Unexecuted instantiation: evp.c:boringssl_fips_inc_counter
Unexecuted instantiation: evp_ctx.c:boringssl_fips_inc_counter
Unexecuted instantiation: ex_data.c:boringssl_fips_inc_counter
Unexecuted instantiation: file.c:boringssl_fips_inc_counter
Unexecuted instantiation: fork_detect.c:boringssl_fips_inc_counter
Unexecuted instantiation: forkunsafe.c:boringssl_fips_inc_counter
Unexecuted instantiation: md4.c:boringssl_fips_inc_counter
Unexecuted instantiation: md5.c:boringssl_fips_inc_counter
Unexecuted instantiation: mem.c:boringssl_fips_inc_counter
Unexecuted instantiation: obj.c:boringssl_fips_inc_counter
Unexecuted instantiation: p_dh_asn1.c:boringssl_fips_inc_counter
Unexecuted instantiation: p_dsa_asn1.c:boringssl_fips_inc_counter
Unexecuted instantiation: p_ec.c:boringssl_fips_inc_counter
Unexecuted instantiation: p_ed25519_asn1.c:boringssl_fips_inc_counter
Unexecuted instantiation: p_hkdf.c:boringssl_fips_inc_counter
Unexecuted instantiation: p_rsa.c:boringssl_fips_inc_counter
Unexecuted instantiation: p_rsa_asn1.c:boringssl_fips_inc_counter
Unexecuted instantiation: p_x25519_asn1.c:boringssl_fips_inc_counter
Unexecuted instantiation: pbkdf.c:boringssl_fips_inc_counter
Unexecuted instantiation: poly1305_vec.c:boringssl_fips_inc_counter
Unexecuted instantiation: refcount.c:boringssl_fips_inc_counter
Unexecuted instantiation: rsa_asn1.c:boringssl_fips_inc_counter
Unexecuted instantiation: rsa_crypt.c:boringssl_fips_inc_counter
Unexecuted instantiation: scrypt.c:boringssl_fips_inc_counter
Unexecuted instantiation: siphash.c:boringssl_fips_inc_counter
Unexecuted instantiation: stack.c:boringssl_fips_inc_counter
Unexecuted instantiation: thread_pthread.c:boringssl_fips_inc_counter
Unexecuted instantiation: tls_cbc.c:boringssl_fips_inc_counter
Unexecuted instantiation: urandom.c:boringssl_fips_inc_counter
Unexecuted instantiation: a_bitstr.c:boringssl_fips_inc_counter
Unexecuted instantiation: a_object.c:boringssl_fips_inc_counter
Unexecuted instantiation: asn1_compat.c:boringssl_fips_inc_counter
Unexecuted instantiation: bio.c:boringssl_fips_inc_counter
Unexecuted instantiation: blake2.c:boringssl_fips_inc_counter
Unexecuted instantiation: chacha.c:boringssl_fips_inc_counter
Unexecuted instantiation: des.c:boringssl_fips_inc_counter
Unexecuted instantiation: ec_asn1.c:boringssl_fips_inc_counter
Unexecuted instantiation: lhash.c:boringssl_fips_inc_counter
Unexecuted instantiation: tasn_dec.c:boringssl_fips_inc_counter
Unexecuted instantiation: tasn_enc.c:boringssl_fips_inc_counter
Unexecuted instantiation: tasn_new.c:boringssl_fips_inc_counter
Unexecuted instantiation: tasn_utl.c:boringssl_fips_inc_counter
Unexecuted instantiation: pool.c:boringssl_fips_inc_counter
Unexecuted instantiation: curve25519_64_adx.c:boringssl_fips_inc_counter
Unexecuted instantiation: cpu_intel.c:boringssl_fips_inc_counter
1374
#endif
1375
1376
#if defined(BORINGSSL_FIPS_BREAK_TESTS)
1377
OPENSSL_INLINE int boringssl_fips_break_test(const char *test) {
1378
  const char *const value = getenv("BORINGSSL_FIPS_BREAK_TEST");
1379
  return value != NULL && strcmp(value, test) == 0;
1380
}
1381
#else
1382
0
OPENSSL_INLINE int boringssl_fips_break_test(const char *test) {
1383
0
  return 0;
1384
0
}
Unexecuted instantiation: a_int.c:boringssl_fips_break_test
Unexecuted instantiation: asn1_lib.c:boringssl_fips_break_test
Unexecuted instantiation: bcm.c:boringssl_fips_break_test
Unexecuted instantiation: cbb.c:boringssl_fips_break_test
Unexecuted instantiation: cbs.c:boringssl_fips_break_test
Unexecuted instantiation: convert.c:boringssl_fips_break_test
Unexecuted instantiation: crypto.c:boringssl_fips_break_test
Unexecuted instantiation: curve25519.c:boringssl_fips_break_test
Unexecuted instantiation: digest_extra.c:boringssl_fips_break_test
Unexecuted instantiation: dsa.c:boringssl_fips_break_test
Unexecuted instantiation: dsa_asn1.c:boringssl_fips_break_test
Unexecuted instantiation: e_aesctrhmac.c:boringssl_fips_break_test
Unexecuted instantiation: e_aesgcmsiv.c:boringssl_fips_break_test
Unexecuted instantiation: e_chacha20poly1305.c:boringssl_fips_break_test
Unexecuted instantiation: e_des.c:boringssl_fips_break_test
Unexecuted instantiation: e_rc2.c:boringssl_fips_break_test
Unexecuted instantiation: e_rc4.c:boringssl_fips_break_test
Unexecuted instantiation: e_tls.c:boringssl_fips_break_test
Unexecuted instantiation: ecdh_extra.c:boringssl_fips_break_test
Unexecuted instantiation: ecdsa_asn1.c:boringssl_fips_break_test
Unexecuted instantiation: engine.c:boringssl_fips_break_test
Unexecuted instantiation: err.c:boringssl_fips_break_test
Unexecuted instantiation: evp.c:boringssl_fips_break_test
Unexecuted instantiation: evp_ctx.c:boringssl_fips_break_test
Unexecuted instantiation: ex_data.c:boringssl_fips_break_test
Unexecuted instantiation: file.c:boringssl_fips_break_test
Unexecuted instantiation: fork_detect.c:boringssl_fips_break_test
Unexecuted instantiation: forkunsafe.c:boringssl_fips_break_test
Unexecuted instantiation: md4.c:boringssl_fips_break_test
Unexecuted instantiation: md5.c:boringssl_fips_break_test
Unexecuted instantiation: mem.c:boringssl_fips_break_test
Unexecuted instantiation: obj.c:boringssl_fips_break_test
Unexecuted instantiation: p_dh_asn1.c:boringssl_fips_break_test
Unexecuted instantiation: p_dsa_asn1.c:boringssl_fips_break_test
Unexecuted instantiation: p_ec.c:boringssl_fips_break_test
Unexecuted instantiation: p_ed25519_asn1.c:boringssl_fips_break_test
Unexecuted instantiation: p_hkdf.c:boringssl_fips_break_test
Unexecuted instantiation: p_rsa.c:boringssl_fips_break_test
Unexecuted instantiation: p_rsa_asn1.c:boringssl_fips_break_test
Unexecuted instantiation: p_x25519_asn1.c:boringssl_fips_break_test
Unexecuted instantiation: pbkdf.c:boringssl_fips_break_test
Unexecuted instantiation: poly1305_vec.c:boringssl_fips_break_test
Unexecuted instantiation: refcount.c:boringssl_fips_break_test
Unexecuted instantiation: rsa_asn1.c:boringssl_fips_break_test
Unexecuted instantiation: rsa_crypt.c:boringssl_fips_break_test
Unexecuted instantiation: scrypt.c:boringssl_fips_break_test
Unexecuted instantiation: siphash.c:boringssl_fips_break_test
Unexecuted instantiation: stack.c:boringssl_fips_break_test
Unexecuted instantiation: thread_pthread.c:boringssl_fips_break_test
Unexecuted instantiation: tls_cbc.c:boringssl_fips_break_test
Unexecuted instantiation: urandom.c:boringssl_fips_break_test
Unexecuted instantiation: a_bitstr.c:boringssl_fips_break_test
Unexecuted instantiation: a_object.c:boringssl_fips_break_test
Unexecuted instantiation: asn1_compat.c:boringssl_fips_break_test
Unexecuted instantiation: bio.c:boringssl_fips_break_test
Unexecuted instantiation: blake2.c:boringssl_fips_break_test
Unexecuted instantiation: chacha.c:boringssl_fips_break_test
Unexecuted instantiation: des.c:boringssl_fips_break_test
Unexecuted instantiation: ec_asn1.c:boringssl_fips_break_test
Unexecuted instantiation: lhash.c:boringssl_fips_break_test
Unexecuted instantiation: tasn_dec.c:boringssl_fips_break_test
Unexecuted instantiation: tasn_enc.c:boringssl_fips_break_test
Unexecuted instantiation: tasn_new.c:boringssl_fips_break_test
Unexecuted instantiation: tasn_utl.c:boringssl_fips_break_test
Unexecuted instantiation: pool.c:boringssl_fips_break_test
Unexecuted instantiation: curve25519_64_adx.c:boringssl_fips_break_test
Unexecuted instantiation: cpu_intel.c:boringssl_fips_break_test
1385
#endif  // BORINGSSL_FIPS_BREAK_TESTS
1386
1387
1388
// Runtime CPU feature support
1389
1390
#if defined(OPENSSL_X86) || defined(OPENSSL_X86_64)
1391
// OPENSSL_ia32cap_P contains the Intel CPUID bits when running on an x86 or
1392
// x86-64 system.
1393
//
1394
//   Index 0:
1395
//     EDX for CPUID where EAX = 1
1396
//     Bit 20 is always zero
1397
//     Bit 28 is adjusted to reflect whether the data cache is shared between
1398
//       multiple logical cores
1399
//     Bit 30 is used to indicate an Intel CPU
1400
//   Index 1:
1401
//     ECX for CPUID where EAX = 1
1402
//     Bit 11 is used to indicate AMD XOP support, not SDBG
1403
//   Index 2:
1404
//     EBX for CPUID where EAX = 7, ECX = 0
1405
//     Bit 14 (for removed feature MPX) is used to indicate a preference for ymm
1406
//       registers over zmm even when zmm registers are supported
1407
//   Index 3:
1408
//     ECX for CPUID where EAX = 7, ECX = 0
1409
//
1410
// Note: the CPUID bits are pre-adjusted for the OSXSAVE bit and the XMM, YMM,
1411
// and AVX512 bits in XCR0, so it is not necessary to check those. (WARNING: See
1412
// caveats in cpu_intel.c.)
1413
//
1414
// From C, this symbol should only be accessed with |OPENSSL_get_ia32cap|.
1415
extern uint32_t OPENSSL_ia32cap_P[4];
1416
1417
// OPENSSL_get_ia32cap initializes the library if needed and returns the |idx|th
1418
// entry of |OPENSSL_ia32cap_P|. It is marked as a const function so duplicate
1419
// calls can be merged by the compiler, at least when indices match.
1420
OPENSSL_ATTR_CONST uint32_t OPENSSL_get_ia32cap(int idx);
1421
1422
// See Intel manual, volume 2A, table 3-11.
1423
1424
141
OPENSSL_INLINE int CRYPTO_is_FXSR_capable(void) {
1425
141
#if defined(__FXSR__)
1426
141
  return 1;
1427
#else
1428
  return (OPENSSL_get_ia32cap(0) & (1u << 24)) != 0;
1429
#endif
1430
141
}
Unexecuted instantiation: a_int.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: asn1_lib.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: cbb.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: cbs.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: convert.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: crypto.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: curve25519.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: digest_extra.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: dsa.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: dsa_asn1.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: e_des.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: e_rc2.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: e_rc4.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: e_tls.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: ecdh_extra.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: engine.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: err.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: evp.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: evp_ctx.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: ex_data.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: file.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: fork_detect.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: forkunsafe.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: md4.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: md5.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: mem.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: obj.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: p_ec.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: p_hkdf.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: p_rsa.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: pbkdf.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: poly1305_vec.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: refcount.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: rsa_asn1.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: rsa_crypt.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: scrypt.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: siphash.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: stack.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: thread_pthread.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: tls_cbc.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: urandom.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: a_bitstr.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: a_object.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: asn1_compat.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: bio.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: blake2.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: chacha.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: des.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: ec_asn1.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: lhash.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: tasn_dec.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: tasn_enc.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: tasn_new.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: tasn_utl.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: pool.c:CRYPTO_is_FXSR_capable
bcm.c:CRYPTO_is_FXSR_capable
Line
Count
Source
1424
141
OPENSSL_INLINE int CRYPTO_is_FXSR_capable(void) {
1425
141
#if defined(__FXSR__)
1426
141
  return 1;
1427
#else
1428
  return (OPENSSL_get_ia32cap(0) & (1u << 24)) != 0;
1429
#endif
1430
141
}
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_is_FXSR_capable
Unexecuted instantiation: cpu_intel.c:CRYPTO_is_FXSR_capable
1431
1432
3.40k
OPENSSL_INLINE int CRYPTO_is_intel_cpu(void) {
1433
  // The reserved bit 30 is used to indicate an Intel CPU.
1434
3.40k
  return (OPENSSL_get_ia32cap(0) & (1u << 30)) != 0;
1435
3.40k
}
Unexecuted instantiation: a_int.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: asn1_lib.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: cbb.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: cbs.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: convert.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: crypto.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: curve25519.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: digest_extra.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: dsa.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: dsa_asn1.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: e_des.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: e_rc2.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: e_rc4.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: e_tls.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: ecdh_extra.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: engine.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: err.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: evp.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: evp_ctx.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: ex_data.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: file.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: fork_detect.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: forkunsafe.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: md4.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: md5.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: mem.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: obj.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: p_ec.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: p_hkdf.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: p_rsa.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: pbkdf.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: poly1305_vec.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: refcount.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: rsa_asn1.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: rsa_crypt.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: scrypt.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: siphash.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: stack.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: thread_pthread.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: tls_cbc.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: urandom.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: a_bitstr.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: a_object.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: asn1_compat.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: bio.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: blake2.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: chacha.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: des.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: ec_asn1.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: lhash.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: tasn_dec.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: tasn_enc.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: tasn_new.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: tasn_utl.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: pool.c:CRYPTO_is_intel_cpu
bcm.c:CRYPTO_is_intel_cpu
Line
Count
Source
1432
3.40k
OPENSSL_INLINE int CRYPTO_is_intel_cpu(void) {
1433
  // The reserved bit 30 is used to indicate an Intel CPU.
1434
3.40k
  return (OPENSSL_get_ia32cap(0) & (1u << 30)) != 0;
1435
3.40k
}
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_is_intel_cpu
Unexecuted instantiation: cpu_intel.c:CRYPTO_is_intel_cpu
1436
1437
// See Intel manual, volume 2A, table 3-10.
1438
1439
141
OPENSSL_INLINE int CRYPTO_is_PCLMUL_capable(void) {
1440
#if defined(__PCLMUL__)
1441
  return 1;
1442
#else
1443
141
  return (OPENSSL_get_ia32cap(1) & (1u << 1)) != 0;
1444
141
#endif
1445
141
}
Unexecuted instantiation: a_int.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: asn1_lib.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: cbb.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: cbs.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: convert.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: crypto.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: curve25519.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: digest_extra.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: dsa.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: dsa_asn1.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: e_des.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: e_rc2.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: e_rc4.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: e_tls.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: ecdh_extra.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: engine.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: err.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: evp.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: evp_ctx.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: ex_data.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: file.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: fork_detect.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: forkunsafe.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: md4.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: md5.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: mem.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: obj.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: p_ec.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: p_hkdf.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: p_rsa.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: pbkdf.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: poly1305_vec.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: refcount.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: rsa_asn1.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: rsa_crypt.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: scrypt.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: siphash.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: stack.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: thread_pthread.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: tls_cbc.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: urandom.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: a_bitstr.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: a_object.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: asn1_compat.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: bio.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: blake2.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: chacha.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: des.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: ec_asn1.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: lhash.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: tasn_dec.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: tasn_enc.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: tasn_new.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: tasn_utl.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: pool.c:CRYPTO_is_PCLMUL_capable
bcm.c:CRYPTO_is_PCLMUL_capable
Line
Count
Source
1439
141
OPENSSL_INLINE int CRYPTO_is_PCLMUL_capable(void) {
1440
#if defined(__PCLMUL__)
1441
  return 1;
1442
#else
1443
141
  return (OPENSSL_get_ia32cap(1) & (1u << 1)) != 0;
1444
141
#endif
1445
141
}
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_is_PCLMUL_capable
Unexecuted instantiation: cpu_intel.c:CRYPTO_is_PCLMUL_capable
1446
1447
9.96k
OPENSSL_INLINE int CRYPTO_is_SSSE3_capable(void) {
1448
#if defined(__SSSE3__)
1449
  return 1;
1450
#else
1451
9.96k
  return (OPENSSL_get_ia32cap(1) & (1u << 9)) != 0;
1452
9.96k
#endif
1453
9.96k
}
Unexecuted instantiation: a_int.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: asn1_lib.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: cbb.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: cbs.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: convert.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: crypto.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: curve25519.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: digest_extra.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: dsa.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: dsa_asn1.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: e_des.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: e_rc2.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: e_rc4.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: e_tls.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: ecdh_extra.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: engine.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: err.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: evp.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: evp_ctx.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: ex_data.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: file.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: fork_detect.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: forkunsafe.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: md4.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: md5.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: mem.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: obj.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: p_ec.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: p_hkdf.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: p_rsa.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: pbkdf.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: poly1305_vec.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: refcount.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: rsa_asn1.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: rsa_crypt.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: scrypt.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: siphash.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: stack.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: thread_pthread.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: tls_cbc.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: urandom.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: a_bitstr.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: a_object.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: asn1_compat.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: bio.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: blake2.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: chacha.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: des.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: ec_asn1.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: lhash.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: tasn_dec.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: tasn_enc.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: tasn_new.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: tasn_utl.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: pool.c:CRYPTO_is_SSSE3_capable
bcm.c:CRYPTO_is_SSSE3_capable
Line
Count
Source
1447
9.96k
OPENSSL_INLINE int CRYPTO_is_SSSE3_capable(void) {
1448
#if defined(__SSSE3__)
1449
  return 1;
1450
#else
1451
9.96k
  return (OPENSSL_get_ia32cap(1) & (1u << 9)) != 0;
1452
9.96k
#endif
1453
9.96k
}
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_is_SSSE3_capable
Unexecuted instantiation: cpu_intel.c:CRYPTO_is_SSSE3_capable
1454
1455
20
OPENSSL_INLINE int CRYPTO_is_SSE4_1_capable(void) {
1456
#if defined(__SSE4_1__)
1457
  return 1;
1458
#else
1459
20
  return (OPENSSL_get_ia32cap(1) & (1u << 19)) != 0;
1460
20
#endif
1461
20
}
Unexecuted instantiation: a_int.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: asn1_lib.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: bcm.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: cbb.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: cbs.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: convert.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: crypto.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: curve25519.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: digest_extra.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: dsa.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: dsa_asn1.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: e_des.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: e_rc2.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: e_rc4.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: e_tls.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: ecdh_extra.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: engine.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: err.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: evp.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: evp_ctx.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: ex_data.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: file.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: fork_detect.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: forkunsafe.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: md4.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: md5.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: mem.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: obj.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: p_ec.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: p_hkdf.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: p_rsa.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: pbkdf.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: poly1305_vec.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: refcount.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: rsa_asn1.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: rsa_crypt.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: scrypt.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: siphash.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: stack.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: thread_pthread.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: tls_cbc.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: urandom.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: a_bitstr.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: a_object.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: asn1_compat.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: bio.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: blake2.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: chacha.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: des.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: ec_asn1.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: lhash.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: tasn_dec.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: tasn_enc.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: tasn_new.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: tasn_utl.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: pool.c:CRYPTO_is_SSE4_1_capable
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_is_SSE4_1_capable
e_chacha20poly1305.c:CRYPTO_is_SSE4_1_capable
Line
Count
Source
1455
20
OPENSSL_INLINE int CRYPTO_is_SSE4_1_capable(void) {
1456
#if defined(__SSE4_1__)
1457
  return 1;
1458
#else
1459
20
  return (OPENSSL_get_ia32cap(1) & (1u << 19)) != 0;
1460
20
#endif
1461
20
}
Unexecuted instantiation: cpu_intel.c:CRYPTO_is_SSE4_1_capable
1462
1463
141
OPENSSL_INLINE int CRYPTO_is_MOVBE_capable(void) {
1464
#if defined(__MOVBE__)
1465
  return 1;
1466
#else
1467
141
  return (OPENSSL_get_ia32cap(1) & (1u << 22)) != 0;
1468
141
#endif
1469
141
}
Unexecuted instantiation: a_int.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: asn1_lib.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: cbb.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: cbs.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: convert.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: crypto.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: curve25519.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: digest_extra.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: dsa.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: dsa_asn1.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: e_des.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: e_rc2.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: e_rc4.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: e_tls.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: ecdh_extra.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: engine.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: err.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: evp.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: evp_ctx.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: ex_data.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: file.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: fork_detect.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: forkunsafe.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: md4.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: md5.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: mem.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: obj.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: p_ec.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: p_hkdf.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: p_rsa.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: pbkdf.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: poly1305_vec.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: refcount.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: rsa_asn1.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: rsa_crypt.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: scrypt.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: siphash.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: stack.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: thread_pthread.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: tls_cbc.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: urandom.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: a_bitstr.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: a_object.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: asn1_compat.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: bio.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: blake2.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: chacha.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: des.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: ec_asn1.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: lhash.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: tasn_dec.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: tasn_enc.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: tasn_new.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: tasn_utl.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: pool.c:CRYPTO_is_MOVBE_capable
bcm.c:CRYPTO_is_MOVBE_capable
Line
Count
Source
1463
141
OPENSSL_INLINE int CRYPTO_is_MOVBE_capable(void) {
1464
#if defined(__MOVBE__)
1465
  return 1;
1466
#else
1467
141
  return (OPENSSL_get_ia32cap(1) & (1u << 22)) != 0;
1468
141
#endif
1469
141
}
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_is_MOVBE_capable
Unexecuted instantiation: cpu_intel.c:CRYPTO_is_MOVBE_capable
1470
1471
4.43k
OPENSSL_INLINE int CRYPTO_is_AESNI_capable(void) {
1472
#if defined(__AES__)
1473
  return 1;
1474
#else
1475
4.43k
  return (OPENSSL_get_ia32cap(1) & (1u << 25)) != 0;
1476
4.43k
#endif
1477
4.43k
}
Unexecuted instantiation: a_int.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: asn1_lib.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: cbb.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: cbs.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: convert.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: crypto.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: curve25519.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: digest_extra.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: dsa.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: dsa_asn1.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: e_des.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: e_rc2.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: e_rc4.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: e_tls.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: ecdh_extra.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: engine.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: err.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: evp.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: evp_ctx.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: ex_data.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: file.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: fork_detect.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: forkunsafe.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: md4.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: md5.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: mem.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: obj.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: p_ec.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: p_hkdf.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: p_rsa.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: pbkdf.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: poly1305_vec.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: refcount.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: rsa_asn1.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: rsa_crypt.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: scrypt.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: siphash.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: stack.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: thread_pthread.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: tls_cbc.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: urandom.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: a_bitstr.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: a_object.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: asn1_compat.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: bio.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: blake2.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: chacha.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: des.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: ec_asn1.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: lhash.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: tasn_dec.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: tasn_enc.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: tasn_new.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: tasn_utl.c:CRYPTO_is_AESNI_capable
Unexecuted instantiation: pool.c:CRYPTO_is_AESNI_capable
bcm.c:CRYPTO_is_AESNI_capable
Line
Count
Source
1471
4.42k
OPENSSL_INLINE int CRYPTO_is_AESNI_capable(void) {
1472
#if defined(__AES__)
1473
  return 1;
1474
#else
1475
4.42k
  return (OPENSSL_get_ia32cap(1) & (1u << 25)) != 0;
1476
4.42k
#endif
1477
4.42k
}
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_is_AESNI_capable
e_aesgcmsiv.c:CRYPTO_is_AESNI_capable
Line
Count
Source
1471
2
OPENSSL_INLINE int CRYPTO_is_AESNI_capable(void) {
1472
#if defined(__AES__)
1473
  return 1;
1474
#else
1475
2
  return (OPENSSL_get_ia32cap(1) & (1u << 25)) != 0;
1476
2
#endif
1477
2
}
Unexecuted instantiation: cpu_intel.c:CRYPTO_is_AESNI_capable
1478
1479
// We intentionally avoid defining a |CRYPTO_is_XSAVE_capable| function. See
1480
// |CRYPTO_cpu_perf_is_like_silvermont|.
1481
1482
4.79k
OPENSSL_INLINE int CRYPTO_is_AVX_capable(void) {
1483
#if defined(__AVX__)
1484
  return 1;
1485
#else
1486
4.79k
  return (OPENSSL_get_ia32cap(1) & (1u << 28)) != 0;
1487
4.79k
#endif
1488
4.79k
}
Unexecuted instantiation: a_int.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: asn1_lib.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: cbb.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: cbs.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: convert.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: crypto.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: curve25519.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: digest_extra.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: dsa.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: dsa_asn1.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: e_des.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: e_rc2.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: e_rc4.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: e_tls.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: ecdh_extra.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: engine.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: err.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: evp.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: evp_ctx.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: ex_data.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: file.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: fork_detect.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: forkunsafe.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: md4.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: md5.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: mem.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: obj.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: p_ec.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: p_hkdf.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: p_rsa.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: pbkdf.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: poly1305_vec.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: refcount.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: rsa_asn1.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: rsa_crypt.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: scrypt.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: siphash.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: stack.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: thread_pthread.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: tls_cbc.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: urandom.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: a_bitstr.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: a_object.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: asn1_compat.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: bio.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: blake2.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: chacha.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: des.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: ec_asn1.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: lhash.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: tasn_dec.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: tasn_enc.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: tasn_new.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: tasn_utl.c:CRYPTO_is_AVX_capable
Unexecuted instantiation: pool.c:CRYPTO_is_AVX_capable
bcm.c:CRYPTO_is_AVX_capable
Line
Count
Source
1482
4.79k
OPENSSL_INLINE int CRYPTO_is_AVX_capable(void) {
1483
#if defined(__AVX__)
1484
  return 1;
1485
#else
1486
4.79k
  return (OPENSSL_get_ia32cap(1) & (1u << 28)) != 0;
1487
4.79k
#endif
1488
4.79k
}
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_is_AVX_capable
e_aesgcmsiv.c:CRYPTO_is_AVX_capable
Line
Count
Source
1482
2
OPENSSL_INLINE int CRYPTO_is_AVX_capable(void) {
1483
#if defined(__AVX__)
1484
  return 1;
1485
#else
1486
2
  return (OPENSSL_get_ia32cap(1) & (1u << 28)) != 0;
1487
2
#endif
1488
2
}
Unexecuted instantiation: cpu_intel.c:CRYPTO_is_AVX_capable
1489
1490
960
OPENSSL_INLINE int CRYPTO_is_RDRAND_capable(void) {
1491
  // We intentionally do not check |__RDRND__| here. On some AMD processors, we
1492
  // will act as if the hardware is RDRAND-incapable, even it actually supports
1493
  // it. See cpu_intel.c.
1494
960
  return (OPENSSL_get_ia32cap(1) & (1u << 30)) != 0;
1495
960
}
Unexecuted instantiation: a_int.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: asn1_lib.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: cbb.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: cbs.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: convert.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: crypto.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: curve25519.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: digest_extra.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: dsa.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: dsa_asn1.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: e_des.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: e_rc2.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: e_rc4.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: e_tls.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: ecdh_extra.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: engine.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: err.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: evp.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: evp_ctx.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: ex_data.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: file.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: fork_detect.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: forkunsafe.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: md4.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: md5.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: mem.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: obj.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: p_ec.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: p_hkdf.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: p_rsa.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: pbkdf.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: poly1305_vec.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: refcount.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: rsa_asn1.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: rsa_crypt.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: scrypt.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: siphash.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: stack.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: thread_pthread.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: tls_cbc.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: urandom.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: a_bitstr.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: a_object.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: asn1_compat.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: bio.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: blake2.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: chacha.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: des.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: ec_asn1.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: lhash.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: tasn_dec.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: tasn_enc.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: tasn_new.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: tasn_utl.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: pool.c:CRYPTO_is_RDRAND_capable
bcm.c:CRYPTO_is_RDRAND_capable
Line
Count
Source
1490
960
OPENSSL_INLINE int CRYPTO_is_RDRAND_capable(void) {
1491
  // We intentionally do not check |__RDRND__| here. On some AMD processors, we
1492
  // will act as if the hardware is RDRAND-incapable, even it actually supports
1493
  // it. See cpu_intel.c.
1494
960
  return (OPENSSL_get_ia32cap(1) & (1u << 30)) != 0;
1495
960
}
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_is_RDRAND_capable
Unexecuted instantiation: cpu_intel.c:CRYPTO_is_RDRAND_capable
1496
1497
// See Intel manual, volume 2A, table 3-8.
1498
1499
5.10k
OPENSSL_INLINE int CRYPTO_is_BMI1_capable(void) {
1500
#if defined(__BMI__)
1501
  return 1;
1502
#else
1503
5.10k
  return (OPENSSL_get_ia32cap(2) & (1u << 3)) != 0;
1504
5.10k
#endif
1505
5.10k
}
Unexecuted instantiation: a_int.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: asn1_lib.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: cbb.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: cbs.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: convert.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: crypto.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: curve25519.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: digest_extra.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: dsa.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: dsa_asn1.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: e_des.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: e_rc2.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: e_rc4.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: e_tls.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: ecdh_extra.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: engine.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: err.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: evp.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: evp_ctx.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: ex_data.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: file.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: fork_detect.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: forkunsafe.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: md4.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: md5.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: mem.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: obj.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: p_ec.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: p_hkdf.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: p_rsa.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: pbkdf.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: poly1305_vec.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: refcount.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: rsa_asn1.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: rsa_crypt.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: scrypt.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: siphash.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: stack.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: thread_pthread.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: tls_cbc.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: urandom.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: a_bitstr.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: a_object.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: asn1_compat.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: bio.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: blake2.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: chacha.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: des.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: ec_asn1.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: lhash.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: tasn_dec.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: tasn_enc.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: tasn_new.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: tasn_utl.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: pool.c:CRYPTO_is_BMI1_capable
bcm.c:CRYPTO_is_BMI1_capable
Line
Count
Source
1499
5.10k
OPENSSL_INLINE int CRYPTO_is_BMI1_capable(void) {
1500
#if defined(__BMI__)
1501
  return 1;
1502
#else
1503
5.10k
  return (OPENSSL_get_ia32cap(2) & (1u << 3)) != 0;
1504
5.10k
#endif
1505
5.10k
}
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_is_BMI1_capable
Unexecuted instantiation: cpu_intel.c:CRYPTO_is_BMI1_capable
1506
1507
978
OPENSSL_INLINE int CRYPTO_is_AVX2_capable(void) {
1508
#if defined(__AVX2__)
1509
  return 1;
1510
#else
1511
978
  return (OPENSSL_get_ia32cap(2) & (1u << 5)) != 0;
1512
978
#endif
1513
978
}
Unexecuted instantiation: a_int.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: asn1_lib.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: cbb.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: cbs.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: convert.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: crypto.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: curve25519.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: digest_extra.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: dsa.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: dsa_asn1.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: e_des.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: e_rc2.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: e_rc4.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: e_tls.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: ecdh_extra.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: engine.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: err.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: evp.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: evp_ctx.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: ex_data.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: file.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: fork_detect.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: forkunsafe.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: md4.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: md5.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: mem.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: obj.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: p_ec.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: p_hkdf.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: p_rsa.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: pbkdf.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: poly1305_vec.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: refcount.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: rsa_asn1.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: rsa_crypt.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: scrypt.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: siphash.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: stack.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: thread_pthread.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: tls_cbc.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: urandom.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: a_bitstr.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: a_object.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: asn1_compat.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: bio.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: blake2.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: chacha.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: des.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: ec_asn1.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: lhash.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: tasn_dec.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: tasn_enc.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: tasn_new.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: tasn_utl.c:CRYPTO_is_AVX2_capable
Unexecuted instantiation: pool.c:CRYPTO_is_AVX2_capable
bcm.c:CRYPTO_is_AVX2_capable
Line
Count
Source
1507
958
OPENSSL_INLINE int CRYPTO_is_AVX2_capable(void) {
1508
#if defined(__AVX2__)
1509
  return 1;
1510
#else
1511
958
  return (OPENSSL_get_ia32cap(2) & (1u << 5)) != 0;
1512
958
#endif
1513
958
}
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_is_AVX2_capable
e_chacha20poly1305.c:CRYPTO_is_AVX2_capable
Line
Count
Source
1507
20
OPENSSL_INLINE int CRYPTO_is_AVX2_capable(void) {
1508
#if defined(__AVX2__)
1509
  return 1;
1510
#else
1511
20
  return (OPENSSL_get_ia32cap(2) & (1u << 5)) != 0;
1512
20
#endif
1513
20
}
Unexecuted instantiation: cpu_intel.c:CRYPTO_is_AVX2_capable
1514
1515
25.2k
OPENSSL_INLINE int CRYPTO_is_BMI2_capable(void) {
1516
#if defined(__BMI2__)
1517
  return 1;
1518
#else
1519
25.2k
  return (OPENSSL_get_ia32cap(2) & (1u << 8)) != 0;
1520
25.2k
#endif
1521
25.2k
}
Unexecuted instantiation: a_int.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: asn1_lib.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: cbb.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: cbs.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: convert.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: crypto.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: curve25519.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: digest_extra.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: dsa.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: dsa_asn1.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: e_des.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: e_rc2.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: e_rc4.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: e_tls.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: ecdh_extra.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: engine.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: err.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: evp.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: evp_ctx.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: ex_data.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: file.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: fork_detect.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: forkunsafe.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: md4.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: md5.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: mem.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: obj.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: p_ec.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: p_hkdf.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: p_rsa.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: pbkdf.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: poly1305_vec.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: refcount.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: rsa_asn1.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: rsa_crypt.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: scrypt.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: siphash.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: stack.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: thread_pthread.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: tls_cbc.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: urandom.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: a_bitstr.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: a_object.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: asn1_compat.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: bio.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: blake2.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: chacha.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: des.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: ec_asn1.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: lhash.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: tasn_dec.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: tasn_enc.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: tasn_new.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: tasn_utl.c:CRYPTO_is_BMI2_capable
Unexecuted instantiation: pool.c:CRYPTO_is_BMI2_capable
bcm.c:CRYPTO_is_BMI2_capable
Line
Count
Source
1515
25.2k
OPENSSL_INLINE int CRYPTO_is_BMI2_capable(void) {
1516
#if defined(__BMI2__)
1517
  return 1;
1518
#else
1519
25.2k
  return (OPENSSL_get_ia32cap(2) & (1u << 8)) != 0;
1520
25.2k
#endif
1521
25.2k
}
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_is_BMI2_capable
e_chacha20poly1305.c:CRYPTO_is_BMI2_capable
Line
Count
Source
1515
20
OPENSSL_INLINE int CRYPTO_is_BMI2_capable(void) {
1516
#if defined(__BMI2__)
1517
  return 1;
1518
#else
1519
20
  return (OPENSSL_get_ia32cap(2) & (1u << 8)) != 0;
1520
20
#endif
1521
20
}
Unexecuted instantiation: cpu_intel.c:CRYPTO_is_BMI2_capable
1522
1523
25.2k
OPENSSL_INLINE int CRYPTO_is_ADX_capable(void) {
1524
#if defined(__ADX__)
1525
  return 1;
1526
#else
1527
25.2k
  return (OPENSSL_get_ia32cap(2) & (1u << 19)) != 0;
1528
25.2k
#endif
1529
25.2k
}
Unexecuted instantiation: a_int.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: asn1_lib.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: cbb.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: cbs.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: convert.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: crypto.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: curve25519.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: digest_extra.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: dsa.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: dsa_asn1.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: e_des.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: e_rc2.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: e_rc4.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: e_tls.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: ecdh_extra.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: engine.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: err.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: evp.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: evp_ctx.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: ex_data.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: file.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: fork_detect.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: forkunsafe.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: md4.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: md5.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: mem.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: obj.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: p_ec.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: p_hkdf.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: p_rsa.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: pbkdf.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: poly1305_vec.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: refcount.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: rsa_asn1.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: rsa_crypt.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: scrypt.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: siphash.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: stack.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: thread_pthread.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: tls_cbc.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: urandom.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: a_bitstr.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: a_object.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: asn1_compat.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: bio.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: blake2.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: chacha.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: des.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: ec_asn1.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: lhash.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: tasn_dec.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: tasn_enc.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: tasn_new.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: tasn_utl.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: pool.c:CRYPTO_is_ADX_capable
bcm.c:CRYPTO_is_ADX_capable
Line
Count
Source
1523
25.2k
OPENSSL_INLINE int CRYPTO_is_ADX_capable(void) {
1524
#if defined(__ADX__)
1525
  return 1;
1526
#else
1527
25.2k
  return (OPENSSL_get_ia32cap(2) & (1u << 19)) != 0;
1528
25.2k
#endif
1529
25.2k
}
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_is_ADX_capable
Unexecuted instantiation: cpu_intel.c:CRYPTO_is_ADX_capable
1530
1531
// SHA-1 and SHA-256 are defined as a single extension.
1532
9.96k
OPENSSL_INLINE int CRYPTO_is_x86_SHA_capable(void) {
1533
  // We should check __SHA__ here, but for now we ignore it. We've run into a
1534
  // few places where projects build with -march=goldmont, but need a build that
1535
  // does not require SHA extensions:
1536
  //
1537
  // - Some CrOS toolchain definitions are incorrect and build with
1538
  //   -march=goldmont when targetting boards that are not Goldmont. b/320482539
1539
  //   tracks fixing this.
1540
  //
1541
  // - Sometimes projects build with -march=goldmont as a rough optimized
1542
  //   baseline. However, Intel CPU capabilities are not strictly linear, so
1543
  //   this does not quite work. Some combination of -mtune and
1544
  //   -march=x86-64-v{1,2,3,4} would be a better strategy here.
1545
  //
1546
  // - QEMU versions before 8.2 do not support SHA extensions and disable it
1547
  //   with a warning. Projects that target Goldmont and test on QEMU will
1548
  //   break. The long-term fix is to update to 8.2. A principled short-term fix
1549
  //   would be -march=goldmont -mno-sha, to reflect that the binary needs to
1550
  //   run on both QEMU-8.1-Goldmont and actual-Goldmont.
1551
  //
1552
  // TODO(b/320482539): Once the CrOS toolchain is fixed, try this again.
1553
9.96k
  return (OPENSSL_get_ia32cap(2) & (1u << 29)) != 0;
1554
9.96k
}
Unexecuted instantiation: a_int.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: asn1_lib.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: cbb.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: cbs.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: convert.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: crypto.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: curve25519.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: digest_extra.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: dsa.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: dsa_asn1.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: e_des.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: e_rc2.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: e_rc4.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: e_tls.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: ecdh_extra.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: engine.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: err.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: evp.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: evp_ctx.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: ex_data.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: file.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: fork_detect.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: forkunsafe.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: md4.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: md5.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: mem.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: obj.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: p_ec.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: p_hkdf.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: p_rsa.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: pbkdf.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: poly1305_vec.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: refcount.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: rsa_asn1.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: rsa_crypt.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: scrypt.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: siphash.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: stack.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: thread_pthread.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: tls_cbc.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: urandom.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: a_bitstr.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: a_object.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: asn1_compat.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: bio.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: blake2.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: chacha.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: des.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: ec_asn1.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: lhash.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: tasn_dec.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: tasn_enc.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: tasn_new.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: tasn_utl.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: pool.c:CRYPTO_is_x86_SHA_capable
bcm.c:CRYPTO_is_x86_SHA_capable
Line
Count
Source
1532
9.96k
OPENSSL_INLINE int CRYPTO_is_x86_SHA_capable(void) {
1533
  // We should check __SHA__ here, but for now we ignore it. We've run into a
1534
  // few places where projects build with -march=goldmont, but need a build that
1535
  // does not require SHA extensions:
1536
  //
1537
  // - Some CrOS toolchain definitions are incorrect and build with
1538
  //   -march=goldmont when targetting boards that are not Goldmont. b/320482539
1539
  //   tracks fixing this.
1540
  //
1541
  // - Sometimes projects build with -march=goldmont as a rough optimized
1542
  //   baseline. However, Intel CPU capabilities are not strictly linear, so
1543
  //   this does not quite work. Some combination of -mtune and
1544
  //   -march=x86-64-v{1,2,3,4} would be a better strategy here.
1545
  //
1546
  // - QEMU versions before 8.2 do not support SHA extensions and disable it
1547
  //   with a warning. Projects that target Goldmont and test on QEMU will
1548
  //   break. The long-term fix is to update to 8.2. A principled short-term fix
1549
  //   would be -march=goldmont -mno-sha, to reflect that the binary needs to
1550
  //   run on both QEMU-8.1-Goldmont and actual-Goldmont.
1551
  //
1552
  // TODO(b/320482539): Once the CrOS toolchain is fixed, try this again.
1553
9.96k
  return (OPENSSL_get_ia32cap(2) & (1u << 29)) != 0;
1554
9.96k
}
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_is_x86_SHA_capable
Unexecuted instantiation: cpu_intel.c:CRYPTO_is_x86_SHA_capable
1555
1556
// CRYPTO_cpu_perf_is_like_silvermont returns one if, based on a heuristic, the
1557
// CPU has Silvermont-like performance characteristics. It is often faster to
1558
// run different codepaths on these CPUs than the available instructions would
1559
// otherwise select. See chacha-x86_64.pl.
1560
//
1561
// Bonnell, Silvermont's predecessor in the Atom lineup, will also be matched by
1562
// this. Goldmont (Silvermont's successor in the Atom lineup) added XSAVE so it
1563
// isn't matched by this. Various sources indicate AMD first implemented MOVBE
1564
// and XSAVE at the same time in Jaguar, so it seems like AMD chips will not be
1565
// matched by this. That seems to be the case for other x86(-64) CPUs.
1566
0
OPENSSL_INLINE int CRYPTO_cpu_perf_is_like_silvermont(void) {
1567
0
  // WARNING: This MUST NOT be used to guard the execution of the XSAVE
1568
0
  // instruction. This is the "hardware supports XSAVE" bit, not the OSXSAVE bit
1569
0
  // that indicates whether we can safely execute XSAVE. This bit may be set
1570
0
  // even when XSAVE is disabled (by the operating system). See how the users of
1571
0
  // this bit use it.
1572
0
  //
1573
0
  // Historically, the XSAVE bit was artificially cleared on Knights Landing
1574
0
  // and Knights Mill chips, but as Intel has removed all support from GCC,
1575
0
  // LLVM, and SDE, we assume they are no longer worth special-casing.
1576
0
  int hardware_supports_xsave = (OPENSSL_get_ia32cap(1) & (1u << 26)) != 0;
1577
0
  return !hardware_supports_xsave && CRYPTO_is_MOVBE_capable();
1578
0
}
Unexecuted instantiation: a_int.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: asn1_lib.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: bcm.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: cbb.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: cbs.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: convert.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: crypto.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: curve25519.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: digest_extra.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: dsa.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: dsa_asn1.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: e_des.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: e_rc2.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: e_rc4.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: e_tls.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: ecdh_extra.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: engine.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: err.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: evp.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: evp_ctx.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: ex_data.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: file.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: fork_detect.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: forkunsafe.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: md4.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: md5.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: mem.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: obj.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: p_ec.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: p_hkdf.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: p_rsa.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: pbkdf.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: poly1305_vec.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: refcount.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: rsa_asn1.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: rsa_crypt.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: scrypt.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: siphash.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: stack.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: thread_pthread.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: tls_cbc.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: urandom.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: a_bitstr.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: a_object.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: asn1_compat.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: bio.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: blake2.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: chacha.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: des.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: ec_asn1.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: lhash.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: tasn_dec.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: tasn_enc.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: tasn_new.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: tasn_utl.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: pool.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_cpu_perf_is_like_silvermont
Unexecuted instantiation: cpu_intel.c:CRYPTO_cpu_perf_is_like_silvermont
1579
1580
0
OPENSSL_INLINE int CRYPTO_is_AVX512BW_capable(void) {
1581
0
#if defined(__AVX512BW__)
1582
0
  return 1;
1583
0
#else
1584
0
  return (OPENSSL_get_ia32cap(2) & (1u << 30)) != 0;
1585
0
#endif
1586
0
}
Unexecuted instantiation: a_int.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: asn1_lib.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: bcm.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: cbb.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: cbs.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: convert.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: crypto.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: curve25519.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: digest_extra.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: dsa.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: dsa_asn1.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: e_des.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: e_rc2.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: e_rc4.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: e_tls.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: ecdh_extra.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: engine.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: err.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: evp.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: evp_ctx.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: ex_data.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: file.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: fork_detect.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: forkunsafe.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: md4.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: md5.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: mem.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: obj.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: p_ec.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: p_hkdf.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: p_rsa.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: pbkdf.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: poly1305_vec.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: refcount.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: rsa_asn1.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: rsa_crypt.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: scrypt.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: siphash.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: stack.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: thread_pthread.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: tls_cbc.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: urandom.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: a_bitstr.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: a_object.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: asn1_compat.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: bio.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: blake2.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: chacha.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: des.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: ec_asn1.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: lhash.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: tasn_dec.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: tasn_enc.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: tasn_new.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: tasn_utl.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: pool.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_is_AVX512BW_capable
Unexecuted instantiation: cpu_intel.c:CRYPTO_is_AVX512BW_capable
1587
1588
0
OPENSSL_INLINE int CRYPTO_is_AVX512VL_capable(void) {
1589
0
#if defined(__AVX512VL__)
1590
0
  return 1;
1591
0
#else
1592
0
  return (OPENSSL_get_ia32cap(2) & (1u << 31)) != 0;
1593
0
#endif
1594
0
}
Unexecuted instantiation: a_int.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: asn1_lib.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: bcm.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: cbb.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: cbs.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: convert.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: crypto.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: curve25519.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: digest_extra.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: dsa.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: dsa_asn1.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: e_des.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: e_rc2.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: e_rc4.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: e_tls.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: ecdh_extra.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: engine.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: err.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: evp.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: evp_ctx.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: ex_data.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: file.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: fork_detect.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: forkunsafe.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: md4.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: md5.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: mem.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: obj.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: p_ec.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: p_hkdf.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: p_rsa.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: pbkdf.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: poly1305_vec.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: refcount.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: rsa_asn1.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: rsa_crypt.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: scrypt.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: siphash.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: stack.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: thread_pthread.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: tls_cbc.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: urandom.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: a_bitstr.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: a_object.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: asn1_compat.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: bio.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: blake2.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: chacha.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: des.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: ec_asn1.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: lhash.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: tasn_dec.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: tasn_enc.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: tasn_new.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: tasn_utl.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: pool.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_is_AVX512VL_capable
Unexecuted instantiation: cpu_intel.c:CRYPTO_is_AVX512VL_capable
1595
1596
// CRYPTO_cpu_avoid_zmm_registers returns 1 if zmm registers (512-bit vectors)
1597
// should not be used even if the CPU supports them.
1598
//
1599
// Note that this reuses the bit for the removed MPX feature.
1600
0
OPENSSL_INLINE int CRYPTO_cpu_avoid_zmm_registers(void) {
1601
0
  return (OPENSSL_get_ia32cap(2) & (1u << 14)) != 0;
1602
0
}
Unexecuted instantiation: a_int.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: asn1_lib.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: bcm.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: cbb.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: cbs.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: convert.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: crypto.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: curve25519.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: digest_extra.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: dsa.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: dsa_asn1.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: e_des.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: e_rc2.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: e_rc4.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: e_tls.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: ecdh_extra.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: engine.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: err.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: evp.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: evp_ctx.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: ex_data.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: file.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: fork_detect.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: forkunsafe.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: md4.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: md5.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: mem.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: obj.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: p_ec.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: p_hkdf.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: p_rsa.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: pbkdf.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: poly1305_vec.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: refcount.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: rsa_asn1.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: rsa_crypt.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: scrypt.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: siphash.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: stack.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: thread_pthread.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: tls_cbc.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: urandom.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: a_bitstr.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: a_object.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: asn1_compat.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: bio.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: blake2.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: chacha.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: des.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: ec_asn1.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: lhash.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: tasn_dec.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: tasn_enc.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: tasn_new.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: tasn_utl.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: pool.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_cpu_avoid_zmm_registers
Unexecuted instantiation: cpu_intel.c:CRYPTO_cpu_avoid_zmm_registers
1603
1604
0
OPENSSL_INLINE int CRYPTO_is_VAES_capable(void) {
1605
0
#if defined(__VAES__)
1606
0
  return 1;
1607
0
#else
1608
0
  return (OPENSSL_get_ia32cap(3) & (1u << 9)) != 0;
1609
0
#endif
1610
0
}
Unexecuted instantiation: a_int.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: asn1_lib.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: bcm.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: cbb.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: cbs.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: convert.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: crypto.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: curve25519.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: digest_extra.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: dsa.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: dsa_asn1.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: e_des.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: e_rc2.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: e_rc4.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: e_tls.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: ecdh_extra.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: engine.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: err.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: evp.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: evp_ctx.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: ex_data.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: file.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: fork_detect.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: forkunsafe.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: md4.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: md5.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: mem.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: obj.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: p_ec.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: p_hkdf.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: p_rsa.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: pbkdf.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: poly1305_vec.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: refcount.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: rsa_asn1.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: rsa_crypt.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: scrypt.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: siphash.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: stack.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: thread_pthread.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: tls_cbc.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: urandom.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: a_bitstr.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: a_object.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: asn1_compat.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: bio.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: blake2.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: chacha.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: des.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: ec_asn1.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: lhash.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: tasn_dec.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: tasn_enc.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: tasn_new.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: tasn_utl.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: pool.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_is_VAES_capable
Unexecuted instantiation: cpu_intel.c:CRYPTO_is_VAES_capable
1611
1612
0
OPENSSL_INLINE int CRYPTO_is_VPCLMULQDQ_capable(void) {
1613
0
#if defined(__VPCLMULQDQ__)
1614
0
  return 1;
1615
0
#else
1616
0
  return (OPENSSL_get_ia32cap(3) & (1u << 10)) != 0;
1617
0
#endif
1618
0
}
Unexecuted instantiation: a_int.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: asn1_lib.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: bcm.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: cbb.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: cbs.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: convert.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: crypto.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: curve25519.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: digest_extra.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: dsa.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: dsa_asn1.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: e_aesctrhmac.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: e_des.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: e_rc2.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: e_rc4.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: e_tls.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: ecdh_extra.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: engine.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: err.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: evp.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: evp_ctx.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: ex_data.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: file.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: fork_detect.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: forkunsafe.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: md4.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: md5.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: mem.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: obj.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: p_dh_asn1.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: p_dsa_asn1.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: p_ec.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: p_hkdf.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: p_rsa.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: p_rsa_asn1.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: pbkdf.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: poly1305_vec.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: refcount.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: rsa_asn1.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: rsa_crypt.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: scrypt.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: siphash.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: stack.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: thread_pthread.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: tls_cbc.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: urandom.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: a_bitstr.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: a_object.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: asn1_compat.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: bio.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: blake2.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: chacha.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: des.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: ec_asn1.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: lhash.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: tasn_dec.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: tasn_enc.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: tasn_new.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: tasn_utl.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: pool.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: curve25519_64_adx.c:CRYPTO_is_VPCLMULQDQ_capable
Unexecuted instantiation: cpu_intel.c:CRYPTO_is_VPCLMULQDQ_capable
1619
1620
#endif  // OPENSSL_X86 || OPENSSL_X86_64
1621
1622
#if defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64)
1623
1624
// OPENSSL_armcap_P contains ARM CPU capabilities. From C, this should only be
1625
// accessed with |OPENSSL_get_armcap|.
1626
extern uint32_t OPENSSL_armcap_P;
1627
1628
// OPENSSL_get_armcap initializes the library if needed and returns ARM CPU
1629
// capabilities. It is marked as a const function so duplicate calls can be
1630
// merged by the compiler.
1631
OPENSSL_ATTR_CONST uint32_t OPENSSL_get_armcap(void);
1632
1633
// We do not detect any features at runtime on several 32-bit Arm platforms.
1634
// Apple platforms and OpenBSD require NEON and moved to 64-bit to pick up Armv8
1635
// extensions. Android baremetal does not aim to support 32-bit Arm at all, but
1636
// it simplifies things to make it build.
1637
#if defined(OPENSSL_ARM) && !defined(OPENSSL_STATIC_ARMCAP) && \
1638
    (defined(OPENSSL_APPLE) || defined(OPENSSL_OPENBSD) ||     \
1639
     defined(ANDROID_BAREMETAL))
1640
#define OPENSSL_STATIC_ARMCAP
1641
#endif
1642
1643
// Normalize some older feature flags to their modern ACLE values.
1644
// https://developer.arm.com/architectures/system-architectures/software-standards/acle
1645
#if defined(__ARM_NEON__) && !defined(__ARM_NEON)
1646
#define __ARM_NEON 1
1647
#endif
1648
#if defined(__ARM_FEATURE_CRYPTO)
1649
#if !defined(__ARM_FEATURE_AES)
1650
#define __ARM_FEATURE_AES 1
1651
#endif
1652
#if !defined(__ARM_FEATURE_SHA2)
1653
#define __ARM_FEATURE_SHA2 1
1654
#endif
1655
#endif
1656
1657
// CRYPTO_is_NEON_capable returns true if the current CPU has a NEON unit. If
1658
// this is known statically, it is a constant inline function.
1659
OPENSSL_INLINE int CRYPTO_is_NEON_capable(void) {
1660
#if defined(OPENSSL_STATIC_ARMCAP_NEON) || defined(__ARM_NEON)
1661
  return 1;
1662
#elif defined(OPENSSL_STATIC_ARMCAP)
1663
  return 0;
1664
#else
1665
  return (OPENSSL_get_armcap() & ARMV7_NEON) != 0;
1666
#endif
1667
}
1668
1669
OPENSSL_INLINE int CRYPTO_is_ARMv8_AES_capable(void) {
1670
#if defined(OPENSSL_STATIC_ARMCAP_AES) || defined(__ARM_FEATURE_AES)
1671
  return 1;
1672
#elif defined(OPENSSL_STATIC_ARMCAP)
1673
  return 0;
1674
#else
1675
  return (OPENSSL_get_armcap() & ARMV8_AES) != 0;
1676
#endif
1677
}
1678
1679
OPENSSL_INLINE int CRYPTO_is_ARMv8_PMULL_capable(void) {
1680
#if defined(OPENSSL_STATIC_ARMCAP_PMULL) || defined(__ARM_FEATURE_AES)
1681
  return 1;
1682
#elif defined(OPENSSL_STATIC_ARMCAP)
1683
  return 0;
1684
#else
1685
  return (OPENSSL_get_armcap() & ARMV8_PMULL) != 0;
1686
#endif
1687
}
1688
1689
OPENSSL_INLINE int CRYPTO_is_ARMv8_SHA1_capable(void) {
1690
  // SHA-1 and SHA-2 (only) share |__ARM_FEATURE_SHA2| but otherwise
1691
  // are dealt with independently.
1692
#if defined(OPENSSL_STATIC_ARMCAP_SHA1) || defined(__ARM_FEATURE_SHA2)
1693
  return 1;
1694
#elif defined(OPENSSL_STATIC_ARMCAP)
1695
  return 0;
1696
#else
1697
  return (OPENSSL_get_armcap() & ARMV8_SHA1) != 0;
1698
#endif
1699
}
1700
1701
OPENSSL_INLINE int CRYPTO_is_ARMv8_SHA256_capable(void) {
1702
  // SHA-1 and SHA-2 (only) share |__ARM_FEATURE_SHA2| but otherwise
1703
  // are dealt with independently.
1704
#if defined(OPENSSL_STATIC_ARMCAP_SHA256) || defined(__ARM_FEATURE_SHA2)
1705
  return 1;
1706
#elif defined(OPENSSL_STATIC_ARMCAP)
1707
  return 0;
1708
#else
1709
  return (OPENSSL_get_armcap() & ARMV8_SHA256) != 0;
1710
#endif
1711
}
1712
1713
OPENSSL_INLINE int CRYPTO_is_ARMv8_SHA512_capable(void) {
1714
  // There is no |OPENSSL_STATIC_ARMCAP_SHA512|.
1715
#if defined(__ARM_FEATURE_SHA512)
1716
  return 1;
1717
#elif defined(OPENSSL_STATIC_ARMCAP)
1718
  return 0;
1719
#else
1720
  return (OPENSSL_get_armcap() & ARMV8_SHA512) != 0;
1721
#endif
1722
}
1723
1724
#endif  // OPENSSL_ARM || OPENSSL_AARCH64
1725
1726
#if defined(BORINGSSL_DISPATCH_TEST)
1727
// Runtime CPU dispatch testing support
1728
1729
// BORINGSSL_function_hit is an array of flags. The following functions will
1730
// set these flags if BORINGSSL_DISPATCH_TEST is defined.
1731
//   0: aes_hw_ctr32_encrypt_blocks
1732
//   1: aes_hw_encrypt
1733
//   2: aesni_gcm_encrypt
1734
//   3: aes_hw_set_encrypt_key
1735
//   4: vpaes_encrypt
1736
//   5: vpaes_set_encrypt_key
1737
extern uint8_t BORINGSSL_function_hit[7];
1738
#endif  // BORINGSSL_DISPATCH_TEST
1739
1740
// OPENSSL_vasprintf_internal is just like |vasprintf(3)|. If |system_malloc| is
1741
// 0, memory will be allocated with |OPENSSL_malloc| and must be freed with
1742
// |OPENSSL_free|. Otherwise the system |malloc| function is used and the memory
1743
// must be freed with the system |free| function.
1744
OPENSSL_EXPORT int OPENSSL_vasprintf_internal(char **str, const char *format,
1745
                                              va_list args, int system_malloc)
1746
    OPENSSL_PRINTF_FORMAT_FUNC(2, 0);
1747
1748
#if defined(__cplusplus)
1749
}  // extern C
1750
#endif
1751
1752
#endif  // OPENSSL_HEADER_CRYPTO_INTERNAL_H