/rust/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-sys-0.32.2/aws-lc/crypto/internal.h
Line | Count | Source |
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/crypto.h> |
113 | | #include <openssl/ex_data.h> |
114 | | #include <openssl/service_indicator.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(_MSC_VER) |
131 | | #define alignas(x) __declspec(align(x)) |
132 | | #define alignof __alignof |
133 | | #elif !defined(AWS_LC_STDALIGN_AVAILABLE) |
134 | | #define alignas(x) __attribute__ ((aligned (x))) |
135 | | #define alignof(x) __alignof__ (x) |
136 | | #else |
137 | | #include <stdalign.h> |
138 | | #endif |
139 | | #endif |
140 | | |
141 | | #if defined(OPENSSL_THREADS) && \ |
142 | | (!defined(OPENSSL_WINDOWS) || \ |
143 | | (defined(__MINGW32__) && !defined(__clang__))) |
144 | | #include <pthread.h> |
145 | | #define OPENSSL_PTHREADS |
146 | | #endif |
147 | | |
148 | | #if defined(OPENSSL_THREADS) && !defined(OPENSSL_PTHREADS) && \ |
149 | | defined(OPENSSL_WINDOWS) |
150 | | #define OPENSSL_WINDOWS_THREADS |
151 | | OPENSSL_MSVC_PRAGMA(warning(push, 3)) |
152 | | #include <windows.h> |
153 | | OPENSSL_MSVC_PRAGMA(warning(pop)) |
154 | | #endif |
155 | | |
156 | | #include <stdbool.h> |
157 | | |
158 | | #if defined(__cplusplus) |
159 | | extern "C" { |
160 | | #endif |
161 | | |
162 | | // On non-MSVC 64-bit targets, we expect __uint128_t support. This includes |
163 | | // clang-cl, which defines both __clang__ and _MSC_VER. |
164 | | #if (!defined(_MSC_VER) || defined(__clang__)) && defined(OPENSSL_64_BIT) |
165 | | #define BORINGSSL_HAS_UINT128 |
166 | | typedef __int128_t int128_t; |
167 | | typedef __uint128_t uint128_t; |
168 | | |
169 | | // __uint128_t division depends on intrinsics in the compiler runtime. Those |
170 | | // intrinsics are missing in clang-cl (https://crbug.com/787617) and nanolibc. |
171 | | // These may be bugs in the toolchain definition, but just disable it for now. |
172 | | #if !defined(_MSC_VER) && !defined(OPENSSL_NANOLIBC) |
173 | | #define BORINGSSL_CAN_DIVIDE_UINT128 |
174 | | #endif |
175 | | #endif |
176 | | |
177 | 0 | #define OPENSSL_ARRAY_SIZE(array) (sizeof(array) / sizeof((array)[0])) |
178 | | |
179 | | // Have a generic fall-through for different versions of C/C++. |
180 | | #if defined(__cplusplus) && __cplusplus >= 201703L |
181 | | #define OPENSSL_FALLTHROUGH [[fallthrough]] |
182 | | #elif defined(__cplusplus) && __cplusplus >= 201103L && defined(__clang__) |
183 | | #define OPENSSL_FALLTHROUGH [[clang::fallthrough]] |
184 | | #elif defined(__cplusplus) && __cplusplus >= 201103L && defined(__GNUC__) && \ |
185 | | __GNUC__ >= 7 |
186 | | #define OPENSSL_FALLTHROUGH [[gnu::fallthrough]] |
187 | | #elif defined(__GNUC__) && __GNUC__ >= 7 // gcc 7 |
188 | | #define OPENSSL_FALLTHROUGH __attribute__ ((fallthrough)) |
189 | | #elif defined(__clang__) |
190 | | #if __has_attribute(fallthrough) && __clang_major__ >= 5 |
191 | | // Clang 3.5, at least, complains about "error: declaration does not declare |
192 | | // anything", possibily because we put a semicolon after this macro in |
193 | | // practice. Thus limit it to >= Clang 5, which does work. |
194 | 0 | #define OPENSSL_FALLTHROUGH __attribute__ ((fallthrough)) |
195 | | #else // clang versions that do not support fallthrough. |
196 | | #define OPENSSL_FALLTHROUGH |
197 | | #endif |
198 | | #else // C++11 on gcc 6, and all other cases |
199 | | #define OPENSSL_FALLTHROUGH |
200 | | #endif |
201 | | |
202 | | // GCC-like compilers indicate SSE2 with |__SSE2__|. MSVC leaves the caller to |
203 | | // know that x86_64 has SSE2, and uses _M_IX86_FP to indicate SSE2 on x86. |
204 | | // https://learn.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=msvc-170 |
205 | | #if defined(__SSE2__) || defined(_M_AMD64) || defined(_M_X64) || \ |
206 | | (defined(_M_IX86_FP) && _M_IX86_FP >= 2) |
207 | | #define OPENSSL_SSE2 |
208 | | #endif |
209 | | |
210 | | #if defined(OPENSSL_X86) && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_SSE2) |
211 | | #error \ |
212 | | "x86 assembly requires SSE2. Build with -msse2 (recommended), or disable assembly optimizations with -DOPENSSL_NO_ASM." |
213 | | #endif |
214 | | |
215 | | // For convenience in testing the fallback code, we allow disabling SSE2 |
216 | | // intrinsics via |OPENSSL_NO_SSE2_FOR_TESTING|. We require SSE2 on x86 and |
217 | | // x86_64, so we would otherwise need to test such code on a non-x86 platform. |
218 | | // |
219 | | // This does not remove the above requirement for SSE2 support with assembly |
220 | | // optimizations. It only disables some intrinsics-based optimizations so that |
221 | | // we can test the fallback code on CI. |
222 | | #if defined(OPENSSL_SSE2) && defined(OPENSSL_NO_SSE2_FOR_TESTING) |
223 | | #undef OPENSSL_SSE2 |
224 | | #endif |
225 | | |
226 | | #if defined(__GNUC__) || defined(__clang__) |
227 | | #define OPENSSL_ATTR_PURE __attribute__((pure)) |
228 | | #else |
229 | | #define OPENSSL_ATTR_PURE |
230 | | #endif |
231 | | |
232 | | #if defined(__has_builtin) |
233 | | #define OPENSSL_HAS_BUILTIN(x) __has_builtin(x) |
234 | | #else |
235 | | #define OPENSSL_HAS_BUILTIN(x) 0 |
236 | | #endif |
237 | | |
238 | | |
239 | | // Pointer utility functions. |
240 | | |
241 | | // buffers_alias returns one if |a| and |b| alias and zero otherwise. |
242 | | static inline int buffers_alias(const uint8_t *a, size_t a_len, |
243 | 0 | const uint8_t *b, size_t b_len) { |
244 | | // Cast |a| and |b| to integers. In C, pointer comparisons between unrelated |
245 | | // objects are undefined whereas pointer to integer conversions are merely |
246 | | // implementation-defined. We assume the implementation defined it in a sane |
247 | | // way. |
248 | 0 | uintptr_t a_u = (uintptr_t)a; |
249 | 0 | uintptr_t b_u = (uintptr_t)b; |
250 | 0 | return a_u + a_len > b_u && b_u + b_len > a_u; |
251 | 0 | } Unexecuted instantiation: convert.c:buffers_alias Unexecuted instantiation: cbb.c:buffers_alias Unexecuted instantiation: cbs.c:buffers_alias Unexecuted instantiation: e_aesgcmsiv.c:buffers_alias Unexecuted instantiation: e_chacha20poly1305.c:buffers_alias Unexecuted instantiation: crypto.c:buffers_alias Unexecuted instantiation: cfb.c:buffers_alias Unexecuted instantiation: ec_asn1.c:buffers_alias Unexecuted instantiation: ecdsa_asn1.c:buffers_alias Unexecuted instantiation: err.c:buffers_alias Unexecuted instantiation: evp_asn1.c:buffers_alias Unexecuted instantiation: p_methods.c:buffers_alias Unexecuted instantiation: p_pqdsa_asn1.c:buffers_alias Unexecuted instantiation: p_x25519_asn1.c:buffers_alias Unexecuted instantiation: bcm.c:buffers_alias Unexecuted instantiation: kyber1024r3_ref.c:buffers_alias Unexecuted instantiation: kyber512r3_ref.c:buffers_alias Unexecuted instantiation: kyber768r3_ref.c:buffers_alias Unexecuted instantiation: mem.c:buffers_alias Unexecuted instantiation: obj.c:buffers_alias Unexecuted instantiation: obj_xref.c:buffers_alias Unexecuted instantiation: poly1305_vec.c:buffers_alias Unexecuted instantiation: urandom.c:buffers_alias Unexecuted instantiation: refcount_c11.c:buffers_alias Unexecuted instantiation: rsa_asn1.c:buffers_alias Unexecuted instantiation: rsa_crypt.c:buffers_alias Unexecuted instantiation: rsassa_pss_asn1.c:buffers_alias Unexecuted instantiation: stack.c:buffers_alias Unexecuted instantiation: thread_pthread.c:buffers_alias Unexecuted instantiation: fork_detect.c:buffers_alias Unexecuted instantiation: snapsafe_detect.c:buffers_alias Unexecuted instantiation: ube.c:buffers_alias Unexecuted instantiation: a_object.c:buffers_alias Unexecuted instantiation: posix_time.c:buffers_alias Unexecuted instantiation: bio.c:buffers_alias Unexecuted instantiation: file.c:buffers_alias Unexecuted instantiation: asn1_compat.c:buffers_alias Unexecuted instantiation: chacha.c:buffers_alias Unexecuted instantiation: console.c:buffers_alias Unexecuted instantiation: ripemd.c:buffers_alias Unexecuted instantiation: digest_extra.c:buffers_alias Unexecuted instantiation: dsa.c:buffers_alias Unexecuted instantiation: dsa_asn1.c:buffers_alias Unexecuted instantiation: engine.c:buffers_alias Unexecuted instantiation: p_dh_asn1.c:buffers_alias Unexecuted instantiation: p_dsa.c:buffers_alias Unexecuted instantiation: p_ec_asn1.c:buffers_alias Unexecuted instantiation: p_ed25519_asn1.c:buffers_alias Unexecuted instantiation: p_hmac_asn1.c:buffers_alias Unexecuted instantiation: p_kem_asn1.c:buffers_alias Unexecuted instantiation: print.c:buffers_alias Unexecuted instantiation: ex_data.c:buffers_alias Unexecuted instantiation: lhash.c:buffers_alias Unexecuted instantiation: blake2.c:buffers_alias Unexecuted instantiation: params.c:buffers_alias |
252 | | |
253 | | typedef uint8_t stack_align_type; |
254 | | OPENSSL_STATIC_ASSERT(sizeof(stack_align_type) == 1, |
255 | | stack_align_type_is_not_8_bits_long) |
256 | | |
257 | | // align_pointer returns |ptr|, advanced to |alignment|. |alignment| must be a |
258 | | // power of two, and |ptr| must have at least |alignment - 1| bytes of scratch |
259 | | // space. |
260 | 0 | static inline void *align_pointer(void *ptr, size_t alignment) { |
261 | | // |alignment| must be a power of two. |
262 | 0 | assert(alignment != 0 && (alignment & (alignment - 1)) == 0); |
263 | | // Instead of aligning |ptr| as a |uintptr_t| and casting back, compute the |
264 | | // offset and advance in pointer space. C guarantees that casting from pointer |
265 | | // to |uintptr_t| and back gives the same pointer, but general |
266 | | // integer-to-pointer conversions are implementation-defined. GCC does define |
267 | | // it in the useful way, but this makes fewer assumptions. |
268 | 0 | uintptr_t offset = (0u - (uintptr_t)ptr) & (alignment - 1); |
269 | 0 | ptr = (char *)ptr + offset; |
270 | 0 | assert(((uintptr_t)ptr & (alignment - 1)) == 0); |
271 | 0 | return ptr; |
272 | 0 | } Unexecuted instantiation: convert.c:align_pointer Unexecuted instantiation: cbb.c:align_pointer Unexecuted instantiation: cbs.c:align_pointer Unexecuted instantiation: e_aesgcmsiv.c:align_pointer Unexecuted instantiation: e_chacha20poly1305.c:align_pointer Unexecuted instantiation: crypto.c:align_pointer Unexecuted instantiation: cfb.c:align_pointer Unexecuted instantiation: ec_asn1.c:align_pointer Unexecuted instantiation: ecdsa_asn1.c:align_pointer Unexecuted instantiation: err.c:align_pointer Unexecuted instantiation: evp_asn1.c:align_pointer Unexecuted instantiation: p_methods.c:align_pointer Unexecuted instantiation: p_pqdsa_asn1.c:align_pointer Unexecuted instantiation: p_x25519_asn1.c:align_pointer Unexecuted instantiation: bcm.c:align_pointer Unexecuted instantiation: kyber1024r3_ref.c:align_pointer Unexecuted instantiation: kyber512r3_ref.c:align_pointer Unexecuted instantiation: kyber768r3_ref.c:align_pointer Unexecuted instantiation: mem.c:align_pointer Unexecuted instantiation: obj.c:align_pointer Unexecuted instantiation: obj_xref.c:align_pointer Unexecuted instantiation: poly1305_vec.c:align_pointer Unexecuted instantiation: urandom.c:align_pointer Unexecuted instantiation: refcount_c11.c:align_pointer Unexecuted instantiation: rsa_asn1.c:align_pointer Unexecuted instantiation: rsa_crypt.c:align_pointer Unexecuted instantiation: rsassa_pss_asn1.c:align_pointer Unexecuted instantiation: stack.c:align_pointer Unexecuted instantiation: thread_pthread.c:align_pointer Unexecuted instantiation: fork_detect.c:align_pointer Unexecuted instantiation: snapsafe_detect.c:align_pointer Unexecuted instantiation: ube.c:align_pointer Unexecuted instantiation: a_object.c:align_pointer Unexecuted instantiation: posix_time.c:align_pointer Unexecuted instantiation: bio.c:align_pointer Unexecuted instantiation: file.c:align_pointer Unexecuted instantiation: asn1_compat.c:align_pointer Unexecuted instantiation: chacha.c:align_pointer Unexecuted instantiation: console.c:align_pointer Unexecuted instantiation: ripemd.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: engine.c:align_pointer Unexecuted instantiation: p_dh_asn1.c:align_pointer Unexecuted instantiation: p_dsa.c:align_pointer Unexecuted instantiation: p_ec_asn1.c:align_pointer Unexecuted instantiation: p_ed25519_asn1.c:align_pointer Unexecuted instantiation: p_hmac_asn1.c:align_pointer Unexecuted instantiation: p_kem_asn1.c:align_pointer Unexecuted instantiation: print.c:align_pointer Unexecuted instantiation: ex_data.c:align_pointer Unexecuted instantiation: lhash.c:align_pointer Unexecuted instantiation: blake2.c:align_pointer Unexecuted instantiation: params.c:align_pointer |
273 | | |
274 | | |
275 | | // Constant-time utility functions. |
276 | | // |
277 | | // The following methods return a bitmask of all ones (0xff...f) for true and 0 |
278 | | // for false. This is useful for choosing a value based on the result of a |
279 | | // conditional in constant time. For example, |
280 | | // |
281 | | // if (a < b) { |
282 | | // c = a; |
283 | | // } else { |
284 | | // c = b; |
285 | | // } |
286 | | // |
287 | | // can be written as |
288 | | // |
289 | | // crypto_word_t lt = constant_time_lt_w(a, b); |
290 | | // c = constant_time_select_w(lt, a, b); |
291 | | |
292 | | // crypto_word_t is the type that most constant-time functions use. Ideally we |
293 | | // would like it to be |size_t|, but NaCl builds in 64-bit mode with 32-bit |
294 | | // pointers, which means that |size_t| can be 32 bits when |BN_ULONG| is 64 |
295 | | // bits. Since we want to be able to do constant-time operations on a |
296 | | // |BN_ULONG|, |crypto_word_t| is defined as an unsigned value with the native |
297 | | // word length. |
298 | | #if defined(OPENSSL_64_BIT) |
299 | | typedef uint64_t crypto_word_t; |
300 | | #elif defined(OPENSSL_32_BIT) |
301 | | typedef uint32_t crypto_word_t; |
302 | | #else |
303 | | #error "Must define either OPENSSL_32_BIT or OPENSSL_64_BIT" |
304 | | #endif |
305 | | |
306 | 0 | #define CONSTTIME_TRUE_W ~((crypto_word_t)0) |
307 | 0 | #define CONSTTIME_FALSE_W ((crypto_word_t)0) |
308 | | #define CONSTTIME_TRUE_8 ((uint8_t)0xff) |
309 | | #define CONSTTIME_FALSE_8 ((uint8_t)0) |
310 | | |
311 | | // value_barrier_w returns |a|, but prevents GCC and Clang from reasoning about |
312 | | // the returned value. This is used to mitigate compilers undoing constant-time |
313 | | // code, until we can express our requirements directly in the language. |
314 | | // |
315 | | // Note the compiler is aware that |value_barrier_w| has no side effects and |
316 | | // always has the same output for a given input. This allows it to eliminate |
317 | | // dead code, move computations across loops, and vectorize. |
318 | 0 | static inline crypto_word_t value_barrier_w(crypto_word_t a) { |
319 | 0 | #if defined(__GNUC__) || defined(__clang__) |
320 | 0 | __asm__("" : "+r"(a) : /* no inputs */); |
321 | 0 | #endif |
322 | 0 | return a; |
323 | 0 | } Unexecuted instantiation: convert.c:value_barrier_w Unexecuted instantiation: cbb.c:value_barrier_w Unexecuted instantiation: cbs.c:value_barrier_w Unexecuted instantiation: e_aesgcmsiv.c:value_barrier_w Unexecuted instantiation: e_chacha20poly1305.c:value_barrier_w Unexecuted instantiation: crypto.c:value_barrier_w Unexecuted instantiation: cfb.c:value_barrier_w Unexecuted instantiation: ec_asn1.c:value_barrier_w Unexecuted instantiation: ecdsa_asn1.c:value_barrier_w Unexecuted instantiation: err.c:value_barrier_w Unexecuted instantiation: evp_asn1.c:value_barrier_w Unexecuted instantiation: p_methods.c:value_barrier_w Unexecuted instantiation: p_pqdsa_asn1.c:value_barrier_w Unexecuted instantiation: p_x25519_asn1.c:value_barrier_w Unexecuted instantiation: bcm.c:value_barrier_w Unexecuted instantiation: kyber1024r3_ref.c:value_barrier_w Unexecuted instantiation: kyber512r3_ref.c:value_barrier_w Unexecuted instantiation: kyber768r3_ref.c:value_barrier_w Unexecuted instantiation: mem.c:value_barrier_w Unexecuted instantiation: obj.c:value_barrier_w Unexecuted instantiation: obj_xref.c:value_barrier_w Unexecuted instantiation: poly1305_vec.c:value_barrier_w Unexecuted instantiation: urandom.c:value_barrier_w Unexecuted instantiation: refcount_c11.c:value_barrier_w Unexecuted instantiation: rsa_asn1.c:value_barrier_w Unexecuted instantiation: rsa_crypt.c:value_barrier_w Unexecuted instantiation: rsassa_pss_asn1.c:value_barrier_w Unexecuted instantiation: stack.c:value_barrier_w Unexecuted instantiation: thread_pthread.c:value_barrier_w Unexecuted instantiation: fork_detect.c:value_barrier_w Unexecuted instantiation: snapsafe_detect.c:value_barrier_w Unexecuted instantiation: ube.c:value_barrier_w Unexecuted instantiation: a_object.c:value_barrier_w Unexecuted instantiation: posix_time.c:value_barrier_w Unexecuted instantiation: bio.c:value_barrier_w Unexecuted instantiation: file.c:value_barrier_w Unexecuted instantiation: asn1_compat.c:value_barrier_w Unexecuted instantiation: chacha.c:value_barrier_w Unexecuted instantiation: console.c:value_barrier_w Unexecuted instantiation: ripemd.c:value_barrier_w 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: engine.c:value_barrier_w Unexecuted instantiation: p_dh_asn1.c:value_barrier_w Unexecuted instantiation: p_dsa.c:value_barrier_w Unexecuted instantiation: p_ec_asn1.c:value_barrier_w Unexecuted instantiation: p_ed25519_asn1.c:value_barrier_w Unexecuted instantiation: p_hmac_asn1.c:value_barrier_w Unexecuted instantiation: p_kem_asn1.c:value_barrier_w Unexecuted instantiation: print.c:value_barrier_w Unexecuted instantiation: ex_data.c:value_barrier_w Unexecuted instantiation: lhash.c:value_barrier_w Unexecuted instantiation: blake2.c:value_barrier_w Unexecuted instantiation: params.c:value_barrier_w |
324 | | |
325 | | // value_barrier_u32 behaves like |value_barrier_w| but takes a |uint32_t|. |
326 | 0 | static inline uint32_t value_barrier_u32(uint32_t a) { |
327 | 0 | #if defined(__GNUC__) || defined(__clang__) |
328 | 0 | __asm__("" : "+r"(a) : /* no inputs */); |
329 | 0 | #endif |
330 | 0 | return a; |
331 | 0 | } Unexecuted instantiation: convert.c:value_barrier_u32 Unexecuted instantiation: cbb.c:value_barrier_u32 Unexecuted instantiation: cbs.c:value_barrier_u32 Unexecuted instantiation: e_aesgcmsiv.c:value_barrier_u32 Unexecuted instantiation: e_chacha20poly1305.c:value_barrier_u32 Unexecuted instantiation: crypto.c:value_barrier_u32 Unexecuted instantiation: cfb.c:value_barrier_u32 Unexecuted instantiation: ec_asn1.c:value_barrier_u32 Unexecuted instantiation: ecdsa_asn1.c:value_barrier_u32 Unexecuted instantiation: err.c:value_barrier_u32 Unexecuted instantiation: evp_asn1.c:value_barrier_u32 Unexecuted instantiation: p_methods.c:value_barrier_u32 Unexecuted instantiation: p_pqdsa_asn1.c:value_barrier_u32 Unexecuted instantiation: p_x25519_asn1.c:value_barrier_u32 Unexecuted instantiation: bcm.c:value_barrier_u32 Unexecuted instantiation: kyber1024r3_ref.c:value_barrier_u32 Unexecuted instantiation: kyber512r3_ref.c:value_barrier_u32 Unexecuted instantiation: kyber768r3_ref.c:value_barrier_u32 Unexecuted instantiation: mem.c:value_barrier_u32 Unexecuted instantiation: obj.c:value_barrier_u32 Unexecuted instantiation: obj_xref.c:value_barrier_u32 Unexecuted instantiation: poly1305_vec.c:value_barrier_u32 Unexecuted instantiation: urandom.c:value_barrier_u32 Unexecuted instantiation: refcount_c11.c:value_barrier_u32 Unexecuted instantiation: rsa_asn1.c:value_barrier_u32 Unexecuted instantiation: rsa_crypt.c:value_barrier_u32 Unexecuted instantiation: rsassa_pss_asn1.c:value_barrier_u32 Unexecuted instantiation: stack.c:value_barrier_u32 Unexecuted instantiation: thread_pthread.c:value_barrier_u32 Unexecuted instantiation: fork_detect.c:value_barrier_u32 Unexecuted instantiation: snapsafe_detect.c:value_barrier_u32 Unexecuted instantiation: ube.c:value_barrier_u32 Unexecuted instantiation: a_object.c:value_barrier_u32 Unexecuted instantiation: posix_time.c:value_barrier_u32 Unexecuted instantiation: bio.c:value_barrier_u32 Unexecuted instantiation: file.c:value_barrier_u32 Unexecuted instantiation: asn1_compat.c:value_barrier_u32 Unexecuted instantiation: chacha.c:value_barrier_u32 Unexecuted instantiation: console.c:value_barrier_u32 Unexecuted instantiation: ripemd.c:value_barrier_u32 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: engine.c:value_barrier_u32 Unexecuted instantiation: p_dh_asn1.c:value_barrier_u32 Unexecuted instantiation: p_dsa.c:value_barrier_u32 Unexecuted instantiation: p_ec_asn1.c:value_barrier_u32 Unexecuted instantiation: p_ed25519_asn1.c:value_barrier_u32 Unexecuted instantiation: p_hmac_asn1.c:value_barrier_u32 Unexecuted instantiation: p_kem_asn1.c:value_barrier_u32 Unexecuted instantiation: print.c:value_barrier_u32 Unexecuted instantiation: ex_data.c:value_barrier_u32 Unexecuted instantiation: lhash.c:value_barrier_u32 Unexecuted instantiation: blake2.c:value_barrier_u32 Unexecuted instantiation: params.c:value_barrier_u32 |
332 | | |
333 | | // value_barrier_u64 behaves like |value_barrier_w| but takes a |uint64_t|. |
334 | 0 | static inline uint64_t value_barrier_u64(uint64_t a) { |
335 | 0 | #if defined(__GNUC__) || defined(__clang__) |
336 | 0 | __asm__("" : "+r"(a) : /* no inputs */); |
337 | 0 | #endif |
338 | 0 | return a; |
339 | 0 | } Unexecuted instantiation: convert.c:value_barrier_u64 Unexecuted instantiation: cbb.c:value_barrier_u64 Unexecuted instantiation: cbs.c:value_barrier_u64 Unexecuted instantiation: e_aesgcmsiv.c:value_barrier_u64 Unexecuted instantiation: e_chacha20poly1305.c:value_barrier_u64 Unexecuted instantiation: crypto.c:value_barrier_u64 Unexecuted instantiation: cfb.c:value_barrier_u64 Unexecuted instantiation: ec_asn1.c:value_barrier_u64 Unexecuted instantiation: ecdsa_asn1.c:value_barrier_u64 Unexecuted instantiation: err.c:value_barrier_u64 Unexecuted instantiation: evp_asn1.c:value_barrier_u64 Unexecuted instantiation: p_methods.c:value_barrier_u64 Unexecuted instantiation: p_pqdsa_asn1.c:value_barrier_u64 Unexecuted instantiation: p_x25519_asn1.c:value_barrier_u64 Unexecuted instantiation: bcm.c:value_barrier_u64 Unexecuted instantiation: kyber1024r3_ref.c:value_barrier_u64 Unexecuted instantiation: kyber512r3_ref.c:value_barrier_u64 Unexecuted instantiation: kyber768r3_ref.c:value_barrier_u64 Unexecuted instantiation: mem.c:value_barrier_u64 Unexecuted instantiation: obj.c:value_barrier_u64 Unexecuted instantiation: obj_xref.c:value_barrier_u64 Unexecuted instantiation: poly1305_vec.c:value_barrier_u64 Unexecuted instantiation: urandom.c:value_barrier_u64 Unexecuted instantiation: refcount_c11.c:value_barrier_u64 Unexecuted instantiation: rsa_asn1.c:value_barrier_u64 Unexecuted instantiation: rsa_crypt.c:value_barrier_u64 Unexecuted instantiation: rsassa_pss_asn1.c:value_barrier_u64 Unexecuted instantiation: stack.c:value_barrier_u64 Unexecuted instantiation: thread_pthread.c:value_barrier_u64 Unexecuted instantiation: fork_detect.c:value_barrier_u64 Unexecuted instantiation: snapsafe_detect.c:value_barrier_u64 Unexecuted instantiation: ube.c:value_barrier_u64 Unexecuted instantiation: a_object.c:value_barrier_u64 Unexecuted instantiation: posix_time.c:value_barrier_u64 Unexecuted instantiation: bio.c:value_barrier_u64 Unexecuted instantiation: file.c:value_barrier_u64 Unexecuted instantiation: asn1_compat.c:value_barrier_u64 Unexecuted instantiation: chacha.c:value_barrier_u64 Unexecuted instantiation: console.c:value_barrier_u64 Unexecuted instantiation: ripemd.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: engine.c:value_barrier_u64 Unexecuted instantiation: p_dh_asn1.c:value_barrier_u64 Unexecuted instantiation: p_dsa.c:value_barrier_u64 Unexecuted instantiation: p_ec_asn1.c:value_barrier_u64 Unexecuted instantiation: p_ed25519_asn1.c:value_barrier_u64 Unexecuted instantiation: p_hmac_asn1.c:value_barrier_u64 Unexecuted instantiation: p_kem_asn1.c:value_barrier_u64 Unexecuted instantiation: print.c:value_barrier_u64 Unexecuted instantiation: ex_data.c:value_barrier_u64 Unexecuted instantiation: lhash.c:value_barrier_u64 Unexecuted instantiation: blake2.c:value_barrier_u64 Unexecuted instantiation: params.c:value_barrier_u64 |
340 | | |
341 | | // constant_time_msb_w returns the given value with the MSB copied to all the |
342 | | // other bits. |
343 | 0 | static inline crypto_word_t constant_time_msb_w(crypto_word_t a) { |
344 | 0 | return 0u - (a >> (sizeof(a) * 8 - 1)); |
345 | 0 | } Unexecuted instantiation: convert.c:constant_time_msb_w Unexecuted instantiation: cbb.c:constant_time_msb_w Unexecuted instantiation: cbs.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: crypto.c:constant_time_msb_w Unexecuted instantiation: cfb.c:constant_time_msb_w Unexecuted instantiation: ec_asn1.c:constant_time_msb_w Unexecuted instantiation: ecdsa_asn1.c:constant_time_msb_w Unexecuted instantiation: err.c:constant_time_msb_w Unexecuted instantiation: evp_asn1.c:constant_time_msb_w Unexecuted instantiation: p_methods.c:constant_time_msb_w Unexecuted instantiation: p_pqdsa_asn1.c:constant_time_msb_w Unexecuted instantiation: p_x25519_asn1.c:constant_time_msb_w Unexecuted instantiation: bcm.c:constant_time_msb_w Unexecuted instantiation: kyber1024r3_ref.c:constant_time_msb_w Unexecuted instantiation: kyber512r3_ref.c:constant_time_msb_w Unexecuted instantiation: kyber768r3_ref.c:constant_time_msb_w Unexecuted instantiation: mem.c:constant_time_msb_w Unexecuted instantiation: obj.c:constant_time_msb_w Unexecuted instantiation: obj_xref.c:constant_time_msb_w Unexecuted instantiation: poly1305_vec.c:constant_time_msb_w Unexecuted instantiation: urandom.c:constant_time_msb_w Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.c:constant_time_msb_w Unexecuted instantiation: stack.c:constant_time_msb_w Unexecuted instantiation: thread_pthread.c:constant_time_msb_w Unexecuted instantiation: fork_detect.c:constant_time_msb_w Unexecuted instantiation: snapsafe_detect.c:constant_time_msb_w Unexecuted instantiation: ube.c:constant_time_msb_w Unexecuted instantiation: a_object.c:constant_time_msb_w Unexecuted instantiation: posix_time.c:constant_time_msb_w Unexecuted instantiation: bio.c:constant_time_msb_w Unexecuted instantiation: file.c:constant_time_msb_w Unexecuted instantiation: asn1_compat.c:constant_time_msb_w Unexecuted instantiation: chacha.c:constant_time_msb_w Unexecuted instantiation: console.c:constant_time_msb_w Unexecuted instantiation: ripemd.c:constant_time_msb_w 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: engine.c:constant_time_msb_w Unexecuted instantiation: p_dh_asn1.c:constant_time_msb_w Unexecuted instantiation: p_dsa.c:constant_time_msb_w Unexecuted instantiation: p_ec_asn1.c:constant_time_msb_w Unexecuted instantiation: p_ed25519_asn1.c:constant_time_msb_w Unexecuted instantiation: p_hmac_asn1.c:constant_time_msb_w Unexecuted instantiation: p_kem_asn1.c:constant_time_msb_w Unexecuted instantiation: print.c:constant_time_msb_w Unexecuted instantiation: ex_data.c:constant_time_msb_w Unexecuted instantiation: lhash.c:constant_time_msb_w Unexecuted instantiation: blake2.c:constant_time_msb_w Unexecuted instantiation: params.c:constant_time_msb_w |
346 | | |
347 | | // constant_time_lt_w returns 0xff..f if a < b and 0 otherwise. |
348 | | static inline crypto_word_t constant_time_lt_w(crypto_word_t a, |
349 | 0 | crypto_word_t b) { |
350 | | // Consider the two cases of the problem: |
351 | | // msb(a) == msb(b): a < b iff the MSB of a - b is set. |
352 | | // msb(a) != msb(b): a < b iff the MSB of b is set. |
353 | | // |
354 | | // If msb(a) == msb(b) then the following evaluates as: |
355 | | // msb(a^((a^b)|((a-b)^a))) == |
356 | | // msb(a^((a-b) ^ a)) == (because msb(a^b) == 0) |
357 | | // msb(a^a^(a-b)) == (rearranging) |
358 | | // msb(a-b) (because ∀x. x^x == 0) |
359 | | // |
360 | | // Else, if msb(a) != msb(b) then the following evaluates as: |
361 | | // msb(a^((a^b)|((a-b)^a))) == |
362 | | // msb(a^(𝟙 | ((a-b)^a))) == (because msb(a^b) == 1 and 𝟙 |
363 | | // represents a value s.t. msb(𝟙) = 1) |
364 | | // msb(a^𝟙) == (because ORing with 1 results in 1) |
365 | | // msb(b) |
366 | | // |
367 | | // |
368 | | // Here is an SMT-LIB verification of this formula: |
369 | | // |
370 | | // (define-fun lt ((a (_ BitVec 32)) (b (_ BitVec 32))) (_ BitVec 32) |
371 | | // (bvxor a (bvor (bvxor a b) (bvxor (bvsub a b) a))) |
372 | | // ) |
373 | | // |
374 | | // (declare-fun a () (_ BitVec 32)) |
375 | | // (declare-fun b () (_ BitVec 32)) |
376 | | // |
377 | | // (assert (not (= (= #x00000001 (bvlshr (lt a b) #x0000001f)) (bvult a b)))) |
378 | | // (check-sat) |
379 | | // (get-model) |
380 | 0 | return constant_time_msb_w(a^((a^b)|((a-b)^a))); |
381 | 0 | } Unexecuted instantiation: convert.c:constant_time_lt_w Unexecuted instantiation: cbb.c:constant_time_lt_w Unexecuted instantiation: cbs.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: crypto.c:constant_time_lt_w Unexecuted instantiation: cfb.c:constant_time_lt_w Unexecuted instantiation: ec_asn1.c:constant_time_lt_w Unexecuted instantiation: ecdsa_asn1.c:constant_time_lt_w Unexecuted instantiation: err.c:constant_time_lt_w Unexecuted instantiation: evp_asn1.c:constant_time_lt_w Unexecuted instantiation: p_methods.c:constant_time_lt_w Unexecuted instantiation: p_pqdsa_asn1.c:constant_time_lt_w Unexecuted instantiation: p_x25519_asn1.c:constant_time_lt_w Unexecuted instantiation: bcm.c:constant_time_lt_w Unexecuted instantiation: kyber1024r3_ref.c:constant_time_lt_w Unexecuted instantiation: kyber512r3_ref.c:constant_time_lt_w Unexecuted instantiation: kyber768r3_ref.c:constant_time_lt_w Unexecuted instantiation: mem.c:constant_time_lt_w Unexecuted instantiation: obj.c:constant_time_lt_w Unexecuted instantiation: obj_xref.c:constant_time_lt_w Unexecuted instantiation: poly1305_vec.c:constant_time_lt_w Unexecuted instantiation: urandom.c:constant_time_lt_w Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.c:constant_time_lt_w Unexecuted instantiation: stack.c:constant_time_lt_w Unexecuted instantiation: thread_pthread.c:constant_time_lt_w Unexecuted instantiation: fork_detect.c:constant_time_lt_w Unexecuted instantiation: snapsafe_detect.c:constant_time_lt_w Unexecuted instantiation: ube.c:constant_time_lt_w Unexecuted instantiation: a_object.c:constant_time_lt_w Unexecuted instantiation: posix_time.c:constant_time_lt_w Unexecuted instantiation: bio.c:constant_time_lt_w Unexecuted instantiation: file.c:constant_time_lt_w Unexecuted instantiation: asn1_compat.c:constant_time_lt_w Unexecuted instantiation: chacha.c:constant_time_lt_w Unexecuted instantiation: console.c:constant_time_lt_w Unexecuted instantiation: ripemd.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: engine.c:constant_time_lt_w Unexecuted instantiation: p_dh_asn1.c:constant_time_lt_w Unexecuted instantiation: p_dsa.c:constant_time_lt_w Unexecuted instantiation: p_ec_asn1.c:constant_time_lt_w Unexecuted instantiation: p_ed25519_asn1.c:constant_time_lt_w Unexecuted instantiation: p_hmac_asn1.c:constant_time_lt_w Unexecuted instantiation: p_kem_asn1.c:constant_time_lt_w Unexecuted instantiation: print.c:constant_time_lt_w Unexecuted instantiation: ex_data.c:constant_time_lt_w Unexecuted instantiation: lhash.c:constant_time_lt_w Unexecuted instantiation: blake2.c:constant_time_lt_w Unexecuted instantiation: params.c:constant_time_lt_w |
382 | | |
383 | | // constant_time_lt_8 acts like |constant_time_lt_w| but returns an 8-bit |
384 | | // mask. |
385 | 0 | static inline uint8_t constant_time_lt_8(crypto_word_t a, crypto_word_t b) { |
386 | 0 | return (uint8_t)(constant_time_lt_w(a, b)); |
387 | 0 | } Unexecuted instantiation: convert.c:constant_time_lt_8 Unexecuted instantiation: cbb.c:constant_time_lt_8 Unexecuted instantiation: cbs.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: crypto.c:constant_time_lt_8 Unexecuted instantiation: cfb.c:constant_time_lt_8 Unexecuted instantiation: ec_asn1.c:constant_time_lt_8 Unexecuted instantiation: ecdsa_asn1.c:constant_time_lt_8 Unexecuted instantiation: err.c:constant_time_lt_8 Unexecuted instantiation: evp_asn1.c:constant_time_lt_8 Unexecuted instantiation: p_methods.c:constant_time_lt_8 Unexecuted instantiation: p_pqdsa_asn1.c:constant_time_lt_8 Unexecuted instantiation: p_x25519_asn1.c:constant_time_lt_8 Unexecuted instantiation: bcm.c:constant_time_lt_8 Unexecuted instantiation: kyber1024r3_ref.c:constant_time_lt_8 Unexecuted instantiation: kyber512r3_ref.c:constant_time_lt_8 Unexecuted instantiation: kyber768r3_ref.c:constant_time_lt_8 Unexecuted instantiation: mem.c:constant_time_lt_8 Unexecuted instantiation: obj.c:constant_time_lt_8 Unexecuted instantiation: obj_xref.c:constant_time_lt_8 Unexecuted instantiation: poly1305_vec.c:constant_time_lt_8 Unexecuted instantiation: urandom.c:constant_time_lt_8 Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.c:constant_time_lt_8 Unexecuted instantiation: stack.c:constant_time_lt_8 Unexecuted instantiation: thread_pthread.c:constant_time_lt_8 Unexecuted instantiation: fork_detect.c:constant_time_lt_8 Unexecuted instantiation: snapsafe_detect.c:constant_time_lt_8 Unexecuted instantiation: ube.c:constant_time_lt_8 Unexecuted instantiation: a_object.c:constant_time_lt_8 Unexecuted instantiation: posix_time.c:constant_time_lt_8 Unexecuted instantiation: bio.c:constant_time_lt_8 Unexecuted instantiation: file.c:constant_time_lt_8 Unexecuted instantiation: asn1_compat.c:constant_time_lt_8 Unexecuted instantiation: chacha.c:constant_time_lt_8 Unexecuted instantiation: console.c:constant_time_lt_8 Unexecuted instantiation: ripemd.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: engine.c:constant_time_lt_8 Unexecuted instantiation: p_dh_asn1.c:constant_time_lt_8 Unexecuted instantiation: p_dsa.c:constant_time_lt_8 Unexecuted instantiation: p_ec_asn1.c:constant_time_lt_8 Unexecuted instantiation: p_ed25519_asn1.c:constant_time_lt_8 Unexecuted instantiation: p_hmac_asn1.c:constant_time_lt_8 Unexecuted instantiation: p_kem_asn1.c:constant_time_lt_8 Unexecuted instantiation: print.c:constant_time_lt_8 Unexecuted instantiation: ex_data.c:constant_time_lt_8 Unexecuted instantiation: lhash.c:constant_time_lt_8 Unexecuted instantiation: blake2.c:constant_time_lt_8 Unexecuted instantiation: params.c:constant_time_lt_8 |
388 | | |
389 | | // constant_time_ge_w returns 0xff..f if a >= b and 0 otherwise. |
390 | | static inline crypto_word_t constant_time_ge_w(crypto_word_t a, |
391 | 0 | crypto_word_t b) { |
392 | 0 | return ~constant_time_lt_w(a, b); |
393 | 0 | } Unexecuted instantiation: convert.c:constant_time_ge_w Unexecuted instantiation: cbb.c:constant_time_ge_w Unexecuted instantiation: cbs.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: crypto.c:constant_time_ge_w Unexecuted instantiation: cfb.c:constant_time_ge_w Unexecuted instantiation: ec_asn1.c:constant_time_ge_w Unexecuted instantiation: ecdsa_asn1.c:constant_time_ge_w Unexecuted instantiation: err.c:constant_time_ge_w Unexecuted instantiation: evp_asn1.c:constant_time_ge_w Unexecuted instantiation: p_methods.c:constant_time_ge_w Unexecuted instantiation: p_pqdsa_asn1.c:constant_time_ge_w Unexecuted instantiation: p_x25519_asn1.c:constant_time_ge_w Unexecuted instantiation: bcm.c:constant_time_ge_w Unexecuted instantiation: kyber1024r3_ref.c:constant_time_ge_w Unexecuted instantiation: kyber512r3_ref.c:constant_time_ge_w Unexecuted instantiation: kyber768r3_ref.c:constant_time_ge_w Unexecuted instantiation: mem.c:constant_time_ge_w Unexecuted instantiation: obj.c:constant_time_ge_w Unexecuted instantiation: obj_xref.c:constant_time_ge_w Unexecuted instantiation: poly1305_vec.c:constant_time_ge_w Unexecuted instantiation: urandom.c:constant_time_ge_w Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.c:constant_time_ge_w Unexecuted instantiation: stack.c:constant_time_ge_w Unexecuted instantiation: thread_pthread.c:constant_time_ge_w Unexecuted instantiation: fork_detect.c:constant_time_ge_w Unexecuted instantiation: snapsafe_detect.c:constant_time_ge_w Unexecuted instantiation: ube.c:constant_time_ge_w Unexecuted instantiation: a_object.c:constant_time_ge_w Unexecuted instantiation: posix_time.c:constant_time_ge_w Unexecuted instantiation: bio.c:constant_time_ge_w Unexecuted instantiation: file.c:constant_time_ge_w Unexecuted instantiation: asn1_compat.c:constant_time_ge_w Unexecuted instantiation: chacha.c:constant_time_ge_w Unexecuted instantiation: console.c:constant_time_ge_w Unexecuted instantiation: ripemd.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: engine.c:constant_time_ge_w Unexecuted instantiation: p_dh_asn1.c:constant_time_ge_w Unexecuted instantiation: p_dsa.c:constant_time_ge_w Unexecuted instantiation: p_ec_asn1.c:constant_time_ge_w Unexecuted instantiation: p_ed25519_asn1.c:constant_time_ge_w Unexecuted instantiation: p_hmac_asn1.c:constant_time_ge_w Unexecuted instantiation: p_kem_asn1.c:constant_time_ge_w Unexecuted instantiation: print.c:constant_time_ge_w Unexecuted instantiation: ex_data.c:constant_time_ge_w Unexecuted instantiation: lhash.c:constant_time_ge_w Unexecuted instantiation: blake2.c:constant_time_ge_w Unexecuted instantiation: params.c:constant_time_ge_w |
394 | | |
395 | | // constant_time_ge_8 acts like |constant_time_ge_w| but returns an 8-bit |
396 | | // mask. |
397 | 0 | static inline uint8_t constant_time_ge_8(crypto_word_t a, crypto_word_t b) { |
398 | 0 | return (uint8_t)(constant_time_ge_w(a, b)); |
399 | 0 | } Unexecuted instantiation: convert.c:constant_time_ge_8 Unexecuted instantiation: cbb.c:constant_time_ge_8 Unexecuted instantiation: cbs.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: crypto.c:constant_time_ge_8 Unexecuted instantiation: cfb.c:constant_time_ge_8 Unexecuted instantiation: ec_asn1.c:constant_time_ge_8 Unexecuted instantiation: ecdsa_asn1.c:constant_time_ge_8 Unexecuted instantiation: err.c:constant_time_ge_8 Unexecuted instantiation: evp_asn1.c:constant_time_ge_8 Unexecuted instantiation: p_methods.c:constant_time_ge_8 Unexecuted instantiation: p_pqdsa_asn1.c:constant_time_ge_8 Unexecuted instantiation: p_x25519_asn1.c:constant_time_ge_8 Unexecuted instantiation: bcm.c:constant_time_ge_8 Unexecuted instantiation: kyber1024r3_ref.c:constant_time_ge_8 Unexecuted instantiation: kyber512r3_ref.c:constant_time_ge_8 Unexecuted instantiation: kyber768r3_ref.c:constant_time_ge_8 Unexecuted instantiation: mem.c:constant_time_ge_8 Unexecuted instantiation: obj.c:constant_time_ge_8 Unexecuted instantiation: obj_xref.c:constant_time_ge_8 Unexecuted instantiation: poly1305_vec.c:constant_time_ge_8 Unexecuted instantiation: urandom.c:constant_time_ge_8 Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.c:constant_time_ge_8 Unexecuted instantiation: stack.c:constant_time_ge_8 Unexecuted instantiation: thread_pthread.c:constant_time_ge_8 Unexecuted instantiation: fork_detect.c:constant_time_ge_8 Unexecuted instantiation: snapsafe_detect.c:constant_time_ge_8 Unexecuted instantiation: ube.c:constant_time_ge_8 Unexecuted instantiation: a_object.c:constant_time_ge_8 Unexecuted instantiation: posix_time.c:constant_time_ge_8 Unexecuted instantiation: bio.c:constant_time_ge_8 Unexecuted instantiation: file.c:constant_time_ge_8 Unexecuted instantiation: asn1_compat.c:constant_time_ge_8 Unexecuted instantiation: chacha.c:constant_time_ge_8 Unexecuted instantiation: console.c:constant_time_ge_8 Unexecuted instantiation: ripemd.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: engine.c:constant_time_ge_8 Unexecuted instantiation: p_dh_asn1.c:constant_time_ge_8 Unexecuted instantiation: p_dsa.c:constant_time_ge_8 Unexecuted instantiation: p_ec_asn1.c:constant_time_ge_8 Unexecuted instantiation: p_ed25519_asn1.c:constant_time_ge_8 Unexecuted instantiation: p_hmac_asn1.c:constant_time_ge_8 Unexecuted instantiation: p_kem_asn1.c:constant_time_ge_8 Unexecuted instantiation: print.c:constant_time_ge_8 Unexecuted instantiation: ex_data.c:constant_time_ge_8 Unexecuted instantiation: lhash.c:constant_time_ge_8 Unexecuted instantiation: blake2.c:constant_time_ge_8 Unexecuted instantiation: params.c:constant_time_ge_8 |
400 | | |
401 | | // constant_time_is_zero returns 0xff..f if a == 0 and 0 otherwise. |
402 | 0 | static inline crypto_word_t constant_time_is_zero_w(crypto_word_t a) { |
403 | | // Here is an SMT-LIB verification of this formula: |
404 | | // |
405 | | // (define-fun is_zero ((a (_ BitVec 32))) (_ BitVec 32) |
406 | | // (bvand (bvnot a) (bvsub a #x00000001)) |
407 | | // ) |
408 | | // |
409 | | // (declare-fun a () (_ BitVec 32)) |
410 | | // |
411 | | // (assert (not (= (= #x00000001 (bvlshr (is_zero a) #x0000001f)) (= a #x00000000)))) |
412 | | // (check-sat) |
413 | | // (get-model) |
414 | 0 | return constant_time_msb_w(~a & (a - 1)); |
415 | 0 | } Unexecuted instantiation: convert.c:constant_time_is_zero_w Unexecuted instantiation: cbb.c:constant_time_is_zero_w Unexecuted instantiation: cbs.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: crypto.c:constant_time_is_zero_w Unexecuted instantiation: cfb.c:constant_time_is_zero_w Unexecuted instantiation: ec_asn1.c:constant_time_is_zero_w Unexecuted instantiation: ecdsa_asn1.c:constant_time_is_zero_w Unexecuted instantiation: err.c:constant_time_is_zero_w Unexecuted instantiation: evp_asn1.c:constant_time_is_zero_w Unexecuted instantiation: p_methods.c:constant_time_is_zero_w Unexecuted instantiation: p_pqdsa_asn1.c:constant_time_is_zero_w Unexecuted instantiation: p_x25519_asn1.c:constant_time_is_zero_w Unexecuted instantiation: bcm.c:constant_time_is_zero_w Unexecuted instantiation: kyber1024r3_ref.c:constant_time_is_zero_w Unexecuted instantiation: kyber512r3_ref.c:constant_time_is_zero_w Unexecuted instantiation: kyber768r3_ref.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: obj_xref.c:constant_time_is_zero_w Unexecuted instantiation: poly1305_vec.c:constant_time_is_zero_w Unexecuted instantiation: urandom.c:constant_time_is_zero_w Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.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: fork_detect.c:constant_time_is_zero_w Unexecuted instantiation: snapsafe_detect.c:constant_time_is_zero_w Unexecuted instantiation: ube.c:constant_time_is_zero_w Unexecuted instantiation: a_object.c:constant_time_is_zero_w Unexecuted instantiation: posix_time.c:constant_time_is_zero_w Unexecuted instantiation: bio.c:constant_time_is_zero_w Unexecuted instantiation: file.c:constant_time_is_zero_w Unexecuted instantiation: asn1_compat.c:constant_time_is_zero_w Unexecuted instantiation: chacha.c:constant_time_is_zero_w Unexecuted instantiation: console.c:constant_time_is_zero_w Unexecuted instantiation: ripemd.c:constant_time_is_zero_w 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: engine.c:constant_time_is_zero_w Unexecuted instantiation: p_dh_asn1.c:constant_time_is_zero_w Unexecuted instantiation: p_dsa.c:constant_time_is_zero_w Unexecuted instantiation: p_ec_asn1.c:constant_time_is_zero_w Unexecuted instantiation: p_ed25519_asn1.c:constant_time_is_zero_w Unexecuted instantiation: p_hmac_asn1.c:constant_time_is_zero_w Unexecuted instantiation: p_kem_asn1.c:constant_time_is_zero_w Unexecuted instantiation: print.c:constant_time_is_zero_w Unexecuted instantiation: ex_data.c:constant_time_is_zero_w Unexecuted instantiation: lhash.c:constant_time_is_zero_w Unexecuted instantiation: blake2.c:constant_time_is_zero_w Unexecuted instantiation: params.c:constant_time_is_zero_w |
416 | | |
417 | | // constant_time_is_zero_8 acts like |constant_time_is_zero_w| but returns an |
418 | | // 8-bit mask. |
419 | 0 | static inline uint8_t constant_time_is_zero_8(crypto_word_t a) { |
420 | 0 | return (uint8_t)(constant_time_is_zero_w(a)); |
421 | 0 | } Unexecuted instantiation: convert.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: e_aesgcmsiv.c:constant_time_is_zero_8 Unexecuted instantiation: e_chacha20poly1305.c:constant_time_is_zero_8 Unexecuted instantiation: crypto.c:constant_time_is_zero_8 Unexecuted instantiation: cfb.c:constant_time_is_zero_8 Unexecuted instantiation: ec_asn1.c:constant_time_is_zero_8 Unexecuted instantiation: ecdsa_asn1.c:constant_time_is_zero_8 Unexecuted instantiation: err.c:constant_time_is_zero_8 Unexecuted instantiation: evp_asn1.c:constant_time_is_zero_8 Unexecuted instantiation: p_methods.c:constant_time_is_zero_8 Unexecuted instantiation: p_pqdsa_asn1.c:constant_time_is_zero_8 Unexecuted instantiation: p_x25519_asn1.c:constant_time_is_zero_8 Unexecuted instantiation: bcm.c:constant_time_is_zero_8 Unexecuted instantiation: kyber1024r3_ref.c:constant_time_is_zero_8 Unexecuted instantiation: kyber512r3_ref.c:constant_time_is_zero_8 Unexecuted instantiation: kyber768r3_ref.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: obj_xref.c:constant_time_is_zero_8 Unexecuted instantiation: poly1305_vec.c:constant_time_is_zero_8 Unexecuted instantiation: urandom.c:constant_time_is_zero_8 Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.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: fork_detect.c:constant_time_is_zero_8 Unexecuted instantiation: snapsafe_detect.c:constant_time_is_zero_8 Unexecuted instantiation: ube.c:constant_time_is_zero_8 Unexecuted instantiation: a_object.c:constant_time_is_zero_8 Unexecuted instantiation: posix_time.c:constant_time_is_zero_8 Unexecuted instantiation: bio.c:constant_time_is_zero_8 Unexecuted instantiation: file.c:constant_time_is_zero_8 Unexecuted instantiation: asn1_compat.c:constant_time_is_zero_8 Unexecuted instantiation: chacha.c:constant_time_is_zero_8 Unexecuted instantiation: console.c:constant_time_is_zero_8 Unexecuted instantiation: ripemd.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: engine.c:constant_time_is_zero_8 Unexecuted instantiation: p_dh_asn1.c:constant_time_is_zero_8 Unexecuted instantiation: p_dsa.c:constant_time_is_zero_8 Unexecuted instantiation: p_ec_asn1.c:constant_time_is_zero_8 Unexecuted instantiation: p_ed25519_asn1.c:constant_time_is_zero_8 Unexecuted instantiation: p_hmac_asn1.c:constant_time_is_zero_8 Unexecuted instantiation: p_kem_asn1.c:constant_time_is_zero_8 Unexecuted instantiation: print.c:constant_time_is_zero_8 Unexecuted instantiation: ex_data.c:constant_time_is_zero_8 Unexecuted instantiation: lhash.c:constant_time_is_zero_8 Unexecuted instantiation: blake2.c:constant_time_is_zero_8 Unexecuted instantiation: params.c:constant_time_is_zero_8 |
422 | | |
423 | | // constant_time_eq_w returns 0xff..f if a == b and 0 otherwise. |
424 | | static inline crypto_word_t constant_time_eq_w(crypto_word_t a, |
425 | 0 | crypto_word_t b) { |
426 | 0 | return constant_time_is_zero_w(a ^ b); |
427 | 0 | } Unexecuted instantiation: convert.c:constant_time_eq_w Unexecuted instantiation: cbb.c:constant_time_eq_w Unexecuted instantiation: cbs.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: crypto.c:constant_time_eq_w Unexecuted instantiation: cfb.c:constant_time_eq_w Unexecuted instantiation: ec_asn1.c:constant_time_eq_w Unexecuted instantiation: ecdsa_asn1.c:constant_time_eq_w Unexecuted instantiation: err.c:constant_time_eq_w Unexecuted instantiation: evp_asn1.c:constant_time_eq_w Unexecuted instantiation: p_methods.c:constant_time_eq_w Unexecuted instantiation: p_pqdsa_asn1.c:constant_time_eq_w Unexecuted instantiation: p_x25519_asn1.c:constant_time_eq_w Unexecuted instantiation: bcm.c:constant_time_eq_w Unexecuted instantiation: kyber1024r3_ref.c:constant_time_eq_w Unexecuted instantiation: kyber512r3_ref.c:constant_time_eq_w Unexecuted instantiation: kyber768r3_ref.c:constant_time_eq_w Unexecuted instantiation: mem.c:constant_time_eq_w Unexecuted instantiation: obj.c:constant_time_eq_w Unexecuted instantiation: obj_xref.c:constant_time_eq_w Unexecuted instantiation: poly1305_vec.c:constant_time_eq_w Unexecuted instantiation: urandom.c:constant_time_eq_w Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.c:constant_time_eq_w Unexecuted instantiation: stack.c:constant_time_eq_w Unexecuted instantiation: thread_pthread.c:constant_time_eq_w Unexecuted instantiation: fork_detect.c:constant_time_eq_w Unexecuted instantiation: snapsafe_detect.c:constant_time_eq_w Unexecuted instantiation: ube.c:constant_time_eq_w Unexecuted instantiation: a_object.c:constant_time_eq_w Unexecuted instantiation: posix_time.c:constant_time_eq_w Unexecuted instantiation: bio.c:constant_time_eq_w Unexecuted instantiation: file.c:constant_time_eq_w Unexecuted instantiation: asn1_compat.c:constant_time_eq_w Unexecuted instantiation: chacha.c:constant_time_eq_w Unexecuted instantiation: console.c:constant_time_eq_w Unexecuted instantiation: ripemd.c:constant_time_eq_w 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: engine.c:constant_time_eq_w Unexecuted instantiation: p_dh_asn1.c:constant_time_eq_w Unexecuted instantiation: p_dsa.c:constant_time_eq_w Unexecuted instantiation: p_ec_asn1.c:constant_time_eq_w Unexecuted instantiation: p_ed25519_asn1.c:constant_time_eq_w Unexecuted instantiation: p_hmac_asn1.c:constant_time_eq_w Unexecuted instantiation: p_kem_asn1.c:constant_time_eq_w Unexecuted instantiation: print.c:constant_time_eq_w Unexecuted instantiation: ex_data.c:constant_time_eq_w Unexecuted instantiation: lhash.c:constant_time_eq_w Unexecuted instantiation: blake2.c:constant_time_eq_w Unexecuted instantiation: params.c:constant_time_eq_w |
428 | | |
429 | | // constant_time_eq_8 acts like |constant_time_eq_w| but returns an 8-bit |
430 | | // mask. |
431 | 0 | static inline uint8_t constant_time_eq_8(crypto_word_t a, crypto_word_t b) { |
432 | 0 | return (uint8_t)(constant_time_eq_w(a, b)); |
433 | 0 | } Unexecuted instantiation: convert.c:constant_time_eq_8 Unexecuted instantiation: cbb.c:constant_time_eq_8 Unexecuted instantiation: cbs.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: crypto.c:constant_time_eq_8 Unexecuted instantiation: cfb.c:constant_time_eq_8 Unexecuted instantiation: ec_asn1.c:constant_time_eq_8 Unexecuted instantiation: ecdsa_asn1.c:constant_time_eq_8 Unexecuted instantiation: err.c:constant_time_eq_8 Unexecuted instantiation: evp_asn1.c:constant_time_eq_8 Unexecuted instantiation: p_methods.c:constant_time_eq_8 Unexecuted instantiation: p_pqdsa_asn1.c:constant_time_eq_8 Unexecuted instantiation: p_x25519_asn1.c:constant_time_eq_8 Unexecuted instantiation: bcm.c:constant_time_eq_8 Unexecuted instantiation: kyber1024r3_ref.c:constant_time_eq_8 Unexecuted instantiation: kyber512r3_ref.c:constant_time_eq_8 Unexecuted instantiation: kyber768r3_ref.c:constant_time_eq_8 Unexecuted instantiation: mem.c:constant_time_eq_8 Unexecuted instantiation: obj.c:constant_time_eq_8 Unexecuted instantiation: obj_xref.c:constant_time_eq_8 Unexecuted instantiation: poly1305_vec.c:constant_time_eq_8 Unexecuted instantiation: urandom.c:constant_time_eq_8 Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.c:constant_time_eq_8 Unexecuted instantiation: stack.c:constant_time_eq_8 Unexecuted instantiation: thread_pthread.c:constant_time_eq_8 Unexecuted instantiation: fork_detect.c:constant_time_eq_8 Unexecuted instantiation: snapsafe_detect.c:constant_time_eq_8 Unexecuted instantiation: ube.c:constant_time_eq_8 Unexecuted instantiation: a_object.c:constant_time_eq_8 Unexecuted instantiation: posix_time.c:constant_time_eq_8 Unexecuted instantiation: bio.c:constant_time_eq_8 Unexecuted instantiation: file.c:constant_time_eq_8 Unexecuted instantiation: asn1_compat.c:constant_time_eq_8 Unexecuted instantiation: chacha.c:constant_time_eq_8 Unexecuted instantiation: console.c:constant_time_eq_8 Unexecuted instantiation: ripemd.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: engine.c:constant_time_eq_8 Unexecuted instantiation: p_dh_asn1.c:constant_time_eq_8 Unexecuted instantiation: p_dsa.c:constant_time_eq_8 Unexecuted instantiation: p_ec_asn1.c:constant_time_eq_8 Unexecuted instantiation: p_ed25519_asn1.c:constant_time_eq_8 Unexecuted instantiation: p_hmac_asn1.c:constant_time_eq_8 Unexecuted instantiation: p_kem_asn1.c:constant_time_eq_8 Unexecuted instantiation: print.c:constant_time_eq_8 Unexecuted instantiation: ex_data.c:constant_time_eq_8 Unexecuted instantiation: lhash.c:constant_time_eq_8 Unexecuted instantiation: blake2.c:constant_time_eq_8 Unexecuted instantiation: params.c:constant_time_eq_8 |
434 | | |
435 | | // constant_time_eq_int acts like |constant_time_eq_w| but works on int |
436 | | // values. |
437 | 0 | static inline crypto_word_t constant_time_eq_int(int a, int b) { |
438 | 0 | return constant_time_eq_w((crypto_word_t)(a), (crypto_word_t)(b)); |
439 | 0 | } Unexecuted instantiation: convert.c:constant_time_eq_int Unexecuted instantiation: cbb.c:constant_time_eq_int Unexecuted instantiation: cbs.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: crypto.c:constant_time_eq_int Unexecuted instantiation: cfb.c:constant_time_eq_int Unexecuted instantiation: ec_asn1.c:constant_time_eq_int Unexecuted instantiation: ecdsa_asn1.c:constant_time_eq_int Unexecuted instantiation: err.c:constant_time_eq_int Unexecuted instantiation: evp_asn1.c:constant_time_eq_int Unexecuted instantiation: p_methods.c:constant_time_eq_int Unexecuted instantiation: p_pqdsa_asn1.c:constant_time_eq_int Unexecuted instantiation: p_x25519_asn1.c:constant_time_eq_int Unexecuted instantiation: bcm.c:constant_time_eq_int Unexecuted instantiation: kyber1024r3_ref.c:constant_time_eq_int Unexecuted instantiation: kyber512r3_ref.c:constant_time_eq_int Unexecuted instantiation: kyber768r3_ref.c:constant_time_eq_int Unexecuted instantiation: mem.c:constant_time_eq_int Unexecuted instantiation: obj.c:constant_time_eq_int Unexecuted instantiation: obj_xref.c:constant_time_eq_int Unexecuted instantiation: poly1305_vec.c:constant_time_eq_int Unexecuted instantiation: urandom.c:constant_time_eq_int Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.c:constant_time_eq_int Unexecuted instantiation: stack.c:constant_time_eq_int Unexecuted instantiation: thread_pthread.c:constant_time_eq_int Unexecuted instantiation: fork_detect.c:constant_time_eq_int Unexecuted instantiation: snapsafe_detect.c:constant_time_eq_int Unexecuted instantiation: ube.c:constant_time_eq_int Unexecuted instantiation: a_object.c:constant_time_eq_int Unexecuted instantiation: posix_time.c:constant_time_eq_int Unexecuted instantiation: bio.c:constant_time_eq_int Unexecuted instantiation: file.c:constant_time_eq_int Unexecuted instantiation: asn1_compat.c:constant_time_eq_int Unexecuted instantiation: chacha.c:constant_time_eq_int Unexecuted instantiation: console.c:constant_time_eq_int Unexecuted instantiation: ripemd.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: engine.c:constant_time_eq_int Unexecuted instantiation: p_dh_asn1.c:constant_time_eq_int Unexecuted instantiation: p_dsa.c:constant_time_eq_int Unexecuted instantiation: p_ec_asn1.c:constant_time_eq_int Unexecuted instantiation: p_ed25519_asn1.c:constant_time_eq_int Unexecuted instantiation: p_hmac_asn1.c:constant_time_eq_int Unexecuted instantiation: p_kem_asn1.c:constant_time_eq_int Unexecuted instantiation: print.c:constant_time_eq_int Unexecuted instantiation: ex_data.c:constant_time_eq_int Unexecuted instantiation: lhash.c:constant_time_eq_int Unexecuted instantiation: blake2.c:constant_time_eq_int Unexecuted instantiation: params.c:constant_time_eq_int |
440 | | |
441 | | // constant_time_eq_int_8 acts like |constant_time_eq_int| but returns an 8-bit |
442 | | // mask. |
443 | 0 | static inline uint8_t constant_time_eq_int_8(int a, int b) { |
444 | 0 | return constant_time_eq_8((crypto_word_t)(a), (crypto_word_t)(b)); |
445 | 0 | } Unexecuted instantiation: convert.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: e_aesgcmsiv.c:constant_time_eq_int_8 Unexecuted instantiation: e_chacha20poly1305.c:constant_time_eq_int_8 Unexecuted instantiation: crypto.c:constant_time_eq_int_8 Unexecuted instantiation: cfb.c:constant_time_eq_int_8 Unexecuted instantiation: ec_asn1.c:constant_time_eq_int_8 Unexecuted instantiation: ecdsa_asn1.c:constant_time_eq_int_8 Unexecuted instantiation: err.c:constant_time_eq_int_8 Unexecuted instantiation: evp_asn1.c:constant_time_eq_int_8 Unexecuted instantiation: p_methods.c:constant_time_eq_int_8 Unexecuted instantiation: p_pqdsa_asn1.c:constant_time_eq_int_8 Unexecuted instantiation: p_x25519_asn1.c:constant_time_eq_int_8 Unexecuted instantiation: bcm.c:constant_time_eq_int_8 Unexecuted instantiation: kyber1024r3_ref.c:constant_time_eq_int_8 Unexecuted instantiation: kyber512r3_ref.c:constant_time_eq_int_8 Unexecuted instantiation: kyber768r3_ref.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: obj_xref.c:constant_time_eq_int_8 Unexecuted instantiation: poly1305_vec.c:constant_time_eq_int_8 Unexecuted instantiation: urandom.c:constant_time_eq_int_8 Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.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: fork_detect.c:constant_time_eq_int_8 Unexecuted instantiation: snapsafe_detect.c:constant_time_eq_int_8 Unexecuted instantiation: ube.c:constant_time_eq_int_8 Unexecuted instantiation: a_object.c:constant_time_eq_int_8 Unexecuted instantiation: posix_time.c:constant_time_eq_int_8 Unexecuted instantiation: bio.c:constant_time_eq_int_8 Unexecuted instantiation: file.c:constant_time_eq_int_8 Unexecuted instantiation: asn1_compat.c:constant_time_eq_int_8 Unexecuted instantiation: chacha.c:constant_time_eq_int_8 Unexecuted instantiation: console.c:constant_time_eq_int_8 Unexecuted instantiation: ripemd.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: engine.c:constant_time_eq_int_8 Unexecuted instantiation: p_dh_asn1.c:constant_time_eq_int_8 Unexecuted instantiation: p_dsa.c:constant_time_eq_int_8 Unexecuted instantiation: p_ec_asn1.c:constant_time_eq_int_8 Unexecuted instantiation: p_ed25519_asn1.c:constant_time_eq_int_8 Unexecuted instantiation: p_hmac_asn1.c:constant_time_eq_int_8 Unexecuted instantiation: p_kem_asn1.c:constant_time_eq_int_8 Unexecuted instantiation: print.c:constant_time_eq_int_8 Unexecuted instantiation: ex_data.c:constant_time_eq_int_8 Unexecuted instantiation: lhash.c:constant_time_eq_int_8 Unexecuted instantiation: blake2.c:constant_time_eq_int_8 Unexecuted instantiation: params.c:constant_time_eq_int_8 |
446 | | |
447 | | // constant_time_select_w returns (mask & a) | (~mask & b). When |mask| is all |
448 | | // 1s or all 0s (as returned by the methods above), the select methods return |
449 | | // either |a| (if |mask| is nonzero) or |b| (if |mask| is zero). |
450 | | static inline crypto_word_t constant_time_select_w(crypto_word_t mask, |
451 | | crypto_word_t a, |
452 | 0 | crypto_word_t b) { |
453 | | // Clang recognizes this pattern as a select. While it usually transforms it |
454 | | // to a cmov, it sometimes further transforms it into a branch, which we do |
455 | | // not want. |
456 | | // |
457 | | // Adding barriers to both |mask| and |~mask| breaks the relationship between |
458 | | // the two, which makes the compiler stick with bitmasks. |
459 | 0 | return (value_barrier_w(mask) & a) | (value_barrier_w(~mask) & b); |
460 | 0 | } Unexecuted instantiation: convert.c:constant_time_select_w Unexecuted instantiation: cbb.c:constant_time_select_w Unexecuted instantiation: cbs.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: crypto.c:constant_time_select_w Unexecuted instantiation: cfb.c:constant_time_select_w Unexecuted instantiation: ec_asn1.c:constant_time_select_w Unexecuted instantiation: ecdsa_asn1.c:constant_time_select_w Unexecuted instantiation: err.c:constant_time_select_w Unexecuted instantiation: evp_asn1.c:constant_time_select_w Unexecuted instantiation: p_methods.c:constant_time_select_w Unexecuted instantiation: p_pqdsa_asn1.c:constant_time_select_w Unexecuted instantiation: p_x25519_asn1.c:constant_time_select_w Unexecuted instantiation: bcm.c:constant_time_select_w Unexecuted instantiation: kyber1024r3_ref.c:constant_time_select_w Unexecuted instantiation: kyber512r3_ref.c:constant_time_select_w Unexecuted instantiation: kyber768r3_ref.c:constant_time_select_w Unexecuted instantiation: mem.c:constant_time_select_w Unexecuted instantiation: obj.c:constant_time_select_w Unexecuted instantiation: obj_xref.c:constant_time_select_w Unexecuted instantiation: poly1305_vec.c:constant_time_select_w Unexecuted instantiation: urandom.c:constant_time_select_w Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.c:constant_time_select_w Unexecuted instantiation: stack.c:constant_time_select_w Unexecuted instantiation: thread_pthread.c:constant_time_select_w Unexecuted instantiation: fork_detect.c:constant_time_select_w Unexecuted instantiation: snapsafe_detect.c:constant_time_select_w Unexecuted instantiation: ube.c:constant_time_select_w Unexecuted instantiation: a_object.c:constant_time_select_w Unexecuted instantiation: posix_time.c:constant_time_select_w Unexecuted instantiation: bio.c:constant_time_select_w Unexecuted instantiation: file.c:constant_time_select_w Unexecuted instantiation: asn1_compat.c:constant_time_select_w Unexecuted instantiation: chacha.c:constant_time_select_w Unexecuted instantiation: console.c:constant_time_select_w Unexecuted instantiation: ripemd.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: engine.c:constant_time_select_w Unexecuted instantiation: p_dh_asn1.c:constant_time_select_w Unexecuted instantiation: p_dsa.c:constant_time_select_w Unexecuted instantiation: p_ec_asn1.c:constant_time_select_w Unexecuted instantiation: p_ed25519_asn1.c:constant_time_select_w Unexecuted instantiation: p_hmac_asn1.c:constant_time_select_w Unexecuted instantiation: p_kem_asn1.c:constant_time_select_w Unexecuted instantiation: print.c:constant_time_select_w Unexecuted instantiation: ex_data.c:constant_time_select_w Unexecuted instantiation: lhash.c:constant_time_select_w Unexecuted instantiation: blake2.c:constant_time_select_w Unexecuted instantiation: params.c:constant_time_select_w |
461 | | |
462 | | // constant_time_select_8 acts like |constant_time_select| but operates on |
463 | | // 8-bit values. |
464 | | static inline uint8_t constant_time_select_8(uint8_t mask, uint8_t a, |
465 | 0 | uint8_t b) { |
466 | 0 | return (uint8_t)(constant_time_select_w(mask, a, b)); |
467 | 0 | } Unexecuted instantiation: convert.c:constant_time_select_8 Unexecuted instantiation: cbb.c:constant_time_select_8 Unexecuted instantiation: cbs.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: crypto.c:constant_time_select_8 Unexecuted instantiation: cfb.c:constant_time_select_8 Unexecuted instantiation: ec_asn1.c:constant_time_select_8 Unexecuted instantiation: ecdsa_asn1.c:constant_time_select_8 Unexecuted instantiation: err.c:constant_time_select_8 Unexecuted instantiation: evp_asn1.c:constant_time_select_8 Unexecuted instantiation: p_methods.c:constant_time_select_8 Unexecuted instantiation: p_pqdsa_asn1.c:constant_time_select_8 Unexecuted instantiation: p_x25519_asn1.c:constant_time_select_8 Unexecuted instantiation: bcm.c:constant_time_select_8 Unexecuted instantiation: kyber1024r3_ref.c:constant_time_select_8 Unexecuted instantiation: kyber512r3_ref.c:constant_time_select_8 Unexecuted instantiation: kyber768r3_ref.c:constant_time_select_8 Unexecuted instantiation: mem.c:constant_time_select_8 Unexecuted instantiation: obj.c:constant_time_select_8 Unexecuted instantiation: obj_xref.c:constant_time_select_8 Unexecuted instantiation: poly1305_vec.c:constant_time_select_8 Unexecuted instantiation: urandom.c:constant_time_select_8 Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.c:constant_time_select_8 Unexecuted instantiation: stack.c:constant_time_select_8 Unexecuted instantiation: thread_pthread.c:constant_time_select_8 Unexecuted instantiation: fork_detect.c:constant_time_select_8 Unexecuted instantiation: snapsafe_detect.c:constant_time_select_8 Unexecuted instantiation: ube.c:constant_time_select_8 Unexecuted instantiation: a_object.c:constant_time_select_8 Unexecuted instantiation: posix_time.c:constant_time_select_8 Unexecuted instantiation: bio.c:constant_time_select_8 Unexecuted instantiation: file.c:constant_time_select_8 Unexecuted instantiation: asn1_compat.c:constant_time_select_8 Unexecuted instantiation: chacha.c:constant_time_select_8 Unexecuted instantiation: console.c:constant_time_select_8 Unexecuted instantiation: ripemd.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: engine.c:constant_time_select_8 Unexecuted instantiation: p_dh_asn1.c:constant_time_select_8 Unexecuted instantiation: p_dsa.c:constant_time_select_8 Unexecuted instantiation: p_ec_asn1.c:constant_time_select_8 Unexecuted instantiation: p_ed25519_asn1.c:constant_time_select_8 Unexecuted instantiation: p_hmac_asn1.c:constant_time_select_8 Unexecuted instantiation: p_kem_asn1.c:constant_time_select_8 Unexecuted instantiation: print.c:constant_time_select_8 Unexecuted instantiation: ex_data.c:constant_time_select_8 Unexecuted instantiation: lhash.c:constant_time_select_8 Unexecuted instantiation: blake2.c:constant_time_select_8 Unexecuted instantiation: params.c:constant_time_select_8 |
468 | | |
469 | | // constant_time_select_int acts like |constant_time_select| but operates on |
470 | | // ints. |
471 | 0 | static inline int constant_time_select_int(crypto_word_t mask, int a, int b) { |
472 | 0 | return (int)(constant_time_select_w(mask, (crypto_word_t)(a), |
473 | 0 | (crypto_word_t)(b))); |
474 | 0 | } Unexecuted instantiation: convert.c:constant_time_select_int Unexecuted instantiation: cbb.c:constant_time_select_int Unexecuted instantiation: cbs.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: crypto.c:constant_time_select_int Unexecuted instantiation: cfb.c:constant_time_select_int Unexecuted instantiation: ec_asn1.c:constant_time_select_int Unexecuted instantiation: ecdsa_asn1.c:constant_time_select_int Unexecuted instantiation: err.c:constant_time_select_int Unexecuted instantiation: evp_asn1.c:constant_time_select_int Unexecuted instantiation: p_methods.c:constant_time_select_int Unexecuted instantiation: p_pqdsa_asn1.c:constant_time_select_int Unexecuted instantiation: p_x25519_asn1.c:constant_time_select_int Unexecuted instantiation: bcm.c:constant_time_select_int Unexecuted instantiation: kyber1024r3_ref.c:constant_time_select_int Unexecuted instantiation: kyber512r3_ref.c:constant_time_select_int Unexecuted instantiation: kyber768r3_ref.c:constant_time_select_int Unexecuted instantiation: mem.c:constant_time_select_int Unexecuted instantiation: obj.c:constant_time_select_int Unexecuted instantiation: obj_xref.c:constant_time_select_int Unexecuted instantiation: poly1305_vec.c:constant_time_select_int Unexecuted instantiation: urandom.c:constant_time_select_int Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.c:constant_time_select_int Unexecuted instantiation: stack.c:constant_time_select_int Unexecuted instantiation: thread_pthread.c:constant_time_select_int Unexecuted instantiation: fork_detect.c:constant_time_select_int Unexecuted instantiation: snapsafe_detect.c:constant_time_select_int Unexecuted instantiation: ube.c:constant_time_select_int Unexecuted instantiation: a_object.c:constant_time_select_int Unexecuted instantiation: posix_time.c:constant_time_select_int Unexecuted instantiation: bio.c:constant_time_select_int Unexecuted instantiation: file.c:constant_time_select_int Unexecuted instantiation: asn1_compat.c:constant_time_select_int Unexecuted instantiation: chacha.c:constant_time_select_int Unexecuted instantiation: console.c:constant_time_select_int Unexecuted instantiation: ripemd.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: engine.c:constant_time_select_int Unexecuted instantiation: p_dh_asn1.c:constant_time_select_int Unexecuted instantiation: p_dsa.c:constant_time_select_int Unexecuted instantiation: p_ec_asn1.c:constant_time_select_int Unexecuted instantiation: p_ed25519_asn1.c:constant_time_select_int Unexecuted instantiation: p_hmac_asn1.c:constant_time_select_int Unexecuted instantiation: p_kem_asn1.c:constant_time_select_int Unexecuted instantiation: print.c:constant_time_select_int Unexecuted instantiation: ex_data.c:constant_time_select_int Unexecuted instantiation: lhash.c:constant_time_select_int Unexecuted instantiation: blake2.c:constant_time_select_int Unexecuted instantiation: params.c:constant_time_select_int |
475 | | |
476 | | // constant_time_select_array_w applies |constant_time_select_w| on each |
477 | | // corresponding pair of elements of a and b. |
478 | | static inline void constant_time_select_array_w( |
479 | | crypto_word_t *c, crypto_word_t *a, crypto_word_t *b, |
480 | 0 | crypto_word_t mask, size_t len) { |
481 | 0 | for (size_t i = 0; i < len; i++) { |
482 | 0 | c[i] = constant_time_select_w(mask, a[i], b[i]); |
483 | 0 | } |
484 | 0 | } Unexecuted instantiation: convert.c:constant_time_select_array_w Unexecuted instantiation: cbb.c:constant_time_select_array_w Unexecuted instantiation: cbs.c:constant_time_select_array_w Unexecuted instantiation: e_aesgcmsiv.c:constant_time_select_array_w Unexecuted instantiation: e_chacha20poly1305.c:constant_time_select_array_w Unexecuted instantiation: crypto.c:constant_time_select_array_w Unexecuted instantiation: cfb.c:constant_time_select_array_w Unexecuted instantiation: ec_asn1.c:constant_time_select_array_w Unexecuted instantiation: ecdsa_asn1.c:constant_time_select_array_w Unexecuted instantiation: err.c:constant_time_select_array_w Unexecuted instantiation: evp_asn1.c:constant_time_select_array_w Unexecuted instantiation: p_methods.c:constant_time_select_array_w Unexecuted instantiation: p_pqdsa_asn1.c:constant_time_select_array_w Unexecuted instantiation: p_x25519_asn1.c:constant_time_select_array_w Unexecuted instantiation: bcm.c:constant_time_select_array_w Unexecuted instantiation: kyber1024r3_ref.c:constant_time_select_array_w Unexecuted instantiation: kyber512r3_ref.c:constant_time_select_array_w Unexecuted instantiation: kyber768r3_ref.c:constant_time_select_array_w Unexecuted instantiation: mem.c:constant_time_select_array_w Unexecuted instantiation: obj.c:constant_time_select_array_w Unexecuted instantiation: obj_xref.c:constant_time_select_array_w Unexecuted instantiation: poly1305_vec.c:constant_time_select_array_w Unexecuted instantiation: urandom.c:constant_time_select_array_w Unexecuted instantiation: refcount_c11.c:constant_time_select_array_w Unexecuted instantiation: rsa_asn1.c:constant_time_select_array_w Unexecuted instantiation: rsa_crypt.c:constant_time_select_array_w Unexecuted instantiation: rsassa_pss_asn1.c:constant_time_select_array_w Unexecuted instantiation: stack.c:constant_time_select_array_w Unexecuted instantiation: thread_pthread.c:constant_time_select_array_w Unexecuted instantiation: fork_detect.c:constant_time_select_array_w Unexecuted instantiation: snapsafe_detect.c:constant_time_select_array_w Unexecuted instantiation: ube.c:constant_time_select_array_w Unexecuted instantiation: a_object.c:constant_time_select_array_w Unexecuted instantiation: posix_time.c:constant_time_select_array_w Unexecuted instantiation: bio.c:constant_time_select_array_w Unexecuted instantiation: file.c:constant_time_select_array_w Unexecuted instantiation: asn1_compat.c:constant_time_select_array_w Unexecuted instantiation: chacha.c:constant_time_select_array_w Unexecuted instantiation: console.c:constant_time_select_array_w Unexecuted instantiation: ripemd.c:constant_time_select_array_w Unexecuted instantiation: digest_extra.c:constant_time_select_array_w Unexecuted instantiation: dsa.c:constant_time_select_array_w Unexecuted instantiation: dsa_asn1.c:constant_time_select_array_w Unexecuted instantiation: engine.c:constant_time_select_array_w Unexecuted instantiation: p_dh_asn1.c:constant_time_select_array_w Unexecuted instantiation: p_dsa.c:constant_time_select_array_w Unexecuted instantiation: p_ec_asn1.c:constant_time_select_array_w Unexecuted instantiation: p_ed25519_asn1.c:constant_time_select_array_w Unexecuted instantiation: p_hmac_asn1.c:constant_time_select_array_w Unexecuted instantiation: p_kem_asn1.c:constant_time_select_array_w Unexecuted instantiation: print.c:constant_time_select_array_w Unexecuted instantiation: ex_data.c:constant_time_select_array_w Unexecuted instantiation: lhash.c:constant_time_select_array_w Unexecuted instantiation: blake2.c:constant_time_select_array_w Unexecuted instantiation: params.c:constant_time_select_array_w |
485 | | |
486 | | static inline void constant_time_select_array_8( |
487 | 0 | uint8_t *c, uint8_t *a, uint8_t *b, uint8_t mask, size_t len) { |
488 | 0 | for (size_t i = 0; i < len; i++) { |
489 | 0 | c[i] = constant_time_select_8(mask, a[i], b[i]); |
490 | 0 | } |
491 | 0 | } Unexecuted instantiation: convert.c:constant_time_select_array_8 Unexecuted instantiation: cbb.c:constant_time_select_array_8 Unexecuted instantiation: cbs.c:constant_time_select_array_8 Unexecuted instantiation: e_aesgcmsiv.c:constant_time_select_array_8 Unexecuted instantiation: e_chacha20poly1305.c:constant_time_select_array_8 Unexecuted instantiation: crypto.c:constant_time_select_array_8 Unexecuted instantiation: cfb.c:constant_time_select_array_8 Unexecuted instantiation: ec_asn1.c:constant_time_select_array_8 Unexecuted instantiation: ecdsa_asn1.c:constant_time_select_array_8 Unexecuted instantiation: err.c:constant_time_select_array_8 Unexecuted instantiation: evp_asn1.c:constant_time_select_array_8 Unexecuted instantiation: p_methods.c:constant_time_select_array_8 Unexecuted instantiation: p_pqdsa_asn1.c:constant_time_select_array_8 Unexecuted instantiation: p_x25519_asn1.c:constant_time_select_array_8 Unexecuted instantiation: bcm.c:constant_time_select_array_8 Unexecuted instantiation: kyber1024r3_ref.c:constant_time_select_array_8 Unexecuted instantiation: kyber512r3_ref.c:constant_time_select_array_8 Unexecuted instantiation: kyber768r3_ref.c:constant_time_select_array_8 Unexecuted instantiation: mem.c:constant_time_select_array_8 Unexecuted instantiation: obj.c:constant_time_select_array_8 Unexecuted instantiation: obj_xref.c:constant_time_select_array_8 Unexecuted instantiation: poly1305_vec.c:constant_time_select_array_8 Unexecuted instantiation: urandom.c:constant_time_select_array_8 Unexecuted instantiation: refcount_c11.c:constant_time_select_array_8 Unexecuted instantiation: rsa_asn1.c:constant_time_select_array_8 Unexecuted instantiation: rsa_crypt.c:constant_time_select_array_8 Unexecuted instantiation: rsassa_pss_asn1.c:constant_time_select_array_8 Unexecuted instantiation: stack.c:constant_time_select_array_8 Unexecuted instantiation: thread_pthread.c:constant_time_select_array_8 Unexecuted instantiation: fork_detect.c:constant_time_select_array_8 Unexecuted instantiation: snapsafe_detect.c:constant_time_select_array_8 Unexecuted instantiation: ube.c:constant_time_select_array_8 Unexecuted instantiation: a_object.c:constant_time_select_array_8 Unexecuted instantiation: posix_time.c:constant_time_select_array_8 Unexecuted instantiation: bio.c:constant_time_select_array_8 Unexecuted instantiation: file.c:constant_time_select_array_8 Unexecuted instantiation: asn1_compat.c:constant_time_select_array_8 Unexecuted instantiation: chacha.c:constant_time_select_array_8 Unexecuted instantiation: console.c:constant_time_select_array_8 Unexecuted instantiation: ripemd.c:constant_time_select_array_8 Unexecuted instantiation: digest_extra.c:constant_time_select_array_8 Unexecuted instantiation: dsa.c:constant_time_select_array_8 Unexecuted instantiation: dsa_asn1.c:constant_time_select_array_8 Unexecuted instantiation: engine.c:constant_time_select_array_8 Unexecuted instantiation: p_dh_asn1.c:constant_time_select_array_8 Unexecuted instantiation: p_dsa.c:constant_time_select_array_8 Unexecuted instantiation: p_ec_asn1.c:constant_time_select_array_8 Unexecuted instantiation: p_ed25519_asn1.c:constant_time_select_array_8 Unexecuted instantiation: p_hmac_asn1.c:constant_time_select_array_8 Unexecuted instantiation: p_kem_asn1.c:constant_time_select_array_8 Unexecuted instantiation: print.c:constant_time_select_array_8 Unexecuted instantiation: ex_data.c:constant_time_select_array_8 Unexecuted instantiation: lhash.c:constant_time_select_array_8 Unexecuted instantiation: blake2.c:constant_time_select_array_8 Unexecuted instantiation: params.c:constant_time_select_array_8 |
492 | | |
493 | | // constant_time_select_entry_from_table_w selects the idx-th entry from table. |
494 | | static inline void constant_time_select_entry_from_table_w( |
495 | | crypto_word_t *out, crypto_word_t *table, |
496 | 0 | size_t idx, size_t num_entries, size_t entry_size) { |
497 | 0 | for (size_t i = 0; i < num_entries; i++) { |
498 | 0 | crypto_word_t mask = constant_time_eq_w(i, idx); |
499 | 0 | constant_time_select_array_w(out, &table[i * entry_size], out, mask, entry_size); |
500 | 0 | } |
501 | 0 | } Unexecuted instantiation: convert.c:constant_time_select_entry_from_table_w Unexecuted instantiation: cbb.c:constant_time_select_entry_from_table_w Unexecuted instantiation: cbs.c:constant_time_select_entry_from_table_w Unexecuted instantiation: e_aesgcmsiv.c:constant_time_select_entry_from_table_w Unexecuted instantiation: e_chacha20poly1305.c:constant_time_select_entry_from_table_w Unexecuted instantiation: crypto.c:constant_time_select_entry_from_table_w Unexecuted instantiation: cfb.c:constant_time_select_entry_from_table_w Unexecuted instantiation: ec_asn1.c:constant_time_select_entry_from_table_w Unexecuted instantiation: ecdsa_asn1.c:constant_time_select_entry_from_table_w Unexecuted instantiation: err.c:constant_time_select_entry_from_table_w Unexecuted instantiation: evp_asn1.c:constant_time_select_entry_from_table_w Unexecuted instantiation: p_methods.c:constant_time_select_entry_from_table_w Unexecuted instantiation: p_pqdsa_asn1.c:constant_time_select_entry_from_table_w Unexecuted instantiation: p_x25519_asn1.c:constant_time_select_entry_from_table_w Unexecuted instantiation: bcm.c:constant_time_select_entry_from_table_w Unexecuted instantiation: kyber1024r3_ref.c:constant_time_select_entry_from_table_w Unexecuted instantiation: kyber512r3_ref.c:constant_time_select_entry_from_table_w Unexecuted instantiation: kyber768r3_ref.c:constant_time_select_entry_from_table_w Unexecuted instantiation: mem.c:constant_time_select_entry_from_table_w Unexecuted instantiation: obj.c:constant_time_select_entry_from_table_w Unexecuted instantiation: obj_xref.c:constant_time_select_entry_from_table_w Unexecuted instantiation: poly1305_vec.c:constant_time_select_entry_from_table_w Unexecuted instantiation: urandom.c:constant_time_select_entry_from_table_w Unexecuted instantiation: refcount_c11.c:constant_time_select_entry_from_table_w Unexecuted instantiation: rsa_asn1.c:constant_time_select_entry_from_table_w Unexecuted instantiation: rsa_crypt.c:constant_time_select_entry_from_table_w Unexecuted instantiation: rsassa_pss_asn1.c:constant_time_select_entry_from_table_w Unexecuted instantiation: stack.c:constant_time_select_entry_from_table_w Unexecuted instantiation: thread_pthread.c:constant_time_select_entry_from_table_w Unexecuted instantiation: fork_detect.c:constant_time_select_entry_from_table_w Unexecuted instantiation: snapsafe_detect.c:constant_time_select_entry_from_table_w Unexecuted instantiation: ube.c:constant_time_select_entry_from_table_w Unexecuted instantiation: a_object.c:constant_time_select_entry_from_table_w Unexecuted instantiation: posix_time.c:constant_time_select_entry_from_table_w Unexecuted instantiation: bio.c:constant_time_select_entry_from_table_w Unexecuted instantiation: file.c:constant_time_select_entry_from_table_w Unexecuted instantiation: asn1_compat.c:constant_time_select_entry_from_table_w Unexecuted instantiation: chacha.c:constant_time_select_entry_from_table_w Unexecuted instantiation: console.c:constant_time_select_entry_from_table_w Unexecuted instantiation: ripemd.c:constant_time_select_entry_from_table_w Unexecuted instantiation: digest_extra.c:constant_time_select_entry_from_table_w Unexecuted instantiation: dsa.c:constant_time_select_entry_from_table_w Unexecuted instantiation: dsa_asn1.c:constant_time_select_entry_from_table_w Unexecuted instantiation: engine.c:constant_time_select_entry_from_table_w Unexecuted instantiation: p_dh_asn1.c:constant_time_select_entry_from_table_w Unexecuted instantiation: p_dsa.c:constant_time_select_entry_from_table_w Unexecuted instantiation: p_ec_asn1.c:constant_time_select_entry_from_table_w Unexecuted instantiation: p_ed25519_asn1.c:constant_time_select_entry_from_table_w Unexecuted instantiation: p_hmac_asn1.c:constant_time_select_entry_from_table_w Unexecuted instantiation: p_kem_asn1.c:constant_time_select_entry_from_table_w Unexecuted instantiation: print.c:constant_time_select_entry_from_table_w Unexecuted instantiation: ex_data.c:constant_time_select_entry_from_table_w Unexecuted instantiation: lhash.c:constant_time_select_entry_from_table_w Unexecuted instantiation: blake2.c:constant_time_select_entry_from_table_w Unexecuted instantiation: params.c:constant_time_select_entry_from_table_w |
502 | | |
503 | | static inline void constant_time_select_entry_from_table_8( |
504 | | uint8_t *out, uint8_t *table, size_t idx, |
505 | 0 | size_t num_entries, size_t entry_size) { |
506 | 0 | for (size_t i = 0; i < num_entries; i++) { |
507 | 0 | uint8_t mask = (uint8_t)(constant_time_eq_w(i, idx)); |
508 | 0 | constant_time_select_array_8(out, &table[i * entry_size], out, mask, entry_size); |
509 | 0 | } |
510 | 0 | } Unexecuted instantiation: convert.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: cbb.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: cbs.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: e_aesgcmsiv.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: e_chacha20poly1305.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: crypto.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: cfb.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: ec_asn1.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: ecdsa_asn1.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: err.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: evp_asn1.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: p_methods.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: p_pqdsa_asn1.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: p_x25519_asn1.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: bcm.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: kyber1024r3_ref.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: kyber512r3_ref.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: kyber768r3_ref.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: mem.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: obj.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: obj_xref.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: poly1305_vec.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: urandom.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: refcount_c11.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: rsa_asn1.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: rsa_crypt.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: rsassa_pss_asn1.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: stack.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: thread_pthread.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: fork_detect.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: snapsafe_detect.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: ube.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: a_object.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: posix_time.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: bio.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: file.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: asn1_compat.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: chacha.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: console.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: ripemd.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: digest_extra.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: dsa.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: dsa_asn1.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: engine.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: p_dh_asn1.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: p_dsa.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: p_ec_asn1.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: p_ed25519_asn1.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: p_hmac_asn1.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: p_kem_asn1.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: print.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: ex_data.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: lhash.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: blake2.c:constant_time_select_entry_from_table_8 Unexecuted instantiation: params.c:constant_time_select_entry_from_table_8 |
511 | | |
512 | | #if defined(BORINGSSL_CONSTANT_TIME_VALIDATION) |
513 | | |
514 | | // CONSTTIME_SECRET takes a pointer and a number of bytes and marks that region |
515 | | // of memory as secret. Secret data is tracked as it flows to registers and |
516 | | // other parts of a memory. If secret data is used as a condition for a branch, |
517 | | // or as a memory index, it will trigger warnings in valgrind. |
518 | | #define CONSTTIME_SECRET(ptr, len) VALGRIND_MAKE_MEM_UNDEFINED(ptr, len) |
519 | | |
520 | | // CONSTTIME_DECLASSIFY takes a pointer and a number of bytes and marks that |
521 | | // region of memory as public. Public data is not subject to constant-time |
522 | | // rules. |
523 | | #define CONSTTIME_DECLASSIFY(ptr, len) VALGRIND_MAKE_MEM_DEFINED(ptr, len) |
524 | | |
525 | | #else |
526 | | |
527 | | #define CONSTTIME_SECRET(ptr, len) |
528 | | #define CONSTTIME_DECLASSIFY(ptr, len) |
529 | | |
530 | | #endif // BORINGSSL_CONSTANT_TIME_VALIDATION |
531 | | |
532 | 0 | static inline crypto_word_t constant_time_declassify_w(crypto_word_t v) { |
533 | | // Return |v| through a value barrier to be safe. Valgrind-based constant-time |
534 | | // validation is partly to check the compiler has not undone any constant-time |
535 | | // work. Any place |BORINGSSL_CONSTANT_TIME_VALIDATION| influences |
536 | | // optimizations, this validation is inaccurate. |
537 | | // |
538 | | // However, by sending pointers through valgrind, we likely inhibit escape |
539 | | // analysis. On local variables, particularly booleans, we likely |
540 | | // significantly impact optimizations. |
541 | | // |
542 | | // Thus, to be safe, stick a value barrier, in hopes of comparably inhibiting |
543 | | // compiler analysis. |
544 | 0 | CONSTTIME_DECLASSIFY(&v, sizeof(v)); |
545 | 0 | return value_barrier_w(v); |
546 | 0 | } Unexecuted instantiation: convert.c:constant_time_declassify_w Unexecuted instantiation: cbb.c:constant_time_declassify_w Unexecuted instantiation: cbs.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: crypto.c:constant_time_declassify_w Unexecuted instantiation: cfb.c:constant_time_declassify_w Unexecuted instantiation: ec_asn1.c:constant_time_declassify_w Unexecuted instantiation: ecdsa_asn1.c:constant_time_declassify_w Unexecuted instantiation: err.c:constant_time_declassify_w Unexecuted instantiation: evp_asn1.c:constant_time_declassify_w Unexecuted instantiation: p_methods.c:constant_time_declassify_w Unexecuted instantiation: p_pqdsa_asn1.c:constant_time_declassify_w Unexecuted instantiation: p_x25519_asn1.c:constant_time_declassify_w Unexecuted instantiation: bcm.c:constant_time_declassify_w Unexecuted instantiation: kyber1024r3_ref.c:constant_time_declassify_w Unexecuted instantiation: kyber512r3_ref.c:constant_time_declassify_w Unexecuted instantiation: kyber768r3_ref.c:constant_time_declassify_w Unexecuted instantiation: mem.c:constant_time_declassify_w Unexecuted instantiation: obj.c:constant_time_declassify_w Unexecuted instantiation: obj_xref.c:constant_time_declassify_w Unexecuted instantiation: poly1305_vec.c:constant_time_declassify_w Unexecuted instantiation: urandom.c:constant_time_declassify_w Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.c:constant_time_declassify_w Unexecuted instantiation: stack.c:constant_time_declassify_w Unexecuted instantiation: thread_pthread.c:constant_time_declassify_w Unexecuted instantiation: fork_detect.c:constant_time_declassify_w Unexecuted instantiation: snapsafe_detect.c:constant_time_declassify_w Unexecuted instantiation: ube.c:constant_time_declassify_w Unexecuted instantiation: a_object.c:constant_time_declassify_w Unexecuted instantiation: posix_time.c:constant_time_declassify_w Unexecuted instantiation: bio.c:constant_time_declassify_w Unexecuted instantiation: file.c:constant_time_declassify_w Unexecuted instantiation: asn1_compat.c:constant_time_declassify_w Unexecuted instantiation: chacha.c:constant_time_declassify_w Unexecuted instantiation: console.c:constant_time_declassify_w Unexecuted instantiation: ripemd.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: engine.c:constant_time_declassify_w Unexecuted instantiation: p_dh_asn1.c:constant_time_declassify_w Unexecuted instantiation: p_dsa.c:constant_time_declassify_w Unexecuted instantiation: p_ec_asn1.c:constant_time_declassify_w Unexecuted instantiation: p_ed25519_asn1.c:constant_time_declassify_w Unexecuted instantiation: p_hmac_asn1.c:constant_time_declassify_w Unexecuted instantiation: p_kem_asn1.c:constant_time_declassify_w Unexecuted instantiation: print.c:constant_time_declassify_w Unexecuted instantiation: ex_data.c:constant_time_declassify_w Unexecuted instantiation: lhash.c:constant_time_declassify_w Unexecuted instantiation: blake2.c:constant_time_declassify_w Unexecuted instantiation: params.c:constant_time_declassify_w |
547 | | |
548 | 0 | static inline int constant_time_declassify_int(int v) { |
549 | 0 | OPENSSL_STATIC_ASSERT(sizeof(uint32_t) == sizeof(int), |
550 | 0 | int_is_not_the_same_size_as_uint32_t); |
551 | | // See comment above. |
552 | 0 | CONSTTIME_DECLASSIFY(&v, sizeof(v)); |
553 | 0 | return value_barrier_u32(v); |
554 | 0 | } Unexecuted instantiation: convert.c:constant_time_declassify_int Unexecuted instantiation: cbb.c:constant_time_declassify_int Unexecuted instantiation: cbs.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: crypto.c:constant_time_declassify_int Unexecuted instantiation: cfb.c:constant_time_declassify_int Unexecuted instantiation: ec_asn1.c:constant_time_declassify_int Unexecuted instantiation: ecdsa_asn1.c:constant_time_declassify_int Unexecuted instantiation: err.c:constant_time_declassify_int Unexecuted instantiation: evp_asn1.c:constant_time_declassify_int Unexecuted instantiation: p_methods.c:constant_time_declassify_int Unexecuted instantiation: p_pqdsa_asn1.c:constant_time_declassify_int Unexecuted instantiation: p_x25519_asn1.c:constant_time_declassify_int Unexecuted instantiation: bcm.c:constant_time_declassify_int Unexecuted instantiation: kyber1024r3_ref.c:constant_time_declassify_int Unexecuted instantiation: kyber512r3_ref.c:constant_time_declassify_int Unexecuted instantiation: kyber768r3_ref.c:constant_time_declassify_int Unexecuted instantiation: mem.c:constant_time_declassify_int Unexecuted instantiation: obj.c:constant_time_declassify_int Unexecuted instantiation: obj_xref.c:constant_time_declassify_int Unexecuted instantiation: poly1305_vec.c:constant_time_declassify_int Unexecuted instantiation: urandom.c:constant_time_declassify_int Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.c:constant_time_declassify_int Unexecuted instantiation: stack.c:constant_time_declassify_int Unexecuted instantiation: thread_pthread.c:constant_time_declassify_int Unexecuted instantiation: fork_detect.c:constant_time_declassify_int Unexecuted instantiation: snapsafe_detect.c:constant_time_declassify_int Unexecuted instantiation: ube.c:constant_time_declassify_int Unexecuted instantiation: a_object.c:constant_time_declassify_int Unexecuted instantiation: posix_time.c:constant_time_declassify_int Unexecuted instantiation: bio.c:constant_time_declassify_int Unexecuted instantiation: file.c:constant_time_declassify_int Unexecuted instantiation: asn1_compat.c:constant_time_declassify_int Unexecuted instantiation: chacha.c:constant_time_declassify_int Unexecuted instantiation: console.c:constant_time_declassify_int Unexecuted instantiation: ripemd.c:constant_time_declassify_int 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: engine.c:constant_time_declassify_int Unexecuted instantiation: p_dh_asn1.c:constant_time_declassify_int Unexecuted instantiation: p_dsa.c:constant_time_declassify_int Unexecuted instantiation: p_ec_asn1.c:constant_time_declassify_int Unexecuted instantiation: p_ed25519_asn1.c:constant_time_declassify_int Unexecuted instantiation: p_hmac_asn1.c:constant_time_declassify_int Unexecuted instantiation: p_kem_asn1.c:constant_time_declassify_int Unexecuted instantiation: print.c:constant_time_declassify_int Unexecuted instantiation: ex_data.c:constant_time_declassify_int Unexecuted instantiation: lhash.c:constant_time_declassify_int Unexecuted instantiation: blake2.c:constant_time_declassify_int Unexecuted instantiation: params.c:constant_time_declassify_int |
555 | | |
556 | | // declassify_assert behaves like |assert| but declassifies the result of |
557 | | // evaluating |expr|. This allows the assertion to branch on the (presumably |
558 | | // public) result, but still ensures that values leading up to the computation |
559 | | // were secret. |
560 | 0 | #define declassify_assert(expr) assert(constant_time_declassify_int(expr)) |
561 | | |
562 | | |
563 | | // Thread-safe initialisation. |
564 | | |
565 | | #if !defined(OPENSSL_THREADS) |
566 | | typedef uint32_t CRYPTO_once_t; |
567 | | #define CRYPTO_ONCE_INIT 0 |
568 | | #elif defined(OPENSSL_WINDOWS_THREADS) |
569 | | typedef INIT_ONCE CRYPTO_once_t; |
570 | | #define CRYPTO_ONCE_INIT INIT_ONCE_STATIC_INIT |
571 | | #elif defined(OPENSSL_PTHREADS) |
572 | | typedef pthread_once_t CRYPTO_once_t; |
573 | | #define CRYPTO_ONCE_INIT PTHREAD_ONCE_INIT |
574 | | #else |
575 | | #error "Unknown threading library" |
576 | | #endif |
577 | | |
578 | | // CRYPTO_once calls |init| exactly once per process. This is thread-safe: if |
579 | | // concurrent threads call |CRYPTO_once| with the same |CRYPTO_once_t| argument |
580 | | // then they will block until |init| completes, but |init| will have only been |
581 | | // called once. |
582 | | // |
583 | | // The |once| argument must be a |CRYPTO_once_t| that has been initialised with |
584 | | // the value |CRYPTO_ONCE_INIT|. |
585 | | OPENSSL_EXPORT void CRYPTO_once(CRYPTO_once_t *once, void (*init)(void)); |
586 | | |
587 | | |
588 | | // Reference counting. |
589 | | |
590 | | #if !defined(__STDC_NO_ATOMICS__) && defined(__STDC_VERSION__) && \ |
591 | | __STDC_VERSION__ >= 201112L |
592 | | #include <stdatomic.h> |
593 | | // CRYPTO_refcount_t is a |uint32_t| |
594 | | #define AWS_LC_ATOMIC_LOCK_FREE ATOMIC_LONG_LOCK_FREE |
595 | | #else |
596 | | #define AWS_LC_ATOMIC_LOCK_FREE 0 |
597 | | #endif |
598 | | |
599 | | // Automatically enable C11 atomics if implemented and lock free |
600 | | #if !defined(OPENSSL_C11_ATOMIC) && defined(OPENSSL_THREADS) && \ |
601 | | AWS_LC_ATOMIC_LOCK_FREE == 2 |
602 | | #define OPENSSL_C11_ATOMIC |
603 | | #endif |
604 | | |
605 | | // Older MSVC does not support C11 atomics, so we fallback to the Windows APIs. |
606 | | // This can be removed once we can rely on |
607 | | // https://devblogs.microsoft.com/cppblog/c11-atomics-in-visual-studio-2022-version-17-5-preview-2/ |
608 | | #if !defined(OPENSSL_C11_ATOMIC) && defined(OPENSSL_THREADS) && \ |
609 | | defined(OPENSSL_WINDOWS) |
610 | | #define OPENSSL_WINDOWS_ATOMIC |
611 | | #endif |
612 | | |
613 | | // CRYPTO_REFCOUNT_MAX is the value at which the reference count saturates. |
614 | 0 | #define CRYPTO_REFCOUNT_MAX 0xffffffff |
615 | | |
616 | | // CRYPTO_refcount_inc atomically increments the value at |*count| unless the |
617 | | // value would overflow. It's safe for multiple threads to concurrently call |
618 | | // this or |CRYPTO_refcount_dec_and_test_zero| on the same |
619 | | // |CRYPTO_refcount_t|. |
620 | | OPENSSL_EXPORT void CRYPTO_refcount_inc(CRYPTO_refcount_t *count); |
621 | | |
622 | | // CRYPTO_refcount_dec_and_test_zero tests the value at |*count|: |
623 | | // if it's zero, it crashes the address space. |
624 | | // if it's the maximum value, it returns zero. |
625 | | // otherwise, it atomically decrements it and returns one iff the resulting |
626 | | // value is zero. |
627 | | // |
628 | | // It's safe for multiple threads to concurrently call this or |
629 | | // |CRYPTO_refcount_inc| on the same |CRYPTO_refcount_t|. |
630 | | OPENSSL_EXPORT int CRYPTO_refcount_dec_and_test_zero(CRYPTO_refcount_t *count); |
631 | | |
632 | | |
633 | | // Locks. |
634 | | // |
635 | | // Two types of locks are defined: |CRYPTO_MUTEX|, which can be used in |
636 | | // structures as normal, and |struct CRYPTO_STATIC_MUTEX|, which can be used as |
637 | | // a global lock. A global lock must be initialised to the value |
638 | | // |CRYPTO_STATIC_MUTEX_INIT|. |
639 | | // |
640 | | // |CRYPTO_MUTEX| can appear in public structures and so is defined in |
641 | | // thread.h as a structure large enough to fit the real type. The global lock is |
642 | | // a different type so it may be initialized with platform initializer macros. |
643 | | |
644 | | #if !defined(OPENSSL_THREADS) |
645 | | struct CRYPTO_STATIC_MUTEX { |
646 | | char padding; // Empty structs have different sizes in C and C++. |
647 | | }; |
648 | | #define CRYPTO_STATIC_MUTEX_INIT { 0 } |
649 | | #elif defined(OPENSSL_WINDOWS_THREADS) |
650 | | struct CRYPTO_STATIC_MUTEX { |
651 | | SRWLOCK lock; |
652 | | }; |
653 | | #define CRYPTO_STATIC_MUTEX_INIT { SRWLOCK_INIT } |
654 | | #elif defined(OPENSSL_PTHREADS) |
655 | | struct CRYPTO_STATIC_MUTEX { |
656 | | pthread_rwlock_t lock; |
657 | | }; |
658 | | #define CRYPTO_STATIC_MUTEX_INIT { PTHREAD_RWLOCK_INITIALIZER } |
659 | | #else |
660 | | #error "Unknown threading library" |
661 | | #endif |
662 | | |
663 | | // CRYPTO_MUTEX_init initialises |lock|. If |lock| is a static variable, use a |
664 | | // |CRYPTO_STATIC_MUTEX|. |
665 | | OPENSSL_EXPORT void CRYPTO_MUTEX_init(CRYPTO_MUTEX *lock); |
666 | | |
667 | | // CRYPTO_MUTEX_lock_read locks |lock| such that other threads may also have a |
668 | | // read lock, but none may have a write lock. |
669 | | OPENSSL_EXPORT void CRYPTO_MUTEX_lock_read(CRYPTO_MUTEX *lock); |
670 | | |
671 | | // CRYPTO_MUTEX_lock_write locks |lock| such that no other thread has any type |
672 | | // of lock on it. |
673 | | OPENSSL_EXPORT void CRYPTO_MUTEX_lock_write(CRYPTO_MUTEX *lock); |
674 | | |
675 | | // CRYPTO_MUTEX_unlock_read unlocks |lock| for reading. |
676 | | OPENSSL_EXPORT void CRYPTO_MUTEX_unlock_read(CRYPTO_MUTEX *lock); |
677 | | |
678 | | // CRYPTO_MUTEX_unlock_write unlocks |lock| for writing. |
679 | | OPENSSL_EXPORT void CRYPTO_MUTEX_unlock_write(CRYPTO_MUTEX *lock); |
680 | | |
681 | | // CRYPTO_MUTEX_cleanup releases all resources held by |lock|. |
682 | | OPENSSL_EXPORT void CRYPTO_MUTEX_cleanup(CRYPTO_MUTEX *lock); |
683 | | |
684 | | // CRYPTO_STATIC_MUTEX_lock_read locks |lock| such that other threads may also |
685 | | // have a read lock, but none may have a write lock. The |lock| variable does |
686 | | // not need to be initialised by any function, but must have been statically |
687 | | // initialised with |CRYPTO_STATIC_MUTEX_INIT|. |
688 | | OPENSSL_EXPORT void CRYPTO_STATIC_MUTEX_lock_read( |
689 | | struct CRYPTO_STATIC_MUTEX *lock); |
690 | | |
691 | | // CRYPTO_STATIC_MUTEX_lock_write locks |lock| such that no other thread has |
692 | | // any type of lock on it. The |lock| variable does not need to be initialised |
693 | | // by any function, but must have been statically initialised with |
694 | | // |CRYPTO_STATIC_MUTEX_INIT|. |
695 | | OPENSSL_EXPORT void CRYPTO_STATIC_MUTEX_lock_write( |
696 | | struct CRYPTO_STATIC_MUTEX *lock); |
697 | | |
698 | | // CRYPTO_STATIC_MUTEX_unlock_read unlocks |lock| for reading. |
699 | | OPENSSL_EXPORT void CRYPTO_STATIC_MUTEX_unlock_read( |
700 | | struct CRYPTO_STATIC_MUTEX *lock); |
701 | | |
702 | | // CRYPTO_STATIC_MUTEX_unlock_write unlocks |lock| for writing. |
703 | | OPENSSL_EXPORT void CRYPTO_STATIC_MUTEX_unlock_write( |
704 | | struct CRYPTO_STATIC_MUTEX *lock); |
705 | | |
706 | | #if !defined(NDEBUG) |
707 | | // CRYPTO_STATIC_MUTEX_is_write_locked checks whether |lock| has an active write |
708 | | // lock. If it does, the function returns 1. If it doesn't, it returns 0. Returns -1 |
709 | | // on any other error. Note that due to the concurrent nature of locks, the result |
710 | | // may be stale by the time it is used. |
711 | | OPENSSL_EXPORT int CRYPTO_STATIC_MUTEX_is_write_locked( |
712 | | struct CRYPTO_STATIC_MUTEX *lock); |
713 | | #endif |
714 | | |
715 | | #if defined(__cplusplus) |
716 | | extern "C++" { |
717 | | |
718 | | BSSL_NAMESPACE_BEGIN |
719 | | |
720 | | namespace internal { |
721 | | |
722 | | // MutexLockBase is a RAII helper for CRYPTO_MUTEX locking. |
723 | | template <void (*LockFunc)(CRYPTO_MUTEX *), void (*ReleaseFunc)(CRYPTO_MUTEX *)> |
724 | | class MutexLockBase { |
725 | | public: |
726 | | explicit MutexLockBase(CRYPTO_MUTEX *mu) : mu_(mu) { |
727 | | assert(mu_ != nullptr); |
728 | | LockFunc(mu_); |
729 | | } |
730 | | ~MutexLockBase() { ReleaseFunc(mu_); } |
731 | | MutexLockBase(const MutexLockBase<LockFunc, ReleaseFunc> &) = delete; |
732 | | MutexLockBase &operator=(const MutexLockBase<LockFunc, ReleaseFunc> &) = |
733 | | delete; |
734 | | |
735 | | private: |
736 | | CRYPTO_MUTEX *const mu_; |
737 | | }; |
738 | | |
739 | | } // namespace internal |
740 | | |
741 | | using MutexWriteLock = |
742 | | internal::MutexLockBase<CRYPTO_MUTEX_lock_write, CRYPTO_MUTEX_unlock_write>; |
743 | | using MutexReadLock = |
744 | | internal::MutexLockBase<CRYPTO_MUTEX_lock_read, CRYPTO_MUTEX_unlock_read>; |
745 | | |
746 | | BSSL_NAMESPACE_END |
747 | | |
748 | | } // extern "C++" |
749 | | #endif // defined(__cplusplus) |
750 | | |
751 | | |
752 | | // Thread local storage. |
753 | | |
754 | | // thread_local_data_t enumerates the types of thread-local data that can be |
755 | | // stored. |
756 | | typedef enum { |
757 | | OPENSSL_THREAD_LOCAL_ERR = 0, |
758 | | OPENSSL_THREAD_LOCAL_RAND, |
759 | | OPENSSL_THREAD_LOCAL_FIPS_COUNTERS, |
760 | | AWSLC_THREAD_LOCAL_FIPS_SERVICE_INDICATOR_STATE, |
761 | | OPENSSL_THREAD_LOCAL_TEST, |
762 | | OPENSSL_THREAD_LOCAL_PRIVATE_RAND, |
763 | | OPENSSL_THREAD_LOCAL_UBE, |
764 | | NUM_OPENSSL_THREAD_LOCALS, |
765 | | } thread_local_data_t; |
766 | | |
767 | | // thread_local_destructor_t is the type of a destructor function that will be |
768 | | // called when a thread exits and its thread-local storage needs to be freed. |
769 | | typedef void (*thread_local_destructor_t)(void *); |
770 | | |
771 | | // CRYPTO_get_thread_local gets the pointer value that is stored for the |
772 | | // current thread for the given index, or NULL if none has been set. |
773 | | OPENSSL_EXPORT void *CRYPTO_get_thread_local(thread_local_data_t value); |
774 | | |
775 | | // CRYPTO_set_thread_local sets a pointer value for the current thread at the |
776 | | // given index. This function should only be called once per thread for a given |
777 | | // |index|: rather than update the pointer value itself, update the data that |
778 | | // is pointed to. |
779 | | // |
780 | | // The destructor function will be called when a thread exits to free this |
781 | | // thread-local data. All calls to |CRYPTO_set_thread_local| with the same |
782 | | // |index| should have the same |destructor| argument. The destructor may be |
783 | | // called with a NULL argument if a thread that never set a thread-local |
784 | | // pointer for |index|, exits. The destructor may be called concurrently with |
785 | | // different arguments. |
786 | | // |
787 | | // This function returns one on success or zero on error. If it returns zero |
788 | | // then |destructor| has been called with |value| already. |
789 | | OPENSSL_EXPORT int CRYPTO_set_thread_local( |
790 | | thread_local_data_t index, void *value, |
791 | | thread_local_destructor_t destructor); |
792 | | |
793 | | |
794 | | // ex_data |
795 | | |
796 | | typedef struct crypto_ex_data_func_st CRYPTO_EX_DATA_FUNCS; |
797 | | |
798 | | DECLARE_STACK_OF(CRYPTO_EX_DATA_FUNCS) |
799 | | |
800 | | // CRYPTO_EX_DATA_CLASS tracks the ex_indices registered for a type which |
801 | | // supports ex_data. It should defined as a static global within the module |
802 | | // which defines that type. |
803 | | typedef struct { |
804 | | struct CRYPTO_STATIC_MUTEX lock; |
805 | | STACK_OF(CRYPTO_EX_DATA_FUNCS) *meth; |
806 | | // num_reserved is one if the ex_data index zero is reserved for legacy |
807 | | // |TYPE_get_app_data| functions. |
808 | | uint8_t num_reserved; |
809 | | } CRYPTO_EX_DATA_CLASS; |
810 | | |
811 | | #define CRYPTO_EX_DATA_CLASS_INIT {CRYPTO_STATIC_MUTEX_INIT, NULL, 0} |
812 | | #define CRYPTO_EX_DATA_CLASS_INIT_WITH_APP_DATA \ |
813 | | {CRYPTO_STATIC_MUTEX_INIT, NULL, 1} |
814 | | |
815 | | // CRYPTO_get_ex_new_index allocates a new index for |ex_data_class| and writes |
816 | | // it to |*out_index|. Each class of object should provide a wrapper function |
817 | | // that uses the correct |CRYPTO_EX_DATA_CLASS|. It returns one on success and |
818 | | // zero otherwise. |
819 | | OPENSSL_EXPORT int CRYPTO_get_ex_new_index(CRYPTO_EX_DATA_CLASS *ex_data_class, |
820 | | int *out_index, long argl, |
821 | | void *argp, |
822 | | CRYPTO_EX_free *free_func); |
823 | | |
824 | | // CRYPTO_set_ex_data sets an extra data pointer on a given object. Each class |
825 | | // of object should provide a wrapper function. |
826 | | OPENSSL_EXPORT int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int index, void *val); |
827 | | |
828 | | // CRYPTO_get_ex_data returns an extra data pointer for a given object, or NULL |
829 | | // if no such index exists. Each class of object should provide a wrapper |
830 | | // function. |
831 | | OPENSSL_EXPORT void *CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int index); |
832 | | |
833 | | // CRYPTO_new_ex_data initialises a newly allocated |CRYPTO_EX_DATA|. |
834 | | OPENSSL_EXPORT void CRYPTO_new_ex_data(CRYPTO_EX_DATA *ad); |
835 | | |
836 | | // CRYPTO_free_ex_data frees |ad|, which is embedded inside |obj|, which is an |
837 | | // object of the given class. |
838 | | OPENSSL_EXPORT void CRYPTO_free_ex_data(CRYPTO_EX_DATA_CLASS *ex_data_class, |
839 | | void *obj, CRYPTO_EX_DATA *ad); |
840 | | |
841 | | |
842 | | // Endianness conversions. |
843 | | |
844 | | #if defined(AWS_LC_BUILTIN_SWAP_SUPPORTED) |
845 | 0 | static inline uint16_t CRYPTO_bswap2(uint16_t x) { |
846 | 0 | return __builtin_bswap16(x); |
847 | 0 | } Unexecuted instantiation: convert.c:CRYPTO_bswap2 Unexecuted instantiation: cbb.c:CRYPTO_bswap2 Unexecuted instantiation: cbs.c:CRYPTO_bswap2 Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_bswap2 Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_bswap2 Unexecuted instantiation: crypto.c:CRYPTO_bswap2 Unexecuted instantiation: cfb.c:CRYPTO_bswap2 Unexecuted instantiation: ec_asn1.c:CRYPTO_bswap2 Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_bswap2 Unexecuted instantiation: err.c:CRYPTO_bswap2 Unexecuted instantiation: evp_asn1.c:CRYPTO_bswap2 Unexecuted instantiation: p_methods.c:CRYPTO_bswap2 Unexecuted instantiation: p_pqdsa_asn1.c:CRYPTO_bswap2 Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_bswap2 Unexecuted instantiation: bcm.c:CRYPTO_bswap2 Unexecuted instantiation: kyber1024r3_ref.c:CRYPTO_bswap2 Unexecuted instantiation: kyber512r3_ref.c:CRYPTO_bswap2 Unexecuted instantiation: kyber768r3_ref.c:CRYPTO_bswap2 Unexecuted instantiation: mem.c:CRYPTO_bswap2 Unexecuted instantiation: obj.c:CRYPTO_bswap2 Unexecuted instantiation: obj_xref.c:CRYPTO_bswap2 Unexecuted instantiation: poly1305_vec.c:CRYPTO_bswap2 Unexecuted instantiation: urandom.c:CRYPTO_bswap2 Unexecuted instantiation: refcount_c11.c:CRYPTO_bswap2 Unexecuted instantiation: rsa_asn1.c:CRYPTO_bswap2 Unexecuted instantiation: rsa_crypt.c:CRYPTO_bswap2 Unexecuted instantiation: rsassa_pss_asn1.c:CRYPTO_bswap2 Unexecuted instantiation: stack.c:CRYPTO_bswap2 Unexecuted instantiation: thread_pthread.c:CRYPTO_bswap2 Unexecuted instantiation: fork_detect.c:CRYPTO_bswap2 Unexecuted instantiation: snapsafe_detect.c:CRYPTO_bswap2 Unexecuted instantiation: ube.c:CRYPTO_bswap2 Unexecuted instantiation: a_object.c:CRYPTO_bswap2 Unexecuted instantiation: posix_time.c:CRYPTO_bswap2 Unexecuted instantiation: bio.c:CRYPTO_bswap2 Unexecuted instantiation: file.c:CRYPTO_bswap2 Unexecuted instantiation: asn1_compat.c:CRYPTO_bswap2 Unexecuted instantiation: chacha.c:CRYPTO_bswap2 Unexecuted instantiation: console.c:CRYPTO_bswap2 Unexecuted instantiation: ripemd.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: engine.c:CRYPTO_bswap2 Unexecuted instantiation: p_dh_asn1.c:CRYPTO_bswap2 Unexecuted instantiation: p_dsa.c:CRYPTO_bswap2 Unexecuted instantiation: p_ec_asn1.c:CRYPTO_bswap2 Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_bswap2 Unexecuted instantiation: p_hmac_asn1.c:CRYPTO_bswap2 Unexecuted instantiation: p_kem_asn1.c:CRYPTO_bswap2 Unexecuted instantiation: print.c:CRYPTO_bswap2 Unexecuted instantiation: ex_data.c:CRYPTO_bswap2 Unexecuted instantiation: lhash.c:CRYPTO_bswap2 Unexecuted instantiation: blake2.c:CRYPTO_bswap2 Unexecuted instantiation: params.c:CRYPTO_bswap2 |
848 | | |
849 | 0 | static inline uint32_t CRYPTO_bswap4(uint32_t x) { |
850 | 0 | return __builtin_bswap32(x); |
851 | 0 | } Unexecuted instantiation: convert.c:CRYPTO_bswap4 Unexecuted instantiation: cbb.c:CRYPTO_bswap4 Unexecuted instantiation: cbs.c:CRYPTO_bswap4 Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_bswap4 Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_bswap4 Unexecuted instantiation: crypto.c:CRYPTO_bswap4 Unexecuted instantiation: cfb.c:CRYPTO_bswap4 Unexecuted instantiation: ec_asn1.c:CRYPTO_bswap4 Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_bswap4 Unexecuted instantiation: err.c:CRYPTO_bswap4 Unexecuted instantiation: evp_asn1.c:CRYPTO_bswap4 Unexecuted instantiation: p_methods.c:CRYPTO_bswap4 Unexecuted instantiation: p_pqdsa_asn1.c:CRYPTO_bswap4 Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_bswap4 Unexecuted instantiation: bcm.c:CRYPTO_bswap4 Unexecuted instantiation: kyber1024r3_ref.c:CRYPTO_bswap4 Unexecuted instantiation: kyber512r3_ref.c:CRYPTO_bswap4 Unexecuted instantiation: kyber768r3_ref.c:CRYPTO_bswap4 Unexecuted instantiation: mem.c:CRYPTO_bswap4 Unexecuted instantiation: obj.c:CRYPTO_bswap4 Unexecuted instantiation: obj_xref.c:CRYPTO_bswap4 Unexecuted instantiation: poly1305_vec.c:CRYPTO_bswap4 Unexecuted instantiation: urandom.c:CRYPTO_bswap4 Unexecuted instantiation: refcount_c11.c:CRYPTO_bswap4 Unexecuted instantiation: rsa_asn1.c:CRYPTO_bswap4 Unexecuted instantiation: rsa_crypt.c:CRYPTO_bswap4 Unexecuted instantiation: rsassa_pss_asn1.c:CRYPTO_bswap4 Unexecuted instantiation: stack.c:CRYPTO_bswap4 Unexecuted instantiation: thread_pthread.c:CRYPTO_bswap4 Unexecuted instantiation: fork_detect.c:CRYPTO_bswap4 Unexecuted instantiation: snapsafe_detect.c:CRYPTO_bswap4 Unexecuted instantiation: ube.c:CRYPTO_bswap4 Unexecuted instantiation: a_object.c:CRYPTO_bswap4 Unexecuted instantiation: posix_time.c:CRYPTO_bswap4 Unexecuted instantiation: bio.c:CRYPTO_bswap4 Unexecuted instantiation: file.c:CRYPTO_bswap4 Unexecuted instantiation: asn1_compat.c:CRYPTO_bswap4 Unexecuted instantiation: chacha.c:CRYPTO_bswap4 Unexecuted instantiation: console.c:CRYPTO_bswap4 Unexecuted instantiation: ripemd.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: engine.c:CRYPTO_bswap4 Unexecuted instantiation: p_dh_asn1.c:CRYPTO_bswap4 Unexecuted instantiation: p_dsa.c:CRYPTO_bswap4 Unexecuted instantiation: p_ec_asn1.c:CRYPTO_bswap4 Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_bswap4 Unexecuted instantiation: p_hmac_asn1.c:CRYPTO_bswap4 Unexecuted instantiation: p_kem_asn1.c:CRYPTO_bswap4 Unexecuted instantiation: print.c:CRYPTO_bswap4 Unexecuted instantiation: ex_data.c:CRYPTO_bswap4 Unexecuted instantiation: lhash.c:CRYPTO_bswap4 Unexecuted instantiation: blake2.c:CRYPTO_bswap4 Unexecuted instantiation: params.c:CRYPTO_bswap4 |
852 | | |
853 | 0 | static inline uint64_t CRYPTO_bswap8(uint64_t x) { |
854 | 0 | return __builtin_bswap64(x); |
855 | 0 | } Unexecuted instantiation: convert.c:CRYPTO_bswap8 Unexecuted instantiation: cbb.c:CRYPTO_bswap8 Unexecuted instantiation: cbs.c:CRYPTO_bswap8 Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_bswap8 Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_bswap8 Unexecuted instantiation: crypto.c:CRYPTO_bswap8 Unexecuted instantiation: cfb.c:CRYPTO_bswap8 Unexecuted instantiation: ec_asn1.c:CRYPTO_bswap8 Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_bswap8 Unexecuted instantiation: err.c:CRYPTO_bswap8 Unexecuted instantiation: evp_asn1.c:CRYPTO_bswap8 Unexecuted instantiation: p_methods.c:CRYPTO_bswap8 Unexecuted instantiation: p_pqdsa_asn1.c:CRYPTO_bswap8 Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_bswap8 Unexecuted instantiation: bcm.c:CRYPTO_bswap8 Unexecuted instantiation: kyber1024r3_ref.c:CRYPTO_bswap8 Unexecuted instantiation: kyber512r3_ref.c:CRYPTO_bswap8 Unexecuted instantiation: kyber768r3_ref.c:CRYPTO_bswap8 Unexecuted instantiation: mem.c:CRYPTO_bswap8 Unexecuted instantiation: obj.c:CRYPTO_bswap8 Unexecuted instantiation: obj_xref.c:CRYPTO_bswap8 Unexecuted instantiation: poly1305_vec.c:CRYPTO_bswap8 Unexecuted instantiation: urandom.c:CRYPTO_bswap8 Unexecuted instantiation: refcount_c11.c:CRYPTO_bswap8 Unexecuted instantiation: rsa_asn1.c:CRYPTO_bswap8 Unexecuted instantiation: rsa_crypt.c:CRYPTO_bswap8 Unexecuted instantiation: rsassa_pss_asn1.c:CRYPTO_bswap8 Unexecuted instantiation: stack.c:CRYPTO_bswap8 Unexecuted instantiation: thread_pthread.c:CRYPTO_bswap8 Unexecuted instantiation: fork_detect.c:CRYPTO_bswap8 Unexecuted instantiation: snapsafe_detect.c:CRYPTO_bswap8 Unexecuted instantiation: ube.c:CRYPTO_bswap8 Unexecuted instantiation: a_object.c:CRYPTO_bswap8 Unexecuted instantiation: posix_time.c:CRYPTO_bswap8 Unexecuted instantiation: bio.c:CRYPTO_bswap8 Unexecuted instantiation: file.c:CRYPTO_bswap8 Unexecuted instantiation: asn1_compat.c:CRYPTO_bswap8 Unexecuted instantiation: chacha.c:CRYPTO_bswap8 Unexecuted instantiation: console.c:CRYPTO_bswap8 Unexecuted instantiation: ripemd.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: engine.c:CRYPTO_bswap8 Unexecuted instantiation: p_dh_asn1.c:CRYPTO_bswap8 Unexecuted instantiation: p_dsa.c:CRYPTO_bswap8 Unexecuted instantiation: p_ec_asn1.c:CRYPTO_bswap8 Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_bswap8 Unexecuted instantiation: p_hmac_asn1.c:CRYPTO_bswap8 Unexecuted instantiation: p_kem_asn1.c:CRYPTO_bswap8 Unexecuted instantiation: print.c:CRYPTO_bswap8 Unexecuted instantiation: ex_data.c:CRYPTO_bswap8 Unexecuted instantiation: lhash.c:CRYPTO_bswap8 Unexecuted instantiation: blake2.c:CRYPTO_bswap8 Unexecuted instantiation: params.c:CRYPTO_bswap8 |
856 | 0 | static inline crypto_word_t CRYPTO_bswap_word(crypto_word_t x) { |
857 | 0 | #if defined(OPENSSL_64_BIT) |
858 | 0 | return CRYPTO_bswap8(x); |
859 | 0 | #else |
860 | 0 | return CRYPTO_bswap4(x); |
861 | 0 | #endif |
862 | 0 | } Unexecuted instantiation: convert.c:CRYPTO_bswap_word Unexecuted instantiation: cbb.c:CRYPTO_bswap_word Unexecuted instantiation: cbs.c:CRYPTO_bswap_word Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_bswap_word Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_bswap_word Unexecuted instantiation: crypto.c:CRYPTO_bswap_word Unexecuted instantiation: cfb.c:CRYPTO_bswap_word Unexecuted instantiation: ec_asn1.c:CRYPTO_bswap_word Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_bswap_word Unexecuted instantiation: err.c:CRYPTO_bswap_word Unexecuted instantiation: evp_asn1.c:CRYPTO_bswap_word Unexecuted instantiation: p_methods.c:CRYPTO_bswap_word Unexecuted instantiation: p_pqdsa_asn1.c:CRYPTO_bswap_word Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_bswap_word Unexecuted instantiation: bcm.c:CRYPTO_bswap_word Unexecuted instantiation: kyber1024r3_ref.c:CRYPTO_bswap_word Unexecuted instantiation: kyber512r3_ref.c:CRYPTO_bswap_word Unexecuted instantiation: kyber768r3_ref.c:CRYPTO_bswap_word Unexecuted instantiation: mem.c:CRYPTO_bswap_word Unexecuted instantiation: obj.c:CRYPTO_bswap_word Unexecuted instantiation: obj_xref.c:CRYPTO_bswap_word Unexecuted instantiation: poly1305_vec.c:CRYPTO_bswap_word Unexecuted instantiation: urandom.c:CRYPTO_bswap_word Unexecuted instantiation: refcount_c11.c:CRYPTO_bswap_word Unexecuted instantiation: rsa_asn1.c:CRYPTO_bswap_word Unexecuted instantiation: rsa_crypt.c:CRYPTO_bswap_word Unexecuted instantiation: rsassa_pss_asn1.c:CRYPTO_bswap_word Unexecuted instantiation: stack.c:CRYPTO_bswap_word Unexecuted instantiation: thread_pthread.c:CRYPTO_bswap_word Unexecuted instantiation: fork_detect.c:CRYPTO_bswap_word Unexecuted instantiation: snapsafe_detect.c:CRYPTO_bswap_word Unexecuted instantiation: ube.c:CRYPTO_bswap_word Unexecuted instantiation: a_object.c:CRYPTO_bswap_word Unexecuted instantiation: posix_time.c:CRYPTO_bswap_word Unexecuted instantiation: bio.c:CRYPTO_bswap_word Unexecuted instantiation: file.c:CRYPTO_bswap_word Unexecuted instantiation: asn1_compat.c:CRYPTO_bswap_word Unexecuted instantiation: chacha.c:CRYPTO_bswap_word Unexecuted instantiation: console.c:CRYPTO_bswap_word Unexecuted instantiation: ripemd.c:CRYPTO_bswap_word Unexecuted instantiation: digest_extra.c:CRYPTO_bswap_word Unexecuted instantiation: dsa.c:CRYPTO_bswap_word Unexecuted instantiation: dsa_asn1.c:CRYPTO_bswap_word Unexecuted instantiation: engine.c:CRYPTO_bswap_word Unexecuted instantiation: p_dh_asn1.c:CRYPTO_bswap_word Unexecuted instantiation: p_dsa.c:CRYPTO_bswap_word Unexecuted instantiation: p_ec_asn1.c:CRYPTO_bswap_word Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_bswap_word Unexecuted instantiation: p_hmac_asn1.c:CRYPTO_bswap_word Unexecuted instantiation: p_kem_asn1.c:CRYPTO_bswap_word Unexecuted instantiation: print.c:CRYPTO_bswap_word Unexecuted instantiation: ex_data.c:CRYPTO_bswap_word Unexecuted instantiation: lhash.c:CRYPTO_bswap_word Unexecuted instantiation: blake2.c:CRYPTO_bswap_word Unexecuted instantiation: params.c:CRYPTO_bswap_word |
863 | | |
864 | | |
865 | | #elif defined(_MSC_VER) |
866 | | OPENSSL_MSVC_PRAGMA(warning(push, 3)) |
867 | | #include <stdlib.h> |
868 | | OPENSSL_MSVC_PRAGMA(warning(pop)) |
869 | | #pragma intrinsic(_byteswap_uint64, _byteswap_ulong, _byteswap_ushort) |
870 | | static inline uint16_t CRYPTO_bswap2(uint16_t x) { |
871 | | return _byteswap_ushort(x); |
872 | | } |
873 | | |
874 | | static inline uint32_t CRYPTO_bswap4(uint32_t x) { |
875 | | return _byteswap_ulong(x); |
876 | | } |
877 | | |
878 | | static inline uint64_t CRYPTO_bswap8(uint64_t x) { |
879 | | return _byteswap_uint64(x); |
880 | | } |
881 | | #else |
882 | | static inline uint16_t CRYPTO_bswap2(uint16_t x) { |
883 | | return (x >> 8) | (x << 8); |
884 | | } |
885 | | |
886 | | static inline uint32_t CRYPTO_bswap4(uint32_t x) { |
887 | | x = (x >> 16) | (x << 16); |
888 | | x = ((x & 0xff00ff00) >> 8) | ((x & 0x00ff00ff) << 8); |
889 | | return x; |
890 | | } |
891 | | |
892 | | static inline uint64_t CRYPTO_bswap8(uint64_t x) { |
893 | | return CRYPTO_bswap4(x >> 32) | (((uint64_t)CRYPTO_bswap4(x)) << 32); |
894 | | } |
895 | | #endif |
896 | | |
897 | | |
898 | | // Language bug workarounds. |
899 | | // |
900 | | // Most C standard library functions are undefined if passed NULL, even when the |
901 | | // corresponding length is zero. This gives them (and, in turn, all functions |
902 | | // which call them) surprising behavior on empty arrays. Some compilers will |
903 | | // miscompile code due to this rule. See also |
904 | | // https://www.imperialviolet.org/2016/06/26/nonnull.html |
905 | | // |
906 | | // These wrapper functions behave the same as the corresponding C standard |
907 | | // functions, but behave as expected when passed NULL if the length is zero. |
908 | | // |
909 | | // Note |OPENSSL_memcmp| is a different function from |CRYPTO_memcmp|. |
910 | | |
911 | | // C++ defines |memchr| as a const-correct overload. |
912 | | #if defined(__cplusplus) |
913 | | extern "C++" { |
914 | | |
915 | | static inline const void *OPENSSL_memchr(const void *s, int c, size_t n) { |
916 | | if (n == 0) { |
917 | | return NULL; |
918 | | } |
919 | | |
920 | | return memchr(s, c, n); |
921 | | } |
922 | | |
923 | | static inline void *OPENSSL_memchr(void *s, int c, size_t n) { |
924 | | if (n == 0) { |
925 | | return NULL; |
926 | | } |
927 | | |
928 | | return memchr(s, c, n); |
929 | | } |
930 | | |
931 | | } // extern "C++" |
932 | | #else // __cplusplus |
933 | | |
934 | 0 | static inline void *OPENSSL_memchr(const void *s, int c, size_t n) { |
935 | 0 | if (n == 0) { |
936 | 0 | return NULL; |
937 | 0 | } |
938 | | |
939 | 0 | return memchr(s, c, n); |
940 | 0 | } Unexecuted instantiation: convert.c:OPENSSL_memchr Unexecuted instantiation: cbb.c:OPENSSL_memchr Unexecuted instantiation: cbs.c:OPENSSL_memchr Unexecuted instantiation: e_aesgcmsiv.c:OPENSSL_memchr Unexecuted instantiation: e_chacha20poly1305.c:OPENSSL_memchr Unexecuted instantiation: crypto.c:OPENSSL_memchr Unexecuted instantiation: cfb.c:OPENSSL_memchr Unexecuted instantiation: ec_asn1.c:OPENSSL_memchr Unexecuted instantiation: ecdsa_asn1.c:OPENSSL_memchr Unexecuted instantiation: err.c:OPENSSL_memchr Unexecuted instantiation: evp_asn1.c:OPENSSL_memchr Unexecuted instantiation: p_methods.c:OPENSSL_memchr Unexecuted instantiation: p_pqdsa_asn1.c:OPENSSL_memchr Unexecuted instantiation: p_x25519_asn1.c:OPENSSL_memchr Unexecuted instantiation: bcm.c:OPENSSL_memchr Unexecuted instantiation: kyber1024r3_ref.c:OPENSSL_memchr Unexecuted instantiation: kyber512r3_ref.c:OPENSSL_memchr Unexecuted instantiation: kyber768r3_ref.c:OPENSSL_memchr Unexecuted instantiation: mem.c:OPENSSL_memchr Unexecuted instantiation: obj.c:OPENSSL_memchr Unexecuted instantiation: obj_xref.c:OPENSSL_memchr Unexecuted instantiation: poly1305_vec.c:OPENSSL_memchr Unexecuted instantiation: urandom.c:OPENSSL_memchr Unexecuted instantiation: refcount_c11.c:OPENSSL_memchr Unexecuted instantiation: rsa_asn1.c:OPENSSL_memchr Unexecuted instantiation: rsa_crypt.c:OPENSSL_memchr Unexecuted instantiation: rsassa_pss_asn1.c:OPENSSL_memchr Unexecuted instantiation: stack.c:OPENSSL_memchr Unexecuted instantiation: thread_pthread.c:OPENSSL_memchr Unexecuted instantiation: fork_detect.c:OPENSSL_memchr Unexecuted instantiation: snapsafe_detect.c:OPENSSL_memchr Unexecuted instantiation: ube.c:OPENSSL_memchr Unexecuted instantiation: a_object.c:OPENSSL_memchr Unexecuted instantiation: posix_time.c:OPENSSL_memchr Unexecuted instantiation: bio.c:OPENSSL_memchr Unexecuted instantiation: file.c:OPENSSL_memchr Unexecuted instantiation: asn1_compat.c:OPENSSL_memchr Unexecuted instantiation: chacha.c:OPENSSL_memchr Unexecuted instantiation: console.c:OPENSSL_memchr Unexecuted instantiation: ripemd.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: engine.c:OPENSSL_memchr Unexecuted instantiation: p_dh_asn1.c:OPENSSL_memchr Unexecuted instantiation: p_dsa.c:OPENSSL_memchr Unexecuted instantiation: p_ec_asn1.c:OPENSSL_memchr Unexecuted instantiation: p_ed25519_asn1.c:OPENSSL_memchr Unexecuted instantiation: p_hmac_asn1.c:OPENSSL_memchr Unexecuted instantiation: p_kem_asn1.c:OPENSSL_memchr Unexecuted instantiation: print.c:OPENSSL_memchr Unexecuted instantiation: ex_data.c:OPENSSL_memchr Unexecuted instantiation: lhash.c:OPENSSL_memchr Unexecuted instantiation: blake2.c:OPENSSL_memchr Unexecuted instantiation: params.c:OPENSSL_memchr |
941 | | |
942 | | #endif // __cplusplus |
943 | | |
944 | 0 | static inline int OPENSSL_memcmp(const void *s1, const void *s2, size_t n) { |
945 | 0 | if (n == 0) { |
946 | 0 | return 0; |
947 | 0 | } |
948 | | |
949 | 0 | return memcmp(s1, s2, n); |
950 | 0 | } Unexecuted instantiation: convert.c:OPENSSL_memcmp Unexecuted instantiation: cbb.c:OPENSSL_memcmp Unexecuted instantiation: cbs.c:OPENSSL_memcmp Unexecuted instantiation: e_aesgcmsiv.c:OPENSSL_memcmp Unexecuted instantiation: e_chacha20poly1305.c:OPENSSL_memcmp Unexecuted instantiation: crypto.c:OPENSSL_memcmp Unexecuted instantiation: cfb.c:OPENSSL_memcmp Unexecuted instantiation: ec_asn1.c:OPENSSL_memcmp Unexecuted instantiation: ecdsa_asn1.c:OPENSSL_memcmp Unexecuted instantiation: err.c:OPENSSL_memcmp Unexecuted instantiation: evp_asn1.c:OPENSSL_memcmp Unexecuted instantiation: p_methods.c:OPENSSL_memcmp Unexecuted instantiation: p_pqdsa_asn1.c:OPENSSL_memcmp Unexecuted instantiation: p_x25519_asn1.c:OPENSSL_memcmp Unexecuted instantiation: bcm.c:OPENSSL_memcmp Unexecuted instantiation: kyber1024r3_ref.c:OPENSSL_memcmp Unexecuted instantiation: kyber512r3_ref.c:OPENSSL_memcmp Unexecuted instantiation: kyber768r3_ref.c:OPENSSL_memcmp Unexecuted instantiation: mem.c:OPENSSL_memcmp Unexecuted instantiation: obj.c:OPENSSL_memcmp Unexecuted instantiation: obj_xref.c:OPENSSL_memcmp Unexecuted instantiation: poly1305_vec.c:OPENSSL_memcmp Unexecuted instantiation: urandom.c:OPENSSL_memcmp Unexecuted instantiation: refcount_c11.c:OPENSSL_memcmp Unexecuted instantiation: rsa_asn1.c:OPENSSL_memcmp Unexecuted instantiation: rsa_crypt.c:OPENSSL_memcmp Unexecuted instantiation: rsassa_pss_asn1.c:OPENSSL_memcmp Unexecuted instantiation: stack.c:OPENSSL_memcmp Unexecuted instantiation: thread_pthread.c:OPENSSL_memcmp Unexecuted instantiation: fork_detect.c:OPENSSL_memcmp Unexecuted instantiation: snapsafe_detect.c:OPENSSL_memcmp Unexecuted instantiation: ube.c:OPENSSL_memcmp Unexecuted instantiation: a_object.c:OPENSSL_memcmp Unexecuted instantiation: posix_time.c:OPENSSL_memcmp Unexecuted instantiation: bio.c:OPENSSL_memcmp Unexecuted instantiation: file.c:OPENSSL_memcmp Unexecuted instantiation: asn1_compat.c:OPENSSL_memcmp Unexecuted instantiation: chacha.c:OPENSSL_memcmp Unexecuted instantiation: console.c:OPENSSL_memcmp Unexecuted instantiation: ripemd.c:OPENSSL_memcmp Unexecuted instantiation: digest_extra.c:OPENSSL_memcmp Unexecuted instantiation: dsa.c:OPENSSL_memcmp Unexecuted instantiation: dsa_asn1.c:OPENSSL_memcmp Unexecuted instantiation: engine.c:OPENSSL_memcmp Unexecuted instantiation: p_dh_asn1.c:OPENSSL_memcmp Unexecuted instantiation: p_dsa.c:OPENSSL_memcmp Unexecuted instantiation: p_ec_asn1.c:OPENSSL_memcmp Unexecuted instantiation: p_ed25519_asn1.c:OPENSSL_memcmp Unexecuted instantiation: p_hmac_asn1.c:OPENSSL_memcmp Unexecuted instantiation: p_kem_asn1.c:OPENSSL_memcmp Unexecuted instantiation: print.c:OPENSSL_memcmp Unexecuted instantiation: ex_data.c:OPENSSL_memcmp Unexecuted instantiation: lhash.c:OPENSSL_memcmp Unexecuted instantiation: blake2.c:OPENSSL_memcmp Unexecuted instantiation: params.c:OPENSSL_memcmp |
951 | | |
952 | 0 | static inline void *OPENSSL_memcpy(void *dst, const void *src, size_t n) { |
953 | 0 | if (n == 0) { |
954 | 0 | return dst; |
955 | 0 | } |
956 | | |
957 | 0 | return memcpy(dst, src, n); |
958 | 0 | } Unexecuted instantiation: convert.c:OPENSSL_memcpy Unexecuted instantiation: cbb.c:OPENSSL_memcpy Unexecuted instantiation: cbs.c:OPENSSL_memcpy Unexecuted instantiation: e_aesgcmsiv.c:OPENSSL_memcpy Unexecuted instantiation: e_chacha20poly1305.c:OPENSSL_memcpy Unexecuted instantiation: crypto.c:OPENSSL_memcpy Unexecuted instantiation: cfb.c:OPENSSL_memcpy Unexecuted instantiation: ec_asn1.c:OPENSSL_memcpy Unexecuted instantiation: ecdsa_asn1.c:OPENSSL_memcpy Unexecuted instantiation: err.c:OPENSSL_memcpy Unexecuted instantiation: evp_asn1.c:OPENSSL_memcpy Unexecuted instantiation: p_methods.c:OPENSSL_memcpy Unexecuted instantiation: p_pqdsa_asn1.c:OPENSSL_memcpy Unexecuted instantiation: p_x25519_asn1.c:OPENSSL_memcpy Unexecuted instantiation: bcm.c:OPENSSL_memcpy Unexecuted instantiation: kyber1024r3_ref.c:OPENSSL_memcpy Unexecuted instantiation: kyber512r3_ref.c:OPENSSL_memcpy Unexecuted instantiation: kyber768r3_ref.c:OPENSSL_memcpy Unexecuted instantiation: mem.c:OPENSSL_memcpy Unexecuted instantiation: obj.c:OPENSSL_memcpy Unexecuted instantiation: obj_xref.c:OPENSSL_memcpy Unexecuted instantiation: poly1305_vec.c:OPENSSL_memcpy Unexecuted instantiation: urandom.c:OPENSSL_memcpy Unexecuted instantiation: refcount_c11.c:OPENSSL_memcpy Unexecuted instantiation: rsa_asn1.c:OPENSSL_memcpy Unexecuted instantiation: rsa_crypt.c:OPENSSL_memcpy Unexecuted instantiation: rsassa_pss_asn1.c:OPENSSL_memcpy Unexecuted instantiation: stack.c:OPENSSL_memcpy Unexecuted instantiation: thread_pthread.c:OPENSSL_memcpy Unexecuted instantiation: fork_detect.c:OPENSSL_memcpy Unexecuted instantiation: snapsafe_detect.c:OPENSSL_memcpy Unexecuted instantiation: ube.c:OPENSSL_memcpy Unexecuted instantiation: a_object.c:OPENSSL_memcpy Unexecuted instantiation: posix_time.c:OPENSSL_memcpy Unexecuted instantiation: bio.c:OPENSSL_memcpy Unexecuted instantiation: file.c:OPENSSL_memcpy Unexecuted instantiation: asn1_compat.c:OPENSSL_memcpy Unexecuted instantiation: chacha.c:OPENSSL_memcpy Unexecuted instantiation: console.c:OPENSSL_memcpy Unexecuted instantiation: ripemd.c:OPENSSL_memcpy Unexecuted instantiation: digest_extra.c:OPENSSL_memcpy Unexecuted instantiation: dsa.c:OPENSSL_memcpy Unexecuted instantiation: dsa_asn1.c:OPENSSL_memcpy Unexecuted instantiation: engine.c:OPENSSL_memcpy Unexecuted instantiation: p_dh_asn1.c:OPENSSL_memcpy Unexecuted instantiation: p_dsa.c:OPENSSL_memcpy Unexecuted instantiation: p_ec_asn1.c:OPENSSL_memcpy Unexecuted instantiation: p_ed25519_asn1.c:OPENSSL_memcpy Unexecuted instantiation: p_hmac_asn1.c:OPENSSL_memcpy Unexecuted instantiation: p_kem_asn1.c:OPENSSL_memcpy Unexecuted instantiation: print.c:OPENSSL_memcpy Unexecuted instantiation: ex_data.c:OPENSSL_memcpy Unexecuted instantiation: lhash.c:OPENSSL_memcpy Unexecuted instantiation: blake2.c:OPENSSL_memcpy Unexecuted instantiation: params.c:OPENSSL_memcpy |
959 | | |
960 | 0 | static inline void *OPENSSL_memmove(void *dst, const void *src, size_t n) { |
961 | 0 | if (n == 0) { |
962 | 0 | return dst; |
963 | 0 | } |
964 | | |
965 | 0 | return memmove(dst, src, n); |
966 | 0 | } Unexecuted instantiation: convert.c:OPENSSL_memmove Unexecuted instantiation: cbb.c:OPENSSL_memmove Unexecuted instantiation: cbs.c:OPENSSL_memmove Unexecuted instantiation: e_aesgcmsiv.c:OPENSSL_memmove Unexecuted instantiation: e_chacha20poly1305.c:OPENSSL_memmove Unexecuted instantiation: crypto.c:OPENSSL_memmove Unexecuted instantiation: cfb.c:OPENSSL_memmove Unexecuted instantiation: ec_asn1.c:OPENSSL_memmove Unexecuted instantiation: ecdsa_asn1.c:OPENSSL_memmove Unexecuted instantiation: err.c:OPENSSL_memmove Unexecuted instantiation: evp_asn1.c:OPENSSL_memmove Unexecuted instantiation: p_methods.c:OPENSSL_memmove Unexecuted instantiation: p_pqdsa_asn1.c:OPENSSL_memmove Unexecuted instantiation: p_x25519_asn1.c:OPENSSL_memmove Unexecuted instantiation: bcm.c:OPENSSL_memmove Unexecuted instantiation: kyber1024r3_ref.c:OPENSSL_memmove Unexecuted instantiation: kyber512r3_ref.c:OPENSSL_memmove Unexecuted instantiation: kyber768r3_ref.c:OPENSSL_memmove Unexecuted instantiation: mem.c:OPENSSL_memmove Unexecuted instantiation: obj.c:OPENSSL_memmove Unexecuted instantiation: obj_xref.c:OPENSSL_memmove Unexecuted instantiation: poly1305_vec.c:OPENSSL_memmove Unexecuted instantiation: urandom.c:OPENSSL_memmove Unexecuted instantiation: refcount_c11.c:OPENSSL_memmove Unexecuted instantiation: rsa_asn1.c:OPENSSL_memmove Unexecuted instantiation: rsa_crypt.c:OPENSSL_memmove Unexecuted instantiation: rsassa_pss_asn1.c:OPENSSL_memmove Unexecuted instantiation: stack.c:OPENSSL_memmove Unexecuted instantiation: thread_pthread.c:OPENSSL_memmove Unexecuted instantiation: fork_detect.c:OPENSSL_memmove Unexecuted instantiation: snapsafe_detect.c:OPENSSL_memmove Unexecuted instantiation: ube.c:OPENSSL_memmove Unexecuted instantiation: a_object.c:OPENSSL_memmove Unexecuted instantiation: posix_time.c:OPENSSL_memmove Unexecuted instantiation: bio.c:OPENSSL_memmove Unexecuted instantiation: file.c:OPENSSL_memmove Unexecuted instantiation: asn1_compat.c:OPENSSL_memmove Unexecuted instantiation: chacha.c:OPENSSL_memmove Unexecuted instantiation: console.c:OPENSSL_memmove Unexecuted instantiation: ripemd.c:OPENSSL_memmove Unexecuted instantiation: digest_extra.c:OPENSSL_memmove Unexecuted instantiation: dsa.c:OPENSSL_memmove Unexecuted instantiation: dsa_asn1.c:OPENSSL_memmove Unexecuted instantiation: engine.c:OPENSSL_memmove Unexecuted instantiation: p_dh_asn1.c:OPENSSL_memmove Unexecuted instantiation: p_dsa.c:OPENSSL_memmove Unexecuted instantiation: p_ec_asn1.c:OPENSSL_memmove Unexecuted instantiation: p_ed25519_asn1.c:OPENSSL_memmove Unexecuted instantiation: p_hmac_asn1.c:OPENSSL_memmove Unexecuted instantiation: p_kem_asn1.c:OPENSSL_memmove Unexecuted instantiation: print.c:OPENSSL_memmove Unexecuted instantiation: ex_data.c:OPENSSL_memmove Unexecuted instantiation: lhash.c:OPENSSL_memmove Unexecuted instantiation: blake2.c:OPENSSL_memmove Unexecuted instantiation: params.c:OPENSSL_memmove |
967 | | |
968 | 0 | static inline void *OPENSSL_memset(void *dst, int c, size_t n) { |
969 | 0 | if (n == 0) { |
970 | 0 | return dst; |
971 | 0 | } |
972 | | |
973 | 0 | return memset(dst, c, n); |
974 | 0 | } Unexecuted instantiation: convert.c:OPENSSL_memset Unexecuted instantiation: cbb.c:OPENSSL_memset Unexecuted instantiation: cbs.c:OPENSSL_memset Unexecuted instantiation: e_aesgcmsiv.c:OPENSSL_memset Unexecuted instantiation: e_chacha20poly1305.c:OPENSSL_memset Unexecuted instantiation: crypto.c:OPENSSL_memset Unexecuted instantiation: cfb.c:OPENSSL_memset Unexecuted instantiation: ec_asn1.c:OPENSSL_memset Unexecuted instantiation: ecdsa_asn1.c:OPENSSL_memset Unexecuted instantiation: err.c:OPENSSL_memset Unexecuted instantiation: evp_asn1.c:OPENSSL_memset Unexecuted instantiation: p_methods.c:OPENSSL_memset Unexecuted instantiation: p_pqdsa_asn1.c:OPENSSL_memset Unexecuted instantiation: p_x25519_asn1.c:OPENSSL_memset Unexecuted instantiation: bcm.c:OPENSSL_memset Unexecuted instantiation: kyber1024r3_ref.c:OPENSSL_memset Unexecuted instantiation: kyber512r3_ref.c:OPENSSL_memset Unexecuted instantiation: kyber768r3_ref.c:OPENSSL_memset Unexecuted instantiation: mem.c:OPENSSL_memset Unexecuted instantiation: obj.c:OPENSSL_memset Unexecuted instantiation: obj_xref.c:OPENSSL_memset Unexecuted instantiation: poly1305_vec.c:OPENSSL_memset Unexecuted instantiation: urandom.c:OPENSSL_memset Unexecuted instantiation: refcount_c11.c:OPENSSL_memset Unexecuted instantiation: rsa_asn1.c:OPENSSL_memset Unexecuted instantiation: rsa_crypt.c:OPENSSL_memset Unexecuted instantiation: rsassa_pss_asn1.c:OPENSSL_memset Unexecuted instantiation: stack.c:OPENSSL_memset Unexecuted instantiation: thread_pthread.c:OPENSSL_memset Unexecuted instantiation: fork_detect.c:OPENSSL_memset Unexecuted instantiation: snapsafe_detect.c:OPENSSL_memset Unexecuted instantiation: ube.c:OPENSSL_memset Unexecuted instantiation: a_object.c:OPENSSL_memset Unexecuted instantiation: posix_time.c:OPENSSL_memset Unexecuted instantiation: bio.c:OPENSSL_memset Unexecuted instantiation: file.c:OPENSSL_memset Unexecuted instantiation: asn1_compat.c:OPENSSL_memset Unexecuted instantiation: chacha.c:OPENSSL_memset Unexecuted instantiation: console.c:OPENSSL_memset Unexecuted instantiation: ripemd.c:OPENSSL_memset Unexecuted instantiation: digest_extra.c:OPENSSL_memset Unexecuted instantiation: dsa.c:OPENSSL_memset Unexecuted instantiation: dsa_asn1.c:OPENSSL_memset Unexecuted instantiation: engine.c:OPENSSL_memset Unexecuted instantiation: p_dh_asn1.c:OPENSSL_memset Unexecuted instantiation: p_dsa.c:OPENSSL_memset Unexecuted instantiation: p_ec_asn1.c:OPENSSL_memset Unexecuted instantiation: p_ed25519_asn1.c:OPENSSL_memset Unexecuted instantiation: p_hmac_asn1.c:OPENSSL_memset Unexecuted instantiation: p_kem_asn1.c:OPENSSL_memset Unexecuted instantiation: print.c:OPENSSL_memset Unexecuted instantiation: ex_data.c:OPENSSL_memset Unexecuted instantiation: lhash.c:OPENSSL_memset Unexecuted instantiation: blake2.c:OPENSSL_memset Unexecuted instantiation: params.c:OPENSSL_memset |
975 | | |
976 | | |
977 | | // Loads and stores. |
978 | | // |
979 | | // The following functions load and store sized integers with the specified |
980 | | // endianness. They use |memcpy|, and so avoid alignment or strict aliasing |
981 | | // requirements on the input and output pointers. |
982 | | |
983 | 0 | static inline uint16_t CRYPTO_load_u16_le(const void *in) { |
984 | 0 | uint16_t v; |
985 | 0 | OPENSSL_memcpy(&v, in, sizeof(v)); |
986 | 0 | #if defined(OPENSSL_BIG_ENDIAN) |
987 | 0 | return CRYPTO_bswap2(v); |
988 | 0 | #else |
989 | 0 | return v; |
990 | 0 | #endif |
991 | 0 | } Unexecuted instantiation: convert.c:CRYPTO_load_u16_le Unexecuted instantiation: cbb.c:CRYPTO_load_u16_le Unexecuted instantiation: cbs.c:CRYPTO_load_u16_le Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_load_u16_le Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_load_u16_le Unexecuted instantiation: crypto.c:CRYPTO_load_u16_le Unexecuted instantiation: cfb.c:CRYPTO_load_u16_le Unexecuted instantiation: ec_asn1.c:CRYPTO_load_u16_le Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_load_u16_le Unexecuted instantiation: err.c:CRYPTO_load_u16_le Unexecuted instantiation: evp_asn1.c:CRYPTO_load_u16_le Unexecuted instantiation: p_methods.c:CRYPTO_load_u16_le Unexecuted instantiation: p_pqdsa_asn1.c:CRYPTO_load_u16_le Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_load_u16_le Unexecuted instantiation: bcm.c:CRYPTO_load_u16_le Unexecuted instantiation: kyber1024r3_ref.c:CRYPTO_load_u16_le Unexecuted instantiation: kyber512r3_ref.c:CRYPTO_load_u16_le Unexecuted instantiation: kyber768r3_ref.c:CRYPTO_load_u16_le Unexecuted instantiation: mem.c:CRYPTO_load_u16_le Unexecuted instantiation: obj.c:CRYPTO_load_u16_le Unexecuted instantiation: obj_xref.c:CRYPTO_load_u16_le Unexecuted instantiation: poly1305_vec.c:CRYPTO_load_u16_le Unexecuted instantiation: urandom.c:CRYPTO_load_u16_le Unexecuted instantiation: refcount_c11.c:CRYPTO_load_u16_le Unexecuted instantiation: rsa_asn1.c:CRYPTO_load_u16_le Unexecuted instantiation: rsa_crypt.c:CRYPTO_load_u16_le Unexecuted instantiation: rsassa_pss_asn1.c:CRYPTO_load_u16_le Unexecuted instantiation: stack.c:CRYPTO_load_u16_le Unexecuted instantiation: thread_pthread.c:CRYPTO_load_u16_le Unexecuted instantiation: fork_detect.c:CRYPTO_load_u16_le Unexecuted instantiation: snapsafe_detect.c:CRYPTO_load_u16_le Unexecuted instantiation: ube.c:CRYPTO_load_u16_le Unexecuted instantiation: a_object.c:CRYPTO_load_u16_le Unexecuted instantiation: posix_time.c:CRYPTO_load_u16_le Unexecuted instantiation: bio.c:CRYPTO_load_u16_le Unexecuted instantiation: file.c:CRYPTO_load_u16_le Unexecuted instantiation: asn1_compat.c:CRYPTO_load_u16_le Unexecuted instantiation: chacha.c:CRYPTO_load_u16_le Unexecuted instantiation: console.c:CRYPTO_load_u16_le Unexecuted instantiation: ripemd.c:CRYPTO_load_u16_le Unexecuted instantiation: digest_extra.c:CRYPTO_load_u16_le Unexecuted instantiation: dsa.c:CRYPTO_load_u16_le Unexecuted instantiation: dsa_asn1.c:CRYPTO_load_u16_le Unexecuted instantiation: engine.c:CRYPTO_load_u16_le Unexecuted instantiation: p_dh_asn1.c:CRYPTO_load_u16_le Unexecuted instantiation: p_dsa.c:CRYPTO_load_u16_le Unexecuted instantiation: p_ec_asn1.c:CRYPTO_load_u16_le Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_load_u16_le Unexecuted instantiation: p_hmac_asn1.c:CRYPTO_load_u16_le Unexecuted instantiation: p_kem_asn1.c:CRYPTO_load_u16_le Unexecuted instantiation: print.c:CRYPTO_load_u16_le Unexecuted instantiation: ex_data.c:CRYPTO_load_u16_le Unexecuted instantiation: lhash.c:CRYPTO_load_u16_le Unexecuted instantiation: blake2.c:CRYPTO_load_u16_le Unexecuted instantiation: params.c:CRYPTO_load_u16_le |
992 | | |
993 | 0 | static inline void CRYPTO_store_u16_le(void *out, uint16_t v) { |
994 | 0 | #if defined(OPENSSL_BIG_ENDIAN) |
995 | 0 | v = CRYPTO_bswap2(v); |
996 | 0 | #endif |
997 | 0 | OPENSSL_memcpy(out, &v, sizeof(v)); |
998 | 0 | } Unexecuted instantiation: convert.c:CRYPTO_store_u16_le Unexecuted instantiation: cbb.c:CRYPTO_store_u16_le Unexecuted instantiation: cbs.c:CRYPTO_store_u16_le Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_store_u16_le Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_store_u16_le Unexecuted instantiation: crypto.c:CRYPTO_store_u16_le Unexecuted instantiation: cfb.c:CRYPTO_store_u16_le Unexecuted instantiation: ec_asn1.c:CRYPTO_store_u16_le Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_store_u16_le Unexecuted instantiation: err.c:CRYPTO_store_u16_le Unexecuted instantiation: evp_asn1.c:CRYPTO_store_u16_le Unexecuted instantiation: p_methods.c:CRYPTO_store_u16_le Unexecuted instantiation: p_pqdsa_asn1.c:CRYPTO_store_u16_le Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_store_u16_le Unexecuted instantiation: bcm.c:CRYPTO_store_u16_le Unexecuted instantiation: kyber1024r3_ref.c:CRYPTO_store_u16_le Unexecuted instantiation: kyber512r3_ref.c:CRYPTO_store_u16_le Unexecuted instantiation: kyber768r3_ref.c:CRYPTO_store_u16_le Unexecuted instantiation: mem.c:CRYPTO_store_u16_le Unexecuted instantiation: obj.c:CRYPTO_store_u16_le Unexecuted instantiation: obj_xref.c:CRYPTO_store_u16_le Unexecuted instantiation: poly1305_vec.c:CRYPTO_store_u16_le Unexecuted instantiation: urandom.c:CRYPTO_store_u16_le Unexecuted instantiation: refcount_c11.c:CRYPTO_store_u16_le Unexecuted instantiation: rsa_asn1.c:CRYPTO_store_u16_le Unexecuted instantiation: rsa_crypt.c:CRYPTO_store_u16_le Unexecuted instantiation: rsassa_pss_asn1.c:CRYPTO_store_u16_le Unexecuted instantiation: stack.c:CRYPTO_store_u16_le Unexecuted instantiation: thread_pthread.c:CRYPTO_store_u16_le Unexecuted instantiation: fork_detect.c:CRYPTO_store_u16_le Unexecuted instantiation: snapsafe_detect.c:CRYPTO_store_u16_le Unexecuted instantiation: ube.c:CRYPTO_store_u16_le Unexecuted instantiation: a_object.c:CRYPTO_store_u16_le Unexecuted instantiation: posix_time.c:CRYPTO_store_u16_le Unexecuted instantiation: bio.c:CRYPTO_store_u16_le Unexecuted instantiation: file.c:CRYPTO_store_u16_le Unexecuted instantiation: asn1_compat.c:CRYPTO_store_u16_le Unexecuted instantiation: chacha.c:CRYPTO_store_u16_le Unexecuted instantiation: console.c:CRYPTO_store_u16_le Unexecuted instantiation: ripemd.c:CRYPTO_store_u16_le Unexecuted instantiation: digest_extra.c:CRYPTO_store_u16_le Unexecuted instantiation: dsa.c:CRYPTO_store_u16_le Unexecuted instantiation: dsa_asn1.c:CRYPTO_store_u16_le Unexecuted instantiation: engine.c:CRYPTO_store_u16_le Unexecuted instantiation: p_dh_asn1.c:CRYPTO_store_u16_le Unexecuted instantiation: p_dsa.c:CRYPTO_store_u16_le Unexecuted instantiation: p_ec_asn1.c:CRYPTO_store_u16_le Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_store_u16_le Unexecuted instantiation: p_hmac_asn1.c:CRYPTO_store_u16_le Unexecuted instantiation: p_kem_asn1.c:CRYPTO_store_u16_le Unexecuted instantiation: print.c:CRYPTO_store_u16_le Unexecuted instantiation: ex_data.c:CRYPTO_store_u16_le Unexecuted instantiation: lhash.c:CRYPTO_store_u16_le Unexecuted instantiation: blake2.c:CRYPTO_store_u16_le Unexecuted instantiation: params.c:CRYPTO_store_u16_le |
999 | | |
1000 | 0 | static inline uint16_t CRYPTO_load_u16_be(const void *in) { |
1001 | 0 | uint16_t v; |
1002 | 0 | OPENSSL_memcpy(&v, in, sizeof(v)); |
1003 | 0 | #if defined(OPENSSL_BIG_ENDIAN) |
1004 | 0 | return v; |
1005 | 0 | #else |
1006 | 0 | return CRYPTO_bswap2(v); |
1007 | 0 | #endif |
1008 | 0 | } Unexecuted instantiation: convert.c:CRYPTO_load_u16_be Unexecuted instantiation: cbb.c:CRYPTO_load_u16_be Unexecuted instantiation: cbs.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: crypto.c:CRYPTO_load_u16_be Unexecuted instantiation: cfb.c:CRYPTO_load_u16_be Unexecuted instantiation: ec_asn1.c:CRYPTO_load_u16_be Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_load_u16_be Unexecuted instantiation: err.c:CRYPTO_load_u16_be Unexecuted instantiation: evp_asn1.c:CRYPTO_load_u16_be Unexecuted instantiation: p_methods.c:CRYPTO_load_u16_be Unexecuted instantiation: p_pqdsa_asn1.c:CRYPTO_load_u16_be Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_load_u16_be Unexecuted instantiation: bcm.c:CRYPTO_load_u16_be Unexecuted instantiation: kyber1024r3_ref.c:CRYPTO_load_u16_be Unexecuted instantiation: kyber512r3_ref.c:CRYPTO_load_u16_be Unexecuted instantiation: kyber768r3_ref.c:CRYPTO_load_u16_be Unexecuted instantiation: mem.c:CRYPTO_load_u16_be Unexecuted instantiation: obj.c:CRYPTO_load_u16_be Unexecuted instantiation: obj_xref.c:CRYPTO_load_u16_be Unexecuted instantiation: poly1305_vec.c:CRYPTO_load_u16_be Unexecuted instantiation: urandom.c:CRYPTO_load_u16_be Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.c:CRYPTO_load_u16_be Unexecuted instantiation: stack.c:CRYPTO_load_u16_be Unexecuted instantiation: thread_pthread.c:CRYPTO_load_u16_be Unexecuted instantiation: fork_detect.c:CRYPTO_load_u16_be Unexecuted instantiation: snapsafe_detect.c:CRYPTO_load_u16_be Unexecuted instantiation: ube.c:CRYPTO_load_u16_be Unexecuted instantiation: a_object.c:CRYPTO_load_u16_be Unexecuted instantiation: posix_time.c:CRYPTO_load_u16_be Unexecuted instantiation: bio.c:CRYPTO_load_u16_be Unexecuted instantiation: file.c:CRYPTO_load_u16_be Unexecuted instantiation: asn1_compat.c:CRYPTO_load_u16_be Unexecuted instantiation: chacha.c:CRYPTO_load_u16_be Unexecuted instantiation: console.c:CRYPTO_load_u16_be Unexecuted instantiation: ripemd.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: engine.c:CRYPTO_load_u16_be Unexecuted instantiation: p_dh_asn1.c:CRYPTO_load_u16_be Unexecuted instantiation: p_dsa.c:CRYPTO_load_u16_be Unexecuted instantiation: p_ec_asn1.c:CRYPTO_load_u16_be Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_load_u16_be Unexecuted instantiation: p_hmac_asn1.c:CRYPTO_load_u16_be Unexecuted instantiation: p_kem_asn1.c:CRYPTO_load_u16_be Unexecuted instantiation: print.c:CRYPTO_load_u16_be Unexecuted instantiation: ex_data.c:CRYPTO_load_u16_be Unexecuted instantiation: lhash.c:CRYPTO_load_u16_be Unexecuted instantiation: blake2.c:CRYPTO_load_u16_be Unexecuted instantiation: params.c:CRYPTO_load_u16_be |
1009 | | |
1010 | 0 | static inline void CRYPTO_store_u16_be(void *out, uint16_t v) { |
1011 | 0 | #if !defined(OPENSSL_BIG_ENDIAN) |
1012 | 0 | v = CRYPTO_bswap2(v); |
1013 | 0 | #endif |
1014 | 0 | OPENSSL_memcpy(out, &v, sizeof(v)); |
1015 | 0 | } Unexecuted instantiation: convert.c:CRYPTO_store_u16_be Unexecuted instantiation: cbb.c:CRYPTO_store_u16_be Unexecuted instantiation: cbs.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: crypto.c:CRYPTO_store_u16_be Unexecuted instantiation: cfb.c:CRYPTO_store_u16_be Unexecuted instantiation: ec_asn1.c:CRYPTO_store_u16_be Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_store_u16_be Unexecuted instantiation: err.c:CRYPTO_store_u16_be Unexecuted instantiation: evp_asn1.c:CRYPTO_store_u16_be Unexecuted instantiation: p_methods.c:CRYPTO_store_u16_be Unexecuted instantiation: p_pqdsa_asn1.c:CRYPTO_store_u16_be Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_store_u16_be Unexecuted instantiation: bcm.c:CRYPTO_store_u16_be Unexecuted instantiation: kyber1024r3_ref.c:CRYPTO_store_u16_be Unexecuted instantiation: kyber512r3_ref.c:CRYPTO_store_u16_be Unexecuted instantiation: kyber768r3_ref.c:CRYPTO_store_u16_be Unexecuted instantiation: mem.c:CRYPTO_store_u16_be Unexecuted instantiation: obj.c:CRYPTO_store_u16_be Unexecuted instantiation: obj_xref.c:CRYPTO_store_u16_be Unexecuted instantiation: poly1305_vec.c:CRYPTO_store_u16_be Unexecuted instantiation: urandom.c:CRYPTO_store_u16_be Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.c:CRYPTO_store_u16_be Unexecuted instantiation: stack.c:CRYPTO_store_u16_be Unexecuted instantiation: thread_pthread.c:CRYPTO_store_u16_be Unexecuted instantiation: fork_detect.c:CRYPTO_store_u16_be Unexecuted instantiation: snapsafe_detect.c:CRYPTO_store_u16_be Unexecuted instantiation: ube.c:CRYPTO_store_u16_be Unexecuted instantiation: a_object.c:CRYPTO_store_u16_be Unexecuted instantiation: posix_time.c:CRYPTO_store_u16_be Unexecuted instantiation: bio.c:CRYPTO_store_u16_be Unexecuted instantiation: file.c:CRYPTO_store_u16_be Unexecuted instantiation: asn1_compat.c:CRYPTO_store_u16_be Unexecuted instantiation: chacha.c:CRYPTO_store_u16_be Unexecuted instantiation: console.c:CRYPTO_store_u16_be Unexecuted instantiation: ripemd.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: engine.c:CRYPTO_store_u16_be Unexecuted instantiation: p_dh_asn1.c:CRYPTO_store_u16_be Unexecuted instantiation: p_dsa.c:CRYPTO_store_u16_be Unexecuted instantiation: p_ec_asn1.c:CRYPTO_store_u16_be Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_store_u16_be Unexecuted instantiation: p_hmac_asn1.c:CRYPTO_store_u16_be Unexecuted instantiation: p_kem_asn1.c:CRYPTO_store_u16_be Unexecuted instantiation: print.c:CRYPTO_store_u16_be Unexecuted instantiation: ex_data.c:CRYPTO_store_u16_be Unexecuted instantiation: lhash.c:CRYPTO_store_u16_be Unexecuted instantiation: blake2.c:CRYPTO_store_u16_be Unexecuted instantiation: params.c:CRYPTO_store_u16_be |
1016 | | |
1017 | 0 | static inline uint32_t CRYPTO_load_u32_le(const void *in) { |
1018 | 0 | uint32_t v; |
1019 | 0 | OPENSSL_memcpy(&v, in, sizeof(v)); |
1020 | | #if defined(OPENSSL_BIG_ENDIAN) |
1021 | | return CRYPTO_bswap4(v); |
1022 | | #else |
1023 | 0 | return v; |
1024 | 0 | #endif |
1025 | 0 | } Unexecuted instantiation: convert.c:CRYPTO_load_u32_le Unexecuted instantiation: cbb.c:CRYPTO_load_u32_le Unexecuted instantiation: cbs.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: crypto.c:CRYPTO_load_u32_le Unexecuted instantiation: cfb.c:CRYPTO_load_u32_le Unexecuted instantiation: ec_asn1.c:CRYPTO_load_u32_le Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_load_u32_le Unexecuted instantiation: err.c:CRYPTO_load_u32_le Unexecuted instantiation: evp_asn1.c:CRYPTO_load_u32_le Unexecuted instantiation: p_methods.c:CRYPTO_load_u32_le Unexecuted instantiation: p_pqdsa_asn1.c:CRYPTO_load_u32_le Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_load_u32_le Unexecuted instantiation: bcm.c:CRYPTO_load_u32_le Unexecuted instantiation: kyber1024r3_ref.c:CRYPTO_load_u32_le Unexecuted instantiation: kyber512r3_ref.c:CRYPTO_load_u32_le Unexecuted instantiation: kyber768r3_ref.c:CRYPTO_load_u32_le Unexecuted instantiation: mem.c:CRYPTO_load_u32_le Unexecuted instantiation: obj.c:CRYPTO_load_u32_le Unexecuted instantiation: obj_xref.c:CRYPTO_load_u32_le Unexecuted instantiation: poly1305_vec.c:CRYPTO_load_u32_le Unexecuted instantiation: urandom.c:CRYPTO_load_u32_le Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.c:CRYPTO_load_u32_le Unexecuted instantiation: stack.c:CRYPTO_load_u32_le Unexecuted instantiation: thread_pthread.c:CRYPTO_load_u32_le Unexecuted instantiation: fork_detect.c:CRYPTO_load_u32_le Unexecuted instantiation: snapsafe_detect.c:CRYPTO_load_u32_le Unexecuted instantiation: ube.c:CRYPTO_load_u32_le Unexecuted instantiation: a_object.c:CRYPTO_load_u32_le Unexecuted instantiation: posix_time.c:CRYPTO_load_u32_le Unexecuted instantiation: bio.c:CRYPTO_load_u32_le Unexecuted instantiation: file.c:CRYPTO_load_u32_le Unexecuted instantiation: asn1_compat.c:CRYPTO_load_u32_le Unexecuted instantiation: chacha.c:CRYPTO_load_u32_le Unexecuted instantiation: console.c:CRYPTO_load_u32_le Unexecuted instantiation: ripemd.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: engine.c:CRYPTO_load_u32_le Unexecuted instantiation: p_dh_asn1.c:CRYPTO_load_u32_le Unexecuted instantiation: p_dsa.c:CRYPTO_load_u32_le Unexecuted instantiation: p_ec_asn1.c:CRYPTO_load_u32_le Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_load_u32_le Unexecuted instantiation: p_hmac_asn1.c:CRYPTO_load_u32_le Unexecuted instantiation: p_kem_asn1.c:CRYPTO_load_u32_le Unexecuted instantiation: print.c:CRYPTO_load_u32_le Unexecuted instantiation: ex_data.c:CRYPTO_load_u32_le Unexecuted instantiation: lhash.c:CRYPTO_load_u32_le Unexecuted instantiation: blake2.c:CRYPTO_load_u32_le Unexecuted instantiation: params.c:CRYPTO_load_u32_le |
1026 | | |
1027 | 0 | static inline void CRYPTO_store_u32_le(void *out, uint32_t v) { |
1028 | | #if defined(OPENSSL_BIG_ENDIAN) |
1029 | | v = CRYPTO_bswap4(v); |
1030 | | #endif |
1031 | 0 | OPENSSL_memcpy(out, &v, sizeof(v)); |
1032 | |
|
1033 | 0 | } Unexecuted instantiation: convert.c:CRYPTO_store_u32_le Unexecuted instantiation: cbb.c:CRYPTO_store_u32_le Unexecuted instantiation: cbs.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: crypto.c:CRYPTO_store_u32_le Unexecuted instantiation: cfb.c:CRYPTO_store_u32_le Unexecuted instantiation: ec_asn1.c:CRYPTO_store_u32_le Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_store_u32_le Unexecuted instantiation: err.c:CRYPTO_store_u32_le Unexecuted instantiation: evp_asn1.c:CRYPTO_store_u32_le Unexecuted instantiation: p_methods.c:CRYPTO_store_u32_le Unexecuted instantiation: p_pqdsa_asn1.c:CRYPTO_store_u32_le Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_store_u32_le Unexecuted instantiation: bcm.c:CRYPTO_store_u32_le Unexecuted instantiation: kyber1024r3_ref.c:CRYPTO_store_u32_le Unexecuted instantiation: kyber512r3_ref.c:CRYPTO_store_u32_le Unexecuted instantiation: kyber768r3_ref.c:CRYPTO_store_u32_le Unexecuted instantiation: mem.c:CRYPTO_store_u32_le Unexecuted instantiation: obj.c:CRYPTO_store_u32_le Unexecuted instantiation: obj_xref.c:CRYPTO_store_u32_le Unexecuted instantiation: poly1305_vec.c:CRYPTO_store_u32_le Unexecuted instantiation: urandom.c:CRYPTO_store_u32_le Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.c:CRYPTO_store_u32_le Unexecuted instantiation: stack.c:CRYPTO_store_u32_le Unexecuted instantiation: thread_pthread.c:CRYPTO_store_u32_le Unexecuted instantiation: fork_detect.c:CRYPTO_store_u32_le Unexecuted instantiation: snapsafe_detect.c:CRYPTO_store_u32_le Unexecuted instantiation: ube.c:CRYPTO_store_u32_le Unexecuted instantiation: a_object.c:CRYPTO_store_u32_le Unexecuted instantiation: posix_time.c:CRYPTO_store_u32_le Unexecuted instantiation: bio.c:CRYPTO_store_u32_le Unexecuted instantiation: file.c:CRYPTO_store_u32_le Unexecuted instantiation: asn1_compat.c:CRYPTO_store_u32_le Unexecuted instantiation: chacha.c:CRYPTO_store_u32_le Unexecuted instantiation: console.c:CRYPTO_store_u32_le Unexecuted instantiation: ripemd.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: engine.c:CRYPTO_store_u32_le Unexecuted instantiation: p_dh_asn1.c:CRYPTO_store_u32_le Unexecuted instantiation: p_dsa.c:CRYPTO_store_u32_le Unexecuted instantiation: p_ec_asn1.c:CRYPTO_store_u32_le Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_store_u32_le Unexecuted instantiation: p_hmac_asn1.c:CRYPTO_store_u32_le Unexecuted instantiation: p_kem_asn1.c:CRYPTO_store_u32_le Unexecuted instantiation: print.c:CRYPTO_store_u32_le Unexecuted instantiation: ex_data.c:CRYPTO_store_u32_le Unexecuted instantiation: lhash.c:CRYPTO_store_u32_le Unexecuted instantiation: blake2.c:CRYPTO_store_u32_le Unexecuted instantiation: params.c:CRYPTO_store_u32_le |
1034 | | |
1035 | 0 | static inline uint32_t CRYPTO_load_u32_be(const void *in) { |
1036 | 0 | uint32_t v; |
1037 | 0 | OPENSSL_memcpy(&v, in, sizeof(v)); |
1038 | | #if defined(OPENSSL_BIG_ENDIAN) |
1039 | | return v; |
1040 | | #else |
1041 | 0 | return CRYPTO_bswap4(v); |
1042 | 0 | #endif |
1043 | 0 | } Unexecuted instantiation: convert.c:CRYPTO_load_u32_be Unexecuted instantiation: cbb.c:CRYPTO_load_u32_be Unexecuted instantiation: cbs.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: crypto.c:CRYPTO_load_u32_be Unexecuted instantiation: cfb.c:CRYPTO_load_u32_be Unexecuted instantiation: ec_asn1.c:CRYPTO_load_u32_be Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_load_u32_be Unexecuted instantiation: err.c:CRYPTO_load_u32_be Unexecuted instantiation: evp_asn1.c:CRYPTO_load_u32_be Unexecuted instantiation: p_methods.c:CRYPTO_load_u32_be Unexecuted instantiation: p_pqdsa_asn1.c:CRYPTO_load_u32_be Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_load_u32_be Unexecuted instantiation: bcm.c:CRYPTO_load_u32_be Unexecuted instantiation: kyber1024r3_ref.c:CRYPTO_load_u32_be Unexecuted instantiation: kyber512r3_ref.c:CRYPTO_load_u32_be Unexecuted instantiation: kyber768r3_ref.c:CRYPTO_load_u32_be Unexecuted instantiation: mem.c:CRYPTO_load_u32_be Unexecuted instantiation: obj.c:CRYPTO_load_u32_be Unexecuted instantiation: obj_xref.c:CRYPTO_load_u32_be Unexecuted instantiation: poly1305_vec.c:CRYPTO_load_u32_be Unexecuted instantiation: urandom.c:CRYPTO_load_u32_be Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.c:CRYPTO_load_u32_be Unexecuted instantiation: stack.c:CRYPTO_load_u32_be Unexecuted instantiation: thread_pthread.c:CRYPTO_load_u32_be Unexecuted instantiation: fork_detect.c:CRYPTO_load_u32_be Unexecuted instantiation: snapsafe_detect.c:CRYPTO_load_u32_be Unexecuted instantiation: ube.c:CRYPTO_load_u32_be Unexecuted instantiation: a_object.c:CRYPTO_load_u32_be Unexecuted instantiation: posix_time.c:CRYPTO_load_u32_be Unexecuted instantiation: bio.c:CRYPTO_load_u32_be Unexecuted instantiation: file.c:CRYPTO_load_u32_be Unexecuted instantiation: asn1_compat.c:CRYPTO_load_u32_be Unexecuted instantiation: chacha.c:CRYPTO_load_u32_be Unexecuted instantiation: console.c:CRYPTO_load_u32_be Unexecuted instantiation: ripemd.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: engine.c:CRYPTO_load_u32_be Unexecuted instantiation: p_dh_asn1.c:CRYPTO_load_u32_be Unexecuted instantiation: p_dsa.c:CRYPTO_load_u32_be Unexecuted instantiation: p_ec_asn1.c:CRYPTO_load_u32_be Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_load_u32_be Unexecuted instantiation: p_hmac_asn1.c:CRYPTO_load_u32_be Unexecuted instantiation: p_kem_asn1.c:CRYPTO_load_u32_be Unexecuted instantiation: print.c:CRYPTO_load_u32_be Unexecuted instantiation: ex_data.c:CRYPTO_load_u32_be Unexecuted instantiation: lhash.c:CRYPTO_load_u32_be Unexecuted instantiation: blake2.c:CRYPTO_load_u32_be Unexecuted instantiation: params.c:CRYPTO_load_u32_be |
1044 | | |
1045 | 0 | static inline void CRYPTO_store_u32_be(void *out, uint32_t v) { |
1046 | |
|
1047 | 0 | #if !defined(OPENSSL_BIG_ENDIAN) |
1048 | 0 | v = CRYPTO_bswap4(v); |
1049 | 0 | #endif |
1050 | 0 | OPENSSL_memcpy(out, &v, sizeof(v)); |
1051 | |
|
1052 | 0 | } Unexecuted instantiation: convert.c:CRYPTO_store_u32_be Unexecuted instantiation: cbb.c:CRYPTO_store_u32_be Unexecuted instantiation: cbs.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: crypto.c:CRYPTO_store_u32_be Unexecuted instantiation: cfb.c:CRYPTO_store_u32_be Unexecuted instantiation: ec_asn1.c:CRYPTO_store_u32_be Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_store_u32_be Unexecuted instantiation: err.c:CRYPTO_store_u32_be Unexecuted instantiation: evp_asn1.c:CRYPTO_store_u32_be Unexecuted instantiation: p_methods.c:CRYPTO_store_u32_be Unexecuted instantiation: p_pqdsa_asn1.c:CRYPTO_store_u32_be Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_store_u32_be Unexecuted instantiation: bcm.c:CRYPTO_store_u32_be Unexecuted instantiation: kyber1024r3_ref.c:CRYPTO_store_u32_be Unexecuted instantiation: kyber512r3_ref.c:CRYPTO_store_u32_be Unexecuted instantiation: kyber768r3_ref.c:CRYPTO_store_u32_be Unexecuted instantiation: mem.c:CRYPTO_store_u32_be Unexecuted instantiation: obj.c:CRYPTO_store_u32_be Unexecuted instantiation: obj_xref.c:CRYPTO_store_u32_be Unexecuted instantiation: poly1305_vec.c:CRYPTO_store_u32_be Unexecuted instantiation: urandom.c:CRYPTO_store_u32_be Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.c:CRYPTO_store_u32_be Unexecuted instantiation: stack.c:CRYPTO_store_u32_be Unexecuted instantiation: thread_pthread.c:CRYPTO_store_u32_be Unexecuted instantiation: fork_detect.c:CRYPTO_store_u32_be Unexecuted instantiation: snapsafe_detect.c:CRYPTO_store_u32_be Unexecuted instantiation: ube.c:CRYPTO_store_u32_be Unexecuted instantiation: a_object.c:CRYPTO_store_u32_be Unexecuted instantiation: posix_time.c:CRYPTO_store_u32_be Unexecuted instantiation: bio.c:CRYPTO_store_u32_be Unexecuted instantiation: file.c:CRYPTO_store_u32_be Unexecuted instantiation: asn1_compat.c:CRYPTO_store_u32_be Unexecuted instantiation: chacha.c:CRYPTO_store_u32_be Unexecuted instantiation: console.c:CRYPTO_store_u32_be Unexecuted instantiation: ripemd.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: engine.c:CRYPTO_store_u32_be Unexecuted instantiation: p_dh_asn1.c:CRYPTO_store_u32_be Unexecuted instantiation: p_dsa.c:CRYPTO_store_u32_be Unexecuted instantiation: p_ec_asn1.c:CRYPTO_store_u32_be Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_store_u32_be Unexecuted instantiation: p_hmac_asn1.c:CRYPTO_store_u32_be Unexecuted instantiation: p_kem_asn1.c:CRYPTO_store_u32_be Unexecuted instantiation: print.c:CRYPTO_store_u32_be Unexecuted instantiation: ex_data.c:CRYPTO_store_u32_be Unexecuted instantiation: lhash.c:CRYPTO_store_u32_be Unexecuted instantiation: blake2.c:CRYPTO_store_u32_be Unexecuted instantiation: params.c:CRYPTO_store_u32_be |
1053 | | |
1054 | 0 | static inline uint64_t CRYPTO_load_u64_le(const void *in) { |
1055 | 0 | uint64_t v; |
1056 | 0 | OPENSSL_memcpy(&v, in, sizeof(v)); |
1057 | | #if defined(OPENSSL_BIG_ENDIAN) |
1058 | | return CRYPTO_bswap8(v); |
1059 | | #else |
1060 | 0 | return v; |
1061 | 0 | #endif |
1062 | 0 | } Unexecuted instantiation: convert.c:CRYPTO_load_u64_le Unexecuted instantiation: cbb.c:CRYPTO_load_u64_le Unexecuted instantiation: cbs.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: crypto.c:CRYPTO_load_u64_le Unexecuted instantiation: cfb.c:CRYPTO_load_u64_le Unexecuted instantiation: ec_asn1.c:CRYPTO_load_u64_le Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_load_u64_le Unexecuted instantiation: err.c:CRYPTO_load_u64_le Unexecuted instantiation: evp_asn1.c:CRYPTO_load_u64_le Unexecuted instantiation: p_methods.c:CRYPTO_load_u64_le Unexecuted instantiation: p_pqdsa_asn1.c:CRYPTO_load_u64_le Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_load_u64_le Unexecuted instantiation: bcm.c:CRYPTO_load_u64_le Unexecuted instantiation: kyber1024r3_ref.c:CRYPTO_load_u64_le Unexecuted instantiation: kyber512r3_ref.c:CRYPTO_load_u64_le Unexecuted instantiation: kyber768r3_ref.c:CRYPTO_load_u64_le Unexecuted instantiation: mem.c:CRYPTO_load_u64_le Unexecuted instantiation: obj.c:CRYPTO_load_u64_le Unexecuted instantiation: obj_xref.c:CRYPTO_load_u64_le Unexecuted instantiation: poly1305_vec.c:CRYPTO_load_u64_le Unexecuted instantiation: urandom.c:CRYPTO_load_u64_le Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.c:CRYPTO_load_u64_le Unexecuted instantiation: stack.c:CRYPTO_load_u64_le Unexecuted instantiation: thread_pthread.c:CRYPTO_load_u64_le Unexecuted instantiation: fork_detect.c:CRYPTO_load_u64_le Unexecuted instantiation: snapsafe_detect.c:CRYPTO_load_u64_le Unexecuted instantiation: ube.c:CRYPTO_load_u64_le Unexecuted instantiation: a_object.c:CRYPTO_load_u64_le Unexecuted instantiation: posix_time.c:CRYPTO_load_u64_le Unexecuted instantiation: bio.c:CRYPTO_load_u64_le Unexecuted instantiation: file.c:CRYPTO_load_u64_le Unexecuted instantiation: asn1_compat.c:CRYPTO_load_u64_le Unexecuted instantiation: chacha.c:CRYPTO_load_u64_le Unexecuted instantiation: console.c:CRYPTO_load_u64_le Unexecuted instantiation: ripemd.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: engine.c:CRYPTO_load_u64_le Unexecuted instantiation: p_dh_asn1.c:CRYPTO_load_u64_le Unexecuted instantiation: p_dsa.c:CRYPTO_load_u64_le Unexecuted instantiation: p_ec_asn1.c:CRYPTO_load_u64_le Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_load_u64_le Unexecuted instantiation: p_hmac_asn1.c:CRYPTO_load_u64_le Unexecuted instantiation: p_kem_asn1.c:CRYPTO_load_u64_le Unexecuted instantiation: print.c:CRYPTO_load_u64_le Unexecuted instantiation: ex_data.c:CRYPTO_load_u64_le Unexecuted instantiation: lhash.c:CRYPTO_load_u64_le Unexecuted instantiation: blake2.c:CRYPTO_load_u64_le Unexecuted instantiation: params.c:CRYPTO_load_u64_le |
1063 | | |
1064 | 0 | static inline void CRYPTO_store_u64_le(void *out, uint64_t v) { |
1065 | | #if defined(OPENSSL_BIG_ENDIAN) |
1066 | | v = CRYPTO_bswap8(v); |
1067 | | #endif |
1068 | 0 | OPENSSL_memcpy(out, &v, sizeof(v)); |
1069 | |
|
1070 | 0 | } Unexecuted instantiation: convert.c:CRYPTO_store_u64_le Unexecuted instantiation: cbb.c:CRYPTO_store_u64_le Unexecuted instantiation: cbs.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: crypto.c:CRYPTO_store_u64_le Unexecuted instantiation: cfb.c:CRYPTO_store_u64_le Unexecuted instantiation: ec_asn1.c:CRYPTO_store_u64_le Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_store_u64_le Unexecuted instantiation: err.c:CRYPTO_store_u64_le Unexecuted instantiation: evp_asn1.c:CRYPTO_store_u64_le Unexecuted instantiation: p_methods.c:CRYPTO_store_u64_le Unexecuted instantiation: p_pqdsa_asn1.c:CRYPTO_store_u64_le Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_store_u64_le Unexecuted instantiation: bcm.c:CRYPTO_store_u64_le Unexecuted instantiation: kyber1024r3_ref.c:CRYPTO_store_u64_le Unexecuted instantiation: kyber512r3_ref.c:CRYPTO_store_u64_le Unexecuted instantiation: kyber768r3_ref.c:CRYPTO_store_u64_le Unexecuted instantiation: mem.c:CRYPTO_store_u64_le Unexecuted instantiation: obj.c:CRYPTO_store_u64_le Unexecuted instantiation: obj_xref.c:CRYPTO_store_u64_le Unexecuted instantiation: poly1305_vec.c:CRYPTO_store_u64_le Unexecuted instantiation: urandom.c:CRYPTO_store_u64_le Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.c:CRYPTO_store_u64_le Unexecuted instantiation: stack.c:CRYPTO_store_u64_le Unexecuted instantiation: thread_pthread.c:CRYPTO_store_u64_le Unexecuted instantiation: fork_detect.c:CRYPTO_store_u64_le Unexecuted instantiation: snapsafe_detect.c:CRYPTO_store_u64_le Unexecuted instantiation: ube.c:CRYPTO_store_u64_le Unexecuted instantiation: a_object.c:CRYPTO_store_u64_le Unexecuted instantiation: posix_time.c:CRYPTO_store_u64_le Unexecuted instantiation: bio.c:CRYPTO_store_u64_le Unexecuted instantiation: file.c:CRYPTO_store_u64_le Unexecuted instantiation: asn1_compat.c:CRYPTO_store_u64_le Unexecuted instantiation: chacha.c:CRYPTO_store_u64_le Unexecuted instantiation: console.c:CRYPTO_store_u64_le Unexecuted instantiation: ripemd.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: engine.c:CRYPTO_store_u64_le Unexecuted instantiation: p_dh_asn1.c:CRYPTO_store_u64_le Unexecuted instantiation: p_dsa.c:CRYPTO_store_u64_le Unexecuted instantiation: p_ec_asn1.c:CRYPTO_store_u64_le Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_store_u64_le Unexecuted instantiation: p_hmac_asn1.c:CRYPTO_store_u64_le Unexecuted instantiation: p_kem_asn1.c:CRYPTO_store_u64_le Unexecuted instantiation: print.c:CRYPTO_store_u64_le Unexecuted instantiation: ex_data.c:CRYPTO_store_u64_le Unexecuted instantiation: lhash.c:CRYPTO_store_u64_le Unexecuted instantiation: blake2.c:CRYPTO_store_u64_le Unexecuted instantiation: params.c:CRYPTO_store_u64_le |
1071 | | |
1072 | 0 | static inline uint64_t CRYPTO_load_u64_be(const void *ptr) { |
1073 | 0 | uint64_t ret; |
1074 | 0 | OPENSSL_memcpy(&ret, ptr, sizeof(ret)); |
1075 | | #if defined(OPENSSL_BIG_ENDIAN) |
1076 | | return ret; |
1077 | | #else |
1078 | 0 | return CRYPTO_bswap8(ret); |
1079 | 0 | #endif |
1080 | 0 | } Unexecuted instantiation: convert.c:CRYPTO_load_u64_be Unexecuted instantiation: cbb.c:CRYPTO_load_u64_be Unexecuted instantiation: cbs.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: crypto.c:CRYPTO_load_u64_be Unexecuted instantiation: cfb.c:CRYPTO_load_u64_be Unexecuted instantiation: ec_asn1.c:CRYPTO_load_u64_be Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_load_u64_be Unexecuted instantiation: err.c:CRYPTO_load_u64_be Unexecuted instantiation: evp_asn1.c:CRYPTO_load_u64_be Unexecuted instantiation: p_methods.c:CRYPTO_load_u64_be Unexecuted instantiation: p_pqdsa_asn1.c:CRYPTO_load_u64_be Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_load_u64_be Unexecuted instantiation: bcm.c:CRYPTO_load_u64_be Unexecuted instantiation: kyber1024r3_ref.c:CRYPTO_load_u64_be Unexecuted instantiation: kyber512r3_ref.c:CRYPTO_load_u64_be Unexecuted instantiation: kyber768r3_ref.c:CRYPTO_load_u64_be Unexecuted instantiation: mem.c:CRYPTO_load_u64_be Unexecuted instantiation: obj.c:CRYPTO_load_u64_be Unexecuted instantiation: obj_xref.c:CRYPTO_load_u64_be Unexecuted instantiation: poly1305_vec.c:CRYPTO_load_u64_be Unexecuted instantiation: urandom.c:CRYPTO_load_u64_be Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.c:CRYPTO_load_u64_be Unexecuted instantiation: stack.c:CRYPTO_load_u64_be Unexecuted instantiation: thread_pthread.c:CRYPTO_load_u64_be Unexecuted instantiation: fork_detect.c:CRYPTO_load_u64_be Unexecuted instantiation: snapsafe_detect.c:CRYPTO_load_u64_be Unexecuted instantiation: ube.c:CRYPTO_load_u64_be Unexecuted instantiation: a_object.c:CRYPTO_load_u64_be Unexecuted instantiation: posix_time.c:CRYPTO_load_u64_be Unexecuted instantiation: bio.c:CRYPTO_load_u64_be Unexecuted instantiation: file.c:CRYPTO_load_u64_be Unexecuted instantiation: asn1_compat.c:CRYPTO_load_u64_be Unexecuted instantiation: chacha.c:CRYPTO_load_u64_be Unexecuted instantiation: console.c:CRYPTO_load_u64_be Unexecuted instantiation: ripemd.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: engine.c:CRYPTO_load_u64_be Unexecuted instantiation: p_dh_asn1.c:CRYPTO_load_u64_be Unexecuted instantiation: p_dsa.c:CRYPTO_load_u64_be Unexecuted instantiation: p_ec_asn1.c:CRYPTO_load_u64_be Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_load_u64_be Unexecuted instantiation: p_hmac_asn1.c:CRYPTO_load_u64_be Unexecuted instantiation: p_kem_asn1.c:CRYPTO_load_u64_be Unexecuted instantiation: print.c:CRYPTO_load_u64_be Unexecuted instantiation: ex_data.c:CRYPTO_load_u64_be Unexecuted instantiation: lhash.c:CRYPTO_load_u64_be Unexecuted instantiation: blake2.c:CRYPTO_load_u64_be Unexecuted instantiation: params.c:CRYPTO_load_u64_be |
1081 | | |
1082 | 0 | static inline void CRYPTO_store_u64_be(void *out, uint64_t v) { |
1083 | | #if defined(OPENSSL_BIG_ENDIAN) |
1084 | | #else |
1085 | 0 | v = CRYPTO_bswap8(v); |
1086 | 0 | #endif |
1087 | 0 | OPENSSL_memcpy(out, &v, sizeof(v)); |
1088 | |
|
1089 | 0 | } Unexecuted instantiation: convert.c:CRYPTO_store_u64_be Unexecuted instantiation: cbb.c:CRYPTO_store_u64_be Unexecuted instantiation: cbs.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: crypto.c:CRYPTO_store_u64_be Unexecuted instantiation: cfb.c:CRYPTO_store_u64_be Unexecuted instantiation: ec_asn1.c:CRYPTO_store_u64_be Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_store_u64_be Unexecuted instantiation: err.c:CRYPTO_store_u64_be Unexecuted instantiation: evp_asn1.c:CRYPTO_store_u64_be Unexecuted instantiation: p_methods.c:CRYPTO_store_u64_be Unexecuted instantiation: p_pqdsa_asn1.c:CRYPTO_store_u64_be Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_store_u64_be Unexecuted instantiation: bcm.c:CRYPTO_store_u64_be Unexecuted instantiation: kyber1024r3_ref.c:CRYPTO_store_u64_be Unexecuted instantiation: kyber512r3_ref.c:CRYPTO_store_u64_be Unexecuted instantiation: kyber768r3_ref.c:CRYPTO_store_u64_be Unexecuted instantiation: mem.c:CRYPTO_store_u64_be Unexecuted instantiation: obj.c:CRYPTO_store_u64_be Unexecuted instantiation: obj_xref.c:CRYPTO_store_u64_be Unexecuted instantiation: poly1305_vec.c:CRYPTO_store_u64_be Unexecuted instantiation: urandom.c:CRYPTO_store_u64_be Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.c:CRYPTO_store_u64_be Unexecuted instantiation: stack.c:CRYPTO_store_u64_be Unexecuted instantiation: thread_pthread.c:CRYPTO_store_u64_be Unexecuted instantiation: fork_detect.c:CRYPTO_store_u64_be Unexecuted instantiation: snapsafe_detect.c:CRYPTO_store_u64_be Unexecuted instantiation: ube.c:CRYPTO_store_u64_be Unexecuted instantiation: a_object.c:CRYPTO_store_u64_be Unexecuted instantiation: posix_time.c:CRYPTO_store_u64_be Unexecuted instantiation: bio.c:CRYPTO_store_u64_be Unexecuted instantiation: file.c:CRYPTO_store_u64_be Unexecuted instantiation: asn1_compat.c:CRYPTO_store_u64_be Unexecuted instantiation: chacha.c:CRYPTO_store_u64_be Unexecuted instantiation: console.c:CRYPTO_store_u64_be Unexecuted instantiation: ripemd.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: engine.c:CRYPTO_store_u64_be Unexecuted instantiation: p_dh_asn1.c:CRYPTO_store_u64_be Unexecuted instantiation: p_dsa.c:CRYPTO_store_u64_be Unexecuted instantiation: p_ec_asn1.c:CRYPTO_store_u64_be Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_store_u64_be Unexecuted instantiation: p_hmac_asn1.c:CRYPTO_store_u64_be Unexecuted instantiation: p_kem_asn1.c:CRYPTO_store_u64_be Unexecuted instantiation: print.c:CRYPTO_store_u64_be Unexecuted instantiation: ex_data.c:CRYPTO_store_u64_be Unexecuted instantiation: lhash.c:CRYPTO_store_u64_be Unexecuted instantiation: blake2.c:CRYPTO_store_u64_be Unexecuted instantiation: params.c:CRYPTO_store_u64_be |
1090 | | |
1091 | 0 | static inline crypto_word_t CRYPTO_load_word_le(const void *in) { |
1092 | |
|
1093 | 0 | crypto_word_t v; |
1094 | 0 | OPENSSL_memcpy(&v, in, sizeof(v)); |
1095 | | #if defined(OPENSSL_BIG_ENDIAN) |
1096 | | return CRYPTO_bswap_word(v); |
1097 | | #else |
1098 | 0 | return v; |
1099 | 0 | #endif |
1100 | 0 | } Unexecuted instantiation: convert.c:CRYPTO_load_word_le Unexecuted instantiation: cbb.c:CRYPTO_load_word_le Unexecuted instantiation: cbs.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: crypto.c:CRYPTO_load_word_le Unexecuted instantiation: cfb.c:CRYPTO_load_word_le Unexecuted instantiation: ec_asn1.c:CRYPTO_load_word_le Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_load_word_le Unexecuted instantiation: err.c:CRYPTO_load_word_le Unexecuted instantiation: evp_asn1.c:CRYPTO_load_word_le Unexecuted instantiation: p_methods.c:CRYPTO_load_word_le Unexecuted instantiation: p_pqdsa_asn1.c:CRYPTO_load_word_le Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_load_word_le Unexecuted instantiation: bcm.c:CRYPTO_load_word_le Unexecuted instantiation: kyber1024r3_ref.c:CRYPTO_load_word_le Unexecuted instantiation: kyber512r3_ref.c:CRYPTO_load_word_le Unexecuted instantiation: kyber768r3_ref.c:CRYPTO_load_word_le Unexecuted instantiation: mem.c:CRYPTO_load_word_le Unexecuted instantiation: obj.c:CRYPTO_load_word_le Unexecuted instantiation: obj_xref.c:CRYPTO_load_word_le Unexecuted instantiation: poly1305_vec.c:CRYPTO_load_word_le Unexecuted instantiation: urandom.c:CRYPTO_load_word_le Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.c:CRYPTO_load_word_le Unexecuted instantiation: stack.c:CRYPTO_load_word_le Unexecuted instantiation: thread_pthread.c:CRYPTO_load_word_le Unexecuted instantiation: fork_detect.c:CRYPTO_load_word_le Unexecuted instantiation: snapsafe_detect.c:CRYPTO_load_word_le Unexecuted instantiation: ube.c:CRYPTO_load_word_le Unexecuted instantiation: a_object.c:CRYPTO_load_word_le Unexecuted instantiation: posix_time.c:CRYPTO_load_word_le Unexecuted instantiation: bio.c:CRYPTO_load_word_le Unexecuted instantiation: file.c:CRYPTO_load_word_le Unexecuted instantiation: asn1_compat.c:CRYPTO_load_word_le Unexecuted instantiation: chacha.c:CRYPTO_load_word_le Unexecuted instantiation: console.c:CRYPTO_load_word_le Unexecuted instantiation: ripemd.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: engine.c:CRYPTO_load_word_le Unexecuted instantiation: p_dh_asn1.c:CRYPTO_load_word_le Unexecuted instantiation: p_dsa.c:CRYPTO_load_word_le Unexecuted instantiation: p_ec_asn1.c:CRYPTO_load_word_le Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_load_word_le Unexecuted instantiation: p_hmac_asn1.c:CRYPTO_load_word_le Unexecuted instantiation: p_kem_asn1.c:CRYPTO_load_word_le Unexecuted instantiation: print.c:CRYPTO_load_word_le Unexecuted instantiation: ex_data.c:CRYPTO_load_word_le Unexecuted instantiation: lhash.c:CRYPTO_load_word_le Unexecuted instantiation: blake2.c:CRYPTO_load_word_le Unexecuted instantiation: params.c:CRYPTO_load_word_le |
1101 | | |
1102 | 0 | static inline void CRYPTO_store_word_le(void *out, crypto_word_t v) { |
1103 | | |
1104 | |
|
1105 | | #if defined(OPENSSL_BIG_ENDIAN) |
1106 | | v = CRYPTO_bswap_word(v); |
1107 | | #endif |
1108 | 0 | OPENSSL_memcpy(out, &v, sizeof(v)); |
1109 | |
|
1110 | 0 | } Unexecuted instantiation: convert.c:CRYPTO_store_word_le Unexecuted instantiation: cbb.c:CRYPTO_store_word_le Unexecuted instantiation: cbs.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: crypto.c:CRYPTO_store_word_le Unexecuted instantiation: cfb.c:CRYPTO_store_word_le Unexecuted instantiation: ec_asn1.c:CRYPTO_store_word_le Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_store_word_le Unexecuted instantiation: err.c:CRYPTO_store_word_le Unexecuted instantiation: evp_asn1.c:CRYPTO_store_word_le Unexecuted instantiation: p_methods.c:CRYPTO_store_word_le Unexecuted instantiation: p_pqdsa_asn1.c:CRYPTO_store_word_le Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_store_word_le Unexecuted instantiation: bcm.c:CRYPTO_store_word_le Unexecuted instantiation: kyber1024r3_ref.c:CRYPTO_store_word_le Unexecuted instantiation: kyber512r3_ref.c:CRYPTO_store_word_le Unexecuted instantiation: kyber768r3_ref.c:CRYPTO_store_word_le Unexecuted instantiation: mem.c:CRYPTO_store_word_le Unexecuted instantiation: obj.c:CRYPTO_store_word_le Unexecuted instantiation: obj_xref.c:CRYPTO_store_word_le Unexecuted instantiation: poly1305_vec.c:CRYPTO_store_word_le Unexecuted instantiation: urandom.c:CRYPTO_store_word_le Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.c:CRYPTO_store_word_le Unexecuted instantiation: stack.c:CRYPTO_store_word_le Unexecuted instantiation: thread_pthread.c:CRYPTO_store_word_le Unexecuted instantiation: fork_detect.c:CRYPTO_store_word_le Unexecuted instantiation: snapsafe_detect.c:CRYPTO_store_word_le Unexecuted instantiation: ube.c:CRYPTO_store_word_le Unexecuted instantiation: a_object.c:CRYPTO_store_word_le Unexecuted instantiation: posix_time.c:CRYPTO_store_word_le Unexecuted instantiation: bio.c:CRYPTO_store_word_le Unexecuted instantiation: file.c:CRYPTO_store_word_le Unexecuted instantiation: asn1_compat.c:CRYPTO_store_word_le Unexecuted instantiation: chacha.c:CRYPTO_store_word_le Unexecuted instantiation: console.c:CRYPTO_store_word_le Unexecuted instantiation: ripemd.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: engine.c:CRYPTO_store_word_le Unexecuted instantiation: p_dh_asn1.c:CRYPTO_store_word_le Unexecuted instantiation: p_dsa.c:CRYPTO_store_word_le Unexecuted instantiation: p_ec_asn1.c:CRYPTO_store_word_le Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_store_word_le Unexecuted instantiation: p_hmac_asn1.c:CRYPTO_store_word_le Unexecuted instantiation: p_kem_asn1.c:CRYPTO_store_word_le Unexecuted instantiation: print.c:CRYPTO_store_word_le Unexecuted instantiation: ex_data.c:CRYPTO_store_word_le Unexecuted instantiation: lhash.c:CRYPTO_store_word_le Unexecuted instantiation: blake2.c:CRYPTO_store_word_le Unexecuted instantiation: params.c:CRYPTO_store_word_le |
1111 | | |
1112 | 0 | static inline crypto_word_t CRYPTO_load_word_be(const void *in) { |
1113 | 0 | crypto_word_t v; |
1114 | 0 | OPENSSL_memcpy(&v, in, sizeof(v)); |
1115 | | #if defined(OPENSSL_BIG_ENDIAN) |
1116 | | return v; |
1117 | | #else |
1118 | 0 | #if defined(OPENSSL_64_BIT) |
1119 | 0 | assert(sizeof(v) == 8); |
1120 | 0 | return CRYPTO_bswap8(v); |
1121 | | #else |
1122 | | assert(sizeof(v) == 4); |
1123 | | return CRYPTO_bswap4(v); |
1124 | | #endif |
1125 | 0 | #endif |
1126 | 0 | } Unexecuted instantiation: convert.c:CRYPTO_load_word_be Unexecuted instantiation: cbb.c:CRYPTO_load_word_be Unexecuted instantiation: cbs.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: crypto.c:CRYPTO_load_word_be Unexecuted instantiation: cfb.c:CRYPTO_load_word_be Unexecuted instantiation: ec_asn1.c:CRYPTO_load_word_be Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_load_word_be Unexecuted instantiation: err.c:CRYPTO_load_word_be Unexecuted instantiation: evp_asn1.c:CRYPTO_load_word_be Unexecuted instantiation: p_methods.c:CRYPTO_load_word_be Unexecuted instantiation: p_pqdsa_asn1.c:CRYPTO_load_word_be Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_load_word_be Unexecuted instantiation: bcm.c:CRYPTO_load_word_be Unexecuted instantiation: kyber1024r3_ref.c:CRYPTO_load_word_be Unexecuted instantiation: kyber512r3_ref.c:CRYPTO_load_word_be Unexecuted instantiation: kyber768r3_ref.c:CRYPTO_load_word_be Unexecuted instantiation: mem.c:CRYPTO_load_word_be Unexecuted instantiation: obj.c:CRYPTO_load_word_be Unexecuted instantiation: obj_xref.c:CRYPTO_load_word_be Unexecuted instantiation: poly1305_vec.c:CRYPTO_load_word_be Unexecuted instantiation: urandom.c:CRYPTO_load_word_be Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.c:CRYPTO_load_word_be Unexecuted instantiation: stack.c:CRYPTO_load_word_be Unexecuted instantiation: thread_pthread.c:CRYPTO_load_word_be Unexecuted instantiation: fork_detect.c:CRYPTO_load_word_be Unexecuted instantiation: snapsafe_detect.c:CRYPTO_load_word_be Unexecuted instantiation: ube.c:CRYPTO_load_word_be Unexecuted instantiation: a_object.c:CRYPTO_load_word_be Unexecuted instantiation: posix_time.c:CRYPTO_load_word_be Unexecuted instantiation: bio.c:CRYPTO_load_word_be Unexecuted instantiation: file.c:CRYPTO_load_word_be Unexecuted instantiation: asn1_compat.c:CRYPTO_load_word_be Unexecuted instantiation: chacha.c:CRYPTO_load_word_be Unexecuted instantiation: console.c:CRYPTO_load_word_be Unexecuted instantiation: ripemd.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: engine.c:CRYPTO_load_word_be Unexecuted instantiation: p_dh_asn1.c:CRYPTO_load_word_be Unexecuted instantiation: p_dsa.c:CRYPTO_load_word_be Unexecuted instantiation: p_ec_asn1.c:CRYPTO_load_word_be Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_load_word_be Unexecuted instantiation: p_hmac_asn1.c:CRYPTO_load_word_be Unexecuted instantiation: p_kem_asn1.c:CRYPTO_load_word_be Unexecuted instantiation: print.c:CRYPTO_load_word_be Unexecuted instantiation: ex_data.c:CRYPTO_load_word_be Unexecuted instantiation: lhash.c:CRYPTO_load_word_be Unexecuted instantiation: blake2.c:CRYPTO_load_word_be Unexecuted instantiation: params.c:CRYPTO_load_word_be |
1127 | | |
1128 | | // Bit rotation functions. |
1129 | | // |
1130 | | // Note these functions use |(-shift) & 31|, etc., because shifting by the bit |
1131 | | // width is undefined. Both Clang and GCC recognize this pattern as a rotation, |
1132 | | // but MSVC does not. Instead, we call MSVC's built-in functions. |
1133 | | |
1134 | 0 | static inline uint32_t CRYPTO_rotl_u32(uint32_t value, int shift) { |
1135 | | #if defined(_MSC_VER) |
1136 | | return _rotl(value, shift); |
1137 | | #else |
1138 | 0 | return (value << shift) | (value >> ((-shift) & 31)); |
1139 | 0 | #endif |
1140 | 0 | } Unexecuted instantiation: convert.c:CRYPTO_rotl_u32 Unexecuted instantiation: cbb.c:CRYPTO_rotl_u32 Unexecuted instantiation: cbs.c:CRYPTO_rotl_u32 Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_rotl_u32 Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_rotl_u32 Unexecuted instantiation: crypto.c:CRYPTO_rotl_u32 Unexecuted instantiation: cfb.c:CRYPTO_rotl_u32 Unexecuted instantiation: ec_asn1.c:CRYPTO_rotl_u32 Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_rotl_u32 Unexecuted instantiation: err.c:CRYPTO_rotl_u32 Unexecuted instantiation: evp_asn1.c:CRYPTO_rotl_u32 Unexecuted instantiation: p_methods.c:CRYPTO_rotl_u32 Unexecuted instantiation: p_pqdsa_asn1.c:CRYPTO_rotl_u32 Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_rotl_u32 Unexecuted instantiation: bcm.c:CRYPTO_rotl_u32 Unexecuted instantiation: kyber1024r3_ref.c:CRYPTO_rotl_u32 Unexecuted instantiation: kyber512r3_ref.c:CRYPTO_rotl_u32 Unexecuted instantiation: kyber768r3_ref.c:CRYPTO_rotl_u32 Unexecuted instantiation: mem.c:CRYPTO_rotl_u32 Unexecuted instantiation: obj.c:CRYPTO_rotl_u32 Unexecuted instantiation: obj_xref.c:CRYPTO_rotl_u32 Unexecuted instantiation: poly1305_vec.c:CRYPTO_rotl_u32 Unexecuted instantiation: urandom.c:CRYPTO_rotl_u32 Unexecuted instantiation: refcount_c11.c:CRYPTO_rotl_u32 Unexecuted instantiation: rsa_asn1.c:CRYPTO_rotl_u32 Unexecuted instantiation: rsa_crypt.c:CRYPTO_rotl_u32 Unexecuted instantiation: rsassa_pss_asn1.c:CRYPTO_rotl_u32 Unexecuted instantiation: stack.c:CRYPTO_rotl_u32 Unexecuted instantiation: thread_pthread.c:CRYPTO_rotl_u32 Unexecuted instantiation: fork_detect.c:CRYPTO_rotl_u32 Unexecuted instantiation: snapsafe_detect.c:CRYPTO_rotl_u32 Unexecuted instantiation: ube.c:CRYPTO_rotl_u32 Unexecuted instantiation: a_object.c:CRYPTO_rotl_u32 Unexecuted instantiation: posix_time.c:CRYPTO_rotl_u32 Unexecuted instantiation: bio.c:CRYPTO_rotl_u32 Unexecuted instantiation: file.c:CRYPTO_rotl_u32 Unexecuted instantiation: asn1_compat.c:CRYPTO_rotl_u32 Unexecuted instantiation: chacha.c:CRYPTO_rotl_u32 Unexecuted instantiation: console.c:CRYPTO_rotl_u32 Unexecuted instantiation: ripemd.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: engine.c:CRYPTO_rotl_u32 Unexecuted instantiation: p_dh_asn1.c:CRYPTO_rotl_u32 Unexecuted instantiation: p_dsa.c:CRYPTO_rotl_u32 Unexecuted instantiation: p_ec_asn1.c:CRYPTO_rotl_u32 Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_rotl_u32 Unexecuted instantiation: p_hmac_asn1.c:CRYPTO_rotl_u32 Unexecuted instantiation: p_kem_asn1.c:CRYPTO_rotl_u32 Unexecuted instantiation: print.c:CRYPTO_rotl_u32 Unexecuted instantiation: ex_data.c:CRYPTO_rotl_u32 Unexecuted instantiation: lhash.c:CRYPTO_rotl_u32 Unexecuted instantiation: blake2.c:CRYPTO_rotl_u32 Unexecuted instantiation: params.c:CRYPTO_rotl_u32 |
1141 | | |
1142 | 0 | static inline uint32_t CRYPTO_rotr_u32(uint32_t value, int shift) { |
1143 | 0 | #if defined(_MSC_VER) |
1144 | 0 | return _rotr(value, shift); |
1145 | 0 | #else |
1146 | 0 | return (value >> shift) | (value << ((-shift) & 31)); |
1147 | 0 | #endif |
1148 | 0 | } Unexecuted instantiation: convert.c:CRYPTO_rotr_u32 Unexecuted instantiation: cbb.c:CRYPTO_rotr_u32 Unexecuted instantiation: cbs.c:CRYPTO_rotr_u32 Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_rotr_u32 Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_rotr_u32 Unexecuted instantiation: crypto.c:CRYPTO_rotr_u32 Unexecuted instantiation: cfb.c:CRYPTO_rotr_u32 Unexecuted instantiation: ec_asn1.c:CRYPTO_rotr_u32 Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_rotr_u32 Unexecuted instantiation: err.c:CRYPTO_rotr_u32 Unexecuted instantiation: evp_asn1.c:CRYPTO_rotr_u32 Unexecuted instantiation: p_methods.c:CRYPTO_rotr_u32 Unexecuted instantiation: p_pqdsa_asn1.c:CRYPTO_rotr_u32 Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_rotr_u32 Unexecuted instantiation: bcm.c:CRYPTO_rotr_u32 Unexecuted instantiation: kyber1024r3_ref.c:CRYPTO_rotr_u32 Unexecuted instantiation: kyber512r3_ref.c:CRYPTO_rotr_u32 Unexecuted instantiation: kyber768r3_ref.c:CRYPTO_rotr_u32 Unexecuted instantiation: mem.c:CRYPTO_rotr_u32 Unexecuted instantiation: obj.c:CRYPTO_rotr_u32 Unexecuted instantiation: obj_xref.c:CRYPTO_rotr_u32 Unexecuted instantiation: poly1305_vec.c:CRYPTO_rotr_u32 Unexecuted instantiation: urandom.c:CRYPTO_rotr_u32 Unexecuted instantiation: refcount_c11.c:CRYPTO_rotr_u32 Unexecuted instantiation: rsa_asn1.c:CRYPTO_rotr_u32 Unexecuted instantiation: rsa_crypt.c:CRYPTO_rotr_u32 Unexecuted instantiation: rsassa_pss_asn1.c:CRYPTO_rotr_u32 Unexecuted instantiation: stack.c:CRYPTO_rotr_u32 Unexecuted instantiation: thread_pthread.c:CRYPTO_rotr_u32 Unexecuted instantiation: fork_detect.c:CRYPTO_rotr_u32 Unexecuted instantiation: snapsafe_detect.c:CRYPTO_rotr_u32 Unexecuted instantiation: ube.c:CRYPTO_rotr_u32 Unexecuted instantiation: a_object.c:CRYPTO_rotr_u32 Unexecuted instantiation: posix_time.c:CRYPTO_rotr_u32 Unexecuted instantiation: bio.c:CRYPTO_rotr_u32 Unexecuted instantiation: file.c:CRYPTO_rotr_u32 Unexecuted instantiation: asn1_compat.c:CRYPTO_rotr_u32 Unexecuted instantiation: chacha.c:CRYPTO_rotr_u32 Unexecuted instantiation: console.c:CRYPTO_rotr_u32 Unexecuted instantiation: ripemd.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: engine.c:CRYPTO_rotr_u32 Unexecuted instantiation: p_dh_asn1.c:CRYPTO_rotr_u32 Unexecuted instantiation: p_dsa.c:CRYPTO_rotr_u32 Unexecuted instantiation: p_ec_asn1.c:CRYPTO_rotr_u32 Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_rotr_u32 Unexecuted instantiation: p_hmac_asn1.c:CRYPTO_rotr_u32 Unexecuted instantiation: p_kem_asn1.c:CRYPTO_rotr_u32 Unexecuted instantiation: print.c:CRYPTO_rotr_u32 Unexecuted instantiation: ex_data.c:CRYPTO_rotr_u32 Unexecuted instantiation: lhash.c:CRYPTO_rotr_u32 Unexecuted instantiation: blake2.c:CRYPTO_rotr_u32 Unexecuted instantiation: params.c:CRYPTO_rotr_u32 |
1149 | | |
1150 | 0 | static inline uint64_t CRYPTO_rotl_u64(uint64_t value, int shift) { |
1151 | 0 | #if defined(_MSC_VER) |
1152 | 0 | return _rotl64(value, shift); |
1153 | 0 | #else |
1154 | 0 | return (value << shift) | (value >> ((-shift) & 63)); |
1155 | 0 | #endif |
1156 | 0 | } Unexecuted instantiation: convert.c:CRYPTO_rotl_u64 Unexecuted instantiation: cbb.c:CRYPTO_rotl_u64 Unexecuted instantiation: cbs.c:CRYPTO_rotl_u64 Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_rotl_u64 Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_rotl_u64 Unexecuted instantiation: crypto.c:CRYPTO_rotl_u64 Unexecuted instantiation: cfb.c:CRYPTO_rotl_u64 Unexecuted instantiation: ec_asn1.c:CRYPTO_rotl_u64 Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_rotl_u64 Unexecuted instantiation: err.c:CRYPTO_rotl_u64 Unexecuted instantiation: evp_asn1.c:CRYPTO_rotl_u64 Unexecuted instantiation: p_methods.c:CRYPTO_rotl_u64 Unexecuted instantiation: p_pqdsa_asn1.c:CRYPTO_rotl_u64 Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_rotl_u64 Unexecuted instantiation: bcm.c:CRYPTO_rotl_u64 Unexecuted instantiation: kyber1024r3_ref.c:CRYPTO_rotl_u64 Unexecuted instantiation: kyber512r3_ref.c:CRYPTO_rotl_u64 Unexecuted instantiation: kyber768r3_ref.c:CRYPTO_rotl_u64 Unexecuted instantiation: mem.c:CRYPTO_rotl_u64 Unexecuted instantiation: obj.c:CRYPTO_rotl_u64 Unexecuted instantiation: obj_xref.c:CRYPTO_rotl_u64 Unexecuted instantiation: poly1305_vec.c:CRYPTO_rotl_u64 Unexecuted instantiation: urandom.c:CRYPTO_rotl_u64 Unexecuted instantiation: refcount_c11.c:CRYPTO_rotl_u64 Unexecuted instantiation: rsa_asn1.c:CRYPTO_rotl_u64 Unexecuted instantiation: rsa_crypt.c:CRYPTO_rotl_u64 Unexecuted instantiation: rsassa_pss_asn1.c:CRYPTO_rotl_u64 Unexecuted instantiation: stack.c:CRYPTO_rotl_u64 Unexecuted instantiation: thread_pthread.c:CRYPTO_rotl_u64 Unexecuted instantiation: fork_detect.c:CRYPTO_rotl_u64 Unexecuted instantiation: snapsafe_detect.c:CRYPTO_rotl_u64 Unexecuted instantiation: ube.c:CRYPTO_rotl_u64 Unexecuted instantiation: a_object.c:CRYPTO_rotl_u64 Unexecuted instantiation: posix_time.c:CRYPTO_rotl_u64 Unexecuted instantiation: bio.c:CRYPTO_rotl_u64 Unexecuted instantiation: file.c:CRYPTO_rotl_u64 Unexecuted instantiation: asn1_compat.c:CRYPTO_rotl_u64 Unexecuted instantiation: chacha.c:CRYPTO_rotl_u64 Unexecuted instantiation: console.c:CRYPTO_rotl_u64 Unexecuted instantiation: ripemd.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: engine.c:CRYPTO_rotl_u64 Unexecuted instantiation: p_dh_asn1.c:CRYPTO_rotl_u64 Unexecuted instantiation: p_dsa.c:CRYPTO_rotl_u64 Unexecuted instantiation: p_ec_asn1.c:CRYPTO_rotl_u64 Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_rotl_u64 Unexecuted instantiation: p_hmac_asn1.c:CRYPTO_rotl_u64 Unexecuted instantiation: p_kem_asn1.c:CRYPTO_rotl_u64 Unexecuted instantiation: print.c:CRYPTO_rotl_u64 Unexecuted instantiation: ex_data.c:CRYPTO_rotl_u64 Unexecuted instantiation: lhash.c:CRYPTO_rotl_u64 Unexecuted instantiation: blake2.c:CRYPTO_rotl_u64 Unexecuted instantiation: params.c:CRYPTO_rotl_u64 |
1157 | | |
1158 | 0 | static inline uint64_t CRYPTO_rotr_u64(uint64_t value, int shift) { |
1159 | | #if defined(_MSC_VER) |
1160 | | return _rotr64(value, shift); |
1161 | | #else |
1162 | 0 | return (value >> shift) | (value << ((-shift) & 63)); |
1163 | 0 | #endif |
1164 | 0 | } Unexecuted instantiation: convert.c:CRYPTO_rotr_u64 Unexecuted instantiation: cbb.c:CRYPTO_rotr_u64 Unexecuted instantiation: cbs.c:CRYPTO_rotr_u64 Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_rotr_u64 Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_rotr_u64 Unexecuted instantiation: crypto.c:CRYPTO_rotr_u64 Unexecuted instantiation: cfb.c:CRYPTO_rotr_u64 Unexecuted instantiation: ec_asn1.c:CRYPTO_rotr_u64 Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_rotr_u64 Unexecuted instantiation: err.c:CRYPTO_rotr_u64 Unexecuted instantiation: evp_asn1.c:CRYPTO_rotr_u64 Unexecuted instantiation: p_methods.c:CRYPTO_rotr_u64 Unexecuted instantiation: p_pqdsa_asn1.c:CRYPTO_rotr_u64 Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_rotr_u64 Unexecuted instantiation: bcm.c:CRYPTO_rotr_u64 Unexecuted instantiation: kyber1024r3_ref.c:CRYPTO_rotr_u64 Unexecuted instantiation: kyber512r3_ref.c:CRYPTO_rotr_u64 Unexecuted instantiation: kyber768r3_ref.c:CRYPTO_rotr_u64 Unexecuted instantiation: mem.c:CRYPTO_rotr_u64 Unexecuted instantiation: obj.c:CRYPTO_rotr_u64 Unexecuted instantiation: obj_xref.c:CRYPTO_rotr_u64 Unexecuted instantiation: poly1305_vec.c:CRYPTO_rotr_u64 Unexecuted instantiation: urandom.c:CRYPTO_rotr_u64 Unexecuted instantiation: refcount_c11.c:CRYPTO_rotr_u64 Unexecuted instantiation: rsa_asn1.c:CRYPTO_rotr_u64 Unexecuted instantiation: rsa_crypt.c:CRYPTO_rotr_u64 Unexecuted instantiation: rsassa_pss_asn1.c:CRYPTO_rotr_u64 Unexecuted instantiation: stack.c:CRYPTO_rotr_u64 Unexecuted instantiation: thread_pthread.c:CRYPTO_rotr_u64 Unexecuted instantiation: fork_detect.c:CRYPTO_rotr_u64 Unexecuted instantiation: snapsafe_detect.c:CRYPTO_rotr_u64 Unexecuted instantiation: ube.c:CRYPTO_rotr_u64 Unexecuted instantiation: a_object.c:CRYPTO_rotr_u64 Unexecuted instantiation: posix_time.c:CRYPTO_rotr_u64 Unexecuted instantiation: bio.c:CRYPTO_rotr_u64 Unexecuted instantiation: file.c:CRYPTO_rotr_u64 Unexecuted instantiation: asn1_compat.c:CRYPTO_rotr_u64 Unexecuted instantiation: chacha.c:CRYPTO_rotr_u64 Unexecuted instantiation: console.c:CRYPTO_rotr_u64 Unexecuted instantiation: ripemd.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: engine.c:CRYPTO_rotr_u64 Unexecuted instantiation: p_dh_asn1.c:CRYPTO_rotr_u64 Unexecuted instantiation: p_dsa.c:CRYPTO_rotr_u64 Unexecuted instantiation: p_ec_asn1.c:CRYPTO_rotr_u64 Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_rotr_u64 Unexecuted instantiation: p_hmac_asn1.c:CRYPTO_rotr_u64 Unexecuted instantiation: p_kem_asn1.c:CRYPTO_rotr_u64 Unexecuted instantiation: print.c:CRYPTO_rotr_u64 Unexecuted instantiation: ex_data.c:CRYPTO_rotr_u64 Unexecuted instantiation: lhash.c:CRYPTO_rotr_u64 Unexecuted instantiation: blake2.c:CRYPTO_rotr_u64 Unexecuted instantiation: params.c:CRYPTO_rotr_u64 |
1165 | | |
1166 | | |
1167 | | // Arithmetic functions. |
1168 | | |
1169 | | // The most efficient versions of these functions on GCC and Clang depend on C11 |
1170 | | // |_Generic|. If we ever need to call these from C++, we'll need to add a |
1171 | | // variant that uses C++ overloads instead. |
1172 | | #if !defined(__cplusplus) |
1173 | | |
1174 | | // CRYPTO_addc_* returns |x + y + carry|, and sets |*out_carry| to the carry |
1175 | | // bit. |carry| must be zero or one. |
1176 | | #if OPENSSL_HAS_BUILTIN(__builtin_addc) |
1177 | | |
1178 | | #define CRYPTO_GENERIC_ADDC(x, y, carry, out_carry) \ |
1179 | 0 | (_Generic((x), \ |
1180 | 0 | unsigned: __builtin_addc, \ |
1181 | 0 | unsigned long: __builtin_addcl, \ |
1182 | 0 | unsigned long long: __builtin_addcll))((x), (y), (carry), (out_carry)) |
1183 | | |
1184 | | static inline uint32_t CRYPTO_addc_u32(uint32_t x, uint32_t y, uint32_t carry, |
1185 | 0 | uint32_t *out_carry) { |
1186 | 0 | declassify_assert(carry <= 1); |
1187 | 0 | return CRYPTO_GENERIC_ADDC(x, y, carry, out_carry); |
1188 | 0 | } Unexecuted instantiation: convert.c:CRYPTO_addc_u32 Unexecuted instantiation: cbb.c:CRYPTO_addc_u32 Unexecuted instantiation: cbs.c:CRYPTO_addc_u32 Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_addc_u32 Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_addc_u32 Unexecuted instantiation: crypto.c:CRYPTO_addc_u32 Unexecuted instantiation: cfb.c:CRYPTO_addc_u32 Unexecuted instantiation: ec_asn1.c:CRYPTO_addc_u32 Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_addc_u32 Unexecuted instantiation: err.c:CRYPTO_addc_u32 Unexecuted instantiation: evp_asn1.c:CRYPTO_addc_u32 Unexecuted instantiation: p_methods.c:CRYPTO_addc_u32 Unexecuted instantiation: p_pqdsa_asn1.c:CRYPTO_addc_u32 Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_addc_u32 Unexecuted instantiation: bcm.c:CRYPTO_addc_u32 Unexecuted instantiation: kyber1024r3_ref.c:CRYPTO_addc_u32 Unexecuted instantiation: kyber512r3_ref.c:CRYPTO_addc_u32 Unexecuted instantiation: kyber768r3_ref.c:CRYPTO_addc_u32 Unexecuted instantiation: mem.c:CRYPTO_addc_u32 Unexecuted instantiation: obj.c:CRYPTO_addc_u32 Unexecuted instantiation: obj_xref.c:CRYPTO_addc_u32 Unexecuted instantiation: poly1305_vec.c:CRYPTO_addc_u32 Unexecuted instantiation: urandom.c:CRYPTO_addc_u32 Unexecuted instantiation: refcount_c11.c:CRYPTO_addc_u32 Unexecuted instantiation: rsa_asn1.c:CRYPTO_addc_u32 Unexecuted instantiation: rsa_crypt.c:CRYPTO_addc_u32 Unexecuted instantiation: rsassa_pss_asn1.c:CRYPTO_addc_u32 Unexecuted instantiation: stack.c:CRYPTO_addc_u32 Unexecuted instantiation: thread_pthread.c:CRYPTO_addc_u32 Unexecuted instantiation: fork_detect.c:CRYPTO_addc_u32 Unexecuted instantiation: snapsafe_detect.c:CRYPTO_addc_u32 Unexecuted instantiation: ube.c:CRYPTO_addc_u32 Unexecuted instantiation: a_object.c:CRYPTO_addc_u32 Unexecuted instantiation: posix_time.c:CRYPTO_addc_u32 Unexecuted instantiation: bio.c:CRYPTO_addc_u32 Unexecuted instantiation: file.c:CRYPTO_addc_u32 Unexecuted instantiation: asn1_compat.c:CRYPTO_addc_u32 Unexecuted instantiation: chacha.c:CRYPTO_addc_u32 Unexecuted instantiation: console.c:CRYPTO_addc_u32 Unexecuted instantiation: ripemd.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: engine.c:CRYPTO_addc_u32 Unexecuted instantiation: p_dh_asn1.c:CRYPTO_addc_u32 Unexecuted instantiation: p_dsa.c:CRYPTO_addc_u32 Unexecuted instantiation: p_ec_asn1.c:CRYPTO_addc_u32 Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_addc_u32 Unexecuted instantiation: p_hmac_asn1.c:CRYPTO_addc_u32 Unexecuted instantiation: p_kem_asn1.c:CRYPTO_addc_u32 Unexecuted instantiation: print.c:CRYPTO_addc_u32 Unexecuted instantiation: ex_data.c:CRYPTO_addc_u32 Unexecuted instantiation: lhash.c:CRYPTO_addc_u32 Unexecuted instantiation: blake2.c:CRYPTO_addc_u32 Unexecuted instantiation: params.c:CRYPTO_addc_u32 |
1189 | | |
1190 | | static inline uint64_t CRYPTO_addc_u64(uint64_t x, uint64_t y, uint64_t carry, |
1191 | 0 | uint64_t *out_carry) { |
1192 | 0 | declassify_assert(carry <= 1); |
1193 | 0 | return CRYPTO_GENERIC_ADDC(x, y, carry, out_carry); |
1194 | 0 | } Unexecuted instantiation: convert.c:CRYPTO_addc_u64 Unexecuted instantiation: cbb.c:CRYPTO_addc_u64 Unexecuted instantiation: cbs.c:CRYPTO_addc_u64 Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_addc_u64 Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_addc_u64 Unexecuted instantiation: crypto.c:CRYPTO_addc_u64 Unexecuted instantiation: cfb.c:CRYPTO_addc_u64 Unexecuted instantiation: ec_asn1.c:CRYPTO_addc_u64 Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_addc_u64 Unexecuted instantiation: err.c:CRYPTO_addc_u64 Unexecuted instantiation: evp_asn1.c:CRYPTO_addc_u64 Unexecuted instantiation: p_methods.c:CRYPTO_addc_u64 Unexecuted instantiation: p_pqdsa_asn1.c:CRYPTO_addc_u64 Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_addc_u64 Unexecuted instantiation: bcm.c:CRYPTO_addc_u64 Unexecuted instantiation: kyber1024r3_ref.c:CRYPTO_addc_u64 Unexecuted instantiation: kyber512r3_ref.c:CRYPTO_addc_u64 Unexecuted instantiation: kyber768r3_ref.c:CRYPTO_addc_u64 Unexecuted instantiation: mem.c:CRYPTO_addc_u64 Unexecuted instantiation: obj.c:CRYPTO_addc_u64 Unexecuted instantiation: obj_xref.c:CRYPTO_addc_u64 Unexecuted instantiation: poly1305_vec.c:CRYPTO_addc_u64 Unexecuted instantiation: urandom.c:CRYPTO_addc_u64 Unexecuted instantiation: refcount_c11.c:CRYPTO_addc_u64 Unexecuted instantiation: rsa_asn1.c:CRYPTO_addc_u64 Unexecuted instantiation: rsa_crypt.c:CRYPTO_addc_u64 Unexecuted instantiation: rsassa_pss_asn1.c:CRYPTO_addc_u64 Unexecuted instantiation: stack.c:CRYPTO_addc_u64 Unexecuted instantiation: thread_pthread.c:CRYPTO_addc_u64 Unexecuted instantiation: fork_detect.c:CRYPTO_addc_u64 Unexecuted instantiation: snapsafe_detect.c:CRYPTO_addc_u64 Unexecuted instantiation: ube.c:CRYPTO_addc_u64 Unexecuted instantiation: a_object.c:CRYPTO_addc_u64 Unexecuted instantiation: posix_time.c:CRYPTO_addc_u64 Unexecuted instantiation: bio.c:CRYPTO_addc_u64 Unexecuted instantiation: file.c:CRYPTO_addc_u64 Unexecuted instantiation: asn1_compat.c:CRYPTO_addc_u64 Unexecuted instantiation: chacha.c:CRYPTO_addc_u64 Unexecuted instantiation: console.c:CRYPTO_addc_u64 Unexecuted instantiation: ripemd.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: engine.c:CRYPTO_addc_u64 Unexecuted instantiation: p_dh_asn1.c:CRYPTO_addc_u64 Unexecuted instantiation: p_dsa.c:CRYPTO_addc_u64 Unexecuted instantiation: p_ec_asn1.c:CRYPTO_addc_u64 Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_addc_u64 Unexecuted instantiation: p_hmac_asn1.c:CRYPTO_addc_u64 Unexecuted instantiation: p_kem_asn1.c:CRYPTO_addc_u64 Unexecuted instantiation: print.c:CRYPTO_addc_u64 Unexecuted instantiation: ex_data.c:CRYPTO_addc_u64 Unexecuted instantiation: lhash.c:CRYPTO_addc_u64 Unexecuted instantiation: blake2.c:CRYPTO_addc_u64 Unexecuted instantiation: params.c:CRYPTO_addc_u64 |
1195 | | |
1196 | | #else |
1197 | | |
1198 | | static inline uint32_t CRYPTO_addc_u32(uint32_t x, uint32_t y, uint32_t carry, |
1199 | | uint32_t *out_carry) { |
1200 | | declassify_assert(carry <= 1); |
1201 | | uint64_t ret = carry; |
1202 | | ret += (uint64_t)x + y; |
1203 | | *out_carry = (uint32_t)(ret >> 32); |
1204 | | return (uint32_t)ret; |
1205 | | } |
1206 | | |
1207 | | static inline uint64_t CRYPTO_addc_u64(uint64_t x, uint64_t y, uint64_t carry, |
1208 | | uint64_t *out_carry) { |
1209 | | declassify_assert(carry <= 1); |
1210 | | #if defined(BORINGSSL_HAS_UINT128) |
1211 | | uint128_t ret = carry; |
1212 | | ret += (uint128_t)x + y; |
1213 | | *out_carry = (uint64_t)(ret >> 64); |
1214 | | return (uint64_t)ret; |
1215 | | #else |
1216 | | x += carry; |
1217 | | carry = x < carry; |
1218 | | uint64_t ret = x + y; |
1219 | | carry += ret < x; |
1220 | | *out_carry = carry; |
1221 | | return ret; |
1222 | | #endif |
1223 | | } |
1224 | | #endif |
1225 | | |
1226 | | // CRYPTO_subc_* returns |x - y - borrow|, and sets |*out_borrow| to the borrow |
1227 | | // bit. |borrow| must be zero or one. |
1228 | | #if OPENSSL_HAS_BUILTIN(__builtin_subc) |
1229 | | |
1230 | | #define CRYPTO_GENERIC_SUBC(x, y, borrow, out_borrow) \ |
1231 | 0 | (_Generic((x), \ |
1232 | 0 | unsigned: __builtin_subc, \ |
1233 | 0 | unsigned long: __builtin_subcl, \ |
1234 | 0 | unsigned long long: __builtin_subcll))((x), (y), (borrow), (out_borrow)) |
1235 | | |
1236 | | static inline uint32_t CRYPTO_subc_u32(uint32_t x, uint32_t y, uint32_t borrow, |
1237 | 0 | uint32_t *out_borrow) { |
1238 | 0 | declassify_assert(borrow <= 1); |
1239 | 0 | return CRYPTO_GENERIC_SUBC(x, y, borrow, out_borrow); |
1240 | 0 | } Unexecuted instantiation: convert.c:CRYPTO_subc_u32 Unexecuted instantiation: cbb.c:CRYPTO_subc_u32 Unexecuted instantiation: cbs.c:CRYPTO_subc_u32 Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_subc_u32 Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_subc_u32 Unexecuted instantiation: crypto.c:CRYPTO_subc_u32 Unexecuted instantiation: cfb.c:CRYPTO_subc_u32 Unexecuted instantiation: ec_asn1.c:CRYPTO_subc_u32 Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_subc_u32 Unexecuted instantiation: err.c:CRYPTO_subc_u32 Unexecuted instantiation: evp_asn1.c:CRYPTO_subc_u32 Unexecuted instantiation: p_methods.c:CRYPTO_subc_u32 Unexecuted instantiation: p_pqdsa_asn1.c:CRYPTO_subc_u32 Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_subc_u32 Unexecuted instantiation: bcm.c:CRYPTO_subc_u32 Unexecuted instantiation: kyber1024r3_ref.c:CRYPTO_subc_u32 Unexecuted instantiation: kyber512r3_ref.c:CRYPTO_subc_u32 Unexecuted instantiation: kyber768r3_ref.c:CRYPTO_subc_u32 Unexecuted instantiation: mem.c:CRYPTO_subc_u32 Unexecuted instantiation: obj.c:CRYPTO_subc_u32 Unexecuted instantiation: obj_xref.c:CRYPTO_subc_u32 Unexecuted instantiation: poly1305_vec.c:CRYPTO_subc_u32 Unexecuted instantiation: urandom.c:CRYPTO_subc_u32 Unexecuted instantiation: refcount_c11.c:CRYPTO_subc_u32 Unexecuted instantiation: rsa_asn1.c:CRYPTO_subc_u32 Unexecuted instantiation: rsa_crypt.c:CRYPTO_subc_u32 Unexecuted instantiation: rsassa_pss_asn1.c:CRYPTO_subc_u32 Unexecuted instantiation: stack.c:CRYPTO_subc_u32 Unexecuted instantiation: thread_pthread.c:CRYPTO_subc_u32 Unexecuted instantiation: fork_detect.c:CRYPTO_subc_u32 Unexecuted instantiation: snapsafe_detect.c:CRYPTO_subc_u32 Unexecuted instantiation: ube.c:CRYPTO_subc_u32 Unexecuted instantiation: a_object.c:CRYPTO_subc_u32 Unexecuted instantiation: posix_time.c:CRYPTO_subc_u32 Unexecuted instantiation: bio.c:CRYPTO_subc_u32 Unexecuted instantiation: file.c:CRYPTO_subc_u32 Unexecuted instantiation: asn1_compat.c:CRYPTO_subc_u32 Unexecuted instantiation: chacha.c:CRYPTO_subc_u32 Unexecuted instantiation: console.c:CRYPTO_subc_u32 Unexecuted instantiation: ripemd.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: engine.c:CRYPTO_subc_u32 Unexecuted instantiation: p_dh_asn1.c:CRYPTO_subc_u32 Unexecuted instantiation: p_dsa.c:CRYPTO_subc_u32 Unexecuted instantiation: p_ec_asn1.c:CRYPTO_subc_u32 Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_subc_u32 Unexecuted instantiation: p_hmac_asn1.c:CRYPTO_subc_u32 Unexecuted instantiation: p_kem_asn1.c:CRYPTO_subc_u32 Unexecuted instantiation: print.c:CRYPTO_subc_u32 Unexecuted instantiation: ex_data.c:CRYPTO_subc_u32 Unexecuted instantiation: lhash.c:CRYPTO_subc_u32 Unexecuted instantiation: blake2.c:CRYPTO_subc_u32 Unexecuted instantiation: params.c:CRYPTO_subc_u32 |
1241 | | |
1242 | | static inline uint64_t CRYPTO_subc_u64(uint64_t x, uint64_t y, uint64_t borrow, |
1243 | 0 | uint64_t *out_borrow) { |
1244 | 0 | declassify_assert(borrow <= 1); |
1245 | 0 | return CRYPTO_GENERIC_SUBC(x, y, borrow, out_borrow); |
1246 | 0 | } Unexecuted instantiation: convert.c:CRYPTO_subc_u64 Unexecuted instantiation: cbb.c:CRYPTO_subc_u64 Unexecuted instantiation: cbs.c:CRYPTO_subc_u64 Unexecuted instantiation: e_aesgcmsiv.c:CRYPTO_subc_u64 Unexecuted instantiation: e_chacha20poly1305.c:CRYPTO_subc_u64 Unexecuted instantiation: crypto.c:CRYPTO_subc_u64 Unexecuted instantiation: cfb.c:CRYPTO_subc_u64 Unexecuted instantiation: ec_asn1.c:CRYPTO_subc_u64 Unexecuted instantiation: ecdsa_asn1.c:CRYPTO_subc_u64 Unexecuted instantiation: err.c:CRYPTO_subc_u64 Unexecuted instantiation: evp_asn1.c:CRYPTO_subc_u64 Unexecuted instantiation: p_methods.c:CRYPTO_subc_u64 Unexecuted instantiation: p_pqdsa_asn1.c:CRYPTO_subc_u64 Unexecuted instantiation: p_x25519_asn1.c:CRYPTO_subc_u64 Unexecuted instantiation: bcm.c:CRYPTO_subc_u64 Unexecuted instantiation: kyber1024r3_ref.c:CRYPTO_subc_u64 Unexecuted instantiation: kyber512r3_ref.c:CRYPTO_subc_u64 Unexecuted instantiation: kyber768r3_ref.c:CRYPTO_subc_u64 Unexecuted instantiation: mem.c:CRYPTO_subc_u64 Unexecuted instantiation: obj.c:CRYPTO_subc_u64 Unexecuted instantiation: obj_xref.c:CRYPTO_subc_u64 Unexecuted instantiation: poly1305_vec.c:CRYPTO_subc_u64 Unexecuted instantiation: urandom.c:CRYPTO_subc_u64 Unexecuted instantiation: refcount_c11.c:CRYPTO_subc_u64 Unexecuted instantiation: rsa_asn1.c:CRYPTO_subc_u64 Unexecuted instantiation: rsa_crypt.c:CRYPTO_subc_u64 Unexecuted instantiation: rsassa_pss_asn1.c:CRYPTO_subc_u64 Unexecuted instantiation: stack.c:CRYPTO_subc_u64 Unexecuted instantiation: thread_pthread.c:CRYPTO_subc_u64 Unexecuted instantiation: fork_detect.c:CRYPTO_subc_u64 Unexecuted instantiation: snapsafe_detect.c:CRYPTO_subc_u64 Unexecuted instantiation: ube.c:CRYPTO_subc_u64 Unexecuted instantiation: a_object.c:CRYPTO_subc_u64 Unexecuted instantiation: posix_time.c:CRYPTO_subc_u64 Unexecuted instantiation: bio.c:CRYPTO_subc_u64 Unexecuted instantiation: file.c:CRYPTO_subc_u64 Unexecuted instantiation: asn1_compat.c:CRYPTO_subc_u64 Unexecuted instantiation: chacha.c:CRYPTO_subc_u64 Unexecuted instantiation: console.c:CRYPTO_subc_u64 Unexecuted instantiation: ripemd.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: engine.c:CRYPTO_subc_u64 Unexecuted instantiation: p_dh_asn1.c:CRYPTO_subc_u64 Unexecuted instantiation: p_dsa.c:CRYPTO_subc_u64 Unexecuted instantiation: p_ec_asn1.c:CRYPTO_subc_u64 Unexecuted instantiation: p_ed25519_asn1.c:CRYPTO_subc_u64 Unexecuted instantiation: p_hmac_asn1.c:CRYPTO_subc_u64 Unexecuted instantiation: p_kem_asn1.c:CRYPTO_subc_u64 Unexecuted instantiation: print.c:CRYPTO_subc_u64 Unexecuted instantiation: ex_data.c:CRYPTO_subc_u64 Unexecuted instantiation: lhash.c:CRYPTO_subc_u64 Unexecuted instantiation: blake2.c:CRYPTO_subc_u64 Unexecuted instantiation: params.c:CRYPTO_subc_u64 |
1247 | | |
1248 | | #else |
1249 | | |
1250 | | static inline uint32_t CRYPTO_subc_u32(uint32_t x, uint32_t y, uint32_t borrow, |
1251 | | uint32_t *out_borrow) { |
1252 | | declassify_assert(borrow <= 1); |
1253 | | uint32_t ret = x - y - borrow; |
1254 | | *out_borrow = (x < y) | ((x == y) & borrow); |
1255 | | return ret; |
1256 | | } |
1257 | | |
1258 | | static inline uint64_t CRYPTO_subc_u64(uint64_t x, uint64_t y, uint64_t borrow, |
1259 | | uint64_t *out_borrow) { |
1260 | | declassify_assert(borrow <= 1); |
1261 | | uint64_t ret = x - y - borrow; |
1262 | | *out_borrow = (x < y) | ((x == y) & borrow); |
1263 | | return ret; |
1264 | | } |
1265 | | #endif |
1266 | | |
1267 | | #if defined(OPENSSL_64_BIT) |
1268 | 0 | #define CRYPTO_addc_w CRYPTO_addc_u64 |
1269 | 0 | #define CRYPTO_subc_w CRYPTO_subc_u64 |
1270 | | #else |
1271 | | #define CRYPTO_addc_w CRYPTO_addc_u32 |
1272 | | #define CRYPTO_subc_w CRYPTO_subc_u32 |
1273 | | #endif |
1274 | | |
1275 | | #endif // !__cplusplus |
1276 | | |
1277 | | |
1278 | | // FIPS functions. |
1279 | | |
1280 | | #if defined(BORINGSSL_FIPS) |
1281 | | |
1282 | | // AWS_LC_FIPS_failure is called when a FIPS power-on or continuous test |
1283 | | // fails. The behavior depends on how AWS-LC is built: |
1284 | | // - When AWS-LC is not in FIPS mode it prints |message| to |stderr|. |
1285 | | // - If AWS-LC is built with FIPS it prints |message| to |stderr| and prevents |
1286 | | // any further cryptographic operations by the current process. |
1287 | | // - If AWS-LC is built with FIPS, AWSLC_FIPS_FAILURE_CALLBACK, and the |
1288 | | // application does not define the AWS_LC_fips_failure_callback function |
1289 | | // the normal behavior FIPS behavior is used. |
1290 | | // - If AWS-LC is built with FIPS, AWSLC_FIPS_FAILURE_CALLBACK, and the |
1291 | | // application defines the AWS_LC_fips_failure_callback function that |
1292 | | // function is called with |message|. |
1293 | | #if defined(AWSLC_FIPS_FAILURE_CALLBACK) |
1294 | | void AWS_LC_FIPS_failure(const char* message); |
1295 | | #else |
1296 | | #if defined(_MSC_VER) |
1297 | | __declspec(noreturn) void AWS_LC_FIPS_failure(const char* message); |
1298 | | #else |
1299 | | void AWS_LC_FIPS_failure(const char* message) __attribute__((noreturn)); |
1300 | | #endif |
1301 | | #endif |
1302 | | // boringssl_self_test_startup runs all startup self tests and returns one on |
1303 | | // success or zero on error. Startup self tests do not include lazy tests. |
1304 | | // Call |BORINGSSL_self_test| to run every self test. |
1305 | | int boringssl_self_test_startup(void); |
1306 | | |
1307 | | // boringssl_ensure_rsa_self_test checks whether the RSA self-test has been run |
1308 | | // in this address space. If not, it runs it and crashes the address space if |
1309 | | // unsuccessful. |
1310 | | void boringssl_ensure_rsa_self_test(void); |
1311 | | |
1312 | | // boringssl_ensure_ecc_self_test checks whether the ECDSA and ECDH self-test |
1313 | | // has been run in this address space. If not, it runs it and crashes the |
1314 | | // address space if unsuccessful. |
1315 | | void boringssl_ensure_ecc_self_test(void); |
1316 | | |
1317 | | // boringssl_ensure_ffdh_self_test checks whether the FFDH self-test has been |
1318 | | // run in this address space. If not, it runs it and crashes the address space |
1319 | | // if unsuccessful. |
1320 | | void boringssl_ensure_ffdh_self_test(void); |
1321 | | |
1322 | | // boringssl_ensure_ml_kem_self_test checks whether the ML-KEM self-test |
1323 | | // has been run in this address space. If not, it runs it and crashes the |
1324 | | // address space if unsuccessful. |
1325 | | void boringssl_ensure_ml_kem_self_test(void); |
1326 | | |
1327 | | // boringssl_ensure_ml_dsa_self_test checks whether the ML-DSA self-test |
1328 | | // has been run in this address space. If not, it runs it and crashes the |
1329 | | // address space if unsuccessful. |
1330 | | void boringssl_ensure_ml_dsa_self_test(void); |
1331 | | |
1332 | | // boringssl_ensure_eddsa_self_test checks whether the EdDSA self-test |
1333 | | // has been run in this address space. If not, it runs it and crashes the |
1334 | | // address space if unsuccessful. |
1335 | | void boringssl_ensure_eddsa_self_test(void); |
1336 | | |
1337 | | // boringssl_ensure_hasheddsa_self_test checks whether the HashEdDSA self-test |
1338 | | // has been run in this address space. If not, it runs it and crashes the |
1339 | | // address space if unsuccessful. |
1340 | | void boringssl_ensure_hasheddsa_self_test(void); |
1341 | | |
1342 | | #else |
1343 | | |
1344 | | // Outside of FIPS mode, the lazy tests are no-ops. |
1345 | | |
1346 | 0 | OPENSSL_INLINE void boringssl_ensure_rsa_self_test(void) {}Unexecuted instantiation: convert.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: e_aesgcmsiv.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: e_chacha20poly1305.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: crypto.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: cfb.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: ec_asn1.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: ecdsa_asn1.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: err.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: evp_asn1.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: p_methods.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: p_pqdsa_asn1.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: p_x25519_asn1.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: bcm.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: kyber1024r3_ref.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: kyber512r3_ref.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: kyber768r3_ref.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: obj_xref.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: poly1305_vec.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: urandom.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.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: fork_detect.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: snapsafe_detect.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: ube.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: a_object.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: posix_time.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: bio.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: file.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: asn1_compat.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: chacha.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: console.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: ripemd.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: engine.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: p_dh_asn1.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: p_dsa.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: p_ec_asn1.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: p_ed25519_asn1.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: p_hmac_asn1.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: p_kem_asn1.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: print.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: ex_data.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: lhash.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: blake2.c:boringssl_ensure_rsa_self_test Unexecuted instantiation: params.c:boringssl_ensure_rsa_self_test |
1347 | 0 | OPENSSL_INLINE void boringssl_ensure_ecc_self_test(void) {}Unexecuted instantiation: convert.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: cbb.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: cbs.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: crypto.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: cfb.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: ec_asn1.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: ecdsa_asn1.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: err.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: evp_asn1.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: p_methods.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: p_pqdsa_asn1.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: p_x25519_asn1.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: bcm.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: kyber1024r3_ref.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: kyber512r3_ref.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: kyber768r3_ref.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: obj_xref.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: poly1305_vec.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: urandom.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.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: fork_detect.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: snapsafe_detect.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: ube.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: a_object.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: posix_time.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: bio.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: file.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: asn1_compat.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: chacha.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: console.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: ripemd.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: engine.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: p_dh_asn1.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: p_dsa.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: p_ec_asn1.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: p_ed25519_asn1.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: p_hmac_asn1.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: p_kem_asn1.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: print.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: ex_data.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: lhash.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: blake2.c:boringssl_ensure_ecc_self_test Unexecuted instantiation: params.c:boringssl_ensure_ecc_self_test |
1348 | 0 | OPENSSL_INLINE void boringssl_ensure_ffdh_self_test(void) {}Unexecuted instantiation: convert.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: cbb.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: cbs.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: crypto.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: cfb.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: ec_asn1.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: ecdsa_asn1.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: err.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: evp_asn1.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: p_methods.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: p_pqdsa_asn1.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: p_x25519_asn1.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: bcm.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: kyber1024r3_ref.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: kyber512r3_ref.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: kyber768r3_ref.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: obj_xref.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: poly1305_vec.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: urandom.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.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: fork_detect.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: snapsafe_detect.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: ube.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: a_object.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: posix_time.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: bio.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: file.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: asn1_compat.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: chacha.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: console.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: ripemd.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: engine.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: p_dh_asn1.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: p_dsa.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: p_ec_asn1.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: p_ed25519_asn1.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: p_hmac_asn1.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: p_kem_asn1.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: print.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: ex_data.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: lhash.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: blake2.c:boringssl_ensure_ffdh_self_test Unexecuted instantiation: params.c:boringssl_ensure_ffdh_self_test |
1349 | 0 | OPENSSL_INLINE void boringssl_ensure_ml_kem_self_test(void) {}Unexecuted instantiation: convert.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: cbb.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: cbs.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: e_aesgcmsiv.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: e_chacha20poly1305.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: crypto.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: cfb.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: ec_asn1.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: ecdsa_asn1.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: err.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: evp_asn1.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: p_methods.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: p_pqdsa_asn1.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: p_x25519_asn1.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: bcm.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: kyber1024r3_ref.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: kyber512r3_ref.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: kyber768r3_ref.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: mem.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: obj.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: obj_xref.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: poly1305_vec.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: urandom.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: refcount_c11.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: rsa_asn1.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: rsa_crypt.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: rsassa_pss_asn1.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: stack.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: thread_pthread.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: fork_detect.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: snapsafe_detect.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: ube.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: a_object.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: posix_time.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: bio.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: file.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: asn1_compat.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: chacha.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: console.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: ripemd.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: digest_extra.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: dsa.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: dsa_asn1.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: engine.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: p_dh_asn1.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: p_dsa.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: p_ec_asn1.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: p_ed25519_asn1.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: p_hmac_asn1.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: p_kem_asn1.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: print.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: ex_data.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: lhash.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: blake2.c:boringssl_ensure_ml_kem_self_test Unexecuted instantiation: params.c:boringssl_ensure_ml_kem_self_test |
1350 | 0 | OPENSSL_INLINE void boringssl_ensure_ml_dsa_self_test(void) {}Unexecuted instantiation: convert.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: cbb.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: cbs.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: e_aesgcmsiv.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: e_chacha20poly1305.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: crypto.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: cfb.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: ec_asn1.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: ecdsa_asn1.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: err.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: evp_asn1.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: p_methods.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: p_pqdsa_asn1.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: p_x25519_asn1.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: bcm.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: kyber1024r3_ref.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: kyber512r3_ref.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: kyber768r3_ref.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: mem.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: obj.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: obj_xref.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: poly1305_vec.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: urandom.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: refcount_c11.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: rsa_asn1.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: rsa_crypt.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: rsassa_pss_asn1.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: stack.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: thread_pthread.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: fork_detect.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: snapsafe_detect.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: ube.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: a_object.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: posix_time.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: bio.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: file.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: asn1_compat.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: chacha.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: console.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: ripemd.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: digest_extra.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: dsa.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: dsa_asn1.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: engine.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: p_dh_asn1.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: p_dsa.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: p_ec_asn1.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: p_ed25519_asn1.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: p_hmac_asn1.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: p_kem_asn1.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: print.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: ex_data.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: lhash.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: blake2.c:boringssl_ensure_ml_dsa_self_test Unexecuted instantiation: params.c:boringssl_ensure_ml_dsa_self_test |
1351 | 0 | OPENSSL_INLINE void boringssl_ensure_eddsa_self_test(void) {}Unexecuted instantiation: convert.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: cbb.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: cbs.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: e_aesgcmsiv.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: e_chacha20poly1305.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: crypto.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: cfb.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: ec_asn1.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: ecdsa_asn1.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: err.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: evp_asn1.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: p_methods.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: p_pqdsa_asn1.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: p_x25519_asn1.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: bcm.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: kyber1024r3_ref.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: kyber512r3_ref.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: kyber768r3_ref.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: mem.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: obj.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: obj_xref.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: poly1305_vec.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: urandom.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: refcount_c11.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: rsa_asn1.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: rsa_crypt.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: rsassa_pss_asn1.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: stack.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: thread_pthread.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: fork_detect.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: snapsafe_detect.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: ube.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: a_object.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: posix_time.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: bio.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: file.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: asn1_compat.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: chacha.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: console.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: ripemd.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: digest_extra.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: dsa.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: dsa_asn1.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: engine.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: p_dh_asn1.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: p_dsa.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: p_ec_asn1.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: p_ed25519_asn1.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: p_hmac_asn1.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: p_kem_asn1.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: print.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: ex_data.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: lhash.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: blake2.c:boringssl_ensure_eddsa_self_test Unexecuted instantiation: params.c:boringssl_ensure_eddsa_self_test |
1352 | 0 | OPENSSL_INLINE void boringssl_ensure_hasheddsa_self_test(void) {}Unexecuted instantiation: convert.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: cbb.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: cbs.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: e_aesgcmsiv.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: e_chacha20poly1305.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: crypto.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: cfb.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: ec_asn1.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: ecdsa_asn1.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: err.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: evp_asn1.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: p_methods.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: p_pqdsa_asn1.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: p_x25519_asn1.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: bcm.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: kyber1024r3_ref.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: kyber512r3_ref.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: kyber768r3_ref.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: mem.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: obj.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: obj_xref.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: poly1305_vec.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: urandom.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: refcount_c11.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: rsa_asn1.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: rsa_crypt.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: rsassa_pss_asn1.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: stack.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: thread_pthread.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: fork_detect.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: snapsafe_detect.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: ube.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: a_object.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: posix_time.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: bio.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: file.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: asn1_compat.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: chacha.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: console.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: ripemd.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: digest_extra.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: dsa.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: dsa_asn1.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: engine.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: p_dh_asn1.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: p_dsa.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: p_ec_asn1.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: p_ed25519_asn1.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: p_hmac_asn1.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: p_kem_asn1.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: print.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: ex_data.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: lhash.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: blake2.c:boringssl_ensure_hasheddsa_self_test Unexecuted instantiation: params.c:boringssl_ensure_hasheddsa_self_test |
1353 | | |
1354 | | // Outside of FIPS mode AWS_LC_FIPS_failure simply logs the message to stderr |
1355 | | void AWS_LC_FIPS_failure(const char* message); |
1356 | | |
1357 | | #endif // FIPS |
1358 | | |
1359 | | // boringssl_self_test_sha256 performs a SHA-256 KAT |
1360 | | int boringssl_self_test_sha256(void); |
1361 | | |
1362 | | // boringssl_self_test_hmac_sha256 performs an HMAC-SHA-256 KAT |
1363 | | int boringssl_self_test_hmac_sha256(void); |
1364 | | |
1365 | | #if defined(BORINGSSL_FIPS_COUNTERS) |
1366 | | void boringssl_fips_inc_counter(enum fips_counter_t counter); |
1367 | | #else |
1368 | 0 | OPENSSL_INLINE void boringssl_fips_inc_counter(enum fips_counter_t counter) {}Unexecuted instantiation: convert.c:boringssl_fips_inc_counter Unexecuted instantiation: cbb.c:boringssl_fips_inc_counter Unexecuted instantiation: cbs.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: crypto.c:boringssl_fips_inc_counter Unexecuted instantiation: cfb.c:boringssl_fips_inc_counter Unexecuted instantiation: ec_asn1.c:boringssl_fips_inc_counter Unexecuted instantiation: ecdsa_asn1.c:boringssl_fips_inc_counter Unexecuted instantiation: err.c:boringssl_fips_inc_counter Unexecuted instantiation: evp_asn1.c:boringssl_fips_inc_counter Unexecuted instantiation: p_methods.c:boringssl_fips_inc_counter Unexecuted instantiation: p_pqdsa_asn1.c:boringssl_fips_inc_counter Unexecuted instantiation: p_x25519_asn1.c:boringssl_fips_inc_counter Unexecuted instantiation: bcm.c:boringssl_fips_inc_counter Unexecuted instantiation: kyber1024r3_ref.c:boringssl_fips_inc_counter Unexecuted instantiation: kyber512r3_ref.c:boringssl_fips_inc_counter Unexecuted instantiation: kyber768r3_ref.c:boringssl_fips_inc_counter Unexecuted instantiation: mem.c:boringssl_fips_inc_counter Unexecuted instantiation: obj.c:boringssl_fips_inc_counter Unexecuted instantiation: obj_xref.c:boringssl_fips_inc_counter Unexecuted instantiation: poly1305_vec.c:boringssl_fips_inc_counter Unexecuted instantiation: urandom.c:boringssl_fips_inc_counter Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.c:boringssl_fips_inc_counter Unexecuted instantiation: stack.c:boringssl_fips_inc_counter Unexecuted instantiation: thread_pthread.c:boringssl_fips_inc_counter Unexecuted instantiation: fork_detect.c:boringssl_fips_inc_counter Unexecuted instantiation: snapsafe_detect.c:boringssl_fips_inc_counter Unexecuted instantiation: ube.c:boringssl_fips_inc_counter Unexecuted instantiation: a_object.c:boringssl_fips_inc_counter Unexecuted instantiation: posix_time.c:boringssl_fips_inc_counter Unexecuted instantiation: bio.c:boringssl_fips_inc_counter Unexecuted instantiation: file.c:boringssl_fips_inc_counter Unexecuted instantiation: asn1_compat.c:boringssl_fips_inc_counter Unexecuted instantiation: chacha.c:boringssl_fips_inc_counter Unexecuted instantiation: console.c:boringssl_fips_inc_counter Unexecuted instantiation: ripemd.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: engine.c:boringssl_fips_inc_counter Unexecuted instantiation: p_dh_asn1.c:boringssl_fips_inc_counter Unexecuted instantiation: p_dsa.c:boringssl_fips_inc_counter Unexecuted instantiation: p_ec_asn1.c:boringssl_fips_inc_counter Unexecuted instantiation: p_ed25519_asn1.c:boringssl_fips_inc_counter Unexecuted instantiation: p_hmac_asn1.c:boringssl_fips_inc_counter Unexecuted instantiation: p_kem_asn1.c:boringssl_fips_inc_counter Unexecuted instantiation: print.c:boringssl_fips_inc_counter Unexecuted instantiation: ex_data.c:boringssl_fips_inc_counter Unexecuted instantiation: lhash.c:boringssl_fips_inc_counter Unexecuted instantiation: blake2.c:boringssl_fips_inc_counter Unexecuted instantiation: params.c:boringssl_fips_inc_counter |
1369 | | #endif |
1370 | | |
1371 | | #if defined(BORINGSSL_FIPS_BREAK_TESTS) |
1372 | | OPENSSL_INLINE int boringssl_fips_break_test(const char *test) { |
1373 | | const char *const value = getenv("BORINGSSL_FIPS_BREAK_TEST"); |
1374 | | return value != NULL && strcmp(value, test) == 0; |
1375 | | } |
1376 | | #else |
1377 | 0 | OPENSSL_INLINE int boringssl_fips_break_test(const char *test) { |
1378 | 0 | return 0; |
1379 | 0 | } Unexecuted instantiation: convert.c:boringssl_fips_break_test Unexecuted instantiation: cbb.c:boringssl_fips_break_test Unexecuted instantiation: cbs.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: crypto.c:boringssl_fips_break_test Unexecuted instantiation: cfb.c:boringssl_fips_break_test Unexecuted instantiation: ec_asn1.c:boringssl_fips_break_test Unexecuted instantiation: ecdsa_asn1.c:boringssl_fips_break_test Unexecuted instantiation: err.c:boringssl_fips_break_test Unexecuted instantiation: evp_asn1.c:boringssl_fips_break_test Unexecuted instantiation: p_methods.c:boringssl_fips_break_test Unexecuted instantiation: p_pqdsa_asn1.c:boringssl_fips_break_test Unexecuted instantiation: p_x25519_asn1.c:boringssl_fips_break_test Unexecuted instantiation: bcm.c:boringssl_fips_break_test Unexecuted instantiation: kyber1024r3_ref.c:boringssl_fips_break_test Unexecuted instantiation: kyber512r3_ref.c:boringssl_fips_break_test Unexecuted instantiation: kyber768r3_ref.c:boringssl_fips_break_test Unexecuted instantiation: mem.c:boringssl_fips_break_test Unexecuted instantiation: obj.c:boringssl_fips_break_test Unexecuted instantiation: obj_xref.c:boringssl_fips_break_test Unexecuted instantiation: poly1305_vec.c:boringssl_fips_break_test Unexecuted instantiation: urandom.c:boringssl_fips_break_test Unexecuted instantiation: refcount_c11.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: rsassa_pss_asn1.c:boringssl_fips_break_test Unexecuted instantiation: stack.c:boringssl_fips_break_test Unexecuted instantiation: thread_pthread.c:boringssl_fips_break_test Unexecuted instantiation: fork_detect.c:boringssl_fips_break_test Unexecuted instantiation: snapsafe_detect.c:boringssl_fips_break_test Unexecuted instantiation: ube.c:boringssl_fips_break_test Unexecuted instantiation: a_object.c:boringssl_fips_break_test Unexecuted instantiation: posix_time.c:boringssl_fips_break_test Unexecuted instantiation: bio.c:boringssl_fips_break_test Unexecuted instantiation: file.c:boringssl_fips_break_test Unexecuted instantiation: asn1_compat.c:boringssl_fips_break_test Unexecuted instantiation: chacha.c:boringssl_fips_break_test Unexecuted instantiation: console.c:boringssl_fips_break_test Unexecuted instantiation: ripemd.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: engine.c:boringssl_fips_break_test Unexecuted instantiation: p_dh_asn1.c:boringssl_fips_break_test Unexecuted instantiation: p_dsa.c:boringssl_fips_break_test Unexecuted instantiation: p_ec_asn1.c:boringssl_fips_break_test Unexecuted instantiation: p_ed25519_asn1.c:boringssl_fips_break_test Unexecuted instantiation: p_hmac_asn1.c:boringssl_fips_break_test Unexecuted instantiation: p_kem_asn1.c:boringssl_fips_break_test Unexecuted instantiation: print.c:boringssl_fips_break_test Unexecuted instantiation: ex_data.c:boringssl_fips_break_test Unexecuted instantiation: lhash.c:boringssl_fips_break_test Unexecuted instantiation: blake2.c:boringssl_fips_break_test Unexecuted instantiation: params.c:boringssl_fips_break_test |
1380 | | #endif // BORINGSSL_FIPS_BREAK_TESTS |
1381 | | |
1382 | | #if defined(BORINGSSL_DISPATCH_TEST) |
1383 | | // Runtime CPU dispatch testing support |
1384 | | |
1385 | | // BORINGSSL_function_hit is an array of flags. The following functions will |
1386 | | // set these flags if BORINGSSL_DISPATCH_TEST is defined. |
1387 | | // On x86 and x86_64: |
1388 | | // 0: aes_hw_ctr32_encrypt_blocks |
1389 | | // 1: aes_hw_encrypt |
1390 | | // 2: aesni_gcm_encrypt |
1391 | | // 3: aes_hw_set_encrypt_key |
1392 | | // 4: vpaes_encrypt |
1393 | | // 5: vpaes_set_encrypt_key |
1394 | | // 6: sha256_block_data_order_shaext |
1395 | | // 7: aes_gcm_encrypt_avx512 |
1396 | | // 8: RSAZ_mod_exp_avx512_x2 |
1397 | | // On AARCH64: |
1398 | | // 0: aes_hw_ctr32_encrypt_blocks |
1399 | | // 1: aes_hw_encrypt |
1400 | | // 2: aes_gcm_enc_kernel |
1401 | | // 3: aes_hw_set_encrypt_key |
1402 | | // 4: vpaes_encrypt |
1403 | | // 5: vpaes_set_encrypt_key |
1404 | | // 6: sha256_block_armv8 |
1405 | | // 7: aesv8_gcm_8x_enc_128 |
1406 | | // 8: sha512_block_armv8 |
1407 | | // 9: KeccakF1600_hw |
1408 | | // 10: sha3_keccak_f1600 |
1409 | | // 11: sha3_keccak_f1600_alt |
1410 | | // 12: sha3_keccak2_f1600 |
1411 | | // 13: sha3_keccak4_f1600_alt |
1412 | | // 14: sha3_keccak4_f1600_alt2 |
1413 | | extern uint8_t BORINGSSL_function_hit[15]; |
1414 | | #endif // BORINGSSL_DISPATCH_TEST |
1415 | | |
1416 | | #if !defined(AWSLC_FIPS) && !defined(BORINGSSL_SHARED_LIBRARY) |
1417 | | // This function is defined in |bcm.c|, see the comment therein for explanation. |
1418 | | void dummy_func_for_constructor(void); |
1419 | | #endif |
1420 | | // OPENSSL_vasprintf_internal is just like |vasprintf(3)|. If |system_malloc| is |
1421 | | // 0, memory will be allocated with |OPENSSL_malloc| and must be freed with |
1422 | | // |OPENSSL_free|. Otherwise the system |malloc| function is used and the memory |
1423 | | // must be freed with the system |free| function. |
1424 | | OPENSSL_EXPORT int OPENSSL_vasprintf_internal(char **str, const char *format, |
1425 | | va_list args, int system_malloc) |
1426 | | OPENSSL_PRINTF_FORMAT_FUNC(2, 0); |
1427 | | |
1428 | | |
1429 | | // Experimental safety macros inspired by s2n-tls. |
1430 | | |
1431 | | // If |cond| is false |action| is invoked, otherwise nothing happens. |
1432 | | #define __AWS_LC_ENSURE(cond, action) \ |
1433 | 0 | do { \ |
1434 | 0 | if (!(cond)) { \ |
1435 | 0 | action; \ |
1436 | 0 | } \ |
1437 | 0 | } while (0) |
1438 | | |
1439 | | #define AWS_LC_ERROR 0 |
1440 | | #define AWS_LC_SUCCESS 1 |
1441 | | |
1442 | | // GUARD_PTR checks |ptr|: if it is NULL it adds |ERR_R_PASSED_NULL_PARAMETER| |
1443 | | // to the error queue and returns 0, if it is not NULL nothing happens. |
1444 | | // |
1445 | | // NOTE: this macro should only be used with functions that return 0 (for error) |
1446 | | // and 1 (for success). |
1447 | 0 | #define GUARD_PTR(ptr) __AWS_LC_ENSURE((ptr) != NULL, OPENSSL_PUT_ERROR(CRYPTO, ERR_R_PASSED_NULL_PARAMETER); \ |
1448 | 0 | return AWS_LC_ERROR) |
1449 | | |
1450 | | // GUARD_PTR_ABORT checks |ptr|: if it is NULL it calls abort() and does nothing |
1451 | | // otherwise. |
1452 | 0 | #define GUARD_PTR_ABORT(ptr) __AWS_LC_ENSURE((ptr) != NULL, abort()) |
1453 | | |
1454 | | // Windows doesn't really support weak symbols as of May 2019, and Clang on |
1455 | | // Windows will emit strong symbols instead. See |
1456 | | // https://bugs.llvm.org/show_bug.cgi?id=37598 |
1457 | | #if defined(__ELF__) && defined(__GNUC__) |
1458 | | #define WEAK_SYMBOL_FUNC(rettype, name, args) \ |
1459 | | rettype name args __attribute__((weak)); |
1460 | | #else |
1461 | | #define WEAK_SYMBOL_FUNC(rettype, name, args) static rettype(*name) args = NULL; |
1462 | | #endif |
1463 | | |
1464 | | #if defined(__cplusplus) |
1465 | | } // extern C |
1466 | | #endif |
1467 | | |
1468 | | #endif // OPENSSL_HEADER_CRYPTO_INTERNAL_H |