/src/wolfssl-heapmath/wolfcrypt/src/misc.c
Line | Count | Source |
1 | | /* misc.c |
2 | | * |
3 | | * Copyright (C) 2006-2025 wolfSSL Inc. |
4 | | * |
5 | | * This file is part of wolfSSL. |
6 | | * |
7 | | * wolfSSL is free software; you can redistribute it and/or modify |
8 | | * it under the terms of the GNU General Public License as published by |
9 | | * the Free Software Foundation; either version 3 of the License, or |
10 | | * (at your option) any later version. |
11 | | * |
12 | | * wolfSSL is distributed in the hope that it will be useful, |
13 | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
15 | | * GNU General Public License for more details. |
16 | | * |
17 | | * You should have received a copy of the GNU General Public License |
18 | | * along with this program; if not, write to the Free Software |
19 | | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA |
20 | | */ |
21 | | /* |
22 | | |
23 | | DESCRIPTION |
24 | | This module implements the arithmetic-shift right, left, byte swapping, XOR, |
25 | | masking and clearing memory logic. |
26 | | |
27 | | */ |
28 | | |
29 | | #ifdef WOLFSSL_VIS_FOR_TESTS |
30 | | #ifdef HAVE_CONFIG_H |
31 | | #include <config.h> |
32 | | #endif |
33 | | #include <wolfssl/wolfcrypt/settings.h> |
34 | | #else |
35 | | #include <wolfssl/wolfcrypt/libwolfssl_sources.h> |
36 | | #endif |
37 | | |
38 | | #ifndef WOLF_CRYPT_MISC_C |
39 | | #define WOLF_CRYPT_MISC_C |
40 | | |
41 | | #include <wolfssl/wolfcrypt/misc.h> |
42 | | |
43 | | /* inlining these functions is a huge speed increase and a small size decrease, |
44 | | because the functions are smaller than function call setup/cleanup, e.g., |
45 | | md5 benchmark is twice as fast with inline. If you don't want it, then |
46 | | define NO_INLINE and compile this file into wolfssl, otherwise it's used as |
47 | | a source header |
48 | | */ |
49 | | |
50 | | /* Check for if compiling misc.c when not needed. */ |
51 | | #if !defined(WOLFSSL_MISC_INCLUDED) && !defined(NO_INLINE) |
52 | | #ifndef WOLFSSL_IGNORE_FILE_WARN |
53 | | #warning misc.c does not need to be compiled when using inline (NO_INLINE not defined) |
54 | | #endif |
55 | | |
56 | | #else |
57 | | |
58 | | |
59 | | #if defined(__ICCARM__) |
60 | | #include <intrinsics.h> |
61 | | #endif |
62 | | |
63 | | |
64 | | #ifdef INTEL_INTRINSICS |
65 | | |
66 | | #include <stdlib.h> /* get intrinsic definitions */ |
67 | | |
68 | | /* for non visual studio probably need no long version, 32 bit only |
69 | | * i.e., _rotl and _rotr */ |
70 | | #pragma intrinsic(_lrotl, _lrotr) |
71 | | |
72 | | WC_MISC_STATIC WC_INLINE word32 rotlFixed(word32 x, word32 y) |
73 | | { |
74 | | return y ? _lrotl(x, y) : x; |
75 | | } |
76 | | |
77 | | WC_MISC_STATIC WC_INLINE word32 rotrFixed(word32 x, word32 y) |
78 | | { |
79 | | return y ? _lrotr(x, y) : x; |
80 | | } |
81 | | |
82 | | #elif defined(__CCRX__) |
83 | | |
84 | | #include <builtin.h> /* get intrinsic definitions */ |
85 | | |
86 | | #if !defined(NO_INLINE) |
87 | | |
88 | | #define rotlFixed(x, y) _builtin_rotl(x, y) |
89 | | |
90 | | #define rotrFixed(x, y) _builtin_rotr(x, y) |
91 | | |
92 | | #else /* create real function */ |
93 | | |
94 | | WC_MISC_STATIC WC_INLINE word32 rotlFixed(word32 x, word32 y) |
95 | | { |
96 | | return _builtin_rotl(x, y); |
97 | | } |
98 | | |
99 | | WC_MISC_STATIC WC_INLINE word32 rotrFixed(word32 x, word32 y) |
100 | | { |
101 | | return _builtin_rotr(x, y); |
102 | | } |
103 | | |
104 | | #endif |
105 | | |
106 | | #else /* generic */ |
107 | | /* This routine performs a left circular arithmetic shift of <x> by <y> value. */ |
108 | | |
109 | | WC_MISC_STATIC WC_INLINE word32 rotlFixed(word32 x, word32 y) |
110 | 453M | { |
111 | 453M | return (x << y) | (x >> (sizeof(x) * 8 - y)); |
112 | 453M | } Line | Count | Source | 110 | 1.89M | { | 111 | 1.89M | return (x << y) | (x >> (sizeof(x) * 8 - y)); | 112 | 1.89M | } |
Unexecuted instantiation: asn.c:rotlFixed Unexecuted instantiation: camellia.c:rotlFixed Line | Count | Source | 110 | 3.72M | { | 111 | 3.72M | return (x << y) | (x >> (sizeof(x) * 8 - y)); | 112 | 3.72M | } |
Unexecuted instantiation: chacha20_poly1305.c:rotlFixed Unexecuted instantiation: cmac.c:rotlFixed Unexecuted instantiation: coding.c:rotlFixed Unexecuted instantiation: curve25519.c:rotlFixed Unexecuted instantiation: curve448.c:rotlFixed Line | Count | Source | 110 | 31.5k | { | 111 | 31.5k | return (x << y) | (x >> (sizeof(x) * 8 - y)); | 112 | 31.5k | } |
Unexecuted instantiation: dh.c:rotlFixed Unexecuted instantiation: ecc.c:rotlFixed Unexecuted instantiation: eccsi.c:rotlFixed Unexecuted instantiation: ed25519.c:rotlFixed Unexecuted instantiation: ed448.c:rotlFixed Unexecuted instantiation: fe_448.c:rotlFixed Unexecuted instantiation: fe_operations.c:rotlFixed Unexecuted instantiation: ge_448.c:rotlFixed Unexecuted instantiation: ge_operations.c:rotlFixed Unexecuted instantiation: hash.c:rotlFixed Unexecuted instantiation: hmac.c:rotlFixed Unexecuted instantiation: integer.c:rotlFixed Unexecuted instantiation: kdf.c:rotlFixed Unexecuted instantiation: md2.c:rotlFixed Line | Count | Source | 110 | 450k | { | 111 | 450k | return (x << y) | (x >> (sizeof(x) * 8 - y)); | 112 | 450k | } |
Line | Count | Source | 110 | 50.3M | { | 111 | 50.3M | return (x << y) | (x >> (sizeof(x) * 8 - y)); | 112 | 50.3M | } |
Unexecuted instantiation: memory.c:rotlFixed Unexecuted instantiation: poly1305.c:rotlFixed Unexecuted instantiation: pwdbased.c:rotlFixed Line | Count | Source | 110 | 631k | { | 111 | 631k | return (x << y) | (x >> (sizeof(x) * 8 - y)); | 112 | 631k | } |
Unexecuted instantiation: ripemd.c:rotlFixed Unexecuted instantiation: rsa.c:rotlFixed Line | Count | Source | 110 | 256M | { | 111 | 256M | return (x << y) | (x >> (sizeof(x) * 8 - y)); | 112 | 256M | } |
Line | Count | Source | 110 | 139M | { | 111 | 139M | return (x << y) | (x >> (sizeof(x) * 8 - y)); | 112 | 139M | } |
Unexecuted instantiation: sha3.c:rotlFixed Unexecuted instantiation: sha512.c:rotlFixed Unexecuted instantiation: siphash.c:rotlFixed Unexecuted instantiation: sm2.c:rotlFixed Unexecuted instantiation: sm3.c:rotlFixed Unexecuted instantiation: sm4.c:rotlFixed Unexecuted instantiation: wc_encrypt.c:rotlFixed Unexecuted instantiation: wolfmath.c:rotlFixed Unexecuted instantiation: ssl.c:rotlFixed Unexecuted instantiation: tls.c:rotlFixed Unexecuted instantiation: tls13.c:rotlFixed Unexecuted instantiation: internal.c:rotlFixed |
113 | | |
114 | | /* This routine performs a right circular arithmetic shift of <x> by <y> value. */ |
115 | | WC_MISC_STATIC WC_INLINE word32 rotrFixed(word32 x, word32 y) |
116 | 4.19G | { |
117 | 4.19G | return (x >> y) | (x << (sizeof(x) * 8 - y)); |
118 | 4.19G | } Line | Count | Source | 116 | 1.89M | { | 117 | 1.89M | return (x >> y) | (x << (sizeof(x) * 8 - y)); | 118 | 1.89M | } |
Unexecuted instantiation: asn.c:rotrFixed Unexecuted instantiation: camellia.c:rotrFixed Unexecuted instantiation: chacha.c:rotrFixed Unexecuted instantiation: chacha20_poly1305.c:rotrFixed Unexecuted instantiation: cmac.c:rotrFixed Unexecuted instantiation: coding.c:rotrFixed Unexecuted instantiation: curve25519.c:rotrFixed Unexecuted instantiation: curve448.c:rotrFixed Line | Count | Source | 116 | 109k | { | 117 | 109k | return (x >> y) | (x << (sizeof(x) * 8 - y)); | 118 | 109k | } |
Unexecuted instantiation: dh.c:rotrFixed Unexecuted instantiation: ecc.c:rotrFixed Unexecuted instantiation: eccsi.c:rotrFixed Unexecuted instantiation: ed25519.c:rotrFixed Unexecuted instantiation: ed448.c:rotrFixed Unexecuted instantiation: fe_448.c:rotrFixed Unexecuted instantiation: fe_operations.c:rotrFixed Unexecuted instantiation: ge_448.c:rotrFixed Unexecuted instantiation: ge_operations.c:rotrFixed Unexecuted instantiation: hash.c:rotrFixed Unexecuted instantiation: hmac.c:rotrFixed Unexecuted instantiation: integer.c:rotrFixed Unexecuted instantiation: kdf.c:rotrFixed Unexecuted instantiation: md2.c:rotrFixed Unexecuted instantiation: md4.c:rotrFixed Unexecuted instantiation: md5.c:rotrFixed Unexecuted instantiation: memory.c:rotrFixed Unexecuted instantiation: poly1305.c:rotrFixed Unexecuted instantiation: pwdbased.c:rotrFixed Line | Count | Source | 116 | 631k | { | 117 | 631k | return (x >> y) | (x << (sizeof(x) * 8 - y)); | 118 | 631k | } |
Unexecuted instantiation: ripemd.c:rotrFixed Unexecuted instantiation: rsa.c:rotrFixed Line | Count | Source | 116 | 17.8M | { | 117 | 17.8M | return (x >> y) | (x << (sizeof(x) * 8 - y)); | 118 | 17.8M | } |
Line | Count | Source | 116 | 4.17G | { | 117 | 4.17G | return (x >> y) | (x << (sizeof(x) * 8 - y)); | 118 | 4.17G | } |
Unexecuted instantiation: sha3.c:rotrFixed Unexecuted instantiation: sha512.c:rotrFixed Unexecuted instantiation: siphash.c:rotrFixed Unexecuted instantiation: sm2.c:rotrFixed Unexecuted instantiation: sm3.c:rotrFixed Unexecuted instantiation: sm4.c:rotrFixed Unexecuted instantiation: wc_encrypt.c:rotrFixed Unexecuted instantiation: wolfmath.c:rotrFixed Unexecuted instantiation: ssl.c:rotrFixed Unexecuted instantiation: tls.c:rotrFixed Unexecuted instantiation: tls13.c:rotrFixed Unexecuted instantiation: internal.c:rotrFixed |
119 | | |
120 | | #endif |
121 | | |
122 | | /* This routine performs a left circular arithmetic shift of <x> by <y> value */ |
123 | | WC_MISC_STATIC WC_INLINE word16 rotlFixed16(word16 x, word16 y) |
124 | 0 | { |
125 | 0 | return (word16)((x << y) | (x >> (sizeof(x) * 8U - y))); |
126 | 0 | } Unexecuted instantiation: aes.c:rotlFixed16 Unexecuted instantiation: asn.c:rotlFixed16 Unexecuted instantiation: camellia.c:rotlFixed16 Unexecuted instantiation: chacha.c:rotlFixed16 Unexecuted instantiation: chacha20_poly1305.c:rotlFixed16 Unexecuted instantiation: cmac.c:rotlFixed16 Unexecuted instantiation: coding.c:rotlFixed16 Unexecuted instantiation: curve25519.c:rotlFixed16 Unexecuted instantiation: curve448.c:rotlFixed16 Unexecuted instantiation: des3.c:rotlFixed16 Unexecuted instantiation: dh.c:rotlFixed16 Unexecuted instantiation: ecc.c:rotlFixed16 Unexecuted instantiation: eccsi.c:rotlFixed16 Unexecuted instantiation: ed25519.c:rotlFixed16 Unexecuted instantiation: ed448.c:rotlFixed16 Unexecuted instantiation: fe_448.c:rotlFixed16 Unexecuted instantiation: fe_operations.c:rotlFixed16 Unexecuted instantiation: ge_448.c:rotlFixed16 Unexecuted instantiation: ge_operations.c:rotlFixed16 Unexecuted instantiation: hash.c:rotlFixed16 Unexecuted instantiation: hmac.c:rotlFixed16 Unexecuted instantiation: integer.c:rotlFixed16 Unexecuted instantiation: kdf.c:rotlFixed16 Unexecuted instantiation: md2.c:rotlFixed16 Unexecuted instantiation: md4.c:rotlFixed16 Unexecuted instantiation: md5.c:rotlFixed16 Unexecuted instantiation: memory.c:rotlFixed16 Unexecuted instantiation: poly1305.c:rotlFixed16 Unexecuted instantiation: pwdbased.c:rotlFixed16 Unexecuted instantiation: random.c:rotlFixed16 Unexecuted instantiation: ripemd.c:rotlFixed16 Unexecuted instantiation: rsa.c:rotlFixed16 Unexecuted instantiation: sha.c:rotlFixed16 Unexecuted instantiation: sha256.c:rotlFixed16 Unexecuted instantiation: sha3.c:rotlFixed16 Unexecuted instantiation: sha512.c:rotlFixed16 Unexecuted instantiation: siphash.c:rotlFixed16 Unexecuted instantiation: sm2.c:rotlFixed16 Unexecuted instantiation: sm3.c:rotlFixed16 Unexecuted instantiation: sm4.c:rotlFixed16 Unexecuted instantiation: wc_encrypt.c:rotlFixed16 Unexecuted instantiation: wolfmath.c:rotlFixed16 Unexecuted instantiation: ssl.c:rotlFixed16 Unexecuted instantiation: tls.c:rotlFixed16 Unexecuted instantiation: tls13.c:rotlFixed16 Unexecuted instantiation: internal.c:rotlFixed16 |
127 | | |
128 | | |
129 | | /* This routine performs a right circular arithmetic shift of <x> by <y> value */ |
130 | | WC_MISC_STATIC WC_INLINE word16 rotrFixed16(word16 x, word16 y) |
131 | 0 | { |
132 | 0 | return (word16)((x >> y) | (x << (sizeof(x) * 8U - y))); |
133 | 0 | } Unexecuted instantiation: aes.c:rotrFixed16 Unexecuted instantiation: asn.c:rotrFixed16 Unexecuted instantiation: camellia.c:rotrFixed16 Unexecuted instantiation: chacha.c:rotrFixed16 Unexecuted instantiation: chacha20_poly1305.c:rotrFixed16 Unexecuted instantiation: cmac.c:rotrFixed16 Unexecuted instantiation: coding.c:rotrFixed16 Unexecuted instantiation: curve25519.c:rotrFixed16 Unexecuted instantiation: curve448.c:rotrFixed16 Unexecuted instantiation: des3.c:rotrFixed16 Unexecuted instantiation: dh.c:rotrFixed16 Unexecuted instantiation: ecc.c:rotrFixed16 Unexecuted instantiation: eccsi.c:rotrFixed16 Unexecuted instantiation: ed25519.c:rotrFixed16 Unexecuted instantiation: ed448.c:rotrFixed16 Unexecuted instantiation: fe_448.c:rotrFixed16 Unexecuted instantiation: fe_operations.c:rotrFixed16 Unexecuted instantiation: ge_448.c:rotrFixed16 Unexecuted instantiation: ge_operations.c:rotrFixed16 Unexecuted instantiation: hash.c:rotrFixed16 Unexecuted instantiation: hmac.c:rotrFixed16 Unexecuted instantiation: integer.c:rotrFixed16 Unexecuted instantiation: kdf.c:rotrFixed16 Unexecuted instantiation: md2.c:rotrFixed16 Unexecuted instantiation: md4.c:rotrFixed16 Unexecuted instantiation: md5.c:rotrFixed16 Unexecuted instantiation: memory.c:rotrFixed16 Unexecuted instantiation: poly1305.c:rotrFixed16 Unexecuted instantiation: pwdbased.c:rotrFixed16 Unexecuted instantiation: random.c:rotrFixed16 Unexecuted instantiation: ripemd.c:rotrFixed16 Unexecuted instantiation: rsa.c:rotrFixed16 Unexecuted instantiation: sha.c:rotrFixed16 Unexecuted instantiation: sha256.c:rotrFixed16 Unexecuted instantiation: sha3.c:rotrFixed16 Unexecuted instantiation: sha512.c:rotrFixed16 Unexecuted instantiation: siphash.c:rotrFixed16 Unexecuted instantiation: sm2.c:rotrFixed16 Unexecuted instantiation: sm3.c:rotrFixed16 Unexecuted instantiation: sm4.c:rotrFixed16 Unexecuted instantiation: wc_encrypt.c:rotrFixed16 Unexecuted instantiation: wolfmath.c:rotrFixed16 Unexecuted instantiation: ssl.c:rotrFixed16 Unexecuted instantiation: tls.c:rotrFixed16 Unexecuted instantiation: tls13.c:rotrFixed16 Unexecuted instantiation: internal.c:rotrFixed16 |
134 | | |
135 | | /* This routine performs a byte swap of 32-bit word value. */ |
136 | | #if defined(__CCRX__) && !defined(NO_INLINE) /* shortest version for CC-RX */ |
137 | | #define ByteReverseWord32(value) _builtin_revl(value) |
138 | | #else |
139 | | WC_MISC_STATIC WC_INLINE word32 ByteReverseWord32(word32 value) |
140 | 160M | { |
141 | | #ifdef PPC_INTRINSICS |
142 | | /* PPC: load reverse indexed instruction */ |
143 | | return (word32)__lwbrx(&value,0); |
144 | | #elif defined(__ICCARM__) |
145 | | return (word32)__REV(value); |
146 | | #elif defined(KEIL_INTRINSICS) |
147 | | return (word32)__rev(value); |
148 | | #elif defined(__CCRX__) |
149 | | return (word32)_builtin_revl(value); |
150 | | #elif defined(WOLF_ALLOW_BUILTIN) && \ |
151 | | defined(__GNUC_PREREQ) && __GNUC_PREREQ(4, 3) |
152 | | return (word32)__builtin_bswap32(value); |
153 | | #elif defined(WOLFSSL_BYTESWAP32_ASM) && defined(__GNUC__) && \ |
154 | | defined(__aarch64__) |
155 | | __asm__ volatile ( |
156 | | "REV32 %0, %0 \n" |
157 | | : "+r" (value) |
158 | | : |
159 | | ); |
160 | | return value; |
161 | | #elif defined(WOLFSSL_BYTESWAP32_ASM) && defined(__GNUC__) && \ |
162 | | (defined(__thumb__) || defined(__arm__)) |
163 | | __asm__ volatile ( |
164 | | "REV %0, %0 \n" |
165 | | : "+r" (value) |
166 | | : |
167 | | ); |
168 | | return value; |
169 | | #elif defined(FAST_ROTATE) |
170 | | /* 5 instructions with rotate instruction, 9 without */ |
171 | 160M | return (rotrFixed(value, 8U) & 0xff00ff00) | |
172 | 160M | (rotlFixed(value, 8U) & 0x00ff00ff); |
173 | | #else |
174 | | /* 6 instructions with rotate instruction, 8 without */ |
175 | | value = ((value & 0xFF00FF00) >> 8) | ((value & 0x00FF00FF) << 8); |
176 | | return rotlFixed(value, 16U); |
177 | | #endif |
178 | 160M | } Line | Count | Source | 140 | 1.89M | { | 141 | | #ifdef PPC_INTRINSICS | 142 | | /* PPC: load reverse indexed instruction */ | 143 | | return (word32)__lwbrx(&value,0); | 144 | | #elif defined(__ICCARM__) | 145 | | return (word32)__REV(value); | 146 | | #elif defined(KEIL_INTRINSICS) | 147 | | return (word32)__rev(value); | 148 | | #elif defined(__CCRX__) | 149 | | return (word32)_builtin_revl(value); | 150 | | #elif defined(WOLF_ALLOW_BUILTIN) && \ | 151 | | defined(__GNUC_PREREQ) && __GNUC_PREREQ(4, 3) | 152 | | return (word32)__builtin_bswap32(value); | 153 | | #elif defined(WOLFSSL_BYTESWAP32_ASM) && defined(__GNUC__) && \ | 154 | | defined(__aarch64__) | 155 | | __asm__ volatile ( | 156 | | "REV32 %0, %0 \n" | 157 | | : "+r" (value) | 158 | | : | 159 | | ); | 160 | | return value; | 161 | | #elif defined(WOLFSSL_BYTESWAP32_ASM) && defined(__GNUC__) && \ | 162 | | (defined(__thumb__) || defined(__arm__)) | 163 | | __asm__ volatile ( | 164 | | "REV %0, %0 \n" | 165 | | : "+r" (value) | 166 | | : | 167 | | ); | 168 | | return value; | 169 | | #elif defined(FAST_ROTATE) | 170 | | /* 5 instructions with rotate instruction, 9 without */ | 171 | 1.89M | return (rotrFixed(value, 8U) & 0xff00ff00) | | 172 | 1.89M | (rotlFixed(value, 8U) & 0x00ff00ff); | 173 | | #else | 174 | | /* 6 instructions with rotate instruction, 8 without */ | 175 | | value = ((value & 0xFF00FF00) >> 8) | ((value & 0x00FF00FF) << 8); | 176 | | return rotlFixed(value, 16U); | 177 | | #endif | 178 | 1.89M | } |
Unexecuted instantiation: asn.c:ByteReverseWord32 Unexecuted instantiation: camellia.c:ByteReverseWord32 Unexecuted instantiation: chacha.c:ByteReverseWord32 Unexecuted instantiation: chacha20_poly1305.c:ByteReverseWord32 Unexecuted instantiation: cmac.c:ByteReverseWord32 Unexecuted instantiation: coding.c:ByteReverseWord32 Unexecuted instantiation: curve25519.c:ByteReverseWord32 Unexecuted instantiation: curve448.c:ByteReverseWord32 Line | Count | Source | 140 | 12.6k | { | 141 | | #ifdef PPC_INTRINSICS | 142 | | /* PPC: load reverse indexed instruction */ | 143 | | return (word32)__lwbrx(&value,0); | 144 | | #elif defined(__ICCARM__) | 145 | | return (word32)__REV(value); | 146 | | #elif defined(KEIL_INTRINSICS) | 147 | | return (word32)__rev(value); | 148 | | #elif defined(__CCRX__) | 149 | | return (word32)_builtin_revl(value); | 150 | | #elif defined(WOLF_ALLOW_BUILTIN) && \ | 151 | | defined(__GNUC_PREREQ) && __GNUC_PREREQ(4, 3) | 152 | | return (word32)__builtin_bswap32(value); | 153 | | #elif defined(WOLFSSL_BYTESWAP32_ASM) && defined(__GNUC__) && \ | 154 | | defined(__aarch64__) | 155 | | __asm__ volatile ( | 156 | | "REV32 %0, %0 \n" | 157 | | : "+r" (value) | 158 | | : | 159 | | ); | 160 | | return value; | 161 | | #elif defined(WOLFSSL_BYTESWAP32_ASM) && defined(__GNUC__) && \ | 162 | | (defined(__thumb__) || defined(__arm__)) | 163 | | __asm__ volatile ( | 164 | | "REV %0, %0 \n" | 165 | | : "+r" (value) | 166 | | : | 167 | | ); | 168 | | return value; | 169 | | #elif defined(FAST_ROTATE) | 170 | | /* 5 instructions with rotate instruction, 9 without */ | 171 | 12.6k | return (rotrFixed(value, 8U) & 0xff00ff00) | | 172 | 12.6k | (rotlFixed(value, 8U) & 0x00ff00ff); | 173 | | #else | 174 | | /* 6 instructions with rotate instruction, 8 without */ | 175 | | value = ((value & 0xFF00FF00) >> 8) | ((value & 0x00FF00FF) << 8); | 176 | | return rotlFixed(value, 16U); | 177 | | #endif | 178 | 12.6k | } |
Unexecuted instantiation: dh.c:ByteReverseWord32 Unexecuted instantiation: ecc.c:ByteReverseWord32 Unexecuted instantiation: eccsi.c:ByteReverseWord32 Unexecuted instantiation: ed25519.c:ByteReverseWord32 Unexecuted instantiation: ed448.c:ByteReverseWord32 Unexecuted instantiation: fe_448.c:ByteReverseWord32 Unexecuted instantiation: fe_operations.c:ByteReverseWord32 Unexecuted instantiation: ge_448.c:ByteReverseWord32 Unexecuted instantiation: ge_operations.c:ByteReverseWord32 Unexecuted instantiation: hash.c:ByteReverseWord32 Unexecuted instantiation: hmac.c:ByteReverseWord32 Unexecuted instantiation: integer.c:ByteReverseWord32 Unexecuted instantiation: kdf.c:ByteReverseWord32 Unexecuted instantiation: md2.c:ByteReverseWord32 Unexecuted instantiation: md4.c:ByteReverseWord32 Unexecuted instantiation: md5.c:ByteReverseWord32 Unexecuted instantiation: memory.c:ByteReverseWord32 Unexecuted instantiation: poly1305.c:ByteReverseWord32 Unexecuted instantiation: pwdbased.c:ByteReverseWord32 random.c:ByteReverseWord32 Line | Count | Source | 140 | 631k | { | 141 | | #ifdef PPC_INTRINSICS | 142 | | /* PPC: load reverse indexed instruction */ | 143 | | return (word32)__lwbrx(&value,0); | 144 | | #elif defined(__ICCARM__) | 145 | | return (word32)__REV(value); | 146 | | #elif defined(KEIL_INTRINSICS) | 147 | | return (word32)__rev(value); | 148 | | #elif defined(__CCRX__) | 149 | | return (word32)_builtin_revl(value); | 150 | | #elif defined(WOLF_ALLOW_BUILTIN) && \ | 151 | | defined(__GNUC_PREREQ) && __GNUC_PREREQ(4, 3) | 152 | | return (word32)__builtin_bswap32(value); | 153 | | #elif defined(WOLFSSL_BYTESWAP32_ASM) && defined(__GNUC__) && \ | 154 | | defined(__aarch64__) | 155 | | __asm__ volatile ( | 156 | | "REV32 %0, %0 \n" | 157 | | : "+r" (value) | 158 | | : | 159 | | ); | 160 | | return value; | 161 | | #elif defined(WOLFSSL_BYTESWAP32_ASM) && defined(__GNUC__) && \ | 162 | | (defined(__thumb__) || defined(__arm__)) | 163 | | __asm__ volatile ( | 164 | | "REV %0, %0 \n" | 165 | | : "+r" (value) | 166 | | : | 167 | | ); | 168 | | return value; | 169 | | #elif defined(FAST_ROTATE) | 170 | | /* 5 instructions with rotate instruction, 9 without */ | 171 | 631k | return (rotrFixed(value, 8U) & 0xff00ff00) | | 172 | 631k | (rotlFixed(value, 8U) & 0x00ff00ff); | 173 | | #else | 174 | | /* 6 instructions with rotate instruction, 8 without */ | 175 | | value = ((value & 0xFF00FF00) >> 8) | ((value & 0x00FF00FF) << 8); | 176 | | return rotlFixed(value, 16U); | 177 | | #endif | 178 | 631k | } |
Unexecuted instantiation: ripemd.c:ByteReverseWord32 Unexecuted instantiation: rsa.c:ByteReverseWord32 Line | Count | Source | 140 | 17.8M | { | 141 | | #ifdef PPC_INTRINSICS | 142 | | /* PPC: load reverse indexed instruction */ | 143 | | return (word32)__lwbrx(&value,0); | 144 | | #elif defined(__ICCARM__) | 145 | | return (word32)__REV(value); | 146 | | #elif defined(KEIL_INTRINSICS) | 147 | | return (word32)__rev(value); | 148 | | #elif defined(__CCRX__) | 149 | | return (word32)_builtin_revl(value); | 150 | | #elif defined(WOLF_ALLOW_BUILTIN) && \ | 151 | | defined(__GNUC_PREREQ) && __GNUC_PREREQ(4, 3) | 152 | | return (word32)__builtin_bswap32(value); | 153 | | #elif defined(WOLFSSL_BYTESWAP32_ASM) && defined(__GNUC__) && \ | 154 | | defined(__aarch64__) | 155 | | __asm__ volatile ( | 156 | | "REV32 %0, %0 \n" | 157 | | : "+r" (value) | 158 | | : | 159 | | ); | 160 | | return value; | 161 | | #elif defined(WOLFSSL_BYTESWAP32_ASM) && defined(__GNUC__) && \ | 162 | | (defined(__thumb__) || defined(__arm__)) | 163 | | __asm__ volatile ( | 164 | | "REV %0, %0 \n" | 165 | | : "+r" (value) | 166 | | : | 167 | | ); | 168 | | return value; | 169 | | #elif defined(FAST_ROTATE) | 170 | | /* 5 instructions with rotate instruction, 9 without */ | 171 | 17.8M | return (rotrFixed(value, 8U) & 0xff00ff00) | | 172 | 17.8M | (rotlFixed(value, 8U) & 0x00ff00ff); | 173 | | #else | 174 | | /* 6 instructions with rotate instruction, 8 without */ | 175 | | value = ((value & 0xFF00FF00) >> 8) | ((value & 0x00FF00FF) << 8); | 176 | | return rotlFixed(value, 16U); | 177 | | #endif | 178 | 17.8M | } |
sha256.c:ByteReverseWord32 Line | Count | Source | 140 | 139M | { | 141 | | #ifdef PPC_INTRINSICS | 142 | | /* PPC: load reverse indexed instruction */ | 143 | | return (word32)__lwbrx(&value,0); | 144 | | #elif defined(__ICCARM__) | 145 | | return (word32)__REV(value); | 146 | | #elif defined(KEIL_INTRINSICS) | 147 | | return (word32)__rev(value); | 148 | | #elif defined(__CCRX__) | 149 | | return (word32)_builtin_revl(value); | 150 | | #elif defined(WOLF_ALLOW_BUILTIN) && \ | 151 | | defined(__GNUC_PREREQ) && __GNUC_PREREQ(4, 3) | 152 | | return (word32)__builtin_bswap32(value); | 153 | | #elif defined(WOLFSSL_BYTESWAP32_ASM) && defined(__GNUC__) && \ | 154 | | defined(__aarch64__) | 155 | | __asm__ volatile ( | 156 | | "REV32 %0, %0 \n" | 157 | | : "+r" (value) | 158 | | : | 159 | | ); | 160 | | return value; | 161 | | #elif defined(WOLFSSL_BYTESWAP32_ASM) && defined(__GNUC__) && \ | 162 | | (defined(__thumb__) || defined(__arm__)) | 163 | | __asm__ volatile ( | 164 | | "REV %0, %0 \n" | 165 | | : "+r" (value) | 166 | | : | 167 | | ); | 168 | | return value; | 169 | | #elif defined(FAST_ROTATE) | 170 | | /* 5 instructions with rotate instruction, 9 without */ | 171 | 139M | return (rotrFixed(value, 8U) & 0xff00ff00) | | 172 | 139M | (rotlFixed(value, 8U) & 0x00ff00ff); | 173 | | #else | 174 | | /* 6 instructions with rotate instruction, 8 without */ | 175 | | value = ((value & 0xFF00FF00) >> 8) | ((value & 0x00FF00FF) << 8); | 176 | | return rotlFixed(value, 16U); | 177 | | #endif | 178 | 139M | } |
Unexecuted instantiation: sha3.c:ByteReverseWord32 Unexecuted instantiation: sha512.c:ByteReverseWord32 Unexecuted instantiation: siphash.c:ByteReverseWord32 Unexecuted instantiation: sm2.c:ByteReverseWord32 Unexecuted instantiation: sm3.c:ByteReverseWord32 Unexecuted instantiation: sm4.c:ByteReverseWord32 Unexecuted instantiation: wc_encrypt.c:ByteReverseWord32 Unexecuted instantiation: wolfmath.c:ByteReverseWord32 Unexecuted instantiation: ssl.c:ByteReverseWord32 Unexecuted instantiation: tls.c:ByteReverseWord32 Unexecuted instantiation: tls13.c:ByteReverseWord32 Unexecuted instantiation: internal.c:ByteReverseWord32 |
179 | | #endif /* __CCRX__ */ |
180 | | /* This routine performs a byte swap of words array of a given count. */ |
181 | | WC_MISC_STATIC WC_INLINE void ByteReverseWords(word32* out, const word32* in, |
182 | | word32 byteCount) |
183 | 12.8M | { |
184 | 12.8M | word32 i; |
185 | | |
186 | 12.8M | #ifdef WOLFSSL_USE_ALIGN |
187 | 12.8M | if ((((size_t)in & 0x3) == 0) && |
188 | 12.8M | (((size_t)out & 0x3) == 0)) |
189 | 12.8M | #endif |
190 | 12.8M | { |
191 | 12.8M | word32 count = byteCount/(word32)sizeof(word32); |
192 | 170M | for (i = 0; i < count; i++) |
193 | 157M | out[i] = ByteReverseWord32(in[i]); |
194 | 12.8M | } |
195 | 0 | #ifdef WOLFSSL_USE_ALIGN |
196 | 0 | else if (((size_t)in & 0x3) == 0) { |
197 | 0 | byte *out_bytes = (byte *)out; |
198 | 0 | word32 scratch; |
199 | |
|
200 | 0 | byteCount &= ~0x3U; |
201 | |
|
202 | 0 | for (i = 0; i < byteCount; i += (word32)sizeof(word32)) { |
203 | 0 | scratch = ByteReverseWord32(*in++); |
204 | 0 | XMEMCPY(out_bytes + i, &scratch, sizeof(scratch)); |
205 | 0 | } |
206 | 0 | } |
207 | 0 | else if (((size_t)out & 0x3) == 0) { |
208 | 0 | byte *in_bytes = (byte *)in; |
209 | 0 | word32 scratch; |
210 | |
|
211 | 0 | byteCount &= ~0x3U; |
212 | |
|
213 | 0 | for (i = 0; i < byteCount; i += (word32)sizeof(word32)) { |
214 | 0 | XMEMCPY(&scratch, in_bytes + i, sizeof(scratch)); |
215 | 0 | *out++ = ByteReverseWord32(scratch); |
216 | 0 | } |
217 | 0 | } |
218 | 0 | else { |
219 | 0 | byte *in_bytes = (byte *)in; |
220 | 0 | byte *out_bytes = (byte *)out; |
221 | 0 | word32 scratch; |
222 | |
|
223 | 0 | byteCount &= ~0x3U; |
224 | |
|
225 | 0 | for (i = 0; i < byteCount; i += (word32)sizeof(word32)) { |
226 | 0 | XMEMCPY(&scratch, in_bytes + i, sizeof(scratch)); |
227 | 0 | scratch = ByteReverseWord32(scratch); |
228 | 0 | XMEMCPY(out_bytes + i, &scratch, sizeof(scratch)); |
229 | 0 | } |
230 | 0 | } |
231 | 12.8M | #endif |
232 | 12.8M | } Line | Count | Source | 183 | 11.4k | { | 184 | 11.4k | word32 i; | 185 | | | 186 | 11.4k | #ifdef WOLFSSL_USE_ALIGN | 187 | 11.4k | if ((((size_t)in & 0x3) == 0) && | 188 | 11.4k | (((size_t)out & 0x3) == 0)) | 189 | 11.4k | #endif | 190 | 11.4k | { | 191 | 11.4k | word32 count = byteCount/(word32)sizeof(word32); | 192 | 75.5k | for (i = 0; i < count; i++) | 193 | 64.0k | out[i] = ByteReverseWord32(in[i]); | 194 | 11.4k | } | 195 | 0 | #ifdef WOLFSSL_USE_ALIGN | 196 | 0 | else if (((size_t)in & 0x3) == 0) { | 197 | 0 | byte *out_bytes = (byte *)out; | 198 | 0 | word32 scratch; | 199 | |
| 200 | 0 | byteCount &= ~0x3U; | 201 | |
| 202 | 0 | for (i = 0; i < byteCount; i += (word32)sizeof(word32)) { | 203 | 0 | scratch = ByteReverseWord32(*in++); | 204 | 0 | XMEMCPY(out_bytes + i, &scratch, sizeof(scratch)); | 205 | 0 | } | 206 | 0 | } | 207 | 0 | else if (((size_t)out & 0x3) == 0) { | 208 | 0 | byte *in_bytes = (byte *)in; | 209 | 0 | word32 scratch; | 210 | |
| 211 | 0 | byteCount &= ~0x3U; | 212 | |
| 213 | 0 | for (i = 0; i < byteCount; i += (word32)sizeof(word32)) { | 214 | 0 | XMEMCPY(&scratch, in_bytes + i, sizeof(scratch)); | 215 | 0 | *out++ = ByteReverseWord32(scratch); | 216 | 0 | } | 217 | 0 | } | 218 | 0 | else { | 219 | 0 | byte *in_bytes = (byte *)in; | 220 | 0 | byte *out_bytes = (byte *)out; | 221 | 0 | word32 scratch; | 222 | |
| 223 | 0 | byteCount &= ~0x3U; | 224 | |
| 225 | 0 | for (i = 0; i < byteCount; i += (word32)sizeof(word32)) { | 226 | 0 | XMEMCPY(&scratch, in_bytes + i, sizeof(scratch)); | 227 | 0 | scratch = ByteReverseWord32(scratch); | 228 | 0 | XMEMCPY(out_bytes + i, &scratch, sizeof(scratch)); | 229 | 0 | } | 230 | 0 | } | 231 | 11.4k | #endif | 232 | 11.4k | } |
Unexecuted instantiation: asn.c:ByteReverseWords Unexecuted instantiation: camellia.c:ByteReverseWords Unexecuted instantiation: chacha.c:ByteReverseWords Unexecuted instantiation: chacha20_poly1305.c:ByteReverseWords Unexecuted instantiation: cmac.c:ByteReverseWords Unexecuted instantiation: coding.c:ByteReverseWords Unexecuted instantiation: curve25519.c:ByteReverseWords Unexecuted instantiation: curve448.c:ByteReverseWords Unexecuted instantiation: des3.c:ByteReverseWords Unexecuted instantiation: dh.c:ByteReverseWords Unexecuted instantiation: ecc.c:ByteReverseWords Unexecuted instantiation: eccsi.c:ByteReverseWords Unexecuted instantiation: ed25519.c:ByteReverseWords Unexecuted instantiation: ed448.c:ByteReverseWords Unexecuted instantiation: fe_448.c:ByteReverseWords Unexecuted instantiation: fe_operations.c:ByteReverseWords Unexecuted instantiation: ge_448.c:ByteReverseWords Unexecuted instantiation: ge_operations.c:ByteReverseWords Unexecuted instantiation: hash.c:ByteReverseWords Unexecuted instantiation: hmac.c:ByteReverseWords Unexecuted instantiation: integer.c:ByteReverseWords Unexecuted instantiation: kdf.c:ByteReverseWords Unexecuted instantiation: md2.c:ByteReverseWords Unexecuted instantiation: md4.c:ByteReverseWords Unexecuted instantiation: md5.c:ByteReverseWords Unexecuted instantiation: memory.c:ByteReverseWords Unexecuted instantiation: poly1305.c:ByteReverseWords Unexecuted instantiation: pwdbased.c:ByteReverseWords Unexecuted instantiation: random.c:ByteReverseWords Unexecuted instantiation: ripemd.c:ByteReverseWords Unexecuted instantiation: rsa.c:ByteReverseWords Line | Count | Source | 183 | 1.22M | { | 184 | 1.22M | word32 i; | 185 | | | 186 | 1.22M | #ifdef WOLFSSL_USE_ALIGN | 187 | 1.22M | if ((((size_t)in & 0x3) == 0) && | 188 | 1.22M | (((size_t)out & 0x3) == 0)) | 189 | 1.22M | #endif | 190 | 1.22M | { | 191 | 1.22M | word32 count = byteCount/(word32)sizeof(word32); | 192 | 19.0M | for (i = 0; i < count; i++) | 193 | 17.8M | out[i] = ByteReverseWord32(in[i]); | 194 | 1.22M | } | 195 | 0 | #ifdef WOLFSSL_USE_ALIGN | 196 | 0 | else if (((size_t)in & 0x3) == 0) { | 197 | 0 | byte *out_bytes = (byte *)out; | 198 | 0 | word32 scratch; | 199 | |
| 200 | 0 | byteCount &= ~0x3U; | 201 | |
| 202 | 0 | for (i = 0; i < byteCount; i += (word32)sizeof(word32)) { | 203 | 0 | scratch = ByteReverseWord32(*in++); | 204 | 0 | XMEMCPY(out_bytes + i, &scratch, sizeof(scratch)); | 205 | 0 | } | 206 | 0 | } | 207 | 0 | else if (((size_t)out & 0x3) == 0) { | 208 | 0 | byte *in_bytes = (byte *)in; | 209 | 0 | word32 scratch; | 210 | |
| 211 | 0 | byteCount &= ~0x3U; | 212 | |
| 213 | 0 | for (i = 0; i < byteCount; i += (word32)sizeof(word32)) { | 214 | 0 | XMEMCPY(&scratch, in_bytes + i, sizeof(scratch)); | 215 | 0 | *out++ = ByteReverseWord32(scratch); | 216 | 0 | } | 217 | 0 | } | 218 | 0 | else { | 219 | 0 | byte *in_bytes = (byte *)in; | 220 | 0 | byte *out_bytes = (byte *)out; | 221 | 0 | word32 scratch; | 222 | |
| 223 | 0 | byteCount &= ~0x3U; | 224 | |
| 225 | 0 | for (i = 0; i < byteCount; i += (word32)sizeof(word32)) { | 226 | 0 | XMEMCPY(&scratch, in_bytes + i, sizeof(scratch)); | 227 | 0 | scratch = ByteReverseWord32(scratch); | 228 | 0 | XMEMCPY(out_bytes + i, &scratch, sizeof(scratch)); | 229 | 0 | } | 230 | 0 | } | 231 | 1.22M | #endif | 232 | 1.22M | } |
sha256.c:ByteReverseWords Line | Count | Source | 183 | 11.6M | { | 184 | 11.6M | word32 i; | 185 | | | 186 | 11.6M | #ifdef WOLFSSL_USE_ALIGN | 187 | 11.6M | if ((((size_t)in & 0x3) == 0) && | 188 | 11.6M | (((size_t)out & 0x3) == 0)) | 189 | 11.6M | #endif | 190 | 11.6M | { | 191 | 11.6M | word32 count = byteCount/(word32)sizeof(word32); | 192 | 151M | for (i = 0; i < count; i++) | 193 | 139M | out[i] = ByteReverseWord32(in[i]); | 194 | 11.6M | } | 195 | 0 | #ifdef WOLFSSL_USE_ALIGN | 196 | 0 | else if (((size_t)in & 0x3) == 0) { | 197 | 0 | byte *out_bytes = (byte *)out; | 198 | 0 | word32 scratch; | 199 | |
| 200 | 0 | byteCount &= ~0x3U; | 201 | |
| 202 | 0 | for (i = 0; i < byteCount; i += (word32)sizeof(word32)) { | 203 | 0 | scratch = ByteReverseWord32(*in++); | 204 | 0 | XMEMCPY(out_bytes + i, &scratch, sizeof(scratch)); | 205 | 0 | } | 206 | 0 | } | 207 | 0 | else if (((size_t)out & 0x3) == 0) { | 208 | 0 | byte *in_bytes = (byte *)in; | 209 | 0 | word32 scratch; | 210 | |
| 211 | 0 | byteCount &= ~0x3U; | 212 | |
| 213 | 0 | for (i = 0; i < byteCount; i += (word32)sizeof(word32)) { | 214 | 0 | XMEMCPY(&scratch, in_bytes + i, sizeof(scratch)); | 215 | 0 | *out++ = ByteReverseWord32(scratch); | 216 | 0 | } | 217 | 0 | } | 218 | 0 | else { | 219 | 0 | byte *in_bytes = (byte *)in; | 220 | 0 | byte *out_bytes = (byte *)out; | 221 | 0 | word32 scratch; | 222 | |
| 223 | 0 | byteCount &= ~0x3U; | 224 | |
| 225 | 0 | for (i = 0; i < byteCount; i += (word32)sizeof(word32)) { | 226 | 0 | XMEMCPY(&scratch, in_bytes + i, sizeof(scratch)); | 227 | 0 | scratch = ByteReverseWord32(scratch); | 228 | 0 | XMEMCPY(out_bytes + i, &scratch, sizeof(scratch)); | 229 | 0 | } | 230 | 0 | } | 231 | 11.6M | #endif | 232 | 11.6M | } |
Unexecuted instantiation: sha3.c:ByteReverseWords Unexecuted instantiation: sha512.c:ByteReverseWords Unexecuted instantiation: siphash.c:ByteReverseWords Unexecuted instantiation: sm2.c:ByteReverseWords Unexecuted instantiation: sm3.c:ByteReverseWords Unexecuted instantiation: sm4.c:ByteReverseWords Unexecuted instantiation: wc_encrypt.c:ByteReverseWords Unexecuted instantiation: wolfmath.c:ByteReverseWords Unexecuted instantiation: ssl.c:ByteReverseWords Unexecuted instantiation: tls.c:ByteReverseWords Unexecuted instantiation: tls13.c:ByteReverseWords Unexecuted instantiation: internal.c:ByteReverseWords |
233 | | |
234 | | WC_MISC_STATIC WC_INLINE word32 readUnalignedWord32(const byte *in) |
235 | 0 | { |
236 | 0 | if (((wc_ptr_t)in & (wc_ptr_t)(sizeof(word32) - 1U)) == (wc_ptr_t)0) |
237 | 0 | return *(word32 *)in; |
238 | 0 | else { |
239 | 0 | word32 out = 0; /* else CONFIG_FORTIFY_SOURCE -Wmaybe-uninitialized */ |
240 | 0 | XMEMCPY(&out, in, sizeof(out)); |
241 | 0 | return out; |
242 | 0 | } |
243 | 0 | } Unexecuted instantiation: aes.c:readUnalignedWord32 Unexecuted instantiation: asn.c:readUnalignedWord32 Unexecuted instantiation: camellia.c:readUnalignedWord32 Unexecuted instantiation: chacha.c:readUnalignedWord32 Unexecuted instantiation: chacha20_poly1305.c:readUnalignedWord32 Unexecuted instantiation: cmac.c:readUnalignedWord32 Unexecuted instantiation: coding.c:readUnalignedWord32 Unexecuted instantiation: curve25519.c:readUnalignedWord32 Unexecuted instantiation: curve448.c:readUnalignedWord32 Unexecuted instantiation: des3.c:readUnalignedWord32 Unexecuted instantiation: dh.c:readUnalignedWord32 Unexecuted instantiation: ecc.c:readUnalignedWord32 Unexecuted instantiation: eccsi.c:readUnalignedWord32 Unexecuted instantiation: ed25519.c:readUnalignedWord32 Unexecuted instantiation: ed448.c:readUnalignedWord32 Unexecuted instantiation: fe_448.c:readUnalignedWord32 Unexecuted instantiation: fe_operations.c:readUnalignedWord32 Unexecuted instantiation: ge_448.c:readUnalignedWord32 Unexecuted instantiation: ge_operations.c:readUnalignedWord32 Unexecuted instantiation: hash.c:readUnalignedWord32 Unexecuted instantiation: hmac.c:readUnalignedWord32 Unexecuted instantiation: integer.c:readUnalignedWord32 Unexecuted instantiation: kdf.c:readUnalignedWord32 Unexecuted instantiation: md2.c:readUnalignedWord32 Unexecuted instantiation: md4.c:readUnalignedWord32 Unexecuted instantiation: md5.c:readUnalignedWord32 Unexecuted instantiation: memory.c:readUnalignedWord32 Unexecuted instantiation: poly1305.c:readUnalignedWord32 Unexecuted instantiation: pwdbased.c:readUnalignedWord32 Unexecuted instantiation: random.c:readUnalignedWord32 Unexecuted instantiation: ripemd.c:readUnalignedWord32 Unexecuted instantiation: rsa.c:readUnalignedWord32 Unexecuted instantiation: sha.c:readUnalignedWord32 Unexecuted instantiation: sha256.c:readUnalignedWord32 Unexecuted instantiation: sha3.c:readUnalignedWord32 Unexecuted instantiation: sha512.c:readUnalignedWord32 Unexecuted instantiation: siphash.c:readUnalignedWord32 Unexecuted instantiation: sm2.c:readUnalignedWord32 Unexecuted instantiation: sm3.c:readUnalignedWord32 Unexecuted instantiation: sm4.c:readUnalignedWord32 Unexecuted instantiation: wc_encrypt.c:readUnalignedWord32 Unexecuted instantiation: wolfmath.c:readUnalignedWord32 Unexecuted instantiation: ssl.c:readUnalignedWord32 Unexecuted instantiation: tls.c:readUnalignedWord32 Unexecuted instantiation: tls13.c:readUnalignedWord32 Unexecuted instantiation: internal.c:readUnalignedWord32 |
244 | | |
245 | | WC_MISC_STATIC WC_INLINE word32 writeUnalignedWord32(void *out, word32 in) |
246 | 0 | { |
247 | 0 | if (((wc_ptr_t)out & (wc_ptr_t)(sizeof(word32) - 1U)) == (wc_ptr_t)0) |
248 | 0 | *(word32 *)out = in; |
249 | 0 | else { |
250 | 0 | XMEMCPY(out, &in, sizeof(in)); |
251 | 0 | } |
252 | 0 | return in; |
253 | 0 | } Unexecuted instantiation: aes.c:writeUnalignedWord32 Unexecuted instantiation: asn.c:writeUnalignedWord32 Unexecuted instantiation: camellia.c:writeUnalignedWord32 Unexecuted instantiation: chacha.c:writeUnalignedWord32 Unexecuted instantiation: chacha20_poly1305.c:writeUnalignedWord32 Unexecuted instantiation: cmac.c:writeUnalignedWord32 Unexecuted instantiation: coding.c:writeUnalignedWord32 Unexecuted instantiation: curve25519.c:writeUnalignedWord32 Unexecuted instantiation: curve448.c:writeUnalignedWord32 Unexecuted instantiation: des3.c:writeUnalignedWord32 Unexecuted instantiation: dh.c:writeUnalignedWord32 Unexecuted instantiation: ecc.c:writeUnalignedWord32 Unexecuted instantiation: eccsi.c:writeUnalignedWord32 Unexecuted instantiation: ed25519.c:writeUnalignedWord32 Unexecuted instantiation: ed448.c:writeUnalignedWord32 Unexecuted instantiation: fe_448.c:writeUnalignedWord32 Unexecuted instantiation: fe_operations.c:writeUnalignedWord32 Unexecuted instantiation: ge_448.c:writeUnalignedWord32 Unexecuted instantiation: ge_operations.c:writeUnalignedWord32 Unexecuted instantiation: hash.c:writeUnalignedWord32 Unexecuted instantiation: hmac.c:writeUnalignedWord32 Unexecuted instantiation: integer.c:writeUnalignedWord32 Unexecuted instantiation: kdf.c:writeUnalignedWord32 Unexecuted instantiation: md2.c:writeUnalignedWord32 Unexecuted instantiation: md4.c:writeUnalignedWord32 Unexecuted instantiation: md5.c:writeUnalignedWord32 Unexecuted instantiation: memory.c:writeUnalignedWord32 Unexecuted instantiation: poly1305.c:writeUnalignedWord32 Unexecuted instantiation: pwdbased.c:writeUnalignedWord32 Unexecuted instantiation: random.c:writeUnalignedWord32 Unexecuted instantiation: ripemd.c:writeUnalignedWord32 Unexecuted instantiation: rsa.c:writeUnalignedWord32 Unexecuted instantiation: sha.c:writeUnalignedWord32 Unexecuted instantiation: sha256.c:writeUnalignedWord32 Unexecuted instantiation: sha3.c:writeUnalignedWord32 Unexecuted instantiation: sha512.c:writeUnalignedWord32 Unexecuted instantiation: siphash.c:writeUnalignedWord32 Unexecuted instantiation: sm2.c:writeUnalignedWord32 Unexecuted instantiation: sm3.c:writeUnalignedWord32 Unexecuted instantiation: sm4.c:writeUnalignedWord32 Unexecuted instantiation: wc_encrypt.c:writeUnalignedWord32 Unexecuted instantiation: wolfmath.c:writeUnalignedWord32 Unexecuted instantiation: ssl.c:writeUnalignedWord32 Unexecuted instantiation: tls.c:writeUnalignedWord32 Unexecuted instantiation: tls13.c:writeUnalignedWord32 Unexecuted instantiation: internal.c:writeUnalignedWord32 |
254 | | |
255 | | WC_MISC_STATIC WC_INLINE void readUnalignedWords32(word32 *out, const byte *in, |
256 | | size_t count) |
257 | 0 | { |
258 | 0 | if (((wc_ptr_t)in & (wc_ptr_t)(sizeof(word32) - 1U)) == (wc_ptr_t)0) { |
259 | 0 | const word32 *in_word32 = (const word32 *)in; |
260 | 0 | while (count-- > 0) |
261 | 0 | *out++ = *in_word32++; |
262 | 0 | } |
263 | 0 | else { |
264 | 0 | XMEMCPY(out, in, count * sizeof(*out)); |
265 | 0 | } |
266 | 0 | } Unexecuted instantiation: aes.c:readUnalignedWords32 Unexecuted instantiation: asn.c:readUnalignedWords32 Unexecuted instantiation: camellia.c:readUnalignedWords32 Unexecuted instantiation: chacha.c:readUnalignedWords32 Unexecuted instantiation: chacha20_poly1305.c:readUnalignedWords32 Unexecuted instantiation: cmac.c:readUnalignedWords32 Unexecuted instantiation: coding.c:readUnalignedWords32 Unexecuted instantiation: curve25519.c:readUnalignedWords32 Unexecuted instantiation: curve448.c:readUnalignedWords32 Unexecuted instantiation: des3.c:readUnalignedWords32 Unexecuted instantiation: dh.c:readUnalignedWords32 Unexecuted instantiation: ecc.c:readUnalignedWords32 Unexecuted instantiation: eccsi.c:readUnalignedWords32 Unexecuted instantiation: ed25519.c:readUnalignedWords32 Unexecuted instantiation: ed448.c:readUnalignedWords32 Unexecuted instantiation: fe_448.c:readUnalignedWords32 Unexecuted instantiation: fe_operations.c:readUnalignedWords32 Unexecuted instantiation: ge_448.c:readUnalignedWords32 Unexecuted instantiation: ge_operations.c:readUnalignedWords32 Unexecuted instantiation: hash.c:readUnalignedWords32 Unexecuted instantiation: hmac.c:readUnalignedWords32 Unexecuted instantiation: integer.c:readUnalignedWords32 Unexecuted instantiation: kdf.c:readUnalignedWords32 Unexecuted instantiation: md2.c:readUnalignedWords32 Unexecuted instantiation: md4.c:readUnalignedWords32 Unexecuted instantiation: md5.c:readUnalignedWords32 Unexecuted instantiation: memory.c:readUnalignedWords32 Unexecuted instantiation: poly1305.c:readUnalignedWords32 Unexecuted instantiation: pwdbased.c:readUnalignedWords32 Unexecuted instantiation: random.c:readUnalignedWords32 Unexecuted instantiation: ripemd.c:readUnalignedWords32 Unexecuted instantiation: rsa.c:readUnalignedWords32 Unexecuted instantiation: sha.c:readUnalignedWords32 Unexecuted instantiation: sha256.c:readUnalignedWords32 Unexecuted instantiation: sha3.c:readUnalignedWords32 Unexecuted instantiation: sha512.c:readUnalignedWords32 Unexecuted instantiation: siphash.c:readUnalignedWords32 Unexecuted instantiation: sm2.c:readUnalignedWords32 Unexecuted instantiation: sm3.c:readUnalignedWords32 Unexecuted instantiation: sm4.c:readUnalignedWords32 Unexecuted instantiation: wc_encrypt.c:readUnalignedWords32 Unexecuted instantiation: wolfmath.c:readUnalignedWords32 Unexecuted instantiation: ssl.c:readUnalignedWords32 Unexecuted instantiation: tls.c:readUnalignedWords32 Unexecuted instantiation: tls13.c:readUnalignedWords32 Unexecuted instantiation: internal.c:readUnalignedWords32 |
267 | | |
268 | | WC_MISC_STATIC WC_INLINE void writeUnalignedWords32(byte *out, const word32 *in, |
269 | | size_t count) |
270 | 0 | { |
271 | 0 | if (((wc_ptr_t)out & (wc_ptr_t)(sizeof(word32) - 1U)) == (wc_ptr_t)0) { |
272 | 0 | word32 *out_word32 = (word32 *)out; |
273 | 0 | while (count-- > 0) |
274 | 0 | *out_word32++ = *in++; |
275 | 0 | } |
276 | 0 | else { |
277 | 0 | XMEMCPY(out, in, count * sizeof(*in)); |
278 | 0 | } |
279 | 0 | } Unexecuted instantiation: aes.c:writeUnalignedWords32 Unexecuted instantiation: asn.c:writeUnalignedWords32 Unexecuted instantiation: camellia.c:writeUnalignedWords32 Unexecuted instantiation: chacha.c:writeUnalignedWords32 Unexecuted instantiation: chacha20_poly1305.c:writeUnalignedWords32 Unexecuted instantiation: cmac.c:writeUnalignedWords32 Unexecuted instantiation: coding.c:writeUnalignedWords32 Unexecuted instantiation: curve25519.c:writeUnalignedWords32 Unexecuted instantiation: curve448.c:writeUnalignedWords32 Unexecuted instantiation: des3.c:writeUnalignedWords32 Unexecuted instantiation: dh.c:writeUnalignedWords32 Unexecuted instantiation: ecc.c:writeUnalignedWords32 Unexecuted instantiation: eccsi.c:writeUnalignedWords32 Unexecuted instantiation: ed25519.c:writeUnalignedWords32 Unexecuted instantiation: ed448.c:writeUnalignedWords32 Unexecuted instantiation: fe_448.c:writeUnalignedWords32 Unexecuted instantiation: fe_operations.c:writeUnalignedWords32 Unexecuted instantiation: ge_448.c:writeUnalignedWords32 Unexecuted instantiation: ge_operations.c:writeUnalignedWords32 Unexecuted instantiation: hash.c:writeUnalignedWords32 Unexecuted instantiation: hmac.c:writeUnalignedWords32 Unexecuted instantiation: integer.c:writeUnalignedWords32 Unexecuted instantiation: kdf.c:writeUnalignedWords32 Unexecuted instantiation: md2.c:writeUnalignedWords32 Unexecuted instantiation: md4.c:writeUnalignedWords32 Unexecuted instantiation: md5.c:writeUnalignedWords32 Unexecuted instantiation: memory.c:writeUnalignedWords32 Unexecuted instantiation: poly1305.c:writeUnalignedWords32 Unexecuted instantiation: pwdbased.c:writeUnalignedWords32 Unexecuted instantiation: random.c:writeUnalignedWords32 Unexecuted instantiation: ripemd.c:writeUnalignedWords32 Unexecuted instantiation: rsa.c:writeUnalignedWords32 Unexecuted instantiation: sha.c:writeUnalignedWords32 Unexecuted instantiation: sha256.c:writeUnalignedWords32 Unexecuted instantiation: sha3.c:writeUnalignedWords32 Unexecuted instantiation: sha512.c:writeUnalignedWords32 Unexecuted instantiation: siphash.c:writeUnalignedWords32 Unexecuted instantiation: sm2.c:writeUnalignedWords32 Unexecuted instantiation: sm3.c:writeUnalignedWords32 Unexecuted instantiation: sm4.c:writeUnalignedWords32 Unexecuted instantiation: wc_encrypt.c:writeUnalignedWords32 Unexecuted instantiation: wolfmath.c:writeUnalignedWords32 Unexecuted instantiation: ssl.c:writeUnalignedWords32 Unexecuted instantiation: tls.c:writeUnalignedWords32 Unexecuted instantiation: tls13.c:writeUnalignedWords32 Unexecuted instantiation: internal.c:writeUnalignedWords32 |
280 | | |
281 | | #if defined(WORD64_AVAILABLE) && !defined(WOLFSSL_NO_WORD64_OPS) |
282 | | |
283 | | WC_MISC_STATIC WC_INLINE word64 readUnalignedWord64(const byte *in) |
284 | 0 | { |
285 | 0 | if (((wc_ptr_t)in & (wc_ptr_t)(sizeof(word64) - 1U)) == (wc_ptr_t)0) |
286 | 0 | return *(word64 *)in; |
287 | 0 | else { |
288 | 0 | word64 out = 0; /* else CONFIG_FORTIFY_SOURCE -Wmaybe-uninitialized */ |
289 | 0 | XMEMCPY(&out, in, sizeof(out)); |
290 | 0 | return out; |
291 | 0 | } |
292 | 0 | } Unexecuted instantiation: aes.c:readUnalignedWord64 Unexecuted instantiation: asn.c:readUnalignedWord64 Unexecuted instantiation: camellia.c:readUnalignedWord64 Unexecuted instantiation: chacha.c:readUnalignedWord64 Unexecuted instantiation: chacha20_poly1305.c:readUnalignedWord64 Unexecuted instantiation: cmac.c:readUnalignedWord64 Unexecuted instantiation: coding.c:readUnalignedWord64 Unexecuted instantiation: curve25519.c:readUnalignedWord64 Unexecuted instantiation: curve448.c:readUnalignedWord64 Unexecuted instantiation: des3.c:readUnalignedWord64 Unexecuted instantiation: dh.c:readUnalignedWord64 Unexecuted instantiation: ecc.c:readUnalignedWord64 Unexecuted instantiation: eccsi.c:readUnalignedWord64 Unexecuted instantiation: ed25519.c:readUnalignedWord64 Unexecuted instantiation: ed448.c:readUnalignedWord64 Unexecuted instantiation: fe_448.c:readUnalignedWord64 Unexecuted instantiation: fe_operations.c:readUnalignedWord64 Unexecuted instantiation: ge_448.c:readUnalignedWord64 Unexecuted instantiation: ge_operations.c:readUnalignedWord64 Unexecuted instantiation: hash.c:readUnalignedWord64 Unexecuted instantiation: hmac.c:readUnalignedWord64 Unexecuted instantiation: integer.c:readUnalignedWord64 Unexecuted instantiation: kdf.c:readUnalignedWord64 Unexecuted instantiation: md2.c:readUnalignedWord64 Unexecuted instantiation: md4.c:readUnalignedWord64 Unexecuted instantiation: md5.c:readUnalignedWord64 Unexecuted instantiation: memory.c:readUnalignedWord64 Unexecuted instantiation: poly1305.c:readUnalignedWord64 Unexecuted instantiation: pwdbased.c:readUnalignedWord64 Unexecuted instantiation: random.c:readUnalignedWord64 Unexecuted instantiation: ripemd.c:readUnalignedWord64 Unexecuted instantiation: rsa.c:readUnalignedWord64 Unexecuted instantiation: sha.c:readUnalignedWord64 Unexecuted instantiation: sha256.c:readUnalignedWord64 Unexecuted instantiation: sha3.c:readUnalignedWord64 Unexecuted instantiation: sha512.c:readUnalignedWord64 Unexecuted instantiation: siphash.c:readUnalignedWord64 Unexecuted instantiation: sm2.c:readUnalignedWord64 Unexecuted instantiation: sm3.c:readUnalignedWord64 Unexecuted instantiation: sm4.c:readUnalignedWord64 Unexecuted instantiation: wc_encrypt.c:readUnalignedWord64 Unexecuted instantiation: wolfmath.c:readUnalignedWord64 Unexecuted instantiation: ssl.c:readUnalignedWord64 Unexecuted instantiation: tls.c:readUnalignedWord64 Unexecuted instantiation: tls13.c:readUnalignedWord64 Unexecuted instantiation: internal.c:readUnalignedWord64 |
293 | | |
294 | | WC_MISC_STATIC WC_INLINE word64 writeUnalignedWord64(void *out, word64 in) |
295 | 0 | { |
296 | 0 | if (((wc_ptr_t)out & (wc_ptr_t)(sizeof(word64) - 1U)) == (wc_ptr_t)0) |
297 | 0 | *(word64 *)out = in; |
298 | 0 | else { |
299 | 0 | XMEMCPY(out, &in, sizeof(in)); |
300 | 0 | } |
301 | 0 | return in; |
302 | 0 | } Unexecuted instantiation: aes.c:writeUnalignedWord64 Unexecuted instantiation: asn.c:writeUnalignedWord64 Unexecuted instantiation: camellia.c:writeUnalignedWord64 Unexecuted instantiation: chacha.c:writeUnalignedWord64 Unexecuted instantiation: chacha20_poly1305.c:writeUnalignedWord64 Unexecuted instantiation: cmac.c:writeUnalignedWord64 Unexecuted instantiation: coding.c:writeUnalignedWord64 Unexecuted instantiation: curve25519.c:writeUnalignedWord64 Unexecuted instantiation: curve448.c:writeUnalignedWord64 Unexecuted instantiation: des3.c:writeUnalignedWord64 Unexecuted instantiation: dh.c:writeUnalignedWord64 Unexecuted instantiation: ecc.c:writeUnalignedWord64 Unexecuted instantiation: eccsi.c:writeUnalignedWord64 Unexecuted instantiation: ed25519.c:writeUnalignedWord64 Unexecuted instantiation: ed448.c:writeUnalignedWord64 Unexecuted instantiation: fe_448.c:writeUnalignedWord64 Unexecuted instantiation: fe_operations.c:writeUnalignedWord64 Unexecuted instantiation: ge_448.c:writeUnalignedWord64 Unexecuted instantiation: ge_operations.c:writeUnalignedWord64 Unexecuted instantiation: hash.c:writeUnalignedWord64 Unexecuted instantiation: hmac.c:writeUnalignedWord64 Unexecuted instantiation: integer.c:writeUnalignedWord64 Unexecuted instantiation: kdf.c:writeUnalignedWord64 Unexecuted instantiation: md2.c:writeUnalignedWord64 Unexecuted instantiation: md4.c:writeUnalignedWord64 Unexecuted instantiation: md5.c:writeUnalignedWord64 Unexecuted instantiation: memory.c:writeUnalignedWord64 Unexecuted instantiation: poly1305.c:writeUnalignedWord64 Unexecuted instantiation: pwdbased.c:writeUnalignedWord64 Unexecuted instantiation: random.c:writeUnalignedWord64 Unexecuted instantiation: ripemd.c:writeUnalignedWord64 Unexecuted instantiation: rsa.c:writeUnalignedWord64 Unexecuted instantiation: sha.c:writeUnalignedWord64 Unexecuted instantiation: sha256.c:writeUnalignedWord64 Unexecuted instantiation: sha3.c:writeUnalignedWord64 Unexecuted instantiation: sha512.c:writeUnalignedWord64 Unexecuted instantiation: siphash.c:writeUnalignedWord64 Unexecuted instantiation: sm2.c:writeUnalignedWord64 Unexecuted instantiation: sm3.c:writeUnalignedWord64 Unexecuted instantiation: sm4.c:writeUnalignedWord64 Unexecuted instantiation: wc_encrypt.c:writeUnalignedWord64 Unexecuted instantiation: wolfmath.c:writeUnalignedWord64 Unexecuted instantiation: ssl.c:writeUnalignedWord64 Unexecuted instantiation: tls.c:writeUnalignedWord64 Unexecuted instantiation: tls13.c:writeUnalignedWord64 Unexecuted instantiation: internal.c:writeUnalignedWord64 |
303 | | |
304 | | WC_MISC_STATIC WC_INLINE void readUnalignedWords64(word64 *out, const byte *in, |
305 | | size_t count) |
306 | 0 | { |
307 | 0 | if (((wc_ptr_t)in & (wc_ptr_t)(sizeof(word64) - 1U)) == (wc_ptr_t)0) { |
308 | 0 | const word64 *in_word64 = (const word64 *)in; |
309 | 0 | while (count-- > 0) |
310 | 0 | *out++ = *in_word64++; |
311 | 0 | } |
312 | 0 | else { |
313 | 0 | XMEMCPY(out, in, count * sizeof(*out)); |
314 | 0 | } |
315 | 0 | } Unexecuted instantiation: aes.c:readUnalignedWords64 Unexecuted instantiation: asn.c:readUnalignedWords64 Unexecuted instantiation: camellia.c:readUnalignedWords64 Unexecuted instantiation: chacha.c:readUnalignedWords64 Unexecuted instantiation: chacha20_poly1305.c:readUnalignedWords64 Unexecuted instantiation: cmac.c:readUnalignedWords64 Unexecuted instantiation: coding.c:readUnalignedWords64 Unexecuted instantiation: curve25519.c:readUnalignedWords64 Unexecuted instantiation: curve448.c:readUnalignedWords64 Unexecuted instantiation: des3.c:readUnalignedWords64 Unexecuted instantiation: dh.c:readUnalignedWords64 Unexecuted instantiation: ecc.c:readUnalignedWords64 Unexecuted instantiation: eccsi.c:readUnalignedWords64 Unexecuted instantiation: ed25519.c:readUnalignedWords64 Unexecuted instantiation: ed448.c:readUnalignedWords64 Unexecuted instantiation: fe_448.c:readUnalignedWords64 Unexecuted instantiation: fe_operations.c:readUnalignedWords64 Unexecuted instantiation: ge_448.c:readUnalignedWords64 Unexecuted instantiation: ge_operations.c:readUnalignedWords64 Unexecuted instantiation: hash.c:readUnalignedWords64 Unexecuted instantiation: hmac.c:readUnalignedWords64 Unexecuted instantiation: integer.c:readUnalignedWords64 Unexecuted instantiation: kdf.c:readUnalignedWords64 Unexecuted instantiation: md2.c:readUnalignedWords64 Unexecuted instantiation: md4.c:readUnalignedWords64 Unexecuted instantiation: md5.c:readUnalignedWords64 Unexecuted instantiation: memory.c:readUnalignedWords64 Unexecuted instantiation: poly1305.c:readUnalignedWords64 Unexecuted instantiation: pwdbased.c:readUnalignedWords64 Unexecuted instantiation: random.c:readUnalignedWords64 Unexecuted instantiation: ripemd.c:readUnalignedWords64 Unexecuted instantiation: rsa.c:readUnalignedWords64 Unexecuted instantiation: sha.c:readUnalignedWords64 Unexecuted instantiation: sha256.c:readUnalignedWords64 Unexecuted instantiation: sha3.c:readUnalignedWords64 Unexecuted instantiation: sha512.c:readUnalignedWords64 Unexecuted instantiation: siphash.c:readUnalignedWords64 Unexecuted instantiation: sm2.c:readUnalignedWords64 Unexecuted instantiation: sm3.c:readUnalignedWords64 Unexecuted instantiation: sm4.c:readUnalignedWords64 Unexecuted instantiation: wc_encrypt.c:readUnalignedWords64 Unexecuted instantiation: wolfmath.c:readUnalignedWords64 Unexecuted instantiation: ssl.c:readUnalignedWords64 Unexecuted instantiation: tls.c:readUnalignedWords64 Unexecuted instantiation: tls13.c:readUnalignedWords64 Unexecuted instantiation: internal.c:readUnalignedWords64 |
316 | | |
317 | | WC_MISC_STATIC WC_INLINE void writeUnalignedWords64(byte *out, const word64 *in, |
318 | | size_t count) |
319 | 0 | { |
320 | 0 | if (((wc_ptr_t)out & (wc_ptr_t)(sizeof(word64) - 1U)) == (wc_ptr_t)0) { |
321 | 0 | word64 *out_word64 = (word64 *)out; |
322 | 0 | while (count-- > 0) |
323 | 0 | *out_word64++ = *in++; |
324 | 0 | } |
325 | 0 | else { |
326 | 0 | XMEMCPY(out, in, count * sizeof(*in)); |
327 | 0 | } |
328 | 0 | } Unexecuted instantiation: aes.c:writeUnalignedWords64 Unexecuted instantiation: asn.c:writeUnalignedWords64 Unexecuted instantiation: camellia.c:writeUnalignedWords64 Unexecuted instantiation: chacha.c:writeUnalignedWords64 Unexecuted instantiation: chacha20_poly1305.c:writeUnalignedWords64 Unexecuted instantiation: cmac.c:writeUnalignedWords64 Unexecuted instantiation: coding.c:writeUnalignedWords64 Unexecuted instantiation: curve25519.c:writeUnalignedWords64 Unexecuted instantiation: curve448.c:writeUnalignedWords64 Unexecuted instantiation: des3.c:writeUnalignedWords64 Unexecuted instantiation: dh.c:writeUnalignedWords64 Unexecuted instantiation: ecc.c:writeUnalignedWords64 Unexecuted instantiation: eccsi.c:writeUnalignedWords64 Unexecuted instantiation: ed25519.c:writeUnalignedWords64 Unexecuted instantiation: ed448.c:writeUnalignedWords64 Unexecuted instantiation: fe_448.c:writeUnalignedWords64 Unexecuted instantiation: fe_operations.c:writeUnalignedWords64 Unexecuted instantiation: ge_448.c:writeUnalignedWords64 Unexecuted instantiation: ge_operations.c:writeUnalignedWords64 Unexecuted instantiation: hash.c:writeUnalignedWords64 Unexecuted instantiation: hmac.c:writeUnalignedWords64 Unexecuted instantiation: integer.c:writeUnalignedWords64 Unexecuted instantiation: kdf.c:writeUnalignedWords64 Unexecuted instantiation: md2.c:writeUnalignedWords64 Unexecuted instantiation: md4.c:writeUnalignedWords64 Unexecuted instantiation: md5.c:writeUnalignedWords64 Unexecuted instantiation: memory.c:writeUnalignedWords64 Unexecuted instantiation: poly1305.c:writeUnalignedWords64 Unexecuted instantiation: pwdbased.c:writeUnalignedWords64 Unexecuted instantiation: random.c:writeUnalignedWords64 Unexecuted instantiation: ripemd.c:writeUnalignedWords64 Unexecuted instantiation: rsa.c:writeUnalignedWords64 Unexecuted instantiation: sha.c:writeUnalignedWords64 Unexecuted instantiation: sha256.c:writeUnalignedWords64 Unexecuted instantiation: sha3.c:writeUnalignedWords64 Unexecuted instantiation: sha512.c:writeUnalignedWords64 Unexecuted instantiation: siphash.c:writeUnalignedWords64 Unexecuted instantiation: sm2.c:writeUnalignedWords64 Unexecuted instantiation: sm3.c:writeUnalignedWords64 Unexecuted instantiation: sm4.c:writeUnalignedWords64 Unexecuted instantiation: wc_encrypt.c:writeUnalignedWords64 Unexecuted instantiation: wolfmath.c:writeUnalignedWords64 Unexecuted instantiation: ssl.c:writeUnalignedWords64 Unexecuted instantiation: tls.c:writeUnalignedWords64 Unexecuted instantiation: tls13.c:writeUnalignedWords64 Unexecuted instantiation: internal.c:writeUnalignedWords64 |
329 | | |
330 | | WC_MISC_STATIC WC_INLINE word64 rotlFixed64(word64 x, word64 y) |
331 | 10.9M | { |
332 | 10.9M | return (x << y) | (x >> (sizeof(y) * 8 - y)); |
333 | 10.9M | } Unexecuted instantiation: aes.c:rotlFixed64 Unexecuted instantiation: asn.c:rotlFixed64 Unexecuted instantiation: camellia.c:rotlFixed64 Unexecuted instantiation: chacha.c:rotlFixed64 Unexecuted instantiation: chacha20_poly1305.c:rotlFixed64 Unexecuted instantiation: cmac.c:rotlFixed64 Unexecuted instantiation: coding.c:rotlFixed64 Unexecuted instantiation: curve25519.c:rotlFixed64 Unexecuted instantiation: curve448.c:rotlFixed64 Unexecuted instantiation: des3.c:rotlFixed64 Unexecuted instantiation: dh.c:rotlFixed64 Unexecuted instantiation: ecc.c:rotlFixed64 Unexecuted instantiation: eccsi.c:rotlFixed64 Unexecuted instantiation: ed25519.c:rotlFixed64 Unexecuted instantiation: ed448.c:rotlFixed64 Unexecuted instantiation: fe_448.c:rotlFixed64 Unexecuted instantiation: fe_operations.c:rotlFixed64 Unexecuted instantiation: ge_448.c:rotlFixed64 Unexecuted instantiation: ge_operations.c:rotlFixed64 Unexecuted instantiation: hash.c:rotlFixed64 Unexecuted instantiation: hmac.c:rotlFixed64 Unexecuted instantiation: integer.c:rotlFixed64 Unexecuted instantiation: kdf.c:rotlFixed64 Unexecuted instantiation: md2.c:rotlFixed64 Unexecuted instantiation: md4.c:rotlFixed64 Unexecuted instantiation: md5.c:rotlFixed64 Unexecuted instantiation: memory.c:rotlFixed64 Unexecuted instantiation: poly1305.c:rotlFixed64 Unexecuted instantiation: pwdbased.c:rotlFixed64 Line | Count | Source | 331 | 850k | { | 332 | 850k | return (x << y) | (x >> (sizeof(y) * 8 - y)); | 333 | 850k | } |
Unexecuted instantiation: ripemd.c:rotlFixed64 Unexecuted instantiation: rsa.c:rotlFixed64 Unexecuted instantiation: sha.c:rotlFixed64 Unexecuted instantiation: sha256.c:rotlFixed64 Unexecuted instantiation: sha3.c:rotlFixed64 Line | Count | Source | 331 | 10.1M | { | 332 | 10.1M | return (x << y) | (x >> (sizeof(y) * 8 - y)); | 333 | 10.1M | } |
Unexecuted instantiation: siphash.c:rotlFixed64 Unexecuted instantiation: sm2.c:rotlFixed64 Unexecuted instantiation: sm3.c:rotlFixed64 Unexecuted instantiation: sm4.c:rotlFixed64 Unexecuted instantiation: wc_encrypt.c:rotlFixed64 Unexecuted instantiation: wolfmath.c:rotlFixed64 Unexecuted instantiation: ssl.c:rotlFixed64 Unexecuted instantiation: tls.c:rotlFixed64 Unexecuted instantiation: tls13.c:rotlFixed64 Unexecuted instantiation: internal.c:rotlFixed64 |
334 | | |
335 | | |
336 | | WC_MISC_STATIC WC_INLINE word64 rotrFixed64(word64 x, word64 y) |
337 | 446M | { |
338 | 446M | return (x >> y) | (x << (sizeof(y) * 8 - y)); |
339 | 446M | } Unexecuted instantiation: aes.c:rotrFixed64 Unexecuted instantiation: asn.c:rotrFixed64 Unexecuted instantiation: camellia.c:rotrFixed64 Unexecuted instantiation: chacha.c:rotrFixed64 Unexecuted instantiation: chacha20_poly1305.c:rotrFixed64 Unexecuted instantiation: cmac.c:rotrFixed64 Unexecuted instantiation: coding.c:rotrFixed64 Unexecuted instantiation: curve25519.c:rotrFixed64 Unexecuted instantiation: curve448.c:rotrFixed64 Unexecuted instantiation: des3.c:rotrFixed64 Unexecuted instantiation: dh.c:rotrFixed64 Unexecuted instantiation: ecc.c:rotrFixed64 Unexecuted instantiation: eccsi.c:rotrFixed64 Unexecuted instantiation: ed25519.c:rotrFixed64 Unexecuted instantiation: ed448.c:rotrFixed64 Unexecuted instantiation: fe_448.c:rotrFixed64 Unexecuted instantiation: fe_operations.c:rotrFixed64 Unexecuted instantiation: ge_448.c:rotrFixed64 Unexecuted instantiation: ge_operations.c:rotrFixed64 Unexecuted instantiation: hash.c:rotrFixed64 Unexecuted instantiation: hmac.c:rotrFixed64 Unexecuted instantiation: integer.c:rotrFixed64 Unexecuted instantiation: kdf.c:rotrFixed64 Unexecuted instantiation: md2.c:rotrFixed64 Unexecuted instantiation: md4.c:rotrFixed64 Unexecuted instantiation: md5.c:rotrFixed64 Unexecuted instantiation: memory.c:rotrFixed64 Unexecuted instantiation: poly1305.c:rotrFixed64 Unexecuted instantiation: pwdbased.c:rotrFixed64 Unexecuted instantiation: random.c:rotrFixed64 Unexecuted instantiation: ripemd.c:rotrFixed64 Unexecuted instantiation: rsa.c:rotrFixed64 Unexecuted instantiation: sha.c:rotrFixed64 Unexecuted instantiation: sha256.c:rotrFixed64 Unexecuted instantiation: sha3.c:rotrFixed64 Line | Count | Source | 337 | 446M | { | 338 | 446M | return (x >> y) | (x << (sizeof(y) * 8 - y)); | 339 | 446M | } |
Unexecuted instantiation: siphash.c:rotrFixed64 Unexecuted instantiation: sm2.c:rotrFixed64 Unexecuted instantiation: sm3.c:rotrFixed64 Unexecuted instantiation: sm4.c:rotrFixed64 Unexecuted instantiation: wc_encrypt.c:rotrFixed64 Unexecuted instantiation: wolfmath.c:rotrFixed64 Unexecuted instantiation: ssl.c:rotrFixed64 Unexecuted instantiation: tls.c:rotrFixed64 Unexecuted instantiation: tls13.c:rotrFixed64 Unexecuted instantiation: internal.c:rotrFixed64 |
340 | | |
341 | | |
342 | | WC_MISC_STATIC WC_INLINE word64 ByteReverseWord64(word64 value) |
343 | 10.9M | { |
344 | | #if defined(WOLF_ALLOW_BUILTIN) && defined(__GNUC_PREREQ) && __GNUC_PREREQ(4, 3) |
345 | | return (word64)__builtin_bswap64(value); |
346 | | #elif defined(WOLFCRYPT_SLOW_WORD64) |
347 | | return (word64)((word64)ByteReverseWord32((word32) value)) << 32 | |
348 | | (word64)ByteReverseWord32((word32)(value >> 32)); |
349 | | #else |
350 | 10.9M | value = ((value & W64LIT(0xFF00FF00FF00FF00)) >> 8) | |
351 | 10.9M | ((value & W64LIT(0x00FF00FF00FF00FF)) << 8); |
352 | 10.9M | value = ((value & W64LIT(0xFFFF0000FFFF0000)) >> 16) | |
353 | 10.9M | ((value & W64LIT(0x0000FFFF0000FFFF)) << 16); |
354 | 10.9M | return rotlFixed64(value, 32U); |
355 | 10.9M | #endif |
356 | 10.9M | } Unexecuted instantiation: aes.c:ByteReverseWord64 Unexecuted instantiation: asn.c:ByteReverseWord64 Unexecuted instantiation: camellia.c:ByteReverseWord64 Unexecuted instantiation: chacha.c:ByteReverseWord64 Unexecuted instantiation: chacha20_poly1305.c:ByteReverseWord64 Unexecuted instantiation: cmac.c:ByteReverseWord64 Unexecuted instantiation: coding.c:ByteReverseWord64 Unexecuted instantiation: curve25519.c:ByteReverseWord64 Unexecuted instantiation: curve448.c:ByteReverseWord64 Unexecuted instantiation: des3.c:ByteReverseWord64 Unexecuted instantiation: dh.c:ByteReverseWord64 Unexecuted instantiation: ecc.c:ByteReverseWord64 Unexecuted instantiation: eccsi.c:ByteReverseWord64 Unexecuted instantiation: ed25519.c:ByteReverseWord64 Unexecuted instantiation: ed448.c:ByteReverseWord64 Unexecuted instantiation: fe_448.c:ByteReverseWord64 Unexecuted instantiation: fe_operations.c:ByteReverseWord64 Unexecuted instantiation: ge_448.c:ByteReverseWord64 Unexecuted instantiation: ge_operations.c:ByteReverseWord64 Unexecuted instantiation: hash.c:ByteReverseWord64 Unexecuted instantiation: hmac.c:ByteReverseWord64 Unexecuted instantiation: integer.c:ByteReverseWord64 Unexecuted instantiation: kdf.c:ByteReverseWord64 Unexecuted instantiation: md2.c:ByteReverseWord64 Unexecuted instantiation: md4.c:ByteReverseWord64 Unexecuted instantiation: md5.c:ByteReverseWord64 Unexecuted instantiation: memory.c:ByteReverseWord64 Unexecuted instantiation: poly1305.c:ByteReverseWord64 Unexecuted instantiation: pwdbased.c:ByteReverseWord64 random.c:ByteReverseWord64 Line | Count | Source | 343 | 850k | { | 344 | | #if defined(WOLF_ALLOW_BUILTIN) && defined(__GNUC_PREREQ) && __GNUC_PREREQ(4, 3) | 345 | | return (word64)__builtin_bswap64(value); | 346 | | #elif defined(WOLFCRYPT_SLOW_WORD64) | 347 | | return (word64)((word64)ByteReverseWord32((word32) value)) << 32 | | 348 | | (word64)ByteReverseWord32((word32)(value >> 32)); | 349 | | #else | 350 | 850k | value = ((value & W64LIT(0xFF00FF00FF00FF00)) >> 8) | | 351 | 850k | ((value & W64LIT(0x00FF00FF00FF00FF)) << 8); | 352 | 850k | value = ((value & W64LIT(0xFFFF0000FFFF0000)) >> 16) | | 353 | 850k | ((value & W64LIT(0x0000FFFF0000FFFF)) << 16); | 354 | 850k | return rotlFixed64(value, 32U); | 355 | 850k | #endif | 356 | 850k | } |
Unexecuted instantiation: ripemd.c:ByteReverseWord64 Unexecuted instantiation: rsa.c:ByteReverseWord64 Unexecuted instantiation: sha.c:ByteReverseWord64 Unexecuted instantiation: sha256.c:ByteReverseWord64 Unexecuted instantiation: sha3.c:ByteReverseWord64 sha512.c:ByteReverseWord64 Line | Count | Source | 343 | 10.1M | { | 344 | | #if defined(WOLF_ALLOW_BUILTIN) && defined(__GNUC_PREREQ) && __GNUC_PREREQ(4, 3) | 345 | | return (word64)__builtin_bswap64(value); | 346 | | #elif defined(WOLFCRYPT_SLOW_WORD64) | 347 | | return (word64)((word64)ByteReverseWord32((word32) value)) << 32 | | 348 | | (word64)ByteReverseWord32((word32)(value >> 32)); | 349 | | #else | 350 | 10.1M | value = ((value & W64LIT(0xFF00FF00FF00FF00)) >> 8) | | 351 | 10.1M | ((value & W64LIT(0x00FF00FF00FF00FF)) << 8); | 352 | 10.1M | value = ((value & W64LIT(0xFFFF0000FFFF0000)) >> 16) | | 353 | 10.1M | ((value & W64LIT(0x0000FFFF0000FFFF)) << 16); | 354 | 10.1M | return rotlFixed64(value, 32U); | 355 | 10.1M | #endif | 356 | 10.1M | } |
Unexecuted instantiation: siphash.c:ByteReverseWord64 Unexecuted instantiation: sm2.c:ByteReverseWord64 Unexecuted instantiation: sm3.c:ByteReverseWord64 Unexecuted instantiation: sm4.c:ByteReverseWord64 Unexecuted instantiation: wc_encrypt.c:ByteReverseWord64 Unexecuted instantiation: wolfmath.c:ByteReverseWord64 Unexecuted instantiation: ssl.c:ByteReverseWord64 Unexecuted instantiation: tls.c:ByteReverseWord64 Unexecuted instantiation: tls13.c:ByteReverseWord64 Unexecuted instantiation: internal.c:ByteReverseWord64 |
357 | | |
358 | | |
359 | | WC_MISC_STATIC WC_INLINE void ByteReverseWords64(word64* out, const word64* in, |
360 | | word32 byteCount) |
361 | 671k | { |
362 | 671k | word32 count = byteCount/(word32)sizeof(word64), i; |
363 | | |
364 | 671k | #ifdef WOLFSSL_USE_ALIGN |
365 | 671k | if ((((size_t)in & 0x7) == 0) && |
366 | 671k | (((size_t)out & 0x7) == 0)) |
367 | 671k | #endif |
368 | 671k | { |
369 | 10.7M | for (i = 0; i < count; i++) |
370 | 10.1M | out[i] = ByteReverseWord64(in[i]); |
371 | 671k | } |
372 | 0 | #ifdef WOLFSSL_USE_ALIGN |
373 | 0 | else if (((size_t)in & 0x7) == 0) { |
374 | 0 | byte *out_bytes = (byte *)out; |
375 | 0 | word64 scratch; |
376 | |
|
377 | 0 | byteCount &= ~0x7U; |
378 | |
|
379 | 0 | for (i = 0; i < byteCount; i += (word32)sizeof(word64)) { |
380 | 0 | scratch = ByteReverseWord64(*in++); |
381 | 0 | XMEMCPY(out_bytes + i, &scratch, sizeof(scratch)); |
382 | 0 | } |
383 | 0 | } |
384 | 0 | else if (((size_t)out & 0x7) == 0) { |
385 | 0 | byte *in_bytes = (byte *)in; |
386 | 0 | word64 scratch; |
387 | |
|
388 | 0 | byteCount &= ~0x7U; |
389 | |
|
390 | 0 | for (i = 0; i < byteCount; i += (word32)sizeof(word64)) { |
391 | 0 | XMEMCPY(&scratch, in_bytes + i, sizeof(scratch)); |
392 | 0 | *out++ = ByteReverseWord64(scratch); |
393 | 0 | } |
394 | 0 | } |
395 | 0 | else { |
396 | 0 | byte *in_bytes = (byte *)in; |
397 | 0 | byte *out_bytes = (byte *)out; |
398 | 0 | word64 scratch; |
399 | |
|
400 | 0 | byteCount &= ~0x7U; |
401 | |
|
402 | 0 | for (i = 0; i < byteCount; i += (word32)sizeof(word64)) { |
403 | 0 | XMEMCPY(&scratch, in_bytes + i, sizeof(scratch)); |
404 | 0 | scratch = ByteReverseWord64(scratch); |
405 | 0 | XMEMCPY(out_bytes + i, &scratch, sizeof(scratch)); |
406 | 0 | } |
407 | 0 | } |
408 | 671k | #endif |
409 | 671k | } Unexecuted instantiation: aes.c:ByteReverseWords64 Unexecuted instantiation: asn.c:ByteReverseWords64 Unexecuted instantiation: camellia.c:ByteReverseWords64 Unexecuted instantiation: chacha.c:ByteReverseWords64 Unexecuted instantiation: chacha20_poly1305.c:ByteReverseWords64 Unexecuted instantiation: cmac.c:ByteReverseWords64 Unexecuted instantiation: coding.c:ByteReverseWords64 Unexecuted instantiation: curve25519.c:ByteReverseWords64 Unexecuted instantiation: curve448.c:ByteReverseWords64 Unexecuted instantiation: des3.c:ByteReverseWords64 Unexecuted instantiation: dh.c:ByteReverseWords64 Unexecuted instantiation: ecc.c:ByteReverseWords64 Unexecuted instantiation: eccsi.c:ByteReverseWords64 Unexecuted instantiation: ed25519.c:ByteReverseWords64 Unexecuted instantiation: ed448.c:ByteReverseWords64 Unexecuted instantiation: fe_448.c:ByteReverseWords64 Unexecuted instantiation: fe_operations.c:ByteReverseWords64 Unexecuted instantiation: ge_448.c:ByteReverseWords64 Unexecuted instantiation: ge_operations.c:ByteReverseWords64 Unexecuted instantiation: hash.c:ByteReverseWords64 Unexecuted instantiation: hmac.c:ByteReverseWords64 Unexecuted instantiation: integer.c:ByteReverseWords64 Unexecuted instantiation: kdf.c:ByteReverseWords64 Unexecuted instantiation: md2.c:ByteReverseWords64 Unexecuted instantiation: md4.c:ByteReverseWords64 Unexecuted instantiation: md5.c:ByteReverseWords64 Unexecuted instantiation: memory.c:ByteReverseWords64 Unexecuted instantiation: poly1305.c:ByteReverseWords64 Unexecuted instantiation: pwdbased.c:ByteReverseWords64 Unexecuted instantiation: random.c:ByteReverseWords64 Unexecuted instantiation: ripemd.c:ByteReverseWords64 Unexecuted instantiation: rsa.c:ByteReverseWords64 Unexecuted instantiation: sha.c:ByteReverseWords64 Unexecuted instantiation: sha256.c:ByteReverseWords64 Unexecuted instantiation: sha3.c:ByteReverseWords64 sha512.c:ByteReverseWords64 Line | Count | Source | 361 | 671k | { | 362 | 671k | word32 count = byteCount/(word32)sizeof(word64), i; | 363 | | | 364 | 671k | #ifdef WOLFSSL_USE_ALIGN | 365 | 671k | if ((((size_t)in & 0x7) == 0) && | 366 | 671k | (((size_t)out & 0x7) == 0)) | 367 | 671k | #endif | 368 | 671k | { | 369 | 10.7M | for (i = 0; i < count; i++) | 370 | 10.1M | out[i] = ByteReverseWord64(in[i]); | 371 | 671k | } | 372 | 0 | #ifdef WOLFSSL_USE_ALIGN | 373 | 0 | else if (((size_t)in & 0x7) == 0) { | 374 | 0 | byte *out_bytes = (byte *)out; | 375 | 0 | word64 scratch; | 376 | |
| 377 | 0 | byteCount &= ~0x7U; | 378 | |
| 379 | 0 | for (i = 0; i < byteCount; i += (word32)sizeof(word64)) { | 380 | 0 | scratch = ByteReverseWord64(*in++); | 381 | 0 | XMEMCPY(out_bytes + i, &scratch, sizeof(scratch)); | 382 | 0 | } | 383 | 0 | } | 384 | 0 | else if (((size_t)out & 0x7) == 0) { | 385 | 0 | byte *in_bytes = (byte *)in; | 386 | 0 | word64 scratch; | 387 | |
| 388 | 0 | byteCount &= ~0x7U; | 389 | |
| 390 | 0 | for (i = 0; i < byteCount; i += (word32)sizeof(word64)) { | 391 | 0 | XMEMCPY(&scratch, in_bytes + i, sizeof(scratch)); | 392 | 0 | *out++ = ByteReverseWord64(scratch); | 393 | 0 | } | 394 | 0 | } | 395 | 0 | else { | 396 | 0 | byte *in_bytes = (byte *)in; | 397 | 0 | byte *out_bytes = (byte *)out; | 398 | 0 | word64 scratch; | 399 | |
| 400 | 0 | byteCount &= ~0x7U; | 401 | |
| 402 | 0 | for (i = 0; i < byteCount; i += (word32)sizeof(word64)) { | 403 | 0 | XMEMCPY(&scratch, in_bytes + i, sizeof(scratch)); | 404 | 0 | scratch = ByteReverseWord64(scratch); | 405 | 0 | XMEMCPY(out_bytes + i, &scratch, sizeof(scratch)); | 406 | 0 | } | 407 | 0 | } | 408 | 671k | #endif | 409 | 671k | } |
Unexecuted instantiation: siphash.c:ByteReverseWords64 Unexecuted instantiation: sm2.c:ByteReverseWords64 Unexecuted instantiation: sm3.c:ByteReverseWords64 Unexecuted instantiation: sm4.c:ByteReverseWords64 Unexecuted instantiation: wc_encrypt.c:ByteReverseWords64 Unexecuted instantiation: wolfmath.c:ByteReverseWords64 Unexecuted instantiation: ssl.c:ByteReverseWords64 Unexecuted instantiation: tls.c:ByteReverseWords64 Unexecuted instantiation: tls13.c:ByteReverseWords64 Unexecuted instantiation: internal.c:ByteReverseWords64 |
410 | | |
411 | | #endif /* WORD64_AVAILABLE && !WOLFSSL_NO_WORD64_OPS */ |
412 | | |
413 | | #ifndef WOLFSSL_NO_XOR_OPS |
414 | | |
415 | | /* Leave no doubt that WOLFSSL_WORD_SIZE is a power of 2. */ |
416 | | wc_static_assert((WOLFSSL_WORD_SIZE & (WOLFSSL_WORD_SIZE - 1)) == 0); |
417 | | |
418 | | /* This routine performs a bitwise XOR operation of <*r> and <*a> for <n> number |
419 | | of wolfssl_words, placing the result in <*r>. */ |
420 | | WC_MISC_STATIC WC_INLINE void XorWordsOut(wolfssl_word** r, |
421 | | const wolfssl_word** a, const wolfssl_word** b, word32 n) |
422 | 32.4k | { |
423 | 32.4k | const wolfssl_word *e = *a + n; |
424 | | |
425 | 69.3k | while (*a < e) |
426 | 36.9k | *((*r)++) = *((*a)++) ^ *((*b)++); |
427 | 32.4k | } Line | Count | Source | 422 | 29.3k | { | 423 | 29.3k | const wolfssl_word *e = *a + n; | 424 | | | 425 | 53.5k | while (*a < e) | 426 | 24.2k | *((*r)++) = *((*a)++) ^ *((*b)++); | 427 | 29.3k | } |
Unexecuted instantiation: asn.c:XorWordsOut Unexecuted instantiation: camellia.c:XorWordsOut Line | Count | Source | 422 | 3.17k | { | 423 | 3.17k | const wolfssl_word *e = *a + n; | 424 | | | 425 | 15.8k | while (*a < e) | 426 | 12.6k | *((*r)++) = *((*a)++) ^ *((*b)++); | 427 | 3.17k | } |
Unexecuted instantiation: chacha20_poly1305.c:XorWordsOut Unexecuted instantiation: cmac.c:XorWordsOut Unexecuted instantiation: coding.c:XorWordsOut Unexecuted instantiation: curve25519.c:XorWordsOut Unexecuted instantiation: curve448.c:XorWordsOut Unexecuted instantiation: des3.c:XorWordsOut Unexecuted instantiation: dh.c:XorWordsOut Unexecuted instantiation: ecc.c:XorWordsOut Unexecuted instantiation: eccsi.c:XorWordsOut Unexecuted instantiation: ed25519.c:XorWordsOut Unexecuted instantiation: ed448.c:XorWordsOut Unexecuted instantiation: fe_448.c:XorWordsOut Unexecuted instantiation: fe_operations.c:XorWordsOut Unexecuted instantiation: ge_448.c:XorWordsOut Unexecuted instantiation: ge_operations.c:XorWordsOut Unexecuted instantiation: hash.c:XorWordsOut Unexecuted instantiation: hmac.c:XorWordsOut Unexecuted instantiation: integer.c:XorWordsOut Unexecuted instantiation: kdf.c:XorWordsOut Unexecuted instantiation: md2.c:XorWordsOut Unexecuted instantiation: md4.c:XorWordsOut Unexecuted instantiation: md5.c:XorWordsOut Unexecuted instantiation: memory.c:XorWordsOut Unexecuted instantiation: poly1305.c:XorWordsOut Unexecuted instantiation: pwdbased.c:XorWordsOut Unexecuted instantiation: random.c:XorWordsOut Unexecuted instantiation: ripemd.c:XorWordsOut Unexecuted instantiation: rsa.c:XorWordsOut Unexecuted instantiation: sha.c:XorWordsOut Unexecuted instantiation: sha256.c:XorWordsOut Unexecuted instantiation: sha3.c:XorWordsOut Unexecuted instantiation: sha512.c:XorWordsOut Unexecuted instantiation: siphash.c:XorWordsOut Unexecuted instantiation: sm2.c:XorWordsOut Unexecuted instantiation: sm3.c:XorWordsOut Unexecuted instantiation: sm4.c:XorWordsOut Unexecuted instantiation: wc_encrypt.c:XorWordsOut Unexecuted instantiation: wolfmath.c:XorWordsOut Unexecuted instantiation: ssl.c:XorWordsOut Unexecuted instantiation: tls.c:XorWordsOut Unexecuted instantiation: tls13.c:XorWordsOut Unexecuted instantiation: internal.c:XorWordsOut |
428 | | |
429 | | /* This routine performs a bitwise XOR operation of <*buf> and <*mask> of n |
430 | | counts, placing the result in <*buf>. */ |
431 | | |
432 | | WC_MISC_STATIC WC_INLINE void xorbufout(void* out, const void* buf, |
433 | | const void* mask, word32 count) |
434 | 70.9k | { |
435 | 70.9k | byte* o = (byte*)out; |
436 | 70.9k | const byte* b = (const byte*)buf; |
437 | 70.9k | const byte* m = (const byte*)mask; |
438 | | |
439 | | /* type-punning helpers */ |
440 | 70.9k | union { |
441 | 70.9k | byte* bp; |
442 | 70.9k | wolfssl_word* wp; |
443 | 70.9k | } tpo; |
444 | 70.9k | union { |
445 | 70.9k | const byte* bp; |
446 | 70.9k | const wolfssl_word* wp; |
447 | 70.9k | } tpb, tpm; |
448 | | |
449 | 70.9k | if (((((wc_ptr_t)o) & (WOLFSSL_WORD_SIZE - 1)) == 0) && |
450 | 16.9k | ((((wc_ptr_t)b) & (WOLFSSL_WORD_SIZE - 1)) == 0) && |
451 | 16.9k | ((((wc_ptr_t)m) & (WOLFSSL_WORD_SIZE - 1)) == 0)) |
452 | 16.9k | { |
453 | | /* All buffers are already aligned. Possible to XOR by words without |
454 | | * fixup. |
455 | | */ |
456 | | |
457 | 16.9k | tpo.bp = o; |
458 | 16.9k | tpb.bp = b; |
459 | 16.9k | tpm.bp = m; |
460 | 16.9k | XorWordsOut(&tpo.wp, &tpb.wp, &tpm.wp, count >> WOLFSSL_WORD_SIZE_LOG2); |
461 | 16.9k | o = tpo.bp; |
462 | 16.9k | b = tpb.bp; |
463 | 16.9k | m = tpm.bp; |
464 | 16.9k | count &= (WOLFSSL_WORD_SIZE - 1); |
465 | 16.9k | } |
466 | 53.9k | else if ((((wc_ptr_t)o) & (WOLFSSL_WORD_SIZE - 1)) == |
467 | 53.9k | (((wc_ptr_t)b) & (WOLFSSL_WORD_SIZE - 1)) && |
468 | 23.9k | (((wc_ptr_t)b) & (WOLFSSL_WORD_SIZE - 1)) == |
469 | 23.9k | (((wc_ptr_t)m) & (WOLFSSL_WORD_SIZE - 1))) |
470 | 15.5k | { |
471 | | /* Alignment can be fixed up to allow XOR by words. */ |
472 | | |
473 | | /* Perform bytewise xor until pointers are aligned to |
474 | | * WOLFSSL_WORD_SIZE. |
475 | | */ |
476 | 21.7k | while ((((wc_ptr_t)b & (WOLFSSL_WORD_SIZE - 1)) != 0) && (count > 0)) |
477 | 6.26k | { |
478 | 6.26k | *o++ = (byte)(*b++ ^ *m++); |
479 | 6.26k | count--; |
480 | 6.26k | } |
481 | | |
482 | 15.5k | tpo.bp = o; |
483 | 15.5k | tpb.bp = b; |
484 | 15.5k | tpm.bp = m; |
485 | 15.5k | XorWordsOut(&tpo.wp, &tpb.wp, &tpm.wp, count >> WOLFSSL_WORD_SIZE_LOG2); |
486 | 15.5k | o = tpo.bp; |
487 | 15.5k | b = tpb.bp; |
488 | 15.5k | m = tpm.bp; |
489 | 15.5k | count &= (WOLFSSL_WORD_SIZE - 1); |
490 | 15.5k | } |
491 | | |
492 | 1.06M | while (count > 0) { |
493 | 991k | *o++ = (byte)(*b++ ^ *m++); |
494 | 991k | count--; |
495 | 991k | } |
496 | | |
497 | 70.9k | } Line | Count | Source | 434 | 59.2k | { | 435 | 59.2k | byte* o = (byte*)out; | 436 | 59.2k | const byte* b = (const byte*)buf; | 437 | 59.2k | const byte* m = (const byte*)mask; | 438 | | | 439 | | /* type-punning helpers */ | 440 | 59.2k | union { | 441 | 59.2k | byte* bp; | 442 | 59.2k | wolfssl_word* wp; | 443 | 59.2k | } tpo; | 444 | 59.2k | union { | 445 | 59.2k | const byte* bp; | 446 | 59.2k | const wolfssl_word* wp; | 447 | 59.2k | } tpb, tpm; | 448 | | | 449 | 59.2k | if (((((wc_ptr_t)o) & (WOLFSSL_WORD_SIZE - 1)) == 0) && | 450 | 13.7k | ((((wc_ptr_t)b) & (WOLFSSL_WORD_SIZE - 1)) == 0) && | 451 | 13.7k | ((((wc_ptr_t)m) & (WOLFSSL_WORD_SIZE - 1)) == 0)) | 452 | 13.7k | { | 453 | | /* All buffers are already aligned. Possible to XOR by words without | 454 | | * fixup. | 455 | | */ | 456 | | | 457 | 13.7k | tpo.bp = o; | 458 | 13.7k | tpb.bp = b; | 459 | 13.7k | tpm.bp = m; | 460 | 13.7k | XorWordsOut(&tpo.wp, &tpb.wp, &tpm.wp, count >> WOLFSSL_WORD_SIZE_LOG2); | 461 | 13.7k | o = tpo.bp; | 462 | 13.7k | b = tpb.bp; | 463 | 13.7k | m = tpm.bp; | 464 | 13.7k | count &= (WOLFSSL_WORD_SIZE - 1); | 465 | 13.7k | } | 466 | 45.5k | else if ((((wc_ptr_t)o) & (WOLFSSL_WORD_SIZE - 1)) == | 467 | 45.5k | (((wc_ptr_t)b) & (WOLFSSL_WORD_SIZE - 1)) && | 468 | 15.5k | (((wc_ptr_t)b) & (WOLFSSL_WORD_SIZE - 1)) == | 469 | 15.5k | (((wc_ptr_t)m) & (WOLFSSL_WORD_SIZE - 1))) | 470 | 15.5k | { | 471 | | /* Alignment can be fixed up to allow XOR by words. */ | 472 | | | 473 | | /* Perform bytewise xor until pointers are aligned to | 474 | | * WOLFSSL_WORD_SIZE. | 475 | | */ | 476 | 21.7k | while ((((wc_ptr_t)b & (WOLFSSL_WORD_SIZE - 1)) != 0) && (count > 0)) | 477 | 6.26k | { | 478 | 6.26k | *o++ = (byte)(*b++ ^ *m++); | 479 | 6.26k | count--; | 480 | 6.26k | } | 481 | | | 482 | 15.5k | tpo.bp = o; | 483 | 15.5k | tpb.bp = b; | 484 | 15.5k | tpm.bp = m; | 485 | 15.5k | XorWordsOut(&tpo.wp, &tpb.wp, &tpm.wp, count >> WOLFSSL_WORD_SIZE_LOG2); | 486 | 15.5k | o = tpo.bp; | 487 | 15.5k | b = tpb.bp; | 488 | 15.5k | m = tpm.bp; | 489 | 15.5k | count &= (WOLFSSL_WORD_SIZE - 1); | 490 | 15.5k | } | 491 | | | 492 | 540k | while (count > 0) { | 493 | 480k | *o++ = (byte)(*b++ ^ *m++); | 494 | 480k | count--; | 495 | 480k | } | 496 | | | 497 | 59.2k | } |
Unexecuted instantiation: asn.c:xorbufout Unexecuted instantiation: camellia.c:xorbufout Line | Count | Source | 434 | 11.6k | { | 435 | 11.6k | byte* o = (byte*)out; | 436 | 11.6k | const byte* b = (const byte*)buf; | 437 | 11.6k | const byte* m = (const byte*)mask; | 438 | | | 439 | | /* type-punning helpers */ | 440 | 11.6k | union { | 441 | 11.6k | byte* bp; | 442 | 11.6k | wolfssl_word* wp; | 443 | 11.6k | } tpo; | 444 | 11.6k | union { | 445 | 11.6k | const byte* bp; | 446 | 11.6k | const wolfssl_word* wp; | 447 | 11.6k | } tpb, tpm; | 448 | | | 449 | 11.6k | if (((((wc_ptr_t)o) & (WOLFSSL_WORD_SIZE - 1)) == 0) && | 450 | 3.17k | ((((wc_ptr_t)b) & (WOLFSSL_WORD_SIZE - 1)) == 0) && | 451 | 3.17k | ((((wc_ptr_t)m) & (WOLFSSL_WORD_SIZE - 1)) == 0)) | 452 | 3.17k | { | 453 | | /* All buffers are already aligned. Possible to XOR by words without | 454 | | * fixup. | 455 | | */ | 456 | | | 457 | 3.17k | tpo.bp = o; | 458 | 3.17k | tpb.bp = b; | 459 | 3.17k | tpm.bp = m; | 460 | 3.17k | XorWordsOut(&tpo.wp, &tpb.wp, &tpm.wp, count >> WOLFSSL_WORD_SIZE_LOG2); | 461 | 3.17k | o = tpo.bp; | 462 | 3.17k | b = tpb.bp; | 463 | 3.17k | m = tpm.bp; | 464 | 3.17k | count &= (WOLFSSL_WORD_SIZE - 1); | 465 | 3.17k | } | 466 | 8.46k | else if ((((wc_ptr_t)o) & (WOLFSSL_WORD_SIZE - 1)) == | 467 | 8.46k | (((wc_ptr_t)b) & (WOLFSSL_WORD_SIZE - 1)) && | 468 | 8.46k | (((wc_ptr_t)b) & (WOLFSSL_WORD_SIZE - 1)) == | 469 | 8.46k | (((wc_ptr_t)m) & (WOLFSSL_WORD_SIZE - 1))) | 470 | 0 | { | 471 | | /* Alignment can be fixed up to allow XOR by words. */ | 472 | | | 473 | | /* Perform bytewise xor until pointers are aligned to | 474 | | * WOLFSSL_WORD_SIZE. | 475 | | */ | 476 | 0 | while ((((wc_ptr_t)b & (WOLFSSL_WORD_SIZE - 1)) != 0) && (count > 0)) | 477 | 0 | { | 478 | 0 | *o++ = (byte)(*b++ ^ *m++); | 479 | 0 | count--; | 480 | 0 | } | 481 | |
| 482 | 0 | tpo.bp = o; | 483 | 0 | tpb.bp = b; | 484 | 0 | tpm.bp = m; | 485 | 0 | XorWordsOut(&tpo.wp, &tpb.wp, &tpm.wp, count >> WOLFSSL_WORD_SIZE_LOG2); | 486 | 0 | o = tpo.bp; | 487 | 0 | b = tpb.bp; | 488 | 0 | m = tpm.bp; | 489 | 0 | count &= (WOLFSSL_WORD_SIZE - 1); | 490 | 0 | } | 491 | | | 492 | 522k | while (count > 0) { | 493 | 510k | *o++ = (byte)(*b++ ^ *m++); | 494 | 510k | count--; | 495 | 510k | } | 496 | | | 497 | 11.6k | } |
Unexecuted instantiation: chacha20_poly1305.c:xorbufout Unexecuted instantiation: cmac.c:xorbufout Unexecuted instantiation: coding.c:xorbufout Unexecuted instantiation: curve25519.c:xorbufout Unexecuted instantiation: curve448.c:xorbufout Unexecuted instantiation: des3.c:xorbufout Unexecuted instantiation: dh.c:xorbufout Unexecuted instantiation: ecc.c:xorbufout Unexecuted instantiation: eccsi.c:xorbufout Unexecuted instantiation: ed25519.c:xorbufout Unexecuted instantiation: ed448.c:xorbufout Unexecuted instantiation: fe_448.c:xorbufout Unexecuted instantiation: fe_operations.c:xorbufout Unexecuted instantiation: ge_448.c:xorbufout Unexecuted instantiation: ge_operations.c:xorbufout Unexecuted instantiation: hash.c:xorbufout Unexecuted instantiation: hmac.c:xorbufout Unexecuted instantiation: integer.c:xorbufout Unexecuted instantiation: kdf.c:xorbufout Unexecuted instantiation: md2.c:xorbufout Unexecuted instantiation: md4.c:xorbufout Unexecuted instantiation: md5.c:xorbufout Unexecuted instantiation: memory.c:xorbufout Unexecuted instantiation: poly1305.c:xorbufout Unexecuted instantiation: pwdbased.c:xorbufout Unexecuted instantiation: random.c:xorbufout Unexecuted instantiation: ripemd.c:xorbufout Unexecuted instantiation: rsa.c:xorbufout Unexecuted instantiation: sha.c:xorbufout Unexecuted instantiation: sha256.c:xorbufout Unexecuted instantiation: sha3.c:xorbufout Unexecuted instantiation: sha512.c:xorbufout Unexecuted instantiation: siphash.c:xorbufout Unexecuted instantiation: sm2.c:xorbufout Unexecuted instantiation: sm3.c:xorbufout Unexecuted instantiation: sm4.c:xorbufout Unexecuted instantiation: wc_encrypt.c:xorbufout Unexecuted instantiation: wolfmath.c:xorbufout Unexecuted instantiation: ssl.c:xorbufout Unexecuted instantiation: tls.c:xorbufout Unexecuted instantiation: tls13.c:xorbufout Unexecuted instantiation: internal.c:xorbufout |
498 | | |
499 | | /* This routine performs a bitwise XOR operation of <*r> and <*a> for <n> number |
500 | | of wolfssl_words, placing the result in <*r>. */ |
501 | | WC_MISC_STATIC WC_INLINE void XorWords(wolfssl_word** r, const wolfssl_word** a, |
502 | | word32 n) |
503 | 127k | { |
504 | 127k | const wolfssl_word *e = *a + n; |
505 | | |
506 | 591k | while (*a < e) |
507 | 464k | *((*r)++) ^= *((*a)++); |
508 | 127k | } Line | Count | Source | 503 | 87.4k | { | 504 | 87.4k | const wolfssl_word *e = *a + n; | 505 | | | 506 | 266k | while (*a < e) | 507 | 179k | *((*r)++) ^= *((*a)++); | 508 | 87.4k | } |
Unexecuted instantiation: asn.c:XorWords Unexecuted instantiation: camellia.c:XorWords Unexecuted instantiation: chacha.c:XorWords Unexecuted instantiation: chacha20_poly1305.c:XorWords Line | Count | Source | 503 | 6.64k | { | 504 | 6.64k | const wolfssl_word *e = *a + n; | 505 | | | 506 | 19.9k | while (*a < e) | 507 | 13.2k | *((*r)++) ^= *((*a)++); | 508 | 6.64k | } |
Unexecuted instantiation: coding.c:XorWords Unexecuted instantiation: curve25519.c:XorWords Unexecuted instantiation: curve448.c:XorWords Line | Count | Source | 503 | 2.01k | { | 504 | 2.01k | const wolfssl_word *e = *a + n; | 505 | | | 506 | 4.03k | while (*a < e) | 507 | 2.01k | *((*r)++) ^= *((*a)++); | 508 | 2.01k | } |
Unexecuted instantiation: dh.c:XorWords Unexecuted instantiation: ecc.c:XorWords Unexecuted instantiation: eccsi.c:XorWords Unexecuted instantiation: ed25519.c:XorWords Unexecuted instantiation: ed448.c:XorWords Unexecuted instantiation: fe_448.c:XorWords Unexecuted instantiation: fe_operations.c:XorWords Unexecuted instantiation: ge_448.c:XorWords Unexecuted instantiation: ge_operations.c:XorWords Unexecuted instantiation: hash.c:XorWords Unexecuted instantiation: hmac.c:XorWords Unexecuted instantiation: integer.c:XorWords Line | Count | Source | 503 | 120 | { | 504 | 120 | const wolfssl_word *e = *a + n; | 505 | | | 506 | 2.18k | while (*a < e) | 507 | 2.06k | *((*r)++) ^= *((*a)++); | 508 | 120 | } |
Unexecuted instantiation: md2.c:XorWords Unexecuted instantiation: md4.c:XorWords Unexecuted instantiation: md5.c:XorWords Unexecuted instantiation: memory.c:XorWords Unexecuted instantiation: poly1305.c:XorWords Line | Count | Source | 503 | 7.05k | { | 504 | 7.05k | const wolfssl_word *e = *a + n; | 505 | | | 506 | 30.5k | while (*a < e) | 507 | 23.4k | *((*r)++) ^= *((*a)++); | 508 | 7.05k | } |
Unexecuted instantiation: random.c:XorWords Unexecuted instantiation: ripemd.c:XorWords Line | Count | Source | 503 | 1.22k | { | 504 | 1.22k | const wolfssl_word *e = *a + n; | 505 | | | 506 | 6.70k | while (*a < e) | 507 | 5.47k | *((*r)++) ^= *((*a)++); | 508 | 1.22k | } |
Unexecuted instantiation: sha.c:XorWords Unexecuted instantiation: sha256.c:XorWords Line | Count | Source | 503 | 20.8k | { | 504 | 20.8k | const wolfssl_word *e = *a + n; | 505 | | | 506 | 259k | while (*a < e) | 507 | 238k | *((*r)++) ^= *((*a)++); | 508 | 20.8k | } |
Unexecuted instantiation: sha512.c:XorWords Unexecuted instantiation: siphash.c:XorWords Unexecuted instantiation: sm2.c:XorWords Unexecuted instantiation: sm3.c:XorWords Unexecuted instantiation: sm4.c:XorWords Unexecuted instantiation: wc_encrypt.c:XorWords Unexecuted instantiation: wolfmath.c:XorWords Unexecuted instantiation: ssl.c:XorWords Unexecuted instantiation: tls.c:XorWords Line | Count | Source | 503 | 2.11k | { | 504 | 2.11k | const wolfssl_word *e = *a + n; | 505 | | | 506 | 2.11k | while (*a < e) | 507 | 0 | *((*r)++) ^= *((*a)++); | 508 | 2.11k | } |
Line | Count | Source | 503 | 183 | { | 504 | 183 | const wolfssl_word *e = *a + n; | 505 | | | 506 | 366 | while (*a < e) | 507 | 183 | *((*r)++) ^= *((*a)++); | 508 | 183 | } |
|
509 | | |
510 | | /* This routine performs a bitwise XOR operation of <*buf> and <*mask> of n |
511 | | counts, placing the result in <*buf>. */ |
512 | | |
513 | | WC_MISC_STATIC WC_INLINE void xorbuf(void* buf, const void* mask, word32 count) |
514 | 248k | { |
515 | 248k | byte* b = (byte*)buf; |
516 | 248k | const byte* m = (const byte*)mask; |
517 | | |
518 | | /* type-punning helpers */ |
519 | 248k | union { |
520 | 248k | byte* bp; |
521 | 248k | wolfssl_word* wp; |
522 | 248k | } tpb; |
523 | 248k | union { |
524 | 248k | const byte* bp; |
525 | 248k | const wolfssl_word* wp; |
526 | 248k | } tpm; |
527 | | |
528 | 248k | if ((((wc_ptr_t)buf & (WOLFSSL_WORD_SIZE - 1)) == 0) && |
529 | 233k | (((wc_ptr_t)mask & (WOLFSSL_WORD_SIZE - 1)) == 0)) |
530 | 124k | { |
531 | | /* Both buffers are already aligned. Possible to XOR by words without |
532 | | * fixup. |
533 | | */ |
534 | | |
535 | 124k | tpb.bp = b; |
536 | 124k | tpm.bp = m; |
537 | | /* Work around false positives from linuxkm CONFIG_FORTIFY_SOURCE. */ |
538 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) |
539 | | PRAGMA_GCC_DIAG_PUSH; |
540 | | PRAGMA_GCC("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") |
541 | | #endif |
542 | 124k | XorWords(&tpb.wp, &tpm.wp, count >> WOLFSSL_WORD_SIZE_LOG2); |
543 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) |
544 | | PRAGMA_GCC_DIAG_POP; |
545 | | #endif |
546 | 124k | b = tpb.bp; |
547 | 124k | m = tpm.bp; |
548 | 124k | count &= (WOLFSSL_WORD_SIZE - 1); |
549 | 124k | } |
550 | 123k | else if (((wc_ptr_t)buf & (WOLFSSL_WORD_SIZE - 1)) == |
551 | 123k | ((wc_ptr_t)mask & (WOLFSSL_WORD_SIZE - 1))) |
552 | 2.84k | { |
553 | | /* Alignment can be fixed up to allow XOR by words. */ |
554 | | |
555 | | /* Perform bytewise xor until pointers are aligned to |
556 | | * WOLFSSL_WORD_SIZE. |
557 | | */ |
558 | 12.7k | while ((((wc_ptr_t)b & (WOLFSSL_WORD_SIZE - 1)) != 0) && (count > 0)) |
559 | 9.93k | { |
560 | 9.93k | *(b++) ^= *(m++); |
561 | 9.93k | count--; |
562 | 9.93k | } |
563 | | |
564 | 2.84k | tpb.bp = b; |
565 | 2.84k | tpm.bp = m; |
566 | | /* Work around false positives from linuxkm CONFIG_FORTIFY_SOURCE. */ |
567 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) |
568 | | PRAGMA_GCC_DIAG_PUSH; |
569 | | PRAGMA_GCC("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") |
570 | | #endif |
571 | 2.84k | XorWords(&tpb.wp, &tpm.wp, count >> WOLFSSL_WORD_SIZE_LOG2); |
572 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) |
573 | | PRAGMA_GCC_DIAG_POP; |
574 | | #endif |
575 | 2.84k | b = tpb.bp; |
576 | 2.84k | m = tpm.bp; |
577 | 2.84k | count &= (WOLFSSL_WORD_SIZE - 1); |
578 | 2.84k | } |
579 | | |
580 | 2.96M | while (count > 0) { |
581 | 2.71M | *b++ ^= *m++; |
582 | 2.71M | count--; |
583 | 2.71M | } |
584 | 248k | } Line | Count | Source | 514 | 194k | { | 515 | 194k | byte* b = (byte*)buf; | 516 | 194k | const byte* m = (const byte*)mask; | 517 | | | 518 | | /* type-punning helpers */ | 519 | 194k | union { | 520 | 194k | byte* bp; | 521 | 194k | wolfssl_word* wp; | 522 | 194k | } tpb; | 523 | 194k | union { | 524 | 194k | const byte* bp; | 525 | 194k | const wolfssl_word* wp; | 526 | 194k | } tpm; | 527 | | | 528 | 194k | if ((((wc_ptr_t)buf & (WOLFSSL_WORD_SIZE - 1)) == 0) && | 529 | 190k | (((wc_ptr_t)mask & (WOLFSSL_WORD_SIZE - 1)) == 0)) | 530 | 87.4k | { | 531 | | /* Both buffers are already aligned. Possible to XOR by words without | 532 | | * fixup. | 533 | | */ | 534 | | | 535 | 87.4k | tpb.bp = b; | 536 | 87.4k | tpm.bp = m; | 537 | | /* Work around false positives from linuxkm CONFIG_FORTIFY_SOURCE. */ | 538 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 539 | | PRAGMA_GCC_DIAG_PUSH; | 540 | | PRAGMA_GCC("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") | 541 | | #endif | 542 | 87.4k | XorWords(&tpb.wp, &tpm.wp, count >> WOLFSSL_WORD_SIZE_LOG2); | 543 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 544 | | PRAGMA_GCC_DIAG_POP; | 545 | | #endif | 546 | 87.4k | b = tpb.bp; | 547 | 87.4k | m = tpm.bp; | 548 | 87.4k | count &= (WOLFSSL_WORD_SIZE - 1); | 549 | 87.4k | } | 550 | 106k | else if (((wc_ptr_t)buf & (WOLFSSL_WORD_SIZE - 1)) == | 551 | 106k | ((wc_ptr_t)mask & (WOLFSSL_WORD_SIZE - 1))) | 552 | 0 | { | 553 | | /* Alignment can be fixed up to allow XOR by words. */ | 554 | | | 555 | | /* Perform bytewise xor until pointers are aligned to | 556 | | * WOLFSSL_WORD_SIZE. | 557 | | */ | 558 | 0 | while ((((wc_ptr_t)b & (WOLFSSL_WORD_SIZE - 1)) != 0) && (count > 0)) | 559 | 0 | { | 560 | 0 | *(b++) ^= *(m++); | 561 | 0 | count--; | 562 | 0 | } | 563 | |
| 564 | 0 | tpb.bp = b; | 565 | 0 | tpm.bp = m; | 566 | | /* Work around false positives from linuxkm CONFIG_FORTIFY_SOURCE. */ | 567 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 568 | | PRAGMA_GCC_DIAG_PUSH; | 569 | | PRAGMA_GCC("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") | 570 | | #endif | 571 | 0 | XorWords(&tpb.wp, &tpm.wp, count >> WOLFSSL_WORD_SIZE_LOG2); | 572 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 573 | | PRAGMA_GCC_DIAG_POP; | 574 | | #endif | 575 | 0 | b = tpb.bp; | 576 | 0 | m = tpm.bp; | 577 | 0 | count &= (WOLFSSL_WORD_SIZE - 1); | 578 | 0 | } | 579 | | | 580 | 1.89M | while (count > 0) { | 581 | 1.70M | *b++ ^= *m++; | 582 | 1.70M | count--; | 583 | 1.70M | } | 584 | 194k | } |
Unexecuted instantiation: asn.c:xorbuf Unexecuted instantiation: camellia.c:xorbuf Unexecuted instantiation: chacha.c:xorbuf Unexecuted instantiation: chacha20_poly1305.c:xorbuf Line | Count | Source | 514 | 6.64k | { | 515 | 6.64k | byte* b = (byte*)buf; | 516 | 6.64k | const byte* m = (const byte*)mask; | 517 | | | 518 | | /* type-punning helpers */ | 519 | 6.64k | union { | 520 | 6.64k | byte* bp; | 521 | 6.64k | wolfssl_word* wp; | 522 | 6.64k | } tpb; | 523 | 6.64k | union { | 524 | 6.64k | const byte* bp; | 525 | 6.64k | const wolfssl_word* wp; | 526 | 6.64k | } tpm; | 527 | | | 528 | 6.64k | if ((((wc_ptr_t)buf & (WOLFSSL_WORD_SIZE - 1)) == 0) && | 529 | 6.64k | (((wc_ptr_t)mask & (WOLFSSL_WORD_SIZE - 1)) == 0)) | 530 | 6.64k | { | 531 | | /* Both buffers are already aligned. Possible to XOR by words without | 532 | | * fixup. | 533 | | */ | 534 | | | 535 | 6.64k | tpb.bp = b; | 536 | 6.64k | tpm.bp = m; | 537 | | /* Work around false positives from linuxkm CONFIG_FORTIFY_SOURCE. */ | 538 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 539 | | PRAGMA_GCC_DIAG_PUSH; | 540 | | PRAGMA_GCC("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") | 541 | | #endif | 542 | 6.64k | XorWords(&tpb.wp, &tpm.wp, count >> WOLFSSL_WORD_SIZE_LOG2); | 543 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 544 | | PRAGMA_GCC_DIAG_POP; | 545 | | #endif | 546 | 6.64k | b = tpb.bp; | 547 | 6.64k | m = tpm.bp; | 548 | 6.64k | count &= (WOLFSSL_WORD_SIZE - 1); | 549 | 6.64k | } | 550 | 0 | else if (((wc_ptr_t)buf & (WOLFSSL_WORD_SIZE - 1)) == | 551 | 0 | ((wc_ptr_t)mask & (WOLFSSL_WORD_SIZE - 1))) | 552 | 0 | { | 553 | | /* Alignment can be fixed up to allow XOR by words. */ | 554 | | | 555 | | /* Perform bytewise xor until pointers are aligned to | 556 | | * WOLFSSL_WORD_SIZE. | 557 | | */ | 558 | 0 | while ((((wc_ptr_t)b & (WOLFSSL_WORD_SIZE - 1)) != 0) && (count > 0)) | 559 | 0 | { | 560 | 0 | *(b++) ^= *(m++); | 561 | 0 | count--; | 562 | 0 | } | 563 | |
| 564 | 0 | tpb.bp = b; | 565 | 0 | tpm.bp = m; | 566 | | /* Work around false positives from linuxkm CONFIG_FORTIFY_SOURCE. */ | 567 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 568 | | PRAGMA_GCC_DIAG_PUSH; | 569 | | PRAGMA_GCC("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") | 570 | | #endif | 571 | 0 | XorWords(&tpb.wp, &tpm.wp, count >> WOLFSSL_WORD_SIZE_LOG2); | 572 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 573 | | PRAGMA_GCC_DIAG_POP; | 574 | | #endif | 575 | 0 | b = tpb.bp; | 576 | 0 | m = tpm.bp; | 577 | 0 | count &= (WOLFSSL_WORD_SIZE - 1); | 578 | 0 | } | 579 | | | 580 | 6.64k | while (count > 0) { | 581 | 0 | *b++ ^= *m++; | 582 | 0 | count--; | 583 | 0 | } | 584 | 6.64k | } |
Unexecuted instantiation: coding.c:xorbuf Unexecuted instantiation: curve25519.c:xorbuf Unexecuted instantiation: curve448.c:xorbuf Line | Count | Source | 514 | 2.01k | { | 515 | 2.01k | byte* b = (byte*)buf; | 516 | 2.01k | const byte* m = (const byte*)mask; | 517 | | | 518 | | /* type-punning helpers */ | 519 | 2.01k | union { | 520 | 2.01k | byte* bp; | 521 | 2.01k | wolfssl_word* wp; | 522 | 2.01k | } tpb; | 523 | 2.01k | union { | 524 | 2.01k | const byte* bp; | 525 | 2.01k | const wolfssl_word* wp; | 526 | 2.01k | } tpm; | 527 | | | 528 | 2.01k | if ((((wc_ptr_t)buf & (WOLFSSL_WORD_SIZE - 1)) == 0) && | 529 | 2.01k | (((wc_ptr_t)mask & (WOLFSSL_WORD_SIZE - 1)) == 0)) | 530 | 2.01k | { | 531 | | /* Both buffers are already aligned. Possible to XOR by words without | 532 | | * fixup. | 533 | | */ | 534 | | | 535 | 2.01k | tpb.bp = b; | 536 | 2.01k | tpm.bp = m; | 537 | | /* Work around false positives from linuxkm CONFIG_FORTIFY_SOURCE. */ | 538 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 539 | | PRAGMA_GCC_DIAG_PUSH; | 540 | | PRAGMA_GCC("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") | 541 | | #endif | 542 | 2.01k | XorWords(&tpb.wp, &tpm.wp, count >> WOLFSSL_WORD_SIZE_LOG2); | 543 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 544 | | PRAGMA_GCC_DIAG_POP; | 545 | | #endif | 546 | 2.01k | b = tpb.bp; | 547 | 2.01k | m = tpm.bp; | 548 | 2.01k | count &= (WOLFSSL_WORD_SIZE - 1); | 549 | 2.01k | } | 550 | 0 | else if (((wc_ptr_t)buf & (WOLFSSL_WORD_SIZE - 1)) == | 551 | 0 | ((wc_ptr_t)mask & (WOLFSSL_WORD_SIZE - 1))) | 552 | 0 | { | 553 | | /* Alignment can be fixed up to allow XOR by words. */ | 554 | | | 555 | | /* Perform bytewise xor until pointers are aligned to | 556 | | * WOLFSSL_WORD_SIZE. | 557 | | */ | 558 | 0 | while ((((wc_ptr_t)b & (WOLFSSL_WORD_SIZE - 1)) != 0) && (count > 0)) | 559 | 0 | { | 560 | 0 | *(b++) ^= *(m++); | 561 | 0 | count--; | 562 | 0 | } | 563 | |
| 564 | 0 | tpb.bp = b; | 565 | 0 | tpm.bp = m; | 566 | | /* Work around false positives from linuxkm CONFIG_FORTIFY_SOURCE. */ | 567 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 568 | | PRAGMA_GCC_DIAG_PUSH; | 569 | | PRAGMA_GCC("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") | 570 | | #endif | 571 | 0 | XorWords(&tpb.wp, &tpm.wp, count >> WOLFSSL_WORD_SIZE_LOG2); | 572 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 573 | | PRAGMA_GCC_DIAG_POP; | 574 | | #endif | 575 | 0 | b = tpb.bp; | 576 | 0 | m = tpm.bp; | 577 | 0 | count &= (WOLFSSL_WORD_SIZE - 1); | 578 | 0 | } | 579 | | | 580 | 2.01k | while (count > 0) { | 581 | 0 | *b++ ^= *m++; | 582 | 0 | count--; | 583 | 0 | } | 584 | 2.01k | } |
Unexecuted instantiation: dh.c:xorbuf Unexecuted instantiation: ecc.c:xorbuf Unexecuted instantiation: eccsi.c:xorbuf Unexecuted instantiation: ed25519.c:xorbuf Unexecuted instantiation: ed448.c:xorbuf Unexecuted instantiation: fe_448.c:xorbuf Unexecuted instantiation: fe_operations.c:xorbuf Unexecuted instantiation: ge_448.c:xorbuf Unexecuted instantiation: ge_operations.c:xorbuf Unexecuted instantiation: hash.c:xorbuf Unexecuted instantiation: hmac.c:xorbuf Unexecuted instantiation: integer.c:xorbuf Line | Count | Source | 514 | 250 | { | 515 | 250 | byte* b = (byte*)buf; | 516 | 250 | const byte* m = (const byte*)mask; | 517 | | | 518 | | /* type-punning helpers */ | 519 | 250 | union { | 520 | 250 | byte* bp; | 521 | 250 | wolfssl_word* wp; | 522 | 250 | } tpb; | 523 | 250 | union { | 524 | 250 | const byte* bp; | 525 | 250 | const wolfssl_word* wp; | 526 | 250 | } tpm; | 527 | | | 528 | 250 | if ((((wc_ptr_t)buf & (WOLFSSL_WORD_SIZE - 1)) == 0) && | 529 | 120 | (((wc_ptr_t)mask & (WOLFSSL_WORD_SIZE - 1)) == 0)) | 530 | 120 | { | 531 | | /* Both buffers are already aligned. Possible to XOR by words without | 532 | | * fixup. | 533 | | */ | 534 | | | 535 | 120 | tpb.bp = b; | 536 | 120 | tpm.bp = m; | 537 | | /* Work around false positives from linuxkm CONFIG_FORTIFY_SOURCE. */ | 538 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 539 | | PRAGMA_GCC_DIAG_PUSH; | 540 | | PRAGMA_GCC("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") | 541 | | #endif | 542 | 120 | XorWords(&tpb.wp, &tpm.wp, count >> WOLFSSL_WORD_SIZE_LOG2); | 543 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 544 | | PRAGMA_GCC_DIAG_POP; | 545 | | #endif | 546 | 120 | b = tpb.bp; | 547 | 120 | m = tpm.bp; | 548 | 120 | count &= (WOLFSSL_WORD_SIZE - 1); | 549 | 120 | } | 550 | 130 | else if (((wc_ptr_t)buf & (WOLFSSL_WORD_SIZE - 1)) == | 551 | 130 | ((wc_ptr_t)mask & (WOLFSSL_WORD_SIZE - 1))) | 552 | 0 | { | 553 | | /* Alignment can be fixed up to allow XOR by words. */ | 554 | | | 555 | | /* Perform bytewise xor until pointers are aligned to | 556 | | * WOLFSSL_WORD_SIZE. | 557 | | */ | 558 | 0 | while ((((wc_ptr_t)b & (WOLFSSL_WORD_SIZE - 1)) != 0) && (count > 0)) | 559 | 0 | { | 560 | 0 | *(b++) ^= *(m++); | 561 | 0 | count--; | 562 | 0 | } | 563 | |
| 564 | 0 | tpb.bp = b; | 565 | 0 | tpm.bp = m; | 566 | | /* Work around false positives from linuxkm CONFIG_FORTIFY_SOURCE. */ | 567 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 568 | | PRAGMA_GCC_DIAG_PUSH; | 569 | | PRAGMA_GCC("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") | 570 | | #endif | 571 | 0 | XorWords(&tpb.wp, &tpm.wp, count >> WOLFSSL_WORD_SIZE_LOG2); | 572 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 573 | | PRAGMA_GCC_DIAG_POP; | 574 | | #endif | 575 | 0 | b = tpb.bp; | 576 | 0 | m = tpm.bp; | 577 | 0 | count &= (WOLFSSL_WORD_SIZE - 1); | 578 | 0 | } | 579 | | | 580 | 5.93k | while (count > 0) { | 581 | 5.68k | *b++ ^= *m++; | 582 | 5.68k | count--; | 583 | 5.68k | } | 584 | 250 | } |
Unexecuted instantiation: md2.c:xorbuf Unexecuted instantiation: md4.c:xorbuf Unexecuted instantiation: md5.c:xorbuf Unexecuted instantiation: memory.c:xorbuf Unexecuted instantiation: poly1305.c:xorbuf Line | Count | Source | 514 | 8.00k | { | 515 | 8.00k | byte* b = (byte*)buf; | 516 | 8.00k | const byte* m = (const byte*)mask; | 517 | | | 518 | | /* type-punning helpers */ | 519 | 8.00k | union { | 520 | 8.00k | byte* bp; | 521 | 8.00k | wolfssl_word* wp; | 522 | 8.00k | } tpb; | 523 | 8.00k | union { | 524 | 8.00k | const byte* bp; | 525 | 8.00k | const wolfssl_word* wp; | 526 | 8.00k | } tpm; | 527 | | | 528 | 8.00k | if ((((wc_ptr_t)buf & (WOLFSSL_WORD_SIZE - 1)) == 0) && | 529 | 7.05k | (((wc_ptr_t)mask & (WOLFSSL_WORD_SIZE - 1)) == 0)) | 530 | 7.05k | { | 531 | | /* Both buffers are already aligned. Possible to XOR by words without | 532 | | * fixup. | 533 | | */ | 534 | | | 535 | 7.05k | tpb.bp = b; | 536 | 7.05k | tpm.bp = m; | 537 | | /* Work around false positives from linuxkm CONFIG_FORTIFY_SOURCE. */ | 538 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 539 | | PRAGMA_GCC_DIAG_PUSH; | 540 | | PRAGMA_GCC("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") | 541 | | #endif | 542 | 7.05k | XorWords(&tpb.wp, &tpm.wp, count >> WOLFSSL_WORD_SIZE_LOG2); | 543 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 544 | | PRAGMA_GCC_DIAG_POP; | 545 | | #endif | 546 | 7.05k | b = tpb.bp; | 547 | 7.05k | m = tpm.bp; | 548 | 7.05k | count &= (WOLFSSL_WORD_SIZE - 1); | 549 | 7.05k | } | 550 | 952 | else if (((wc_ptr_t)buf & (WOLFSSL_WORD_SIZE - 1)) == | 551 | 952 | ((wc_ptr_t)mask & (WOLFSSL_WORD_SIZE - 1))) | 552 | 0 | { | 553 | | /* Alignment can be fixed up to allow XOR by words. */ | 554 | | | 555 | | /* Perform bytewise xor until pointers are aligned to | 556 | | * WOLFSSL_WORD_SIZE. | 557 | | */ | 558 | 0 | while ((((wc_ptr_t)b & (WOLFSSL_WORD_SIZE - 1)) != 0) && (count > 0)) | 559 | 0 | { | 560 | 0 | *(b++) ^= *(m++); | 561 | 0 | count--; | 562 | 0 | } | 563 | |
| 564 | 0 | tpb.bp = b; | 565 | 0 | tpm.bp = m; | 566 | | /* Work around false positives from linuxkm CONFIG_FORTIFY_SOURCE. */ | 567 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 568 | | PRAGMA_GCC_DIAG_PUSH; | 569 | | PRAGMA_GCC("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") | 570 | | #endif | 571 | 0 | XorWords(&tpb.wp, &tpm.wp, count >> WOLFSSL_WORD_SIZE_LOG2); | 572 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 573 | | PRAGMA_GCC_DIAG_POP; | 574 | | #endif | 575 | 0 | b = tpb.bp; | 576 | 0 | m = tpm.bp; | 577 | 0 | count &= (WOLFSSL_WORD_SIZE - 1); | 578 | 0 | } | 579 | | | 580 | 34.4k | while (count > 0) { | 581 | 26.3k | *b++ ^= *m++; | 582 | 26.3k | count--; | 583 | 26.3k | } | 584 | 8.00k | } |
Unexecuted instantiation: random.c:xorbuf Unexecuted instantiation: ripemd.c:xorbuf Line | Count | Source | 514 | 2.49k | { | 515 | 2.49k | byte* b = (byte*)buf; | 516 | 2.49k | const byte* m = (const byte*)mask; | 517 | | | 518 | | /* type-punning helpers */ | 519 | 2.49k | union { | 520 | 2.49k | byte* bp; | 521 | 2.49k | wolfssl_word* wp; | 522 | 2.49k | } tpb; | 523 | 2.49k | union { | 524 | 2.49k | const byte* bp; | 525 | 2.49k | const wolfssl_word* wp; | 526 | 2.49k | } tpm; | 527 | | | 528 | 2.49k | if ((((wc_ptr_t)buf & (WOLFSSL_WORD_SIZE - 1)) == 0) && | 529 | 507 | (((wc_ptr_t)mask & (WOLFSSL_WORD_SIZE - 1)) == 0)) | 530 | 502 | { | 531 | | /* Both buffers are already aligned. Possible to XOR by words without | 532 | | * fixup. | 533 | | */ | 534 | | | 535 | 502 | tpb.bp = b; | 536 | 502 | tpm.bp = m; | 537 | | /* Work around false positives from linuxkm CONFIG_FORTIFY_SOURCE. */ | 538 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 539 | | PRAGMA_GCC_DIAG_PUSH; | 540 | | PRAGMA_GCC("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") | 541 | | #endif | 542 | 502 | XorWords(&tpb.wp, &tpm.wp, count >> WOLFSSL_WORD_SIZE_LOG2); | 543 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 544 | | PRAGMA_GCC_DIAG_POP; | 545 | | #endif | 546 | 502 | b = tpb.bp; | 547 | 502 | m = tpm.bp; | 548 | 502 | count &= (WOLFSSL_WORD_SIZE - 1); | 549 | 502 | } | 550 | 1.99k | else if (((wc_ptr_t)buf & (WOLFSSL_WORD_SIZE - 1)) == | 551 | 1.99k | ((wc_ptr_t)mask & (WOLFSSL_WORD_SIZE - 1))) | 552 | 726 | { | 553 | | /* Alignment can be fixed up to allow XOR by words. */ | 554 | | | 555 | | /* Perform bytewise xor until pointers are aligned to | 556 | | * WOLFSSL_WORD_SIZE. | 557 | | */ | 558 | 2.18k | while ((((wc_ptr_t)b & (WOLFSSL_WORD_SIZE - 1)) != 0) && (count > 0)) | 559 | 1.46k | { | 560 | 1.46k | *(b++) ^= *(m++); | 561 | 1.46k | count--; | 562 | 1.46k | } | 563 | | | 564 | 726 | tpb.bp = b; | 565 | 726 | tpm.bp = m; | 566 | | /* Work around false positives from linuxkm CONFIG_FORTIFY_SOURCE. */ | 567 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 568 | | PRAGMA_GCC_DIAG_PUSH; | 569 | | PRAGMA_GCC("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") | 570 | | #endif | 571 | 726 | XorWords(&tpb.wp, &tpm.wp, count >> WOLFSSL_WORD_SIZE_LOG2); | 572 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 573 | | PRAGMA_GCC_DIAG_POP; | 574 | | #endif | 575 | 726 | b = tpb.bp; | 576 | 726 | m = tpm.bp; | 577 | 726 | count &= (WOLFSSL_WORD_SIZE - 1); | 578 | 726 | } | 579 | | | 580 | 105k | while (count > 0) { | 581 | 102k | *b++ ^= *m++; | 582 | 102k | count--; | 583 | 102k | } | 584 | 2.49k | } |
Unexecuted instantiation: sha.c:xorbuf Unexecuted instantiation: sha256.c:xorbuf Line | Count | Source | 514 | 26.7k | { | 515 | 26.7k | byte* b = (byte*)buf; | 516 | 26.7k | const byte* m = (const byte*)mask; | 517 | | | 518 | | /* type-punning helpers */ | 519 | 26.7k | union { | 520 | 26.7k | byte* bp; | 521 | 26.7k | wolfssl_word* wp; | 522 | 26.7k | } tpb; | 523 | 26.7k | union { | 524 | 26.7k | const byte* bp; | 525 | 26.7k | const wolfssl_word* wp; | 526 | 26.7k | } tpm; | 527 | | | 528 | 26.7k | if ((((wc_ptr_t)buf & (WOLFSSL_WORD_SIZE - 1)) == 0) && | 529 | 26.7k | (((wc_ptr_t)mask & (WOLFSSL_WORD_SIZE - 1)) == 0)) | 530 | 20.8k | { | 531 | | /* Both buffers are already aligned. Possible to XOR by words without | 532 | | * fixup. | 533 | | */ | 534 | | | 535 | 20.8k | tpb.bp = b; | 536 | 20.8k | tpm.bp = m; | 537 | | /* Work around false positives from linuxkm CONFIG_FORTIFY_SOURCE. */ | 538 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 539 | | PRAGMA_GCC_DIAG_PUSH; | 540 | | PRAGMA_GCC("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") | 541 | | #endif | 542 | 20.8k | XorWords(&tpb.wp, &tpm.wp, count >> WOLFSSL_WORD_SIZE_LOG2); | 543 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 544 | | PRAGMA_GCC_DIAG_POP; | 545 | | #endif | 546 | 20.8k | b = tpb.bp; | 547 | 20.8k | m = tpm.bp; | 548 | 20.8k | count &= (WOLFSSL_WORD_SIZE - 1); | 549 | 20.8k | } | 550 | 5.87k | else if (((wc_ptr_t)buf & (WOLFSSL_WORD_SIZE - 1)) == | 551 | 5.87k | ((wc_ptr_t)mask & (WOLFSSL_WORD_SIZE - 1))) | 552 | 0 | { | 553 | | /* Alignment can be fixed up to allow XOR by words. */ | 554 | | | 555 | | /* Perform bytewise xor until pointers are aligned to | 556 | | * WOLFSSL_WORD_SIZE. | 557 | | */ | 558 | 0 | while ((((wc_ptr_t)b & (WOLFSSL_WORD_SIZE - 1)) != 0) && (count > 0)) | 559 | 0 | { | 560 | 0 | *(b++) ^= *(m++); | 561 | 0 | count--; | 562 | 0 | } | 563 | |
| 564 | 0 | tpb.bp = b; | 565 | 0 | tpm.bp = m; | 566 | | /* Work around false positives from linuxkm CONFIG_FORTIFY_SOURCE. */ | 567 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 568 | | PRAGMA_GCC_DIAG_PUSH; | 569 | | PRAGMA_GCC("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") | 570 | | #endif | 571 | 0 | XorWords(&tpb.wp, &tpm.wp, count >> WOLFSSL_WORD_SIZE_LOG2); | 572 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 573 | | PRAGMA_GCC_DIAG_POP; | 574 | | #endif | 575 | 0 | b = tpb.bp; | 576 | 0 | m = tpm.bp; | 577 | 0 | count &= (WOLFSSL_WORD_SIZE - 1); | 578 | 0 | } | 579 | | | 580 | 851k | while (count > 0) { | 581 | 824k | *b++ ^= *m++; | 582 | 824k | count--; | 583 | 824k | } | 584 | 26.7k | } |
Unexecuted instantiation: sha512.c:xorbuf Unexecuted instantiation: siphash.c:xorbuf Unexecuted instantiation: sm2.c:xorbuf Unexecuted instantiation: sm3.c:xorbuf Unexecuted instantiation: sm4.c:xorbuf Unexecuted instantiation: wc_encrypt.c:xorbuf Unexecuted instantiation: wolfmath.c:xorbuf Unexecuted instantiation: ssl.c:xorbuf Unexecuted instantiation: tls.c:xorbuf Line | Count | Source | 514 | 7.27k | { | 515 | 7.27k | byte* b = (byte*)buf; | 516 | 7.27k | const byte* m = (const byte*)mask; | 517 | | | 518 | | /* type-punning helpers */ | 519 | 7.27k | union { | 520 | 7.27k | byte* bp; | 521 | 7.27k | wolfssl_word* wp; | 522 | 7.27k | } tpb; | 523 | 7.27k | union { | 524 | 7.27k | const byte* bp; | 525 | 7.27k | const wolfssl_word* wp; | 526 | 7.27k | } tpm; | 527 | | | 528 | 7.27k | if ((((wc_ptr_t)buf & (WOLFSSL_WORD_SIZE - 1)) == 0) && | 529 | 0 | (((wc_ptr_t)mask & (WOLFSSL_WORD_SIZE - 1)) == 0)) | 530 | 0 | { | 531 | | /* Both buffers are already aligned. Possible to XOR by words without | 532 | | * fixup. | 533 | | */ | 534 | |
| 535 | 0 | tpb.bp = b; | 536 | 0 | tpm.bp = m; | 537 | | /* Work around false positives from linuxkm CONFIG_FORTIFY_SOURCE. */ | 538 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 539 | | PRAGMA_GCC_DIAG_PUSH; | 540 | | PRAGMA_GCC("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") | 541 | | #endif | 542 | 0 | XorWords(&tpb.wp, &tpm.wp, count >> WOLFSSL_WORD_SIZE_LOG2); | 543 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 544 | | PRAGMA_GCC_DIAG_POP; | 545 | | #endif | 546 | 0 | b = tpb.bp; | 547 | 0 | m = tpm.bp; | 548 | 0 | count &= (WOLFSSL_WORD_SIZE - 1); | 549 | 0 | } | 550 | 7.27k | else if (((wc_ptr_t)buf & (WOLFSSL_WORD_SIZE - 1)) == | 551 | 7.27k | ((wc_ptr_t)mask & (WOLFSSL_WORD_SIZE - 1))) | 552 | 2.11k | { | 553 | | /* Alignment can be fixed up to allow XOR by words. */ | 554 | | | 555 | | /* Perform bytewise xor until pointers are aligned to | 556 | | * WOLFSSL_WORD_SIZE. | 557 | | */ | 558 | 10.5k | while ((((wc_ptr_t)b & (WOLFSSL_WORD_SIZE - 1)) != 0) && (count > 0)) | 559 | 8.47k | { | 560 | 8.47k | *(b++) ^= *(m++); | 561 | 8.47k | count--; | 562 | 8.47k | } | 563 | | | 564 | 2.11k | tpb.bp = b; | 565 | 2.11k | tpm.bp = m; | 566 | | /* Work around false positives from linuxkm CONFIG_FORTIFY_SOURCE. */ | 567 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 568 | | PRAGMA_GCC_DIAG_PUSH; | 569 | | PRAGMA_GCC("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") | 570 | | #endif | 571 | 2.11k | XorWords(&tpb.wp, &tpm.wp, count >> WOLFSSL_WORD_SIZE_LOG2); | 572 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 573 | | PRAGMA_GCC_DIAG_POP; | 574 | | #endif | 575 | 2.11k | b = tpb.bp; | 576 | 2.11k | m = tpm.bp; | 577 | 2.11k | count &= (WOLFSSL_WORD_SIZE - 1); | 578 | 2.11k | } | 579 | | | 580 | 57.0k | while (count > 0) { | 581 | 49.7k | *b++ ^= *m++; | 582 | 49.7k | count--; | 583 | 49.7k | } | 584 | 7.27k | } |
Line | Count | Source | 514 | 226 | { | 515 | 226 | byte* b = (byte*)buf; | 516 | 226 | const byte* m = (const byte*)mask; | 517 | | | 518 | | /* type-punning helpers */ | 519 | 226 | union { | 520 | 226 | byte* bp; | 521 | 226 | wolfssl_word* wp; | 522 | 226 | } tpb; | 523 | 226 | union { | 524 | 226 | const byte* bp; | 525 | 226 | const wolfssl_word* wp; | 526 | 226 | } tpm; | 527 | | | 528 | 226 | if ((((wc_ptr_t)buf & (WOLFSSL_WORD_SIZE - 1)) == 0) && | 529 | 226 | (((wc_ptr_t)mask & (WOLFSSL_WORD_SIZE - 1)) == 0)) | 530 | 183 | { | 531 | | /* Both buffers are already aligned. Possible to XOR by words without | 532 | | * fixup. | 533 | | */ | 534 | | | 535 | 183 | tpb.bp = b; | 536 | 183 | tpm.bp = m; | 537 | | /* Work around false positives from linuxkm CONFIG_FORTIFY_SOURCE. */ | 538 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 539 | | PRAGMA_GCC_DIAG_PUSH; | 540 | | PRAGMA_GCC("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") | 541 | | #endif | 542 | 183 | XorWords(&tpb.wp, &tpm.wp, count >> WOLFSSL_WORD_SIZE_LOG2); | 543 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 544 | | PRAGMA_GCC_DIAG_POP; | 545 | | #endif | 546 | 183 | b = tpb.bp; | 547 | 183 | m = tpm.bp; | 548 | 183 | count &= (WOLFSSL_WORD_SIZE - 1); | 549 | 183 | } | 550 | 43 | else if (((wc_ptr_t)buf & (WOLFSSL_WORD_SIZE - 1)) == | 551 | 43 | ((wc_ptr_t)mask & (WOLFSSL_WORD_SIZE - 1))) | 552 | 0 | { | 553 | | /* Alignment can be fixed up to allow XOR by words. */ | 554 | | | 555 | | /* Perform bytewise xor until pointers are aligned to | 556 | | * WOLFSSL_WORD_SIZE. | 557 | | */ | 558 | 0 | while ((((wc_ptr_t)b & (WOLFSSL_WORD_SIZE - 1)) != 0) && (count > 0)) | 559 | 0 | { | 560 | 0 | *(b++) ^= *(m++); | 561 | 0 | count--; | 562 | 0 | } | 563 | |
| 564 | 0 | tpb.bp = b; | 565 | 0 | tpm.bp = m; | 566 | | /* Work around false positives from linuxkm CONFIG_FORTIFY_SOURCE. */ | 567 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 568 | | PRAGMA_GCC_DIAG_PUSH; | 569 | | PRAGMA_GCC("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") | 570 | | #endif | 571 | 0 | XorWords(&tpb.wp, &tpm.wp, count >> WOLFSSL_WORD_SIZE_LOG2); | 572 | | #if defined(WOLFSSL_LINUXKM) && defined(CONFIG_FORTIFY_SOURCE) | 573 | | PRAGMA_GCC_DIAG_POP; | 574 | | #endif | 575 | 0 | b = tpb.bp; | 576 | 0 | m = tpm.bp; | 577 | 0 | count &= (WOLFSSL_WORD_SIZE - 1); | 578 | 0 | } | 579 | | | 580 | 1.47k | while (count > 0) { | 581 | 1.24k | *b++ ^= *m++; | 582 | 1.24k | count--; | 583 | 1.24k | } | 584 | 226 | } |
|
585 | | |
586 | | #endif /* !WOLFSSL_NO_XOR_OPS */ |
587 | | |
588 | | #ifndef WOLFSSL_NO_FORCE_ZERO |
589 | | /* This routine fills the first len bytes of the memory area pointed by mem |
590 | | with zeros. It ensures compiler optimization doesn't skip it. */ |
591 | | WC_MISC_STATIC WC_INLINE void ForceZero(void* mem, size_t len) |
592 | 16.7M | { |
593 | 16.7M | byte *zb = (byte *)mem; |
594 | 16.7M | unsigned long *zl; |
595 | | |
596 | 16.7M | XFENCE(); |
597 | | |
598 | 17.8M | while ((wc_ptr_t)zb & (wc_ptr_t)(sizeof(unsigned long) - 1U)) { |
599 | 1.08M | if (len == 0) |
600 | 0 | return; |
601 | 1.08M | *zb++ = 0; |
602 | 1.08M | --len; |
603 | 1.08M | } |
604 | | |
605 | 16.7M | zl = (unsigned long *)zb; |
606 | | |
607 | 457M | while (len >= sizeof(unsigned long)) { |
608 | 440M | *zl++ = 0; |
609 | 440M | len -= sizeof(unsigned long); |
610 | 440M | } |
611 | | |
612 | 16.7M | zb = (byte *)zl; |
613 | | |
614 | 25.7M | while (len) { |
615 | 8.96M | *zb++ = 0; |
616 | 8.96M | --len; |
617 | 8.96M | } |
618 | | |
619 | 16.7M | XFENCE(); |
620 | 16.7M | } Line | Count | Source | 592 | 43.0k | { | 593 | 43.0k | byte *zb = (byte *)mem; | 594 | 43.0k | unsigned long *zl; | 595 | | | 596 | 43.0k | XFENCE(); | 597 | | | 598 | 94.4k | while ((wc_ptr_t)zb & (wc_ptr_t)(sizeof(unsigned long) - 1U)) { | 599 | 51.3k | if (len == 0) | 600 | 0 | return; | 601 | 51.3k | *zb++ = 0; | 602 | 51.3k | --len; | 603 | 51.3k | } | 604 | | | 605 | 43.0k | zl = (unsigned long *)zb; | 606 | | | 607 | 2.56M | while (len >= sizeof(unsigned long)) { | 608 | 2.52M | *zl++ = 0; | 609 | 2.52M | len -= sizeof(unsigned long); | 610 | 2.52M | } | 611 | | | 612 | 43.0k | zb = (byte *)zl; | 613 | | | 614 | 68.8k | while (len) { | 615 | 25.7k | *zb++ = 0; | 616 | 25.7k | --len; | 617 | 25.7k | } | 618 | | | 619 | | XFENCE(); | 620 | 43.0k | } |
Line | Count | Source | 592 | 65.8k | { | 593 | 65.8k | byte *zb = (byte *)mem; | 594 | 65.8k | unsigned long *zl; | 595 | | | 596 | 65.8k | XFENCE(); | 597 | | | 598 | 65.8k | while ((wc_ptr_t)zb & (wc_ptr_t)(sizeof(unsigned long) - 1U)) { | 599 | 0 | if (len == 0) | 600 | 0 | return; | 601 | 0 | *zb++ = 0; | 602 | 0 | --len; | 603 | 0 | } | 604 | | | 605 | 65.8k | zl = (unsigned long *)zb; | 606 | | | 607 | 9.87M | while (len >= sizeof(unsigned long)) { | 608 | 9.80M | *zl++ = 0; | 609 | 9.80M | len -= sizeof(unsigned long); | 610 | 9.80M | } | 611 | | | 612 | 65.8k | zb = (byte *)zl; | 613 | | | 614 | 131k | while (len) { | 615 | 65.8k | *zb++ = 0; | 616 | 65.8k | --len; | 617 | 65.8k | } | 618 | | | 619 | | XFENCE(); | 620 | 65.8k | } |
Unexecuted instantiation: camellia.c:ForceZero Unexecuted instantiation: chacha.c:ForceZero Unexecuted instantiation: chacha20_poly1305.c:ForceZero Line | Count | Source | 592 | 528 | { | 593 | 528 | byte *zb = (byte *)mem; | 594 | 528 | unsigned long *zl; | 595 | | | 596 | 528 | XFENCE(); | 597 | | | 598 | 528 | while ((wc_ptr_t)zb & (wc_ptr_t)(sizeof(unsigned long) - 1U)) { | 599 | 0 | if (len == 0) | 600 | 0 | return; | 601 | 0 | *zb++ = 0; | 602 | 0 | --len; | 603 | 0 | } | 604 | | | 605 | 528 | zl = (unsigned long *)zb; | 606 | | | 607 | 38.0k | while (len >= sizeof(unsigned long)) { | 608 | 37.4k | *zl++ = 0; | 609 | 37.4k | len -= sizeof(unsigned long); | 610 | 37.4k | } | 611 | | | 612 | 528 | zb = (byte *)zl; | 613 | | | 614 | 528 | while (len) { | 615 | 0 | *zb++ = 0; | 616 | 0 | --len; | 617 | 0 | } | 618 | | | 619 | | XFENCE(); | 620 | 528 | } |
Unexecuted instantiation: coding.c:ForceZero Line | Count | Source | 592 | 4.32k | { | 593 | 4.32k | byte *zb = (byte *)mem; | 594 | 4.32k | unsigned long *zl; | 595 | | | 596 | 4.32k | XFENCE(); | 597 | | | 598 | 4.32k | while ((wc_ptr_t)zb & (wc_ptr_t)(sizeof(unsigned long) - 1U)) { | 599 | 0 | if (len == 0) | 600 | 0 | return; | 601 | 0 | *zb++ = 0; | 602 | 0 | --len; | 603 | 0 | } | 604 | | | 605 | 4.32k | zl = (unsigned long *)zb; | 606 | | | 607 | 73.5k | while (len >= sizeof(unsigned long)) { | 608 | 69.2k | *zl++ = 0; | 609 | 69.2k | len -= sizeof(unsigned long); | 610 | 69.2k | } | 611 | | | 612 | 4.32k | zb = (byte *)zl; | 613 | | | 614 | 4.32k | while (len) { | 615 | 0 | *zb++ = 0; | 616 | 0 | --len; | 617 | 0 | } | 618 | | | 619 | | XFENCE(); | 620 | 4.32k | } |
Line | Count | Source | 592 | 1.26k | { | 593 | 1.26k | byte *zb = (byte *)mem; | 594 | 1.26k | unsigned long *zl; | 595 | | | 596 | 1.26k | XFENCE(); | 597 | | | 598 | 1.83k | while ((wc_ptr_t)zb & (wc_ptr_t)(sizeof(unsigned long) - 1U)) { | 599 | 563 | if (len == 0) | 600 | 0 | return; | 601 | 563 | *zb++ = 0; | 602 | 563 | --len; | 603 | 563 | } | 604 | | | 605 | 1.26k | zl = (unsigned long *)zb; | 606 | | | 607 | 9.57k | while (len >= sizeof(unsigned long)) { | 608 | 8.30k | *zl++ = 0; | 609 | 8.30k | len -= sizeof(unsigned long); | 610 | 8.30k | } | 611 | | | 612 | 1.26k | zb = (byte *)zl; | 613 | | | 614 | 5.20k | while (len) { | 615 | 3.94k | *zb++ = 0; | 616 | 3.94k | --len; | 617 | 3.94k | } | 618 | | | 619 | | XFENCE(); | 620 | 1.26k | } |
Unexecuted instantiation: des3.c:ForceZero Unexecuted instantiation: dh.c:ForceZero Line | Count | Source | 592 | 89.5k | { | 593 | 89.5k | byte *zb = (byte *)mem; | 594 | 89.5k | unsigned long *zl; | 595 | | | 596 | 89.5k | XFENCE(); | 597 | | | 598 | 89.5k | while ((wc_ptr_t)zb & (wc_ptr_t)(sizeof(unsigned long) - 1U)) { | 599 | 0 | if (len == 0) | 600 | 0 | return; | 601 | 0 | *zb++ = 0; | 602 | 0 | --len; | 603 | 0 | } | 604 | | | 605 | 89.5k | zl = (unsigned long *)zb; | 606 | | | 607 | 13.5M | while (len >= sizeof(unsigned long)) { | 608 | 13.4M | *zl++ = 0; | 609 | 13.4M | len -= sizeof(unsigned long); | 610 | 13.4M | } | 611 | | | 612 | 89.5k | zb = (byte *)zl; | 613 | | | 614 | 203k | while (len) { | 615 | 114k | *zb++ = 0; | 616 | 114k | --len; | 617 | 114k | } | 618 | | | 619 | | XFENCE(); | 620 | 89.5k | } |
Unexecuted instantiation: eccsi.c:ForceZero Line | Count | Source | 592 | 5.67k | { | 593 | 5.67k | byte *zb = (byte *)mem; | 594 | 5.67k | unsigned long *zl; | 595 | | | 596 | 5.67k | XFENCE(); | 597 | | | 598 | 5.67k | while ((wc_ptr_t)zb & (wc_ptr_t)(sizeof(unsigned long) - 1U)) { | 599 | 0 | if (len == 0) | 600 | 0 | return; | 601 | 0 | *zb++ = 0; | 602 | 0 | --len; | 603 | 0 | } | 604 | | | 605 | 5.67k | zl = (unsigned long *)zb; | 606 | | | 607 | 275k | while (len >= sizeof(unsigned long)) { | 608 | 270k | *zl++ = 0; | 609 | 270k | len -= sizeof(unsigned long); | 610 | 270k | } | 611 | | | 612 | 5.67k | zb = (byte *)zl; | 613 | | | 614 | 5.67k | while (len) { | 615 | 0 | *zb++ = 0; | 616 | 0 | --len; | 617 | 0 | } | 618 | | | 619 | | XFENCE(); | 620 | 5.67k | } |
Line | Count | Source | 592 | 5.32k | { | 593 | 5.32k | byte *zb = (byte *)mem; | 594 | 5.32k | unsigned long *zl; | 595 | | | 596 | 5.32k | XFENCE(); | 597 | | | 598 | 6.00k | while ((wc_ptr_t)zb & (wc_ptr_t)(sizeof(unsigned long) - 1U)) { | 599 | 679 | if (len == 0) | 600 | 0 | return; | 601 | 679 | *zb++ = 0; | 602 | 679 | --len; | 603 | 679 | } | 604 | | | 605 | 5.32k | zl = (unsigned long *)zb; | 606 | | | 607 | 429k | while (len >= sizeof(unsigned long)) { | 608 | 423k | *zl++ = 0; | 609 | 423k | len -= sizeof(unsigned long); | 610 | 423k | } | 611 | | | 612 | 5.32k | zb = (byte *)zl; | 613 | | | 614 | 5.51k | while (len) { | 615 | 194 | *zb++ = 0; | 616 | 194 | --len; | 617 | 194 | } | 618 | | | 619 | | XFENCE(); | 620 | 5.32k | } |
Unexecuted instantiation: fe_448.c:ForceZero Unexecuted instantiation: fe_operations.c:ForceZero Unexecuted instantiation: ge_448.c:ForceZero Unexecuted instantiation: ge_operations.c:ForceZero Unexecuted instantiation: hash.c:ForceZero Line | Count | Source | 592 | 141k | { | 593 | 141k | byte *zb = (byte *)mem; | 594 | 141k | unsigned long *zl; | 595 | | | 596 | 141k | XFENCE(); | 597 | | | 598 | 141k | while ((wc_ptr_t)zb & (wc_ptr_t)(sizeof(unsigned long) - 1U)) { | 599 | 0 | if (len == 0) | 600 | 0 | return; | 601 | 0 | *zb++ = 0; | 602 | 0 | --len; | 603 | 0 | } | 604 | | | 605 | 141k | zl = (unsigned long *)zb; | 606 | | | 607 | 15.2M | while (len >= sizeof(unsigned long)) { | 608 | 15.0M | *zl++ = 0; | 609 | 15.0M | len -= sizeof(unsigned long); | 610 | 15.0M | } | 611 | | | 612 | 141k | zb = (byte *)zl; | 613 | | | 614 | 141k | while (len) { | 615 | 0 | *zb++ = 0; | 616 | 0 | --len; | 617 | 0 | } | 618 | | | 619 | | XFENCE(); | 620 | 141k | } |
Line | Count | Source | 592 | 3.31k | { | 593 | 3.31k | byte *zb = (byte *)mem; | 594 | 3.31k | unsigned long *zl; | 595 | | | 596 | 3.31k | XFENCE(); | 597 | | | 598 | 3.31k | while ((wc_ptr_t)zb & (wc_ptr_t)(sizeof(unsigned long) - 1U)) { | 599 | 0 | if (len == 0) | 600 | 0 | return; | 601 | 0 | *zb++ = 0; | 602 | 0 | --len; | 603 | 0 | } | 604 | | | 605 | 3.31k | zl = (unsigned long *)zb; | 606 | | | 607 | 14.0k | while (len >= sizeof(unsigned long)) { | 608 | 10.7k | *zl++ = 0; | 609 | 10.7k | len -= sizeof(unsigned long); | 610 | 10.7k | } | 611 | | | 612 | 3.31k | zb = (byte *)zl; | 613 | | | 614 | 3.31k | while (len) { | 615 | 0 | *zb++ = 0; | 616 | 0 | --len; | 617 | 0 | } | 618 | | | 619 | | XFENCE(); | 620 | 3.31k | } |
Line | Count | Source | 592 | 21.0k | { | 593 | 21.0k | byte *zb = (byte *)mem; | 594 | 21.0k | unsigned long *zl; | 595 | | | 596 | 21.0k | XFENCE(); | 597 | | | 598 | 21.0k | while ((wc_ptr_t)zb & (wc_ptr_t)(sizeof(unsigned long) - 1U)) { | 599 | 0 | if (len == 0) | 600 | 0 | return; | 601 | 0 | *zb++ = 0; | 602 | 0 | --len; | 603 | 0 | } | 604 | | | 605 | 21.0k | zl = (unsigned long *)zb; | 606 | | | 607 | 563k | while (len >= sizeof(unsigned long)) { | 608 | 542k | *zl++ = 0; | 609 | 542k | len -= sizeof(unsigned long); | 610 | 542k | } | 611 | | | 612 | 21.0k | zb = (byte *)zl; | 613 | | | 614 | 67.8k | while (len) { | 615 | 46.7k | *zb++ = 0; | 616 | 46.7k | --len; | 617 | 46.7k | } | 618 | | | 619 | | XFENCE(); | 620 | 21.0k | } |
Unexecuted instantiation: md2.c:ForceZero Unexecuted instantiation: md4.c:ForceZero Unexecuted instantiation: md5.c:ForceZero Unexecuted instantiation: memory.c:ForceZero Unexecuted instantiation: poly1305.c:ForceZero Unexecuted instantiation: pwdbased.c:ForceZero Line | Count | Source | 592 | 2.75M | { | 593 | 2.75M | byte *zb = (byte *)mem; | 594 | 2.75M | unsigned long *zl; | 595 | | | 596 | 2.75M | XFENCE(); | 597 | | | 598 | 2.75M | while ((wc_ptr_t)zb & (wc_ptr_t)(sizeof(unsigned long) - 1U)) { | 599 | 0 | if (len == 0) | 600 | 0 | return; | 601 | 0 | *zb++ = 0; | 602 | 0 | --len; | 603 | 0 | } | 604 | | | 605 | 2.75M | zl = (unsigned long *)zb; | 606 | | | 607 | 19.7M | while (len >= sizeof(unsigned long)) { | 608 | 17.0M | *zl++ = 0; | 609 | 17.0M | len -= sizeof(unsigned long); | 610 | 17.0M | } | 611 | | | 612 | 2.75M | zb = (byte *)zl; | 613 | | | 614 | 9.13M | while (len) { | 615 | 6.38M | *zb++ = 0; | 616 | 6.38M | --len; | 617 | 6.38M | } | 618 | | | 619 | | XFENCE(); | 620 | 2.75M | } |
Unexecuted instantiation: ripemd.c:ForceZero Line | Count | Source | 592 | 304 | { | 593 | 304 | byte *zb = (byte *)mem; | 594 | 304 | unsigned long *zl; | 595 | | | 596 | 304 | XFENCE(); | 597 | | | 598 | 304 | while ((wc_ptr_t)zb & (wc_ptr_t)(sizeof(unsigned long) - 1U)) { | 599 | 0 | if (len == 0) | 600 | 0 | return; | 601 | 0 | *zb++ = 0; | 602 | 0 | --len; | 603 | 0 | } | 604 | | | 605 | 304 | zl = (unsigned long *)zb; | 606 | | | 607 | 1.76k | while (len >= sizeof(unsigned long)) { | 608 | 1.46k | *zl++ = 0; | 609 | 1.46k | len -= sizeof(unsigned long); | 610 | 1.46k | } | 611 | | | 612 | 304 | zb = (byte *)zl; | 613 | | | 614 | 704 | while (len) { | 615 | 400 | *zb++ = 0; | 616 | 400 | --len; | 617 | 400 | } | 618 | | | 619 | | XFENCE(); | 620 | 304 | } |
Unexecuted instantiation: sha.c:ForceZero Line | Count | Source | 592 | 11.0M | { | 593 | 11.0M | byte *zb = (byte *)mem; | 594 | 11.0M | unsigned long *zl; | 595 | | | 596 | 11.0M | XFENCE(); | 597 | | | 598 | 11.0M | while ((wc_ptr_t)zb & (wc_ptr_t)(sizeof(unsigned long) - 1U)) { | 599 | 0 | if (len == 0) | 600 | 0 | return; | 601 | 0 | *zb++ = 0; | 602 | 0 | --len; | 603 | 0 | } | 604 | | | 605 | 11.0M | zl = (unsigned long *)zb; | 606 | | | 607 | 298M | while (len >= sizeof(unsigned long)) { | 608 | 287M | *zl++ = 0; | 609 | 287M | len -= sizeof(unsigned long); | 610 | 287M | } | 611 | | | 612 | 11.0M | zb = (byte *)zl; | 613 | | | 614 | 11.0M | while (len) { | 615 | 0 | *zb++ = 0; | 616 | 0 | --len; | 617 | 0 | } | 618 | | | 619 | | XFENCE(); | 620 | 11.0M | } |
Unexecuted instantiation: sha3.c:ForceZero Line | Count | Source | 592 | 1.43M | { | 593 | 1.43M | byte *zb = (byte *)mem; | 594 | 1.43M | unsigned long *zl; | 595 | | | 596 | 1.43M | XFENCE(); | 597 | | | 598 | 1.43M | while ((wc_ptr_t)zb & (wc_ptr_t)(sizeof(unsigned long) - 1U)) { | 599 | 0 | if (len == 0) | 600 | 0 | return; | 601 | 0 | *zb++ = 0; | 602 | 0 | --len; | 603 | 0 | } | 604 | | | 605 | 1.43M | zl = (unsigned long *)zb; | 606 | | | 607 | 22.8M | while (len >= sizeof(unsigned long)) { | 608 | 21.4M | *zl++ = 0; | 609 | 21.4M | len -= sizeof(unsigned long); | 610 | 21.4M | } | 611 | | | 612 | 1.43M | zb = (byte *)zl; | 613 | | | 614 | 1.43M | while (len) { | 615 | 0 | *zb++ = 0; | 616 | 0 | --len; | 617 | 0 | } | 618 | | | 619 | | XFENCE(); | 620 | 1.43M | } |
Unexecuted instantiation: siphash.c:ForceZero Unexecuted instantiation: sm2.c:ForceZero Unexecuted instantiation: sm3.c:ForceZero Unexecuted instantiation: sm4.c:ForceZero Unexecuted instantiation: wc_encrypt.c:ForceZero Unexecuted instantiation: wolfmath.c:ForceZero Line | Count | Source | 592 | 388k | { | 593 | 388k | byte *zb = (byte *)mem; | 594 | 388k | unsigned long *zl; | 595 | | | 596 | 388k | XFENCE(); | 597 | | | 598 | 1.41M | while ((wc_ptr_t)zb & (wc_ptr_t)(sizeof(unsigned long) - 1U)) { | 599 | 1.02M | if (len == 0) | 600 | 0 | return; | 601 | 1.02M | *zb++ = 0; | 602 | 1.02M | --len; | 603 | 1.02M | } | 604 | | | 605 | 388k | zl = (unsigned long *)zb; | 606 | | | 607 | 12.3M | while (len >= sizeof(unsigned long)) { | 608 | 11.9M | *zl++ = 0; | 609 | 11.9M | len -= sizeof(unsigned long); | 610 | 11.9M | } | 611 | | | 612 | 388k | zb = (byte *)zl; | 613 | | | 614 | 1.96M | while (len) { | 615 | 1.57M | *zb++ = 0; | 616 | 1.57M | --len; | 617 | 1.57M | } | 618 | | | 619 | | XFENCE(); | 620 | 388k | } |
Line | Count | Source | 592 | 16.7k | { | 593 | 16.7k | byte *zb = (byte *)mem; | 594 | 16.7k | unsigned long *zl; | 595 | | | 596 | 16.7k | XFENCE(); | 597 | | | 598 | 16.7k | while ((wc_ptr_t)zb & (wc_ptr_t)(sizeof(unsigned long) - 1U)) { | 599 | 0 | if (len == 0) | 600 | 0 | return; | 601 | 0 | *zb++ = 0; | 602 | 0 | --len; | 603 | 0 | } | 604 | | | 605 | 16.7k | zl = (unsigned long *)zb; | 606 | | | 607 | 2.72M | while (len >= sizeof(unsigned long)) { | 608 | 2.70M | *zl++ = 0; | 609 | 2.70M | len -= sizeof(unsigned long); | 610 | 2.70M | } | 611 | | | 612 | 16.7k | zb = (byte *)zl; | 613 | | | 614 | 17.7k | while (len) { | 615 | 1.01k | *zb++ = 0; | 616 | 1.01k | --len; | 617 | 1.01k | } | 618 | | | 619 | | XFENCE(); | 620 | 16.7k | } |
Line | Count | Source | 592 | 15.9k | { | 593 | 15.9k | byte *zb = (byte *)mem; | 594 | 15.9k | unsigned long *zl; | 595 | | | 596 | 15.9k | XFENCE(); | 597 | | | 598 | 15.9k | while ((wc_ptr_t)zb & (wc_ptr_t)(sizeof(unsigned long) - 1U)) { | 599 | 39 | if (len == 0) | 600 | 0 | return; | 601 | 39 | *zb++ = 0; | 602 | 39 | --len; | 603 | 39 | } | 604 | | | 605 | 15.9k | zl = (unsigned long *)zb; | 606 | | | 607 | 136k | while (len >= sizeof(unsigned long)) { | 608 | 120k | *zl++ = 0; | 609 | 120k | len -= sizeof(unsigned long); | 610 | 120k | } | 611 | | | 612 | 15.9k | zb = (byte *)zl; | 613 | | | 614 | 51.4k | while (len) { | 615 | 35.5k | *zb++ = 0; | 616 | 35.5k | --len; | 617 | 35.5k | } | 618 | | | 619 | | XFENCE(); | 620 | 15.9k | } |
Line | Count | Source | 592 | 708k | { | 593 | 708k | byte *zb = (byte *)mem; | 594 | 708k | unsigned long *zl; | 595 | | | 596 | 708k | XFENCE(); | 597 | | | 598 | 712k | while ((wc_ptr_t)zb & (wc_ptr_t)(sizeof(unsigned long) - 1U)) { | 599 | 4.25k | if (len == 0) | 600 | 0 | return; | 601 | 4.25k | *zb++ = 0; | 602 | 4.25k | --len; | 603 | 4.25k | } | 604 | | | 605 | 708k | zl = (unsigned long *)zb; | 606 | | | 607 | 57.7M | while (len >= sizeof(unsigned long)) { | 608 | 57.0M | *zl++ = 0; | 609 | 57.0M | len -= sizeof(unsigned long); | 610 | 57.0M | } | 611 | | | 612 | 708k | zb = (byte *)zl; | 613 | | | 614 | 1.41M | while (len) { | 615 | 709k | *zb++ = 0; | 616 | 709k | --len; | 617 | 709k | } | 618 | | | 619 | | XFENCE(); | 620 | 708k | } |
|
621 | | #endif |
622 | | |
623 | | |
624 | | #ifndef WOLFSSL_NO_CONST_CMP |
625 | | /* check all length bytes for equality, return 0 on success */ |
626 | | WC_MISC_STATIC WC_INLINE int ConstantCompare(const byte* a, const byte* b, |
627 | | int length) |
628 | 1.48M | { |
629 | 1.48M | int i; |
630 | 1.48M | int compareSum = 0; |
631 | | |
632 | 33.9M | for (i = 0; i < length; i++) { |
633 | 32.4M | compareSum |= a[i] ^ b[i]; |
634 | 32.4M | } |
635 | | |
636 | 1.48M | return compareSum; |
637 | 1.48M | } Line | Count | Source | 628 | 3.34k | { | 629 | 3.34k | int i; | 630 | 3.34k | int compareSum = 0; | 631 | | | 632 | 52.1k | for (i = 0; i < length; i++) { | 633 | 48.7k | compareSum |= a[i] ^ b[i]; | 634 | 48.7k | } | 635 | | | 636 | 3.34k | return compareSum; | 637 | 3.34k | } |
Unexecuted instantiation: asn.c:ConstantCompare Unexecuted instantiation: camellia.c:ConstantCompare Unexecuted instantiation: chacha.c:ConstantCompare Unexecuted instantiation: chacha20_poly1305.c:ConstantCompare Unexecuted instantiation: cmac.c:ConstantCompare Unexecuted instantiation: coding.c:ConstantCompare Unexecuted instantiation: curve25519.c:ConstantCompare Unexecuted instantiation: curve448.c:ConstantCompare Unexecuted instantiation: des3.c:ConstantCompare Unexecuted instantiation: dh.c:ConstantCompare Unexecuted instantiation: ecc.c:ConstantCompare Unexecuted instantiation: eccsi.c:ConstantCompare ed25519.c:ConstantCompare Line | Count | Source | 628 | 1.72k | { | 629 | 1.72k | int i; | 630 | 1.72k | int compareSum = 0; | 631 | | | 632 | 56.8k | for (i = 0; i < length; i++) { | 633 | 55.1k | compareSum |= a[i] ^ b[i]; | 634 | 55.1k | } | 635 | | | 636 | 1.72k | return compareSum; | 637 | 1.72k | } |
Line | Count | Source | 628 | 1.75k | { | 629 | 1.75k | int i; | 630 | 1.75k | int compareSum = 0; | 631 | | | 632 | 101k | for (i = 0; i < length; i++) { | 633 | 99.7k | compareSum |= a[i] ^ b[i]; | 634 | 99.7k | } | 635 | | | 636 | 1.75k | return compareSum; | 637 | 1.75k | } |
Unexecuted instantiation: fe_448.c:ConstantCompare fe_operations.c:ConstantCompare Line | Count | Source | 628 | 7.37k | { | 629 | 7.37k | int i; | 630 | 7.37k | int compareSum = 0; | 631 | | | 632 | 243k | for (i = 0; i < length; i++) { | 633 | 235k | compareSum |= a[i] ^ b[i]; | 634 | 235k | } | 635 | | | 636 | 7.37k | return compareSum; | 637 | 7.37k | } |
Unexecuted instantiation: ge_448.c:ConstantCompare Unexecuted instantiation: ge_operations.c:ConstantCompare Unexecuted instantiation: hash.c:ConstantCompare Unexecuted instantiation: hmac.c:ConstantCompare Unexecuted instantiation: integer.c:ConstantCompare Unexecuted instantiation: kdf.c:ConstantCompare Unexecuted instantiation: md2.c:ConstantCompare Unexecuted instantiation: md4.c:ConstantCompare Unexecuted instantiation: md5.c:ConstantCompare Unexecuted instantiation: memory.c:ConstantCompare Unexecuted instantiation: poly1305.c:ConstantCompare Unexecuted instantiation: pwdbased.c:ConstantCompare Line | Count | Source | 628 | 1.47M | { | 629 | 1.47M | int i; | 630 | 1.47M | int compareSum = 0; | 631 | | | 632 | 33.4M | for (i = 0; i < length; i++) { | 633 | 31.9M | compareSum |= a[i] ^ b[i]; | 634 | 31.9M | } | 635 | | | 636 | 1.47M | return compareSum; | 637 | 1.47M | } |
Unexecuted instantiation: ripemd.c:ConstantCompare Unexecuted instantiation: rsa.c:ConstantCompare Unexecuted instantiation: sha.c:ConstantCompare Unexecuted instantiation: sha256.c:ConstantCompare Unexecuted instantiation: sha3.c:ConstantCompare Unexecuted instantiation: sha512.c:ConstantCompare Unexecuted instantiation: siphash.c:ConstantCompare Unexecuted instantiation: sm2.c:ConstantCompare Unexecuted instantiation: sm3.c:ConstantCompare Unexecuted instantiation: sm4.c:ConstantCompare Unexecuted instantiation: wc_encrypt.c:ConstantCompare Unexecuted instantiation: wolfmath.c:ConstantCompare Unexecuted instantiation: ssl.c:ConstantCompare Unexecuted instantiation: tls.c:ConstantCompare Line | Count | Source | 628 | 2.34k | { | 629 | 2.34k | int i; | 630 | 2.34k | int compareSum = 0; | 631 | | | 632 | 40.9k | for (i = 0; i < length; i++) { | 633 | 38.6k | compareSum |= a[i] ^ b[i]; | 634 | 38.6k | } | 635 | | | 636 | 2.34k | return compareSum; | 637 | 2.34k | } |
internal.c:ConstantCompare Line | Count | Source | 628 | 76 | { | 629 | 76 | int i; | 630 | 76 | int compareSum = 0; | 631 | | | 632 | 1.49k | for (i = 0; i < length; i++) { | 633 | 1.42k | compareSum |= a[i] ^ b[i]; | 634 | 1.42k | } | 635 | | | 636 | 76 | return compareSum; | 637 | 76 | } |
|
638 | | #endif |
639 | | |
640 | | |
641 | | #if defined(WOLFSSL_NO_CT_OPS) && (!defined(NO_RSA) || !defined(WOLFCRYPT_ONLY)) \ |
642 | | && (!defined(WOLFSSL_RSA_VERIFY_ONLY)) |
643 | | /* constant time operations with mask are required for RSA and TLS operations */ |
644 | | #warning constant time operations required unless using NO_RSA & WOLFCRYPT_ONLY |
645 | | #endif |
646 | | |
647 | | #if !defined(WOLFSSL_NO_CT_OPS) || !defined(NO_RSA) || !defined(WOLFCRYPT_ONLY) |
648 | | /* Constant time - mask set when a > b. */ |
649 | | WC_MISC_STATIC WC_INLINE byte ctMaskGT(int a, int b) |
650 | 298k | { |
651 | 298k | return (byte)((((word32)a - (word32)b - 1) >> 31) - 1); |
652 | 298k | } Unexecuted instantiation: aes.c:ctMaskGT Unexecuted instantiation: asn.c:ctMaskGT Unexecuted instantiation: camellia.c:ctMaskGT Unexecuted instantiation: chacha.c:ctMaskGT Unexecuted instantiation: chacha20_poly1305.c:ctMaskGT Unexecuted instantiation: cmac.c:ctMaskGT Unexecuted instantiation: coding.c:ctMaskGT Unexecuted instantiation: curve25519.c:ctMaskGT Unexecuted instantiation: curve448.c:ctMaskGT Unexecuted instantiation: des3.c:ctMaskGT Unexecuted instantiation: dh.c:ctMaskGT Unexecuted instantiation: ecc.c:ctMaskGT Unexecuted instantiation: eccsi.c:ctMaskGT Unexecuted instantiation: ed25519.c:ctMaskGT Unexecuted instantiation: ed448.c:ctMaskGT Unexecuted instantiation: fe_448.c:ctMaskGT Unexecuted instantiation: fe_operations.c:ctMaskGT Unexecuted instantiation: ge_448.c:ctMaskGT Unexecuted instantiation: ge_operations.c:ctMaskGT Unexecuted instantiation: hash.c:ctMaskGT Unexecuted instantiation: hmac.c:ctMaskGT Line | Count | Source | 650 | 217k | { | 651 | 217k | return (byte)((((word32)a - (word32)b - 1) >> 31) - 1); | 652 | 217k | } |
Unexecuted instantiation: kdf.c:ctMaskGT Unexecuted instantiation: md2.c:ctMaskGT Unexecuted instantiation: md4.c:ctMaskGT Unexecuted instantiation: md5.c:ctMaskGT Unexecuted instantiation: memory.c:ctMaskGT Unexecuted instantiation: poly1305.c:ctMaskGT Unexecuted instantiation: pwdbased.c:ctMaskGT Unexecuted instantiation: random.c:ctMaskGT Unexecuted instantiation: ripemd.c:ctMaskGT Line | Count | Source | 650 | 6.94k | { | 651 | 6.94k | return (byte)((((word32)a - (word32)b - 1) >> 31) - 1); | 652 | 6.94k | } |
Unexecuted instantiation: sha.c:ctMaskGT Unexecuted instantiation: sha256.c:ctMaskGT Unexecuted instantiation: sha3.c:ctMaskGT Unexecuted instantiation: sha512.c:ctMaskGT Unexecuted instantiation: siphash.c:ctMaskGT Unexecuted instantiation: sm2.c:ctMaskGT Unexecuted instantiation: sm3.c:ctMaskGT Unexecuted instantiation: sm4.c:ctMaskGT Unexecuted instantiation: wc_encrypt.c:ctMaskGT Unexecuted instantiation: wolfmath.c:ctMaskGT Unexecuted instantiation: ssl.c:ctMaskGT Line | Count | Source | 650 | 74.6k | { | 651 | 74.6k | return (byte)((((word32)a - (word32)b - 1) >> 31) - 1); | 652 | 74.6k | } |
Unexecuted instantiation: tls13.c:ctMaskGT Line | Count | Source | 650 | 132 | { | 651 | 132 | return (byte)((((word32)a - (word32)b - 1) >> 31) - 1); | 652 | 132 | } |
|
653 | | |
654 | | /* Constant time - mask set when a >= b. */ |
655 | | WC_MISC_STATIC WC_INLINE byte ctMaskGTE(int a, int b) |
656 | 25.2k | { |
657 | 25.2k | return (byte)((((word32)a - (word32)b) >> 31) - 1); |
658 | 25.2k | } Unexecuted instantiation: aes.c:ctMaskGTE Unexecuted instantiation: asn.c:ctMaskGTE Unexecuted instantiation: camellia.c:ctMaskGTE Unexecuted instantiation: chacha.c:ctMaskGTE Unexecuted instantiation: chacha20_poly1305.c:ctMaskGTE Unexecuted instantiation: cmac.c:ctMaskGTE Unexecuted instantiation: coding.c:ctMaskGTE Unexecuted instantiation: curve25519.c:ctMaskGTE Unexecuted instantiation: curve448.c:ctMaskGTE Unexecuted instantiation: des3.c:ctMaskGTE Unexecuted instantiation: dh.c:ctMaskGTE Unexecuted instantiation: ecc.c:ctMaskGTE Unexecuted instantiation: eccsi.c:ctMaskGTE Unexecuted instantiation: ed25519.c:ctMaskGTE Unexecuted instantiation: ed448.c:ctMaskGTE Unexecuted instantiation: fe_448.c:ctMaskGTE Unexecuted instantiation: fe_operations.c:ctMaskGTE Unexecuted instantiation: ge_448.c:ctMaskGTE Unexecuted instantiation: ge_operations.c:ctMaskGTE Unexecuted instantiation: hash.c:ctMaskGTE Unexecuted instantiation: hmac.c:ctMaskGTE Unexecuted instantiation: integer.c:ctMaskGTE Unexecuted instantiation: kdf.c:ctMaskGTE Unexecuted instantiation: md2.c:ctMaskGTE Unexecuted instantiation: md4.c:ctMaskGTE Unexecuted instantiation: md5.c:ctMaskGTE Unexecuted instantiation: memory.c:ctMaskGTE Unexecuted instantiation: poly1305.c:ctMaskGTE Unexecuted instantiation: pwdbased.c:ctMaskGTE Unexecuted instantiation: random.c:ctMaskGTE Unexecuted instantiation: ripemd.c:ctMaskGTE Unexecuted instantiation: rsa.c:ctMaskGTE Unexecuted instantiation: sha.c:ctMaskGTE Unexecuted instantiation: sha256.c:ctMaskGTE Unexecuted instantiation: sha3.c:ctMaskGTE Unexecuted instantiation: sha512.c:ctMaskGTE Unexecuted instantiation: siphash.c:ctMaskGTE Unexecuted instantiation: sm2.c:ctMaskGTE Unexecuted instantiation: sm3.c:ctMaskGTE Unexecuted instantiation: sm4.c:ctMaskGTE Unexecuted instantiation: wc_encrypt.c:ctMaskGTE Unexecuted instantiation: wolfmath.c:ctMaskGTE Unexecuted instantiation: ssl.c:ctMaskGTE Unexecuted instantiation: tls.c:ctMaskGTE Unexecuted instantiation: tls13.c:ctMaskGTE Line | Count | Source | 656 | 25.2k | { | 657 | 25.2k | return (byte)((((word32)a - (word32)b) >> 31) - 1); | 658 | 25.2k | } |
|
659 | | |
660 | | /* Constant time - mask set when a >= b. */ |
661 | | WC_MISC_STATIC WC_INLINE int ctMaskIntGTE(int a, int b) |
662 | 264 | { |
663 | 264 | return (int)((((word32)a - (word32)b) >> 31) - 1); |
664 | 264 | } Unexecuted instantiation: aes.c:ctMaskIntGTE Unexecuted instantiation: asn.c:ctMaskIntGTE Unexecuted instantiation: camellia.c:ctMaskIntGTE Unexecuted instantiation: chacha.c:ctMaskIntGTE Unexecuted instantiation: chacha20_poly1305.c:ctMaskIntGTE Unexecuted instantiation: cmac.c:ctMaskIntGTE Unexecuted instantiation: coding.c:ctMaskIntGTE Unexecuted instantiation: curve25519.c:ctMaskIntGTE Unexecuted instantiation: curve448.c:ctMaskIntGTE Unexecuted instantiation: des3.c:ctMaskIntGTE Unexecuted instantiation: dh.c:ctMaskIntGTE Unexecuted instantiation: ecc.c:ctMaskIntGTE Unexecuted instantiation: eccsi.c:ctMaskIntGTE Unexecuted instantiation: ed25519.c:ctMaskIntGTE Unexecuted instantiation: ed448.c:ctMaskIntGTE Unexecuted instantiation: fe_448.c:ctMaskIntGTE Unexecuted instantiation: fe_operations.c:ctMaskIntGTE Unexecuted instantiation: ge_448.c:ctMaskIntGTE Unexecuted instantiation: ge_operations.c:ctMaskIntGTE Unexecuted instantiation: hash.c:ctMaskIntGTE Unexecuted instantiation: hmac.c:ctMaskIntGTE Unexecuted instantiation: integer.c:ctMaskIntGTE Unexecuted instantiation: kdf.c:ctMaskIntGTE Unexecuted instantiation: md2.c:ctMaskIntGTE Unexecuted instantiation: md4.c:ctMaskIntGTE Unexecuted instantiation: md5.c:ctMaskIntGTE Unexecuted instantiation: memory.c:ctMaskIntGTE Unexecuted instantiation: poly1305.c:ctMaskIntGTE Unexecuted instantiation: pwdbased.c:ctMaskIntGTE Unexecuted instantiation: random.c:ctMaskIntGTE Unexecuted instantiation: ripemd.c:ctMaskIntGTE Unexecuted instantiation: rsa.c:ctMaskIntGTE Unexecuted instantiation: sha.c:ctMaskIntGTE Unexecuted instantiation: sha256.c:ctMaskIntGTE Unexecuted instantiation: sha3.c:ctMaskIntGTE Unexecuted instantiation: sha512.c:ctMaskIntGTE Unexecuted instantiation: siphash.c:ctMaskIntGTE Unexecuted instantiation: sm2.c:ctMaskIntGTE Unexecuted instantiation: sm3.c:ctMaskIntGTE Unexecuted instantiation: sm4.c:ctMaskIntGTE Unexecuted instantiation: wc_encrypt.c:ctMaskIntGTE Unexecuted instantiation: wolfmath.c:ctMaskIntGTE Unexecuted instantiation: ssl.c:ctMaskIntGTE Unexecuted instantiation: tls.c:ctMaskIntGTE Unexecuted instantiation: tls13.c:ctMaskIntGTE Line | Count | Source | 662 | 264 | { | 663 | 264 | return (int)((((word32)a - (word32)b) >> 31) - 1); | 664 | 264 | } |
|
665 | | |
666 | | #ifdef WORD64_AVAILABLE |
667 | | /* Constant time - mask set when a >= b. */ |
668 | | WC_MISC_STATIC WC_INLINE word32 ctMaskWord32GTE(word32 a, word32 b) |
669 | 6.73M | { |
670 | 6.73M | return (word32)((((word64)a - (word64)b) >> 63) - 1); |
671 | 6.73M | } Line | Count | Source | 669 | 1.28k | { | 670 | 1.28k | return (word32)((((word64)a - (word64)b) >> 63) - 1); | 671 | 1.28k | } |
Line | Count | Source | 669 | 58.7k | { | 670 | 58.7k | return (word32)((((word64)a - (word64)b) >> 63) - 1); | 671 | 58.7k | } |
Unexecuted instantiation: camellia.c:ctMaskWord32GTE Unexecuted instantiation: chacha.c:ctMaskWord32GTE Unexecuted instantiation: chacha20_poly1305.c:ctMaskWord32GTE Line | Count | Source | 669 | 6.83k | { | 670 | 6.83k | return (word32)((((word64)a - (word64)b) >> 63) - 1); | 671 | 6.83k | } |
Unexecuted instantiation: coding.c:ctMaskWord32GTE Unexecuted instantiation: curve25519.c:ctMaskWord32GTE Unexecuted instantiation: curve448.c:ctMaskWord32GTE Unexecuted instantiation: des3.c:ctMaskWord32GTE Line | Count | Source | 669 | 45.2k | { | 670 | 45.2k | return (word32)((((word64)a - (word64)b) >> 63) - 1); | 671 | 45.2k | } |
Unexecuted instantiation: ecc.c:ctMaskWord32GTE Unexecuted instantiation: eccsi.c:ctMaskWord32GTE Unexecuted instantiation: ed25519.c:ctMaskWord32GTE Unexecuted instantiation: ed448.c:ctMaskWord32GTE Unexecuted instantiation: fe_448.c:ctMaskWord32GTE Unexecuted instantiation: fe_operations.c:ctMaskWord32GTE Unexecuted instantiation: ge_448.c:ctMaskWord32GTE Unexecuted instantiation: ge_operations.c:ctMaskWord32GTE Unexecuted instantiation: hash.c:ctMaskWord32GTE Line | Count | Source | 669 | 44.7k | { | 670 | 44.7k | return (word32)((((word64)a - (word64)b) >> 63) - 1); | 671 | 44.7k | } |
Unexecuted instantiation: integer.c:ctMaskWord32GTE Line | Count | Source | 669 | 2.81k | { | 670 | 2.81k | return (word32)((((word64)a - (word64)b) >> 63) - 1); | 671 | 2.81k | } |
Unexecuted instantiation: md2.c:ctMaskWord32GTE Line | Count | Source | 669 | 9.60k | { | 670 | 9.60k | return (word32)((((word64)a - (word64)b) >> 63) - 1); | 671 | 9.60k | } |
Line | Count | Source | 669 | 121k | { | 670 | 121k | return (word32)((((word64)a - (word64)b) >> 63) - 1); | 671 | 121k | } |
Unexecuted instantiation: memory.c:ctMaskWord32GTE Unexecuted instantiation: poly1305.c:ctMaskWord32GTE pwdbased.c:ctMaskWord32GTE Line | Count | Source | 669 | 6.70k | { | 670 | 6.70k | return (word32)((((word64)a - (word64)b) >> 63) - 1); | 671 | 6.70k | } |
Line | Count | Source | 669 | 1.36M | { | 670 | 1.36M | return (word32)((((word64)a - (word64)b) >> 63) - 1); | 671 | 1.36M | } |
Unexecuted instantiation: ripemd.c:ctMaskWord32GTE Unexecuted instantiation: rsa.c:ctMaskWord32GTE Line | Count | Source | 669 | 232k | { | 670 | 232k | return (word32)((((word64)a - (word64)b) >> 63) - 1); | 671 | 232k | } |
Line | Count | Source | 669 | 4.45M | { | 670 | 4.45M | return (word32)((((word64)a - (word64)b) >> 63) - 1); | 671 | 4.45M | } |
Unexecuted instantiation: sha3.c:ctMaskWord32GTE Line | Count | Source | 669 | 298k | { | 670 | 298k | return (word32)((((word64)a - (word64)b) >> 63) - 1); | 671 | 298k | } |
Unexecuted instantiation: siphash.c:ctMaskWord32GTE Unexecuted instantiation: sm2.c:ctMaskWord32GTE Unexecuted instantiation: sm3.c:ctMaskWord32GTE Unexecuted instantiation: sm4.c:ctMaskWord32GTE Unexecuted instantiation: wc_encrypt.c:ctMaskWord32GTE Unexecuted instantiation: wolfmath.c:ctMaskWord32GTE Line | Count | Source | 669 | 133 | { | 670 | 133 | return (word32)((((word64)a - (word64)b) >> 63) - 1); | 671 | 133 | } |
Unexecuted instantiation: tls.c:ctMaskWord32GTE Line | Count | Source | 669 | 11.9k | { | 670 | 11.9k | return (word32)((((word64)a - (word64)b) >> 63) - 1); | 671 | 11.9k | } |
internal.c:ctMaskWord32GTE Line | Count | Source | 669 | 73.6k | { | 670 | 73.6k | return (word32)((((word64)a - (word64)b) >> 63) - 1); | 671 | 73.6k | } |
|
672 | | #endif |
673 | | |
674 | | /* Constant time - mask set when a < b. */ |
675 | | WC_MISC_STATIC WC_INLINE byte ctMaskLT(int a, int b) |
676 | 287k | { |
677 | 287k | return (byte)((((word32)b - (word32)a - 1) >> 31) - 1); |
678 | 287k | } Unexecuted instantiation: aes.c:ctMaskLT Unexecuted instantiation: asn.c:ctMaskLT Unexecuted instantiation: camellia.c:ctMaskLT Unexecuted instantiation: chacha.c:ctMaskLT Unexecuted instantiation: chacha20_poly1305.c:ctMaskLT Unexecuted instantiation: cmac.c:ctMaskLT Unexecuted instantiation: coding.c:ctMaskLT Unexecuted instantiation: curve25519.c:ctMaskLT Unexecuted instantiation: curve448.c:ctMaskLT Unexecuted instantiation: des3.c:ctMaskLT Unexecuted instantiation: dh.c:ctMaskLT Unexecuted instantiation: ecc.c:ctMaskLT Unexecuted instantiation: eccsi.c:ctMaskLT Unexecuted instantiation: ed25519.c:ctMaskLT Unexecuted instantiation: ed448.c:ctMaskLT Unexecuted instantiation: fe_448.c:ctMaskLT Unexecuted instantiation: fe_operations.c:ctMaskLT Unexecuted instantiation: ge_448.c:ctMaskLT Unexecuted instantiation: ge_operations.c:ctMaskLT Unexecuted instantiation: hash.c:ctMaskLT Unexecuted instantiation: hmac.c:ctMaskLT Line | Count | Source | 676 | 217k | { | 677 | 217k | return (byte)((((word32)b - (word32)a - 1) >> 31) - 1); | 678 | 217k | } |
Unexecuted instantiation: kdf.c:ctMaskLT Unexecuted instantiation: md2.c:ctMaskLT Unexecuted instantiation: md4.c:ctMaskLT Unexecuted instantiation: md5.c:ctMaskLT Unexecuted instantiation: memory.c:ctMaskLT Unexecuted instantiation: poly1305.c:ctMaskLT Unexecuted instantiation: pwdbased.c:ctMaskLT Unexecuted instantiation: random.c:ctMaskLT Unexecuted instantiation: ripemd.c:ctMaskLT Line | Count | Source | 676 | 6.94k | { | 677 | 6.94k | return (byte)((((word32)b - (word32)a - 1) >> 31) - 1); | 678 | 6.94k | } |
Unexecuted instantiation: sha.c:ctMaskLT Unexecuted instantiation: sha256.c:ctMaskLT Unexecuted instantiation: sha3.c:ctMaskLT Unexecuted instantiation: sha512.c:ctMaskLT Unexecuted instantiation: siphash.c:ctMaskLT Unexecuted instantiation: sm2.c:ctMaskLT Unexecuted instantiation: sm3.c:ctMaskLT Unexecuted instantiation: sm4.c:ctMaskLT Unexecuted instantiation: wc_encrypt.c:ctMaskLT Unexecuted instantiation: wolfmath.c:ctMaskLT Unexecuted instantiation: ssl.c:ctMaskLT Line | Count | Source | 676 | 37.7k | { | 677 | 37.7k | return (byte)((((word32)b - (word32)a - 1) >> 31) - 1); | 678 | 37.7k | } |
Unexecuted instantiation: tls13.c:ctMaskLT Line | Count | Source | 676 | 25.2k | { | 677 | 25.2k | return (byte)((((word32)b - (word32)a - 1) >> 31) - 1); | 678 | 25.2k | } |
|
679 | | |
680 | | /* Constant time - mask set when a <= b. */ |
681 | | WC_MISC_STATIC WC_INLINE byte ctMaskLTE(int a, int b) |
682 | 30.2k | { |
683 | 30.2k | return (byte)((((word32)b - (word32)a) >> 31) - 1); |
684 | 30.2k | } Unexecuted instantiation: aes.c:ctMaskLTE Unexecuted instantiation: asn.c:ctMaskLTE Unexecuted instantiation: camellia.c:ctMaskLTE Unexecuted instantiation: chacha.c:ctMaskLTE Unexecuted instantiation: chacha20_poly1305.c:ctMaskLTE Unexecuted instantiation: cmac.c:ctMaskLTE Unexecuted instantiation: coding.c:ctMaskLTE Unexecuted instantiation: curve25519.c:ctMaskLTE Unexecuted instantiation: curve448.c:ctMaskLTE Unexecuted instantiation: des3.c:ctMaskLTE Unexecuted instantiation: dh.c:ctMaskLTE Unexecuted instantiation: ecc.c:ctMaskLTE Unexecuted instantiation: eccsi.c:ctMaskLTE Unexecuted instantiation: ed25519.c:ctMaskLTE Unexecuted instantiation: ed448.c:ctMaskLTE Unexecuted instantiation: fe_448.c:ctMaskLTE Unexecuted instantiation: fe_operations.c:ctMaskLTE Unexecuted instantiation: ge_448.c:ctMaskLTE Unexecuted instantiation: ge_operations.c:ctMaskLTE Unexecuted instantiation: hash.c:ctMaskLTE Unexecuted instantiation: hmac.c:ctMaskLTE Unexecuted instantiation: integer.c:ctMaskLTE Unexecuted instantiation: kdf.c:ctMaskLTE Unexecuted instantiation: md2.c:ctMaskLTE Unexecuted instantiation: md4.c:ctMaskLTE Unexecuted instantiation: md5.c:ctMaskLTE Unexecuted instantiation: memory.c:ctMaskLTE Unexecuted instantiation: poly1305.c:ctMaskLTE Unexecuted instantiation: pwdbased.c:ctMaskLTE Unexecuted instantiation: random.c:ctMaskLTE Unexecuted instantiation: ripemd.c:ctMaskLTE Line | Count | Source | 682 | 6.94k | { | 683 | 6.94k | return (byte)((((word32)b - (word32)a) >> 31) - 1); | 684 | 6.94k | } |
Unexecuted instantiation: sha.c:ctMaskLTE Unexecuted instantiation: sha256.c:ctMaskLTE Unexecuted instantiation: sha3.c:ctMaskLTE Unexecuted instantiation: sha512.c:ctMaskLTE Unexecuted instantiation: siphash.c:ctMaskLTE Unexecuted instantiation: sm2.c:ctMaskLTE Unexecuted instantiation: sm3.c:ctMaskLTE Unexecuted instantiation: sm4.c:ctMaskLTE Unexecuted instantiation: wc_encrypt.c:ctMaskLTE Unexecuted instantiation: wolfmath.c:ctMaskLTE Unexecuted instantiation: ssl.c:ctMaskLTE Unexecuted instantiation: tls.c:ctMaskLTE Unexecuted instantiation: tls13.c:ctMaskLTE Line | Count | Source | 682 | 23.2k | { | 683 | 23.2k | return (byte)((((word32)b - (word32)a) >> 31) - 1); | 684 | 23.2k | } |
|
685 | | |
686 | | /* Constant time - mask set when a == b. */ |
687 | | WC_MISC_STATIC WC_INLINE byte ctMaskEq(int a, int b) |
688 | 254k | { |
689 | 254k | return (byte)((byte)(~ctMaskGT(a, b)) & (byte)(~ctMaskLT(a, b))); |
690 | 254k | } Unexecuted instantiation: aes.c:ctMaskEq Unexecuted instantiation: asn.c:ctMaskEq Unexecuted instantiation: camellia.c:ctMaskEq Unexecuted instantiation: chacha.c:ctMaskEq Unexecuted instantiation: chacha20_poly1305.c:ctMaskEq Unexecuted instantiation: cmac.c:ctMaskEq Unexecuted instantiation: coding.c:ctMaskEq Unexecuted instantiation: curve25519.c:ctMaskEq Unexecuted instantiation: curve448.c:ctMaskEq Unexecuted instantiation: des3.c:ctMaskEq Unexecuted instantiation: dh.c:ctMaskEq Unexecuted instantiation: ecc.c:ctMaskEq Unexecuted instantiation: eccsi.c:ctMaskEq Unexecuted instantiation: ed25519.c:ctMaskEq Unexecuted instantiation: ed448.c:ctMaskEq Unexecuted instantiation: fe_448.c:ctMaskEq Unexecuted instantiation: fe_operations.c:ctMaskEq Unexecuted instantiation: ge_448.c:ctMaskEq Unexecuted instantiation: ge_operations.c:ctMaskEq Unexecuted instantiation: hash.c:ctMaskEq Unexecuted instantiation: hmac.c:ctMaskEq Line | Count | Source | 688 | 217k | { | 689 | 217k | return (byte)((byte)(~ctMaskGT(a, b)) & (byte)(~ctMaskLT(a, b))); | 690 | 217k | } |
Unexecuted instantiation: kdf.c:ctMaskEq Unexecuted instantiation: md2.c:ctMaskEq Unexecuted instantiation: md4.c:ctMaskEq Unexecuted instantiation: md5.c:ctMaskEq Unexecuted instantiation: memory.c:ctMaskEq Unexecuted instantiation: poly1305.c:ctMaskEq Unexecuted instantiation: pwdbased.c:ctMaskEq Unexecuted instantiation: random.c:ctMaskEq Unexecuted instantiation: ripemd.c:ctMaskEq Unexecuted instantiation: rsa.c:ctMaskEq Unexecuted instantiation: sha.c:ctMaskEq Unexecuted instantiation: sha256.c:ctMaskEq Unexecuted instantiation: sha3.c:ctMaskEq Unexecuted instantiation: sha512.c:ctMaskEq Unexecuted instantiation: siphash.c:ctMaskEq Unexecuted instantiation: sm2.c:ctMaskEq Unexecuted instantiation: sm3.c:ctMaskEq Unexecuted instantiation: sm4.c:ctMaskEq Unexecuted instantiation: wc_encrypt.c:ctMaskEq Unexecuted instantiation: wolfmath.c:ctMaskEq Unexecuted instantiation: ssl.c:ctMaskEq Line | Count | Source | 688 | 37.7k | { | 689 | 37.7k | return (byte)((byte)(~ctMaskGT(a, b)) & (byte)(~ctMaskLT(a, b))); | 690 | 37.7k | } |
Unexecuted instantiation: tls13.c:ctMaskEq Unexecuted instantiation: internal.c:ctMaskEq |
691 | | |
692 | | /* Constant time - sets 16 bit integer mask when a > b */ |
693 | | WC_MISC_STATIC WC_INLINE word16 ctMask16GT(int a, int b) |
694 | 0 | { |
695 | 0 | return (word16)((((word32)a - (word32)b - 1) >> 31) - 1); |
696 | 0 | } Unexecuted instantiation: aes.c:ctMask16GT Unexecuted instantiation: asn.c:ctMask16GT Unexecuted instantiation: camellia.c:ctMask16GT Unexecuted instantiation: chacha.c:ctMask16GT Unexecuted instantiation: chacha20_poly1305.c:ctMask16GT Unexecuted instantiation: cmac.c:ctMask16GT Unexecuted instantiation: coding.c:ctMask16GT Unexecuted instantiation: curve25519.c:ctMask16GT Unexecuted instantiation: curve448.c:ctMask16GT Unexecuted instantiation: des3.c:ctMask16GT Unexecuted instantiation: dh.c:ctMask16GT Unexecuted instantiation: ecc.c:ctMask16GT Unexecuted instantiation: eccsi.c:ctMask16GT Unexecuted instantiation: ed25519.c:ctMask16GT Unexecuted instantiation: ed448.c:ctMask16GT Unexecuted instantiation: fe_448.c:ctMask16GT Unexecuted instantiation: fe_operations.c:ctMask16GT Unexecuted instantiation: ge_448.c:ctMask16GT Unexecuted instantiation: ge_operations.c:ctMask16GT Unexecuted instantiation: hash.c:ctMask16GT Unexecuted instantiation: hmac.c:ctMask16GT Unexecuted instantiation: integer.c:ctMask16GT Unexecuted instantiation: kdf.c:ctMask16GT Unexecuted instantiation: md2.c:ctMask16GT Unexecuted instantiation: md4.c:ctMask16GT Unexecuted instantiation: md5.c:ctMask16GT Unexecuted instantiation: memory.c:ctMask16GT Unexecuted instantiation: poly1305.c:ctMask16GT Unexecuted instantiation: pwdbased.c:ctMask16GT Unexecuted instantiation: random.c:ctMask16GT Unexecuted instantiation: ripemd.c:ctMask16GT Unexecuted instantiation: rsa.c:ctMask16GT Unexecuted instantiation: sha.c:ctMask16GT Unexecuted instantiation: sha256.c:ctMask16GT Unexecuted instantiation: sha3.c:ctMask16GT Unexecuted instantiation: sha512.c:ctMask16GT Unexecuted instantiation: siphash.c:ctMask16GT Unexecuted instantiation: sm2.c:ctMask16GT Unexecuted instantiation: sm3.c:ctMask16GT Unexecuted instantiation: sm4.c:ctMask16GT Unexecuted instantiation: wc_encrypt.c:ctMask16GT Unexecuted instantiation: wolfmath.c:ctMask16GT Unexecuted instantiation: ssl.c:ctMask16GT Unexecuted instantiation: tls.c:ctMask16GT Unexecuted instantiation: tls13.c:ctMask16GT Unexecuted instantiation: internal.c:ctMask16GT |
697 | | |
698 | | /* Constant time - sets 16 bit integer mask when a >= b */ |
699 | | WC_MISC_STATIC WC_INLINE word16 ctMask16GTE(int a, int b) |
700 | 0 | { |
701 | 0 | return (word16)((((word32)a - (word32)b) >> 31) - 1); |
702 | 0 | } Unexecuted instantiation: aes.c:ctMask16GTE Unexecuted instantiation: asn.c:ctMask16GTE Unexecuted instantiation: camellia.c:ctMask16GTE Unexecuted instantiation: chacha.c:ctMask16GTE Unexecuted instantiation: chacha20_poly1305.c:ctMask16GTE Unexecuted instantiation: cmac.c:ctMask16GTE Unexecuted instantiation: coding.c:ctMask16GTE Unexecuted instantiation: curve25519.c:ctMask16GTE Unexecuted instantiation: curve448.c:ctMask16GTE Unexecuted instantiation: des3.c:ctMask16GTE Unexecuted instantiation: dh.c:ctMask16GTE Unexecuted instantiation: ecc.c:ctMask16GTE Unexecuted instantiation: eccsi.c:ctMask16GTE Unexecuted instantiation: ed25519.c:ctMask16GTE Unexecuted instantiation: ed448.c:ctMask16GTE Unexecuted instantiation: fe_448.c:ctMask16GTE Unexecuted instantiation: fe_operations.c:ctMask16GTE Unexecuted instantiation: ge_448.c:ctMask16GTE Unexecuted instantiation: ge_operations.c:ctMask16GTE Unexecuted instantiation: hash.c:ctMask16GTE Unexecuted instantiation: hmac.c:ctMask16GTE Unexecuted instantiation: integer.c:ctMask16GTE Unexecuted instantiation: kdf.c:ctMask16GTE Unexecuted instantiation: md2.c:ctMask16GTE Unexecuted instantiation: md4.c:ctMask16GTE Unexecuted instantiation: md5.c:ctMask16GTE Unexecuted instantiation: memory.c:ctMask16GTE Unexecuted instantiation: poly1305.c:ctMask16GTE Unexecuted instantiation: pwdbased.c:ctMask16GTE Unexecuted instantiation: random.c:ctMask16GTE Unexecuted instantiation: ripemd.c:ctMask16GTE Unexecuted instantiation: rsa.c:ctMask16GTE Unexecuted instantiation: sha.c:ctMask16GTE Unexecuted instantiation: sha256.c:ctMask16GTE Unexecuted instantiation: sha3.c:ctMask16GTE Unexecuted instantiation: sha512.c:ctMask16GTE Unexecuted instantiation: siphash.c:ctMask16GTE Unexecuted instantiation: sm2.c:ctMask16GTE Unexecuted instantiation: sm3.c:ctMask16GTE Unexecuted instantiation: sm4.c:ctMask16GTE Unexecuted instantiation: wc_encrypt.c:ctMask16GTE Unexecuted instantiation: wolfmath.c:ctMask16GTE Unexecuted instantiation: ssl.c:ctMask16GTE Unexecuted instantiation: tls.c:ctMask16GTE Unexecuted instantiation: tls13.c:ctMask16GTE Unexecuted instantiation: internal.c:ctMask16GTE |
703 | | |
704 | | /* Constant time - sets 16 bit integer mask when a < b. */ |
705 | | WC_MISC_STATIC WC_INLINE word16 ctMask16LT(int a, int b) |
706 | 0 | { |
707 | 0 | return (word16)((((word32)b - (word32)a - 1) >> 31) - 1); |
708 | 0 | } Unexecuted instantiation: aes.c:ctMask16LT Unexecuted instantiation: asn.c:ctMask16LT Unexecuted instantiation: camellia.c:ctMask16LT Unexecuted instantiation: chacha.c:ctMask16LT Unexecuted instantiation: chacha20_poly1305.c:ctMask16LT Unexecuted instantiation: cmac.c:ctMask16LT Unexecuted instantiation: coding.c:ctMask16LT Unexecuted instantiation: curve25519.c:ctMask16LT Unexecuted instantiation: curve448.c:ctMask16LT Unexecuted instantiation: des3.c:ctMask16LT Unexecuted instantiation: dh.c:ctMask16LT Unexecuted instantiation: ecc.c:ctMask16LT Unexecuted instantiation: eccsi.c:ctMask16LT Unexecuted instantiation: ed25519.c:ctMask16LT Unexecuted instantiation: ed448.c:ctMask16LT Unexecuted instantiation: fe_448.c:ctMask16LT Unexecuted instantiation: fe_operations.c:ctMask16LT Unexecuted instantiation: ge_448.c:ctMask16LT Unexecuted instantiation: ge_operations.c:ctMask16LT Unexecuted instantiation: hash.c:ctMask16LT Unexecuted instantiation: hmac.c:ctMask16LT Unexecuted instantiation: integer.c:ctMask16LT Unexecuted instantiation: kdf.c:ctMask16LT Unexecuted instantiation: md2.c:ctMask16LT Unexecuted instantiation: md4.c:ctMask16LT Unexecuted instantiation: md5.c:ctMask16LT Unexecuted instantiation: memory.c:ctMask16LT Unexecuted instantiation: poly1305.c:ctMask16LT Unexecuted instantiation: pwdbased.c:ctMask16LT Unexecuted instantiation: random.c:ctMask16LT Unexecuted instantiation: ripemd.c:ctMask16LT Unexecuted instantiation: rsa.c:ctMask16LT Unexecuted instantiation: sha.c:ctMask16LT Unexecuted instantiation: sha256.c:ctMask16LT Unexecuted instantiation: sha3.c:ctMask16LT Unexecuted instantiation: sha512.c:ctMask16LT Unexecuted instantiation: siphash.c:ctMask16LT Unexecuted instantiation: sm2.c:ctMask16LT Unexecuted instantiation: sm3.c:ctMask16LT Unexecuted instantiation: sm4.c:ctMask16LT Unexecuted instantiation: wc_encrypt.c:ctMask16LT Unexecuted instantiation: wolfmath.c:ctMask16LT Unexecuted instantiation: ssl.c:ctMask16LT Unexecuted instantiation: tls.c:ctMask16LT Unexecuted instantiation: tls13.c:ctMask16LT Unexecuted instantiation: internal.c:ctMask16LT |
709 | | |
710 | | /* Constant time - sets 16 bit integer mask when a <= b. */ |
711 | | WC_MISC_STATIC WC_INLINE word16 ctMask16LTE(int a, int b) |
712 | 0 | { |
713 | 0 | return (word16)((((word32)b - (word32)a) >> 31) - 1); |
714 | 0 | } Unexecuted instantiation: aes.c:ctMask16LTE Unexecuted instantiation: asn.c:ctMask16LTE Unexecuted instantiation: camellia.c:ctMask16LTE Unexecuted instantiation: chacha.c:ctMask16LTE Unexecuted instantiation: chacha20_poly1305.c:ctMask16LTE Unexecuted instantiation: cmac.c:ctMask16LTE Unexecuted instantiation: coding.c:ctMask16LTE Unexecuted instantiation: curve25519.c:ctMask16LTE Unexecuted instantiation: curve448.c:ctMask16LTE Unexecuted instantiation: des3.c:ctMask16LTE Unexecuted instantiation: dh.c:ctMask16LTE Unexecuted instantiation: ecc.c:ctMask16LTE Unexecuted instantiation: eccsi.c:ctMask16LTE Unexecuted instantiation: ed25519.c:ctMask16LTE Unexecuted instantiation: ed448.c:ctMask16LTE Unexecuted instantiation: fe_448.c:ctMask16LTE Unexecuted instantiation: fe_operations.c:ctMask16LTE Unexecuted instantiation: ge_448.c:ctMask16LTE Unexecuted instantiation: ge_operations.c:ctMask16LTE Unexecuted instantiation: hash.c:ctMask16LTE Unexecuted instantiation: hmac.c:ctMask16LTE Unexecuted instantiation: integer.c:ctMask16LTE Unexecuted instantiation: kdf.c:ctMask16LTE Unexecuted instantiation: md2.c:ctMask16LTE Unexecuted instantiation: md4.c:ctMask16LTE Unexecuted instantiation: md5.c:ctMask16LTE Unexecuted instantiation: memory.c:ctMask16LTE Unexecuted instantiation: poly1305.c:ctMask16LTE Unexecuted instantiation: pwdbased.c:ctMask16LTE Unexecuted instantiation: random.c:ctMask16LTE Unexecuted instantiation: ripemd.c:ctMask16LTE Unexecuted instantiation: rsa.c:ctMask16LTE Unexecuted instantiation: sha.c:ctMask16LTE Unexecuted instantiation: sha256.c:ctMask16LTE Unexecuted instantiation: sha3.c:ctMask16LTE Unexecuted instantiation: sha512.c:ctMask16LTE Unexecuted instantiation: siphash.c:ctMask16LTE Unexecuted instantiation: sm2.c:ctMask16LTE Unexecuted instantiation: sm3.c:ctMask16LTE Unexecuted instantiation: sm4.c:ctMask16LTE Unexecuted instantiation: wc_encrypt.c:ctMask16LTE Unexecuted instantiation: wolfmath.c:ctMask16LTE Unexecuted instantiation: ssl.c:ctMask16LTE Unexecuted instantiation: tls.c:ctMask16LTE Unexecuted instantiation: tls13.c:ctMask16LTE Unexecuted instantiation: internal.c:ctMask16LTE |
715 | | |
716 | | /* Constant time - sets 16 bit integer mask when a == b. */ |
717 | | WC_MISC_STATIC WC_INLINE word16 ctMask16Eq(int a, int b) |
718 | 0 | { |
719 | 0 | return (word16)((word16)(~ctMask16GT(a, b)) & (word16)(~ctMask16LT(a, b))); |
720 | 0 | } Unexecuted instantiation: aes.c:ctMask16Eq Unexecuted instantiation: asn.c:ctMask16Eq Unexecuted instantiation: camellia.c:ctMask16Eq Unexecuted instantiation: chacha.c:ctMask16Eq Unexecuted instantiation: chacha20_poly1305.c:ctMask16Eq Unexecuted instantiation: cmac.c:ctMask16Eq Unexecuted instantiation: coding.c:ctMask16Eq Unexecuted instantiation: curve25519.c:ctMask16Eq Unexecuted instantiation: curve448.c:ctMask16Eq Unexecuted instantiation: des3.c:ctMask16Eq Unexecuted instantiation: dh.c:ctMask16Eq Unexecuted instantiation: ecc.c:ctMask16Eq Unexecuted instantiation: eccsi.c:ctMask16Eq Unexecuted instantiation: ed25519.c:ctMask16Eq Unexecuted instantiation: ed448.c:ctMask16Eq Unexecuted instantiation: fe_448.c:ctMask16Eq Unexecuted instantiation: fe_operations.c:ctMask16Eq Unexecuted instantiation: ge_448.c:ctMask16Eq Unexecuted instantiation: ge_operations.c:ctMask16Eq Unexecuted instantiation: hash.c:ctMask16Eq Unexecuted instantiation: hmac.c:ctMask16Eq Unexecuted instantiation: integer.c:ctMask16Eq Unexecuted instantiation: kdf.c:ctMask16Eq Unexecuted instantiation: md2.c:ctMask16Eq Unexecuted instantiation: md4.c:ctMask16Eq Unexecuted instantiation: md5.c:ctMask16Eq Unexecuted instantiation: memory.c:ctMask16Eq Unexecuted instantiation: poly1305.c:ctMask16Eq Unexecuted instantiation: pwdbased.c:ctMask16Eq Unexecuted instantiation: random.c:ctMask16Eq Unexecuted instantiation: ripemd.c:ctMask16Eq Unexecuted instantiation: rsa.c:ctMask16Eq Unexecuted instantiation: sha.c:ctMask16Eq Unexecuted instantiation: sha256.c:ctMask16Eq Unexecuted instantiation: sha3.c:ctMask16Eq Unexecuted instantiation: sha512.c:ctMask16Eq Unexecuted instantiation: siphash.c:ctMask16Eq Unexecuted instantiation: sm2.c:ctMask16Eq Unexecuted instantiation: sm3.c:ctMask16Eq Unexecuted instantiation: sm4.c:ctMask16Eq Unexecuted instantiation: wc_encrypt.c:ctMask16Eq Unexecuted instantiation: wolfmath.c:ctMask16Eq Unexecuted instantiation: ssl.c:ctMask16Eq Unexecuted instantiation: tls.c:ctMask16Eq Unexecuted instantiation: tls13.c:ctMask16Eq Unexecuted instantiation: internal.c:ctMask16Eq |
721 | | |
722 | | /* Constant time - mask set when a != b. */ |
723 | | WC_MISC_STATIC WC_INLINE byte ctMaskNotEq(int a, int b) |
724 | 6.94k | { |
725 | 6.94k | return (byte)((byte)ctMaskGT(a, b) | (byte)ctMaskLT(a, b)); |
726 | 6.94k | } Unexecuted instantiation: aes.c:ctMaskNotEq Unexecuted instantiation: asn.c:ctMaskNotEq Unexecuted instantiation: camellia.c:ctMaskNotEq Unexecuted instantiation: chacha.c:ctMaskNotEq Unexecuted instantiation: chacha20_poly1305.c:ctMaskNotEq Unexecuted instantiation: cmac.c:ctMaskNotEq Unexecuted instantiation: coding.c:ctMaskNotEq Unexecuted instantiation: curve25519.c:ctMaskNotEq Unexecuted instantiation: curve448.c:ctMaskNotEq Unexecuted instantiation: des3.c:ctMaskNotEq Unexecuted instantiation: dh.c:ctMaskNotEq Unexecuted instantiation: ecc.c:ctMaskNotEq Unexecuted instantiation: eccsi.c:ctMaskNotEq Unexecuted instantiation: ed25519.c:ctMaskNotEq Unexecuted instantiation: ed448.c:ctMaskNotEq Unexecuted instantiation: fe_448.c:ctMaskNotEq Unexecuted instantiation: fe_operations.c:ctMaskNotEq Unexecuted instantiation: ge_448.c:ctMaskNotEq Unexecuted instantiation: ge_operations.c:ctMaskNotEq Unexecuted instantiation: hash.c:ctMaskNotEq Unexecuted instantiation: hmac.c:ctMaskNotEq Unexecuted instantiation: integer.c:ctMaskNotEq Unexecuted instantiation: kdf.c:ctMaskNotEq Unexecuted instantiation: md2.c:ctMaskNotEq Unexecuted instantiation: md4.c:ctMaskNotEq Unexecuted instantiation: md5.c:ctMaskNotEq Unexecuted instantiation: memory.c:ctMaskNotEq Unexecuted instantiation: poly1305.c:ctMaskNotEq Unexecuted instantiation: pwdbased.c:ctMaskNotEq Unexecuted instantiation: random.c:ctMaskNotEq Unexecuted instantiation: ripemd.c:ctMaskNotEq Line | Count | Source | 724 | 6.94k | { | 725 | 6.94k | return (byte)((byte)ctMaskGT(a, b) | (byte)ctMaskLT(a, b)); | 726 | 6.94k | } |
Unexecuted instantiation: sha.c:ctMaskNotEq Unexecuted instantiation: sha256.c:ctMaskNotEq Unexecuted instantiation: sha3.c:ctMaskNotEq Unexecuted instantiation: sha512.c:ctMaskNotEq Unexecuted instantiation: siphash.c:ctMaskNotEq Unexecuted instantiation: sm2.c:ctMaskNotEq Unexecuted instantiation: sm3.c:ctMaskNotEq Unexecuted instantiation: sm4.c:ctMaskNotEq Unexecuted instantiation: wc_encrypt.c:ctMaskNotEq Unexecuted instantiation: wolfmath.c:ctMaskNotEq Unexecuted instantiation: ssl.c:ctMaskNotEq Unexecuted instantiation: tls.c:ctMaskNotEq Unexecuted instantiation: tls13.c:ctMaskNotEq Unexecuted instantiation: internal.c:ctMaskNotEq |
727 | | |
728 | | /* Constant time - select a when mask is set and b otherwise. */ |
729 | | WC_MISC_STATIC WC_INLINE byte ctMaskSel(byte m, byte a, byte b) |
730 | 40.4k | { |
731 | 40.4k | return (byte)((b & ((byte)~(word32)m)) | (a & m)); |
732 | 40.4k | } Unexecuted instantiation: aes.c:ctMaskSel Unexecuted instantiation: asn.c:ctMaskSel Unexecuted instantiation: camellia.c:ctMaskSel Unexecuted instantiation: chacha.c:ctMaskSel Unexecuted instantiation: chacha20_poly1305.c:ctMaskSel Unexecuted instantiation: cmac.c:ctMaskSel Unexecuted instantiation: coding.c:ctMaskSel Unexecuted instantiation: curve25519.c:ctMaskSel Unexecuted instantiation: curve448.c:ctMaskSel Unexecuted instantiation: des3.c:ctMaskSel Unexecuted instantiation: dh.c:ctMaskSel Unexecuted instantiation: ecc.c:ctMaskSel Unexecuted instantiation: eccsi.c:ctMaskSel Unexecuted instantiation: ed25519.c:ctMaskSel Unexecuted instantiation: ed448.c:ctMaskSel Unexecuted instantiation: fe_448.c:ctMaskSel Unexecuted instantiation: fe_operations.c:ctMaskSel Unexecuted instantiation: ge_448.c:ctMaskSel Unexecuted instantiation: ge_operations.c:ctMaskSel Unexecuted instantiation: hash.c:ctMaskSel Unexecuted instantiation: hmac.c:ctMaskSel Unexecuted instantiation: integer.c:ctMaskSel Unexecuted instantiation: kdf.c:ctMaskSel Unexecuted instantiation: md2.c:ctMaskSel Unexecuted instantiation: md4.c:ctMaskSel Unexecuted instantiation: md5.c:ctMaskSel Unexecuted instantiation: memory.c:ctMaskSel Unexecuted instantiation: poly1305.c:ctMaskSel Unexecuted instantiation: pwdbased.c:ctMaskSel Unexecuted instantiation: random.c:ctMaskSel Unexecuted instantiation: ripemd.c:ctMaskSel Unexecuted instantiation: rsa.c:ctMaskSel Unexecuted instantiation: sha.c:ctMaskSel Unexecuted instantiation: sha256.c:ctMaskSel Unexecuted instantiation: sha3.c:ctMaskSel Unexecuted instantiation: sha512.c:ctMaskSel Unexecuted instantiation: siphash.c:ctMaskSel Unexecuted instantiation: sm2.c:ctMaskSel Unexecuted instantiation: sm3.c:ctMaskSel Unexecuted instantiation: sm4.c:ctMaskSel Unexecuted instantiation: wc_encrypt.c:ctMaskSel Unexecuted instantiation: wolfmath.c:ctMaskSel Unexecuted instantiation: ssl.c:ctMaskSel Line | Count | Source | 730 | 40.4k | { | 731 | 40.4k | return (byte)((b & ((byte)~(word32)m)) | (a & m)); | 732 | 40.4k | } |
Unexecuted instantiation: tls13.c:ctMaskSel Unexecuted instantiation: internal.c:ctMaskSel |
733 | | |
734 | | /* Constant time - select integer a when mask is set and integer b otherwise. */ |
735 | | WC_MISC_STATIC WC_INLINE int ctMaskSelInt(byte m, int a, int b) |
736 | 13.8k | { |
737 | 13.8k | return (b & (~(signed int)(signed char)m)) | |
738 | 13.8k | (a & ( (signed int)(signed char)m)); |
739 | 13.8k | } Unexecuted instantiation: aes.c:ctMaskSelInt Unexecuted instantiation: asn.c:ctMaskSelInt Unexecuted instantiation: camellia.c:ctMaskSelInt Unexecuted instantiation: chacha.c:ctMaskSelInt Unexecuted instantiation: chacha20_poly1305.c:ctMaskSelInt Unexecuted instantiation: cmac.c:ctMaskSelInt Unexecuted instantiation: coding.c:ctMaskSelInt Unexecuted instantiation: curve25519.c:ctMaskSelInt Unexecuted instantiation: curve448.c:ctMaskSelInt Unexecuted instantiation: des3.c:ctMaskSelInt Unexecuted instantiation: dh.c:ctMaskSelInt Unexecuted instantiation: ecc.c:ctMaskSelInt Unexecuted instantiation: eccsi.c:ctMaskSelInt Unexecuted instantiation: ed25519.c:ctMaskSelInt Unexecuted instantiation: ed448.c:ctMaskSelInt Unexecuted instantiation: fe_448.c:ctMaskSelInt Unexecuted instantiation: fe_operations.c:ctMaskSelInt Unexecuted instantiation: ge_448.c:ctMaskSelInt Unexecuted instantiation: ge_operations.c:ctMaskSelInt Unexecuted instantiation: hash.c:ctMaskSelInt Unexecuted instantiation: hmac.c:ctMaskSelInt Unexecuted instantiation: integer.c:ctMaskSelInt Unexecuted instantiation: kdf.c:ctMaskSelInt Unexecuted instantiation: md2.c:ctMaskSelInt Unexecuted instantiation: md4.c:ctMaskSelInt Unexecuted instantiation: md5.c:ctMaskSelInt Unexecuted instantiation: memory.c:ctMaskSelInt Unexecuted instantiation: poly1305.c:ctMaskSelInt Unexecuted instantiation: pwdbased.c:ctMaskSelInt Unexecuted instantiation: random.c:ctMaskSelInt Unexecuted instantiation: ripemd.c:ctMaskSelInt Line | Count | Source | 736 | 13.8k | { | 737 | 13.8k | return (b & (~(signed int)(signed char)m)) | | 738 | 13.8k | (a & ( (signed int)(signed char)m)); | 739 | 13.8k | } |
Unexecuted instantiation: sha.c:ctMaskSelInt Unexecuted instantiation: sha256.c:ctMaskSelInt Unexecuted instantiation: sha3.c:ctMaskSelInt Unexecuted instantiation: sha512.c:ctMaskSelInt Unexecuted instantiation: siphash.c:ctMaskSelInt Unexecuted instantiation: sm2.c:ctMaskSelInt Unexecuted instantiation: sm3.c:ctMaskSelInt Unexecuted instantiation: sm4.c:ctMaskSelInt Unexecuted instantiation: wc_encrypt.c:ctMaskSelInt Unexecuted instantiation: wolfmath.c:ctMaskSelInt Unexecuted instantiation: ssl.c:ctMaskSelInt Unexecuted instantiation: tls.c:ctMaskSelInt Unexecuted instantiation: tls13.c:ctMaskSelInt Unexecuted instantiation: internal.c:ctMaskSelInt |
740 | | |
741 | | /* Constant time - select word32 a when mask is set and word32 b otherwise. */ |
742 | | WC_MISC_STATIC WC_INLINE word32 ctMaskSelWord32(byte m, word32 a, word32 b) |
743 | 0 | { |
744 | 0 | return (((word32)b & (word32)(~(signed int)(signed char)m)) | |
745 | 0 | ((word32)a & (word32)( (signed int)(signed char)m))); |
746 | 0 | } Unexecuted instantiation: aes.c:ctMaskSelWord32 Unexecuted instantiation: asn.c:ctMaskSelWord32 Unexecuted instantiation: camellia.c:ctMaskSelWord32 Unexecuted instantiation: chacha.c:ctMaskSelWord32 Unexecuted instantiation: chacha20_poly1305.c:ctMaskSelWord32 Unexecuted instantiation: cmac.c:ctMaskSelWord32 Unexecuted instantiation: coding.c:ctMaskSelWord32 Unexecuted instantiation: curve25519.c:ctMaskSelWord32 Unexecuted instantiation: curve448.c:ctMaskSelWord32 Unexecuted instantiation: des3.c:ctMaskSelWord32 Unexecuted instantiation: dh.c:ctMaskSelWord32 Unexecuted instantiation: ecc.c:ctMaskSelWord32 Unexecuted instantiation: eccsi.c:ctMaskSelWord32 Unexecuted instantiation: ed25519.c:ctMaskSelWord32 Unexecuted instantiation: ed448.c:ctMaskSelWord32 Unexecuted instantiation: fe_448.c:ctMaskSelWord32 Unexecuted instantiation: fe_operations.c:ctMaskSelWord32 Unexecuted instantiation: ge_448.c:ctMaskSelWord32 Unexecuted instantiation: ge_operations.c:ctMaskSelWord32 Unexecuted instantiation: hash.c:ctMaskSelWord32 Unexecuted instantiation: hmac.c:ctMaskSelWord32 Unexecuted instantiation: integer.c:ctMaskSelWord32 Unexecuted instantiation: kdf.c:ctMaskSelWord32 Unexecuted instantiation: md2.c:ctMaskSelWord32 Unexecuted instantiation: md4.c:ctMaskSelWord32 Unexecuted instantiation: md5.c:ctMaskSelWord32 Unexecuted instantiation: memory.c:ctMaskSelWord32 Unexecuted instantiation: poly1305.c:ctMaskSelWord32 Unexecuted instantiation: pwdbased.c:ctMaskSelWord32 Unexecuted instantiation: random.c:ctMaskSelWord32 Unexecuted instantiation: ripemd.c:ctMaskSelWord32 Unexecuted instantiation: rsa.c:ctMaskSelWord32 Unexecuted instantiation: sha.c:ctMaskSelWord32 Unexecuted instantiation: sha256.c:ctMaskSelWord32 Unexecuted instantiation: sha3.c:ctMaskSelWord32 Unexecuted instantiation: sha512.c:ctMaskSelWord32 Unexecuted instantiation: siphash.c:ctMaskSelWord32 Unexecuted instantiation: sm2.c:ctMaskSelWord32 Unexecuted instantiation: sm3.c:ctMaskSelWord32 Unexecuted instantiation: sm4.c:ctMaskSelWord32 Unexecuted instantiation: wc_encrypt.c:ctMaskSelWord32 Unexecuted instantiation: wolfmath.c:ctMaskSelWord32 Unexecuted instantiation: ssl.c:ctMaskSelWord32 Unexecuted instantiation: tls.c:ctMaskSelWord32 Unexecuted instantiation: tls13.c:ctMaskSelWord32 Unexecuted instantiation: internal.c:ctMaskSelWord32 |
747 | | |
748 | | /* Constant time - bit set when a <= b. */ |
749 | | WC_MISC_STATIC WC_INLINE byte ctSetLTE(int a, int b) |
750 | 129 | { |
751 | 129 | return (byte)(((word32)a - (word32)b - 1) >> 31); |
752 | 129 | } Unexecuted instantiation: aes.c:ctSetLTE Unexecuted instantiation: asn.c:ctSetLTE Unexecuted instantiation: camellia.c:ctSetLTE Unexecuted instantiation: chacha.c:ctSetLTE Unexecuted instantiation: chacha20_poly1305.c:ctSetLTE Unexecuted instantiation: cmac.c:ctSetLTE Unexecuted instantiation: coding.c:ctSetLTE Unexecuted instantiation: curve25519.c:ctSetLTE Unexecuted instantiation: curve448.c:ctSetLTE Unexecuted instantiation: des3.c:ctSetLTE Unexecuted instantiation: dh.c:ctSetLTE Unexecuted instantiation: ecc.c:ctSetLTE Unexecuted instantiation: eccsi.c:ctSetLTE Unexecuted instantiation: ed25519.c:ctSetLTE Unexecuted instantiation: ed448.c:ctSetLTE Unexecuted instantiation: fe_448.c:ctSetLTE Unexecuted instantiation: fe_operations.c:ctSetLTE Unexecuted instantiation: ge_448.c:ctSetLTE Unexecuted instantiation: ge_operations.c:ctSetLTE Unexecuted instantiation: hash.c:ctSetLTE Unexecuted instantiation: hmac.c:ctSetLTE Unexecuted instantiation: integer.c:ctSetLTE Unexecuted instantiation: kdf.c:ctSetLTE Unexecuted instantiation: md2.c:ctSetLTE Unexecuted instantiation: md4.c:ctSetLTE Unexecuted instantiation: md5.c:ctSetLTE Unexecuted instantiation: memory.c:ctSetLTE Unexecuted instantiation: poly1305.c:ctSetLTE Unexecuted instantiation: pwdbased.c:ctSetLTE Unexecuted instantiation: random.c:ctSetLTE Unexecuted instantiation: ripemd.c:ctSetLTE Unexecuted instantiation: rsa.c:ctSetLTE Unexecuted instantiation: sha.c:ctSetLTE Unexecuted instantiation: sha256.c:ctSetLTE Unexecuted instantiation: sha3.c:ctSetLTE Unexecuted instantiation: sha512.c:ctSetLTE Unexecuted instantiation: siphash.c:ctSetLTE Unexecuted instantiation: sm2.c:ctSetLTE Unexecuted instantiation: sm3.c:ctSetLTE Unexecuted instantiation: sm4.c:ctSetLTE Unexecuted instantiation: wc_encrypt.c:ctSetLTE Unexecuted instantiation: wolfmath.c:ctSetLTE Unexecuted instantiation: ssl.c:ctSetLTE Line | Count | Source | 750 | 129 | { | 751 | 129 | return (byte)(((word32)a - (word32)b - 1) >> 31); | 752 | 129 | } |
Unexecuted instantiation: tls13.c:ctSetLTE Unexecuted instantiation: internal.c:ctSetLTE |
753 | | |
754 | | /* Constant time - conditionally copy size bytes from src to dst if mask is set |
755 | | */ |
756 | | WC_MISC_STATIC WC_INLINE void ctMaskCopy(byte mask, byte* dst, byte* src, |
757 | | word16 size) |
758 | 0 | { |
759 | 0 | int i; |
760 | 0 | for (i = 0; i < size; ++i) { |
761 | 0 | dst[i] ^= (dst[i] ^ src[i]) & mask; |
762 | 0 | } |
763 | 0 | } Unexecuted instantiation: aes.c:ctMaskCopy Unexecuted instantiation: asn.c:ctMaskCopy Unexecuted instantiation: camellia.c:ctMaskCopy Unexecuted instantiation: chacha.c:ctMaskCopy Unexecuted instantiation: chacha20_poly1305.c:ctMaskCopy Unexecuted instantiation: cmac.c:ctMaskCopy Unexecuted instantiation: coding.c:ctMaskCopy Unexecuted instantiation: curve25519.c:ctMaskCopy Unexecuted instantiation: curve448.c:ctMaskCopy Unexecuted instantiation: des3.c:ctMaskCopy Unexecuted instantiation: dh.c:ctMaskCopy Unexecuted instantiation: ecc.c:ctMaskCopy Unexecuted instantiation: eccsi.c:ctMaskCopy Unexecuted instantiation: ed25519.c:ctMaskCopy Unexecuted instantiation: ed448.c:ctMaskCopy Unexecuted instantiation: fe_448.c:ctMaskCopy Unexecuted instantiation: fe_operations.c:ctMaskCopy Unexecuted instantiation: ge_448.c:ctMaskCopy Unexecuted instantiation: ge_operations.c:ctMaskCopy Unexecuted instantiation: hash.c:ctMaskCopy Unexecuted instantiation: hmac.c:ctMaskCopy Unexecuted instantiation: integer.c:ctMaskCopy Unexecuted instantiation: kdf.c:ctMaskCopy Unexecuted instantiation: md2.c:ctMaskCopy Unexecuted instantiation: md4.c:ctMaskCopy Unexecuted instantiation: md5.c:ctMaskCopy Unexecuted instantiation: memory.c:ctMaskCopy Unexecuted instantiation: poly1305.c:ctMaskCopy Unexecuted instantiation: pwdbased.c:ctMaskCopy Unexecuted instantiation: random.c:ctMaskCopy Unexecuted instantiation: ripemd.c:ctMaskCopy Unexecuted instantiation: rsa.c:ctMaskCopy Unexecuted instantiation: sha.c:ctMaskCopy Unexecuted instantiation: sha256.c:ctMaskCopy Unexecuted instantiation: sha3.c:ctMaskCopy Unexecuted instantiation: sha512.c:ctMaskCopy Unexecuted instantiation: siphash.c:ctMaskCopy Unexecuted instantiation: sm2.c:ctMaskCopy Unexecuted instantiation: sm3.c:ctMaskCopy Unexecuted instantiation: sm4.c:ctMaskCopy Unexecuted instantiation: wc_encrypt.c:ctMaskCopy Unexecuted instantiation: wolfmath.c:ctMaskCopy Unexecuted instantiation: ssl.c:ctMaskCopy Unexecuted instantiation: tls.c:ctMaskCopy Unexecuted instantiation: tls13.c:ctMaskCopy Unexecuted instantiation: internal.c:ctMaskCopy |
764 | | |
765 | | #endif /* !WOLFSSL_NO_CT_OPS */ |
766 | | |
767 | | #ifndef WOLFSSL_HAVE_MIN |
768 | | #define WOLFSSL_HAVE_MIN |
769 | | #if defined(HAVE_FIPS) && !defined(min) /* so ifdef check passes */ |
770 | | #define min min |
771 | | #endif |
772 | | /* returns the smaller of a and b */ |
773 | | WC_MISC_STATIC WC_INLINE word32 min(word32 a, word32 b) |
774 | 6.73M | { |
775 | 6.73M | #if !defined(WOLFSSL_NO_CT_OPS) && !defined(WOLFSSL_NO_CT_MAX_MIN) && \ |
776 | 6.73M | defined(WORD64_AVAILABLE) |
777 | 6.73M | volatile word32 gte_mask = (word32)ctMaskWord32GTE(a, b); |
778 | 6.73M | return (a & ~gte_mask) | (b & gte_mask); |
779 | | #else /* WOLFSSL_NO_CT_OPS */ |
780 | | return a > b ? b : a; |
781 | | #endif /* WOLFSSL_NO_CT_OPS */ |
782 | 6.73M | } Line | Count | Source | 774 | 1.28k | { | 775 | 1.28k | #if !defined(WOLFSSL_NO_CT_OPS) && !defined(WOLFSSL_NO_CT_MAX_MIN) && \ | 776 | 1.28k | defined(WORD64_AVAILABLE) | 777 | 1.28k | volatile word32 gte_mask = (word32)ctMaskWord32GTE(a, b); | 778 | 1.28k | return (a & ~gte_mask) | (b & gte_mask); | 779 | | #else /* WOLFSSL_NO_CT_OPS */ | 780 | | return a > b ? b : a; | 781 | | #endif /* WOLFSSL_NO_CT_OPS */ | 782 | 1.28k | } |
Line | Count | Source | 774 | 58.7k | { | 775 | 58.7k | #if !defined(WOLFSSL_NO_CT_OPS) && !defined(WOLFSSL_NO_CT_MAX_MIN) && \ | 776 | 58.7k | defined(WORD64_AVAILABLE) | 777 | 58.7k | volatile word32 gte_mask = (word32)ctMaskWord32GTE(a, b); | 778 | 58.7k | return (a & ~gte_mask) | (b & gte_mask); | 779 | | #else /* WOLFSSL_NO_CT_OPS */ | 780 | | return a > b ? b : a; | 781 | | #endif /* WOLFSSL_NO_CT_OPS */ | 782 | 58.7k | } |
Unexecuted instantiation: camellia.c:min Unexecuted instantiation: chacha.c:min Unexecuted instantiation: chacha20_poly1305.c:min Line | Count | Source | 774 | 6.83k | { | 775 | 6.83k | #if !defined(WOLFSSL_NO_CT_OPS) && !defined(WOLFSSL_NO_CT_MAX_MIN) && \ | 776 | 6.83k | defined(WORD64_AVAILABLE) | 777 | 6.83k | volatile word32 gte_mask = (word32)ctMaskWord32GTE(a, b); | 778 | 6.83k | return (a & ~gte_mask) | (b & gte_mask); | 779 | | #else /* WOLFSSL_NO_CT_OPS */ | 780 | | return a > b ? b : a; | 781 | | #endif /* WOLFSSL_NO_CT_OPS */ | 782 | 6.83k | } |
Unexecuted instantiation: coding.c:min Unexecuted instantiation: curve25519.c:min Unexecuted instantiation: curve448.c:min Unexecuted instantiation: des3.c:min Line | Count | Source | 774 | 45.2k | { | 775 | 45.2k | #if !defined(WOLFSSL_NO_CT_OPS) && !defined(WOLFSSL_NO_CT_MAX_MIN) && \ | 776 | 45.2k | defined(WORD64_AVAILABLE) | 777 | 45.2k | volatile word32 gte_mask = (word32)ctMaskWord32GTE(a, b); | 778 | 45.2k | return (a & ~gte_mask) | (b & gte_mask); | 779 | | #else /* WOLFSSL_NO_CT_OPS */ | 780 | | return a > b ? b : a; | 781 | | #endif /* WOLFSSL_NO_CT_OPS */ | 782 | 45.2k | } |
Unexecuted instantiation: ecc.c:min Unexecuted instantiation: eccsi.c:min Unexecuted instantiation: ed25519.c:min Unexecuted instantiation: ed448.c:min Unexecuted instantiation: fe_448.c:min Unexecuted instantiation: fe_operations.c:min Unexecuted instantiation: ge_448.c:min Unexecuted instantiation: ge_operations.c:min Unexecuted instantiation: hash.c:min Line | Count | Source | 774 | 44.7k | { | 775 | 44.7k | #if !defined(WOLFSSL_NO_CT_OPS) && !defined(WOLFSSL_NO_CT_MAX_MIN) && \ | 776 | 44.7k | defined(WORD64_AVAILABLE) | 777 | 44.7k | volatile word32 gte_mask = (word32)ctMaskWord32GTE(a, b); | 778 | 44.7k | return (a & ~gte_mask) | (b & gte_mask); | 779 | | #else /* WOLFSSL_NO_CT_OPS */ | 780 | | return a > b ? b : a; | 781 | | #endif /* WOLFSSL_NO_CT_OPS */ | 782 | 44.7k | } |
Unexecuted instantiation: integer.c:min Line | Count | Source | 774 | 2.81k | { | 775 | 2.81k | #if !defined(WOLFSSL_NO_CT_OPS) && !defined(WOLFSSL_NO_CT_MAX_MIN) && \ | 776 | 2.81k | defined(WORD64_AVAILABLE) | 777 | 2.81k | volatile word32 gte_mask = (word32)ctMaskWord32GTE(a, b); | 778 | 2.81k | return (a & ~gte_mask) | (b & gte_mask); | 779 | | #else /* WOLFSSL_NO_CT_OPS */ | 780 | | return a > b ? b : a; | 781 | | #endif /* WOLFSSL_NO_CT_OPS */ | 782 | 2.81k | } |
Unexecuted instantiation: md2.c:min Line | Count | Source | 774 | 9.60k | { | 775 | 9.60k | #if !defined(WOLFSSL_NO_CT_OPS) && !defined(WOLFSSL_NO_CT_MAX_MIN) && \ | 776 | 9.60k | defined(WORD64_AVAILABLE) | 777 | 9.60k | volatile word32 gte_mask = (word32)ctMaskWord32GTE(a, b); | 778 | 9.60k | return (a & ~gte_mask) | (b & gte_mask); | 779 | | #else /* WOLFSSL_NO_CT_OPS */ | 780 | | return a > b ? b : a; | 781 | | #endif /* WOLFSSL_NO_CT_OPS */ | 782 | 9.60k | } |
Line | Count | Source | 774 | 121k | { | 775 | 121k | #if !defined(WOLFSSL_NO_CT_OPS) && !defined(WOLFSSL_NO_CT_MAX_MIN) && \ | 776 | 121k | defined(WORD64_AVAILABLE) | 777 | 121k | volatile word32 gte_mask = (word32)ctMaskWord32GTE(a, b); | 778 | 121k | return (a & ~gte_mask) | (b & gte_mask); | 779 | | #else /* WOLFSSL_NO_CT_OPS */ | 780 | | return a > b ? b : a; | 781 | | #endif /* WOLFSSL_NO_CT_OPS */ | 782 | 121k | } |
Unexecuted instantiation: memory.c:min Unexecuted instantiation: poly1305.c:min Line | Count | Source | 774 | 6.70k | { | 775 | 6.70k | #if !defined(WOLFSSL_NO_CT_OPS) && !defined(WOLFSSL_NO_CT_MAX_MIN) && \ | 776 | 6.70k | defined(WORD64_AVAILABLE) | 777 | 6.70k | volatile word32 gte_mask = (word32)ctMaskWord32GTE(a, b); | 778 | 6.70k | return (a & ~gte_mask) | (b & gte_mask); | 779 | | #else /* WOLFSSL_NO_CT_OPS */ | 780 | | return a > b ? b : a; | 781 | | #endif /* WOLFSSL_NO_CT_OPS */ | 782 | 6.70k | } |
Line | Count | Source | 774 | 1.36M | { | 775 | 1.36M | #if !defined(WOLFSSL_NO_CT_OPS) && !defined(WOLFSSL_NO_CT_MAX_MIN) && \ | 776 | 1.36M | defined(WORD64_AVAILABLE) | 777 | 1.36M | volatile word32 gte_mask = (word32)ctMaskWord32GTE(a, b); | 778 | 1.36M | return (a & ~gte_mask) | (b & gte_mask); | 779 | | #else /* WOLFSSL_NO_CT_OPS */ | 780 | | return a > b ? b : a; | 781 | | #endif /* WOLFSSL_NO_CT_OPS */ | 782 | 1.36M | } |
Unexecuted instantiation: ripemd.c:min Unexecuted instantiation: rsa.c:min Line | Count | Source | 774 | 232k | { | 775 | 232k | #if !defined(WOLFSSL_NO_CT_OPS) && !defined(WOLFSSL_NO_CT_MAX_MIN) && \ | 776 | 232k | defined(WORD64_AVAILABLE) | 777 | 232k | volatile word32 gte_mask = (word32)ctMaskWord32GTE(a, b); | 778 | 232k | return (a & ~gte_mask) | (b & gte_mask); | 779 | | #else /* WOLFSSL_NO_CT_OPS */ | 780 | | return a > b ? b : a; | 781 | | #endif /* WOLFSSL_NO_CT_OPS */ | 782 | 232k | } |
Line | Count | Source | 774 | 4.45M | { | 775 | 4.45M | #if !defined(WOLFSSL_NO_CT_OPS) && !defined(WOLFSSL_NO_CT_MAX_MIN) && \ | 776 | 4.45M | defined(WORD64_AVAILABLE) | 777 | 4.45M | volatile word32 gte_mask = (word32)ctMaskWord32GTE(a, b); | 778 | 4.45M | return (a & ~gte_mask) | (b & gte_mask); | 779 | | #else /* WOLFSSL_NO_CT_OPS */ | 780 | | return a > b ? b : a; | 781 | | #endif /* WOLFSSL_NO_CT_OPS */ | 782 | 4.45M | } |
Unexecuted instantiation: sha3.c:min Line | Count | Source | 774 | 298k | { | 775 | 298k | #if !defined(WOLFSSL_NO_CT_OPS) && !defined(WOLFSSL_NO_CT_MAX_MIN) && \ | 776 | 298k | defined(WORD64_AVAILABLE) | 777 | 298k | volatile word32 gte_mask = (word32)ctMaskWord32GTE(a, b); | 778 | 298k | return (a & ~gte_mask) | (b & gte_mask); | 779 | | #else /* WOLFSSL_NO_CT_OPS */ | 780 | | return a > b ? b : a; | 781 | | #endif /* WOLFSSL_NO_CT_OPS */ | 782 | 298k | } |
Unexecuted instantiation: siphash.c:min Unexecuted instantiation: sm2.c:min Unexecuted instantiation: sm3.c:min Unexecuted instantiation: sm4.c:min Unexecuted instantiation: wc_encrypt.c:min Unexecuted instantiation: wolfmath.c:min Line | Count | Source | 774 | 133 | { | 775 | 133 | #if !defined(WOLFSSL_NO_CT_OPS) && !defined(WOLFSSL_NO_CT_MAX_MIN) && \ | 776 | 133 | defined(WORD64_AVAILABLE) | 777 | 133 | volatile word32 gte_mask = (word32)ctMaskWord32GTE(a, b); | 778 | 133 | return (a & ~gte_mask) | (b & gte_mask); | 779 | | #else /* WOLFSSL_NO_CT_OPS */ | 780 | | return a > b ? b : a; | 781 | | #endif /* WOLFSSL_NO_CT_OPS */ | 782 | 133 | } |
Unexecuted instantiation: tls.c:min Line | Count | Source | 774 | 11.9k | { | 775 | 11.9k | #if !defined(WOLFSSL_NO_CT_OPS) && !defined(WOLFSSL_NO_CT_MAX_MIN) && \ | 776 | 11.9k | defined(WORD64_AVAILABLE) | 777 | 11.9k | volatile word32 gte_mask = (word32)ctMaskWord32GTE(a, b); | 778 | 11.9k | return (a & ~gte_mask) | (b & gte_mask); | 779 | | #else /* WOLFSSL_NO_CT_OPS */ | 780 | | return a > b ? b : a; | 781 | | #endif /* WOLFSSL_NO_CT_OPS */ | 782 | 11.9k | } |
Line | Count | Source | 774 | 72.5k | { | 775 | 72.5k | #if !defined(WOLFSSL_NO_CT_OPS) && !defined(WOLFSSL_NO_CT_MAX_MIN) && \ | 776 | 72.5k | defined(WORD64_AVAILABLE) | 777 | 72.5k | volatile word32 gte_mask = (word32)ctMaskWord32GTE(a, b); | 778 | 72.5k | return (a & ~gte_mask) | (b & gte_mask); | 779 | | #else /* WOLFSSL_NO_CT_OPS */ | 780 | | return a > b ? b : a; | 781 | | #endif /* WOLFSSL_NO_CT_OPS */ | 782 | 72.5k | } |
|
783 | | #endif /* !WOLFSSL_HAVE_MIN */ |
784 | | |
785 | | #ifndef WOLFSSL_HAVE_MAX |
786 | | #define WOLFSSL_HAVE_MAX |
787 | | #if defined(HAVE_FIPS) && !defined(max) /* so ifdef check passes */ |
788 | | #define max max |
789 | | #endif |
790 | | WC_MISC_STATIC WC_INLINE word32 max(word32 a, word32 b) |
791 | 0 | { |
792 | 0 | #if !defined(WOLFSSL_NO_CT_OPS) && !defined(WOLFSSL_NO_CT_MAX_MIN) && \ |
793 | 0 | defined(WORD64_AVAILABLE) |
794 | 0 | volatile word32 gte_mask = (word32)ctMaskWord32GTE(a, b); |
795 | 0 | return (a & gte_mask) | (b & ~gte_mask); |
796 | 0 | #else /* WOLFSSL_NO_CT_OPS */ |
797 | 0 | return a > b ? a : b; |
798 | 0 | #endif /* WOLFSSL_NO_CT_OPS */ |
799 | 0 | } Unexecuted instantiation: aes.c:max Unexecuted instantiation: asn.c:max Unexecuted instantiation: camellia.c:max Unexecuted instantiation: chacha.c:max Unexecuted instantiation: chacha20_poly1305.c:max Unexecuted instantiation: cmac.c:max Unexecuted instantiation: coding.c:max Unexecuted instantiation: curve25519.c:max Unexecuted instantiation: curve448.c:max Unexecuted instantiation: des3.c:max Unexecuted instantiation: dh.c:max Unexecuted instantiation: ecc.c:max Unexecuted instantiation: eccsi.c:max Unexecuted instantiation: ed25519.c:max Unexecuted instantiation: ed448.c:max Unexecuted instantiation: fe_448.c:max Unexecuted instantiation: fe_operations.c:max Unexecuted instantiation: ge_448.c:max Unexecuted instantiation: ge_operations.c:max Unexecuted instantiation: hash.c:max Unexecuted instantiation: hmac.c:max Unexecuted instantiation: integer.c:max Unexecuted instantiation: kdf.c:max Unexecuted instantiation: md2.c:max Unexecuted instantiation: md4.c:max Unexecuted instantiation: md5.c:max Unexecuted instantiation: memory.c:max Unexecuted instantiation: poly1305.c:max Unexecuted instantiation: pwdbased.c:max Unexecuted instantiation: random.c:max Unexecuted instantiation: ripemd.c:max Unexecuted instantiation: rsa.c:max Unexecuted instantiation: sha.c:max Unexecuted instantiation: sha256.c:max Unexecuted instantiation: sha3.c:max Unexecuted instantiation: sha512.c:max Unexecuted instantiation: siphash.c:max Unexecuted instantiation: sm2.c:max Unexecuted instantiation: sm3.c:max Unexecuted instantiation: sm4.c:max Unexecuted instantiation: wc_encrypt.c:max Unexecuted instantiation: wolfmath.c:max Unexecuted instantiation: ssl.c:max Unexecuted instantiation: tls.c:max Unexecuted instantiation: tls13.c:max |
800 | | #endif /* !WOLFSSL_HAVE_MAX */ |
801 | | |
802 | | #ifndef WOLFSSL_NO_INT_ENCODE |
803 | | /* converts a 32 bit integer to 24 bit */ |
804 | | WC_MISC_STATIC WC_INLINE void c32to24(word32 in, word24 out) |
805 | 112k | { |
806 | 112k | out[0] = (byte)((in >> 16) & 0xff); |
807 | 112k | out[1] = (byte)((in >> 8) & 0xff); |
808 | 112k | out[2] = (byte)(in & 0xff); |
809 | 112k | } Unexecuted instantiation: aes.c:c32to24 Unexecuted instantiation: asn.c:c32to24 Unexecuted instantiation: camellia.c:c32to24 Unexecuted instantiation: chacha.c:c32to24 Unexecuted instantiation: chacha20_poly1305.c:c32to24 Unexecuted instantiation: cmac.c:c32to24 Unexecuted instantiation: coding.c:c32to24 Unexecuted instantiation: curve25519.c:c32to24 Unexecuted instantiation: curve448.c:c32to24 Unexecuted instantiation: des3.c:c32to24 Unexecuted instantiation: dh.c:c32to24 Unexecuted instantiation: ecc.c:c32to24 Unexecuted instantiation: eccsi.c:c32to24 Unexecuted instantiation: ed25519.c:c32to24 Unexecuted instantiation: ed448.c:c32to24 Unexecuted instantiation: fe_448.c:c32to24 Unexecuted instantiation: fe_operations.c:c32to24 Unexecuted instantiation: ge_448.c:c32to24 Unexecuted instantiation: ge_operations.c:c32to24 Unexecuted instantiation: hash.c:c32to24 Unexecuted instantiation: hmac.c:c32to24 Unexecuted instantiation: integer.c:c32to24 Unexecuted instantiation: kdf.c:c32to24 Unexecuted instantiation: md2.c:c32to24 Unexecuted instantiation: md4.c:c32to24 Unexecuted instantiation: md5.c:c32to24 Unexecuted instantiation: memory.c:c32to24 Unexecuted instantiation: poly1305.c:c32to24 Unexecuted instantiation: pwdbased.c:c32to24 Unexecuted instantiation: random.c:c32to24 Unexecuted instantiation: ripemd.c:c32to24 Unexecuted instantiation: rsa.c:c32to24 Unexecuted instantiation: sha.c:c32to24 Unexecuted instantiation: sha256.c:c32to24 Unexecuted instantiation: sha3.c:c32to24 Unexecuted instantiation: sha512.c:c32to24 Unexecuted instantiation: siphash.c:c32to24 Unexecuted instantiation: sm2.c:c32to24 Unexecuted instantiation: sm3.c:c32to24 Unexecuted instantiation: sm4.c:c32to24 Unexecuted instantiation: wc_encrypt.c:c32to24 Unexecuted instantiation: wolfmath.c:c32to24 Unexecuted instantiation: ssl.c:c32to24 Unexecuted instantiation: tls.c:c32to24 Line | Count | Source | 805 | 4.68k | { | 806 | 4.68k | out[0] = (byte)((in >> 16) & 0xff); | 807 | 4.68k | out[1] = (byte)((in >> 8) & 0xff); | 808 | 4.68k | out[2] = (byte)(in & 0xff); | 809 | 4.68k | } |
Line | Count | Source | 805 | 107k | { | 806 | 107k | out[0] = (byte)((in >> 16) & 0xff); | 807 | 107k | out[1] = (byte)((in >> 8) & 0xff); | 808 | 107k | out[2] = (byte)(in & 0xff); | 809 | 107k | } |
|
810 | | |
811 | | /* convert 16 bit integer to opaque */ |
812 | | WC_MISC_STATIC WC_INLINE void c16toa(word16 wc_u16, byte* c) |
813 | 812k | { |
814 | 812k | c[0] = (byte)((wc_u16 >> 8) & 0xff); |
815 | 812k | c[1] = (byte)(wc_u16 & 0xff); |
816 | 812k | } Unexecuted instantiation: aes.c:c16toa Unexecuted instantiation: asn.c:c16toa Unexecuted instantiation: camellia.c:c16toa Unexecuted instantiation: chacha.c:c16toa Unexecuted instantiation: chacha20_poly1305.c:c16toa Unexecuted instantiation: cmac.c:c16toa Unexecuted instantiation: coding.c:c16toa Unexecuted instantiation: curve25519.c:c16toa Unexecuted instantiation: curve448.c:c16toa Unexecuted instantiation: des3.c:c16toa Unexecuted instantiation: dh.c:c16toa Unexecuted instantiation: ecc.c:c16toa Unexecuted instantiation: eccsi.c:c16toa Unexecuted instantiation: ed25519.c:c16toa Unexecuted instantiation: ed448.c:c16toa Unexecuted instantiation: fe_448.c:c16toa Unexecuted instantiation: fe_operations.c:c16toa Unexecuted instantiation: ge_448.c:c16toa Unexecuted instantiation: ge_operations.c:c16toa Unexecuted instantiation: hash.c:c16toa Unexecuted instantiation: hmac.c:c16toa Unexecuted instantiation: integer.c:c16toa Unexecuted instantiation: kdf.c:c16toa Unexecuted instantiation: md2.c:c16toa Unexecuted instantiation: md4.c:c16toa Unexecuted instantiation: md5.c:c16toa Unexecuted instantiation: memory.c:c16toa Unexecuted instantiation: poly1305.c:c16toa Unexecuted instantiation: pwdbased.c:c16toa Unexecuted instantiation: random.c:c16toa Unexecuted instantiation: ripemd.c:c16toa Unexecuted instantiation: rsa.c:c16toa Unexecuted instantiation: sha.c:c16toa Unexecuted instantiation: sha256.c:c16toa Unexecuted instantiation: sha3.c:c16toa Unexecuted instantiation: sha512.c:c16toa Unexecuted instantiation: siphash.c:c16toa Unexecuted instantiation: sm2.c:c16toa Unexecuted instantiation: sm3.c:c16toa Unexecuted instantiation: sm4.c:c16toa Unexecuted instantiation: wc_encrypt.c:c16toa Unexecuted instantiation: wolfmath.c:c16toa Unexecuted instantiation: ssl.c:c16toa Line | Count | Source | 813 | 652k | { | 814 | 652k | c[0] = (byte)((wc_u16 >> 8) & 0xff); | 815 | 652k | c[1] = (byte)(wc_u16 & 0xff); | 816 | 652k | } |
Line | Count | Source | 813 | 8.48k | { | 814 | 8.48k | c[0] = (byte)((wc_u16 >> 8) & 0xff); | 815 | 8.48k | c[1] = (byte)(wc_u16 & 0xff); | 816 | 8.48k | } |
Line | Count | Source | 813 | 151k | { | 814 | 151k | c[0] = (byte)((wc_u16 >> 8) & 0xff); | 815 | 151k | c[1] = (byte)(wc_u16 & 0xff); | 816 | 151k | } |
|
817 | | |
818 | | /* convert 32 bit integer to opaque */ |
819 | | WC_MISC_STATIC WC_INLINE void c32toa(word32 wc_u32, byte* c) |
820 | 432k | { |
821 | 432k | #ifdef WOLFSSL_USE_ALIGN |
822 | 432k | c[0] = (byte)((wc_u32 >> 24) & 0xff); |
823 | 432k | c[1] = (byte)((wc_u32 >> 16) & 0xff); |
824 | 432k | c[2] = (byte)((wc_u32 >> 8) & 0xff); |
825 | 432k | c[3] = (byte)(wc_u32 & 0xff); |
826 | | #elif defined(LITTLE_ENDIAN_ORDER) |
827 | | *(word32*)c = ByteReverseWord32(wc_u32); |
828 | | #else |
829 | | *(word32*)c = wc_u32; |
830 | | #endif |
831 | 432k | } Unexecuted instantiation: aes.c:c32toa Unexecuted instantiation: asn.c:c32toa Unexecuted instantiation: camellia.c:c32toa Unexecuted instantiation: chacha.c:c32toa Unexecuted instantiation: chacha20_poly1305.c:c32toa Unexecuted instantiation: cmac.c:c32toa Unexecuted instantiation: coding.c:c32toa Unexecuted instantiation: curve25519.c:c32toa Unexecuted instantiation: curve448.c:c32toa Unexecuted instantiation: des3.c:c32toa Unexecuted instantiation: dh.c:c32toa Unexecuted instantiation: ecc.c:c32toa Unexecuted instantiation: eccsi.c:c32toa Unexecuted instantiation: ed25519.c:c32toa Unexecuted instantiation: ed448.c:c32toa Unexecuted instantiation: fe_448.c:c32toa Unexecuted instantiation: fe_operations.c:c32toa Unexecuted instantiation: ge_448.c:c32toa Unexecuted instantiation: ge_operations.c:c32toa Unexecuted instantiation: hash.c:c32toa Unexecuted instantiation: hmac.c:c32toa Unexecuted instantiation: integer.c:c32toa Unexecuted instantiation: kdf.c:c32toa Unexecuted instantiation: md2.c:c32toa Unexecuted instantiation: md4.c:c32toa Unexecuted instantiation: md5.c:c32toa Unexecuted instantiation: memory.c:c32toa Unexecuted instantiation: poly1305.c:c32toa Unexecuted instantiation: pwdbased.c:c32toa Unexecuted instantiation: random.c:c32toa Unexecuted instantiation: ripemd.c:c32toa Unexecuted instantiation: rsa.c:c32toa Unexecuted instantiation: sha.c:c32toa Unexecuted instantiation: sha256.c:c32toa Unexecuted instantiation: sha3.c:c32toa Unexecuted instantiation: sha512.c:c32toa Unexecuted instantiation: siphash.c:c32toa Unexecuted instantiation: sm2.c:c32toa Unexecuted instantiation: sm3.c:c32toa Unexecuted instantiation: sm4.c:c32toa Unexecuted instantiation: wc_encrypt.c:c32toa Unexecuted instantiation: wolfmath.c:c32toa Unexecuted instantiation: ssl.c:c32toa Line | Count | Source | 820 | 3.03k | { | 821 | 3.03k | #ifdef WOLFSSL_USE_ALIGN | 822 | 3.03k | c[0] = (byte)((wc_u32 >> 24) & 0xff); | 823 | 3.03k | c[1] = (byte)((wc_u32 >> 16) & 0xff); | 824 | 3.03k | c[2] = (byte)((wc_u32 >> 8) & 0xff); | 825 | 3.03k | c[3] = (byte)(wc_u32 & 0xff); | 826 | | #elif defined(LITTLE_ENDIAN_ORDER) | 827 | | *(word32*)c = ByteReverseWord32(wc_u32); | 828 | | #else | 829 | | *(word32*)c = wc_u32; | 830 | | #endif | 831 | 3.03k | } |
Line | Count | Source | 820 | 14.5k | { | 821 | 14.5k | #ifdef WOLFSSL_USE_ALIGN | 822 | 14.5k | c[0] = (byte)((wc_u32 >> 24) & 0xff); | 823 | 14.5k | c[1] = (byte)((wc_u32 >> 16) & 0xff); | 824 | 14.5k | c[2] = (byte)((wc_u32 >> 8) & 0xff); | 825 | 14.5k | c[3] = (byte)(wc_u32 & 0xff); | 826 | | #elif defined(LITTLE_ENDIAN_ORDER) | 827 | | *(word32*)c = ByteReverseWord32(wc_u32); | 828 | | #else | 829 | | *(word32*)c = wc_u32; | 830 | | #endif | 831 | 14.5k | } |
Line | Count | Source | 820 | 414k | { | 821 | 414k | #ifdef WOLFSSL_USE_ALIGN | 822 | 414k | c[0] = (byte)((wc_u32 >> 24) & 0xff); | 823 | 414k | c[1] = (byte)((wc_u32 >> 16) & 0xff); | 824 | 414k | c[2] = (byte)((wc_u32 >> 8) & 0xff); | 825 | 414k | c[3] = (byte)(wc_u32 & 0xff); | 826 | | #elif defined(LITTLE_ENDIAN_ORDER) | 827 | | *(word32*)c = ByteReverseWord32(wc_u32); | 828 | | #else | 829 | | *(word32*)c = wc_u32; | 830 | | #endif | 831 | 414k | } |
|
832 | | #endif |
833 | | |
834 | | #ifndef WOLFSSL_NO_INT_DECODE |
835 | | /* convert a 24 bit integer into a 32 bit one */ |
836 | | WC_MISC_STATIC WC_INLINE void c24to32(const word24 wc_u24, word32* wc_u32) |
837 | 229k | { |
838 | 229k | *wc_u32 = ((word32)wc_u24[0] << 16) | |
839 | 229k | ((word32)wc_u24[1] << 8) | |
840 | 229k | (word32)wc_u24[2]; |
841 | 229k | } Unexecuted instantiation: aes.c:c24to32 Unexecuted instantiation: asn.c:c24to32 Unexecuted instantiation: camellia.c:c24to32 Unexecuted instantiation: chacha.c:c24to32 Unexecuted instantiation: chacha20_poly1305.c:c24to32 Unexecuted instantiation: cmac.c:c24to32 Unexecuted instantiation: coding.c:c24to32 Unexecuted instantiation: curve25519.c:c24to32 Unexecuted instantiation: curve448.c:c24to32 Unexecuted instantiation: des3.c:c24to32 Unexecuted instantiation: dh.c:c24to32 Unexecuted instantiation: ecc.c:c24to32 Unexecuted instantiation: eccsi.c:c24to32 Unexecuted instantiation: ed25519.c:c24to32 Unexecuted instantiation: ed448.c:c24to32 Unexecuted instantiation: fe_448.c:c24to32 Unexecuted instantiation: fe_operations.c:c24to32 Unexecuted instantiation: ge_448.c:c24to32 Unexecuted instantiation: ge_operations.c:c24to32 Unexecuted instantiation: hash.c:c24to32 Unexecuted instantiation: hmac.c:c24to32 Unexecuted instantiation: integer.c:c24to32 Unexecuted instantiation: kdf.c:c24to32 Unexecuted instantiation: md2.c:c24to32 Unexecuted instantiation: md4.c:c24to32 Unexecuted instantiation: md5.c:c24to32 Unexecuted instantiation: memory.c:c24to32 Unexecuted instantiation: poly1305.c:c24to32 Unexecuted instantiation: pwdbased.c:c24to32 Unexecuted instantiation: random.c:c24to32 Unexecuted instantiation: ripemd.c:c24to32 Unexecuted instantiation: rsa.c:c24to32 Unexecuted instantiation: sha.c:c24to32 Unexecuted instantiation: sha256.c:c24to32 Unexecuted instantiation: sha3.c:c24to32 Unexecuted instantiation: sha512.c:c24to32 Unexecuted instantiation: siphash.c:c24to32 Unexecuted instantiation: sm2.c:c24to32 Unexecuted instantiation: sm3.c:c24to32 Unexecuted instantiation: sm4.c:c24to32 Unexecuted instantiation: wc_encrypt.c:c24to32 Unexecuted instantiation: wolfmath.c:c24to32 Unexecuted instantiation: ssl.c:c24to32 Unexecuted instantiation: tls.c:c24to32 Unexecuted instantiation: tls13.c:c24to32 Line | Count | Source | 837 | 229k | { | 838 | 229k | *wc_u32 = ((word32)wc_u24[0] << 16) | | 839 | 229k | ((word32)wc_u24[1] << 8) | | 840 | 229k | (word32)wc_u24[2]; | 841 | 229k | } |
|
842 | | |
843 | | |
844 | | /* convert opaque to 24 bit integer */ |
845 | | WC_MISC_STATIC WC_INLINE void ato24(const byte* c, word32* wc_u24) |
846 | 0 | { |
847 | 0 | *wc_u24 = ((word32)c[0] << 16) | ((word32)c[1] << 8) | c[2]; |
848 | 0 | } Unexecuted instantiation: aes.c:ato24 Unexecuted instantiation: asn.c:ato24 Unexecuted instantiation: camellia.c:ato24 Unexecuted instantiation: chacha.c:ato24 Unexecuted instantiation: chacha20_poly1305.c:ato24 Unexecuted instantiation: cmac.c:ato24 Unexecuted instantiation: coding.c:ato24 Unexecuted instantiation: curve25519.c:ato24 Unexecuted instantiation: curve448.c:ato24 Unexecuted instantiation: des3.c:ato24 Unexecuted instantiation: dh.c:ato24 Unexecuted instantiation: ecc.c:ato24 Unexecuted instantiation: eccsi.c:ato24 Unexecuted instantiation: ed25519.c:ato24 Unexecuted instantiation: ed448.c:ato24 Unexecuted instantiation: fe_448.c:ato24 Unexecuted instantiation: fe_operations.c:ato24 Unexecuted instantiation: ge_448.c:ato24 Unexecuted instantiation: ge_operations.c:ato24 Unexecuted instantiation: hash.c:ato24 Unexecuted instantiation: hmac.c:ato24 Unexecuted instantiation: integer.c:ato24 Unexecuted instantiation: kdf.c:ato24 Unexecuted instantiation: md2.c:ato24 Unexecuted instantiation: md4.c:ato24 Unexecuted instantiation: md5.c:ato24 Unexecuted instantiation: memory.c:ato24 Unexecuted instantiation: poly1305.c:ato24 Unexecuted instantiation: pwdbased.c:ato24 Unexecuted instantiation: random.c:ato24 Unexecuted instantiation: ripemd.c:ato24 Unexecuted instantiation: rsa.c:ato24 Unexecuted instantiation: sha.c:ato24 Unexecuted instantiation: sha256.c:ato24 Unexecuted instantiation: sha3.c:ato24 Unexecuted instantiation: sha512.c:ato24 Unexecuted instantiation: siphash.c:ato24 Unexecuted instantiation: sm2.c:ato24 Unexecuted instantiation: sm3.c:ato24 Unexecuted instantiation: sm4.c:ato24 Unexecuted instantiation: wc_encrypt.c:ato24 Unexecuted instantiation: wolfmath.c:ato24 Unexecuted instantiation: ssl.c:ato24 Unexecuted instantiation: tls.c:ato24 Unexecuted instantiation: tls13.c:ato24 Unexecuted instantiation: internal.c:ato24 |
849 | | |
850 | | /* convert opaque to 16 bit integer */ |
851 | | WC_MISC_STATIC WC_INLINE void ato16(const byte* c, word16* wc_u16) |
852 | 799k | { |
853 | 799k | *wc_u16 = (word16) ((c[0] << 8) | (c[1])); |
854 | 799k | } Unexecuted instantiation: aes.c:ato16 Unexecuted instantiation: asn.c:ato16 Unexecuted instantiation: camellia.c:ato16 Unexecuted instantiation: chacha.c:ato16 Unexecuted instantiation: chacha20_poly1305.c:ato16 Unexecuted instantiation: cmac.c:ato16 Unexecuted instantiation: coding.c:ato16 Unexecuted instantiation: curve25519.c:ato16 Unexecuted instantiation: curve448.c:ato16 Unexecuted instantiation: des3.c:ato16 Unexecuted instantiation: dh.c:ato16 Unexecuted instantiation: ecc.c:ato16 Unexecuted instantiation: eccsi.c:ato16 Unexecuted instantiation: ed25519.c:ato16 Unexecuted instantiation: ed448.c:ato16 Unexecuted instantiation: fe_448.c:ato16 Unexecuted instantiation: fe_operations.c:ato16 Unexecuted instantiation: ge_448.c:ato16 Unexecuted instantiation: ge_operations.c:ato16 Unexecuted instantiation: hash.c:ato16 Unexecuted instantiation: hmac.c:ato16 Unexecuted instantiation: integer.c:ato16 Unexecuted instantiation: kdf.c:ato16 Unexecuted instantiation: md2.c:ato16 Unexecuted instantiation: md4.c:ato16 Unexecuted instantiation: md5.c:ato16 Unexecuted instantiation: memory.c:ato16 Unexecuted instantiation: poly1305.c:ato16 Unexecuted instantiation: pwdbased.c:ato16 Unexecuted instantiation: random.c:ato16 Unexecuted instantiation: ripemd.c:ato16 Unexecuted instantiation: rsa.c:ato16 Unexecuted instantiation: sha.c:ato16 Unexecuted instantiation: sha256.c:ato16 Unexecuted instantiation: sha3.c:ato16 Unexecuted instantiation: sha512.c:ato16 Unexecuted instantiation: siphash.c:ato16 Unexecuted instantiation: sm2.c:ato16 Unexecuted instantiation: sm3.c:ato16 Unexecuted instantiation: sm4.c:ato16 Unexecuted instantiation: wc_encrypt.c:ato16 Unexecuted instantiation: wolfmath.c:ato16 Unexecuted instantiation: ssl.c:ato16 Line | Count | Source | 852 | 253k | { | 853 | 253k | *wc_u16 = (word16) ((c[0] << 8) | (c[1])); | 854 | 253k | } |
Line | Count | Source | 852 | 10.4k | { | 853 | 10.4k | *wc_u16 = (word16) ((c[0] << 8) | (c[1])); | 854 | 10.4k | } |
Line | Count | Source | 852 | 535k | { | 853 | 535k | *wc_u16 = (word16) ((c[0] << 8) | (c[1])); | 854 | 535k | } |
|
855 | | |
856 | | /* convert opaque to 32 bit integer */ |
857 | | WC_MISC_STATIC WC_INLINE void ato32(const byte* c, word32* wc_u32) |
858 | 0 | { |
859 | 0 | #ifdef WOLFSSL_USE_ALIGN |
860 | 0 | *wc_u32 = ((word32)c[0] << 24) | |
861 | 0 | ((word32)c[1] << 16) | |
862 | 0 | ((word32)c[2] << 8) | |
863 | 0 | (word32)c[3]; |
864 | 0 | #elif defined(LITTLE_ENDIAN_ORDER) |
865 | 0 | *wc_u32 = ByteReverseWord32(*(word32*)c); |
866 | 0 | #else |
867 | 0 | *wc_u32 = *(word32*)c; |
868 | 0 | #endif |
869 | 0 | } Unexecuted instantiation: aes.c:ato32 Unexecuted instantiation: asn.c:ato32 Unexecuted instantiation: camellia.c:ato32 Unexecuted instantiation: chacha.c:ato32 Unexecuted instantiation: chacha20_poly1305.c:ato32 Unexecuted instantiation: cmac.c:ato32 Unexecuted instantiation: coding.c:ato32 Unexecuted instantiation: curve25519.c:ato32 Unexecuted instantiation: curve448.c:ato32 Unexecuted instantiation: des3.c:ato32 Unexecuted instantiation: dh.c:ato32 Unexecuted instantiation: ecc.c:ato32 Unexecuted instantiation: eccsi.c:ato32 Unexecuted instantiation: ed25519.c:ato32 Unexecuted instantiation: ed448.c:ato32 Unexecuted instantiation: fe_448.c:ato32 Unexecuted instantiation: fe_operations.c:ato32 Unexecuted instantiation: ge_448.c:ato32 Unexecuted instantiation: ge_operations.c:ato32 Unexecuted instantiation: hash.c:ato32 Unexecuted instantiation: hmac.c:ato32 Unexecuted instantiation: integer.c:ato32 Unexecuted instantiation: kdf.c:ato32 Unexecuted instantiation: md2.c:ato32 Unexecuted instantiation: md4.c:ato32 Unexecuted instantiation: md5.c:ato32 Unexecuted instantiation: memory.c:ato32 Unexecuted instantiation: poly1305.c:ato32 Unexecuted instantiation: pwdbased.c:ato32 Unexecuted instantiation: random.c:ato32 Unexecuted instantiation: ripemd.c:ato32 Unexecuted instantiation: rsa.c:ato32 Unexecuted instantiation: sha.c:ato32 Unexecuted instantiation: sha256.c:ato32 Unexecuted instantiation: sha3.c:ato32 Unexecuted instantiation: sha512.c:ato32 Unexecuted instantiation: siphash.c:ato32 Unexecuted instantiation: sm2.c:ato32 Unexecuted instantiation: sm3.c:ato32 Unexecuted instantiation: sm4.c:ato32 Unexecuted instantiation: wc_encrypt.c:ato32 Unexecuted instantiation: wolfmath.c:ato32 Unexecuted instantiation: ssl.c:ato32 Unexecuted instantiation: tls13.c:ato32 |
870 | | |
871 | | /* convert opaque to 32 bit integer. Interpret as little endian. */ |
872 | | WC_MISC_STATIC WC_INLINE void ato32le(const byte* c, word32* wc_u32) |
873 | 0 | { |
874 | 0 | *wc_u32 = (word32)c[0] | |
875 | 0 | ((word32)c[1] << 8) | |
876 | 0 | ((word32)c[2] << 16) | |
877 | 0 | ((word32)c[3] << 24); |
878 | 0 | } Unexecuted instantiation: aes.c:ato32le Unexecuted instantiation: asn.c:ato32le Unexecuted instantiation: camellia.c:ato32le Unexecuted instantiation: chacha.c:ato32le Unexecuted instantiation: chacha20_poly1305.c:ato32le Unexecuted instantiation: cmac.c:ato32le Unexecuted instantiation: coding.c:ato32le Unexecuted instantiation: curve25519.c:ato32le Unexecuted instantiation: curve448.c:ato32le Unexecuted instantiation: des3.c:ato32le Unexecuted instantiation: dh.c:ato32le Unexecuted instantiation: ecc.c:ato32le Unexecuted instantiation: eccsi.c:ato32le Unexecuted instantiation: ed25519.c:ato32le Unexecuted instantiation: ed448.c:ato32le Unexecuted instantiation: fe_448.c:ato32le Unexecuted instantiation: fe_operations.c:ato32le Unexecuted instantiation: ge_448.c:ato32le Unexecuted instantiation: ge_operations.c:ato32le Unexecuted instantiation: hash.c:ato32le Unexecuted instantiation: hmac.c:ato32le Unexecuted instantiation: integer.c:ato32le Unexecuted instantiation: kdf.c:ato32le Unexecuted instantiation: md2.c:ato32le Unexecuted instantiation: md4.c:ato32le Unexecuted instantiation: md5.c:ato32le Unexecuted instantiation: memory.c:ato32le Unexecuted instantiation: poly1305.c:ato32le Unexecuted instantiation: pwdbased.c:ato32le Unexecuted instantiation: random.c:ato32le Unexecuted instantiation: ripemd.c:ato32le Unexecuted instantiation: rsa.c:ato32le Unexecuted instantiation: sha.c:ato32le Unexecuted instantiation: sha256.c:ato32le Unexecuted instantiation: sha3.c:ato32le Unexecuted instantiation: sha512.c:ato32le Unexecuted instantiation: siphash.c:ato32le Unexecuted instantiation: sm2.c:ato32le Unexecuted instantiation: sm3.c:ato32le Unexecuted instantiation: sm4.c:ato32le Unexecuted instantiation: wc_encrypt.c:ato32le Unexecuted instantiation: wolfmath.c:ato32le Unexecuted instantiation: ssl.c:ato32le Unexecuted instantiation: tls.c:ato32le Unexecuted instantiation: tls13.c:ato32le Unexecuted instantiation: internal.c:ato32le |
879 | | |
880 | | |
881 | | WC_MISC_STATIC WC_INLINE word32 btoi(byte b) |
882 | 161k | { |
883 | 161k | return (word32)(b - 0x30); |
884 | 161k | } Unexecuted instantiation: aes.c:btoi Line | Count | Source | 882 | 161k | { | 883 | 161k | return (word32)(b - 0x30); | 884 | 161k | } |
Unexecuted instantiation: camellia.c:btoi Unexecuted instantiation: chacha.c:btoi Unexecuted instantiation: chacha20_poly1305.c:btoi Unexecuted instantiation: cmac.c:btoi Unexecuted instantiation: coding.c:btoi Unexecuted instantiation: curve25519.c:btoi Unexecuted instantiation: curve448.c:btoi Unexecuted instantiation: des3.c:btoi Unexecuted instantiation: dh.c:btoi Unexecuted instantiation: ecc.c:btoi Unexecuted instantiation: eccsi.c:btoi Unexecuted instantiation: ed25519.c:btoi Unexecuted instantiation: ed448.c:btoi Unexecuted instantiation: fe_448.c:btoi Unexecuted instantiation: fe_operations.c:btoi Unexecuted instantiation: ge_448.c:btoi Unexecuted instantiation: ge_operations.c:btoi Unexecuted instantiation: hash.c:btoi Unexecuted instantiation: hmac.c:btoi Unexecuted instantiation: integer.c:btoi Unexecuted instantiation: kdf.c:btoi Unexecuted instantiation: md2.c:btoi Unexecuted instantiation: md4.c:btoi Unexecuted instantiation: md5.c:btoi Unexecuted instantiation: memory.c:btoi Unexecuted instantiation: poly1305.c:btoi Unexecuted instantiation: pwdbased.c:btoi Unexecuted instantiation: random.c:btoi Unexecuted instantiation: ripemd.c:btoi Unexecuted instantiation: rsa.c:btoi Unexecuted instantiation: sha.c:btoi Unexecuted instantiation: sha256.c:btoi Unexecuted instantiation: sha3.c:btoi Unexecuted instantiation: sha512.c:btoi Unexecuted instantiation: siphash.c:btoi Unexecuted instantiation: sm2.c:btoi Unexecuted instantiation: sm3.c:btoi Unexecuted instantiation: sm4.c:btoi Unexecuted instantiation: wc_encrypt.c:btoi Unexecuted instantiation: wolfmath.c:btoi Unexecuted instantiation: ssl.c:btoi Unexecuted instantiation: tls.c:btoi Unexecuted instantiation: tls13.c:btoi Unexecuted instantiation: internal.c:btoi |
885 | | #endif |
886 | | |
887 | | WC_MISC_STATIC WC_INLINE signed char HexCharToByte(char ch) |
888 | 0 | { |
889 | 0 | signed char ret = (signed char)ch; |
890 | 0 | if (ret >= '0' && ret <= '9') |
891 | 0 | ret = (signed char)(ret - '0'); |
892 | 0 | else if (ret >= 'A' && ret <= 'F') |
893 | 0 | ret = (signed char)(ret - ('A' - 10)); |
894 | 0 | else if (ret >= 'a' && ret <= 'f') |
895 | 0 | ret = (signed char)(ret - ('a' - 10)); |
896 | 0 | else |
897 | 0 | ret = -1; /* error case - return code must be signed */ |
898 | 0 | return ret; |
899 | 0 | } Unexecuted instantiation: aes.c:HexCharToByte Unexecuted instantiation: asn.c:HexCharToByte Unexecuted instantiation: camellia.c:HexCharToByte Unexecuted instantiation: chacha.c:HexCharToByte Unexecuted instantiation: chacha20_poly1305.c:HexCharToByte Unexecuted instantiation: cmac.c:HexCharToByte Unexecuted instantiation: coding.c:HexCharToByte Unexecuted instantiation: curve25519.c:HexCharToByte Unexecuted instantiation: curve448.c:HexCharToByte Unexecuted instantiation: des3.c:HexCharToByte Unexecuted instantiation: dh.c:HexCharToByte Unexecuted instantiation: ecc.c:HexCharToByte Unexecuted instantiation: eccsi.c:HexCharToByte Unexecuted instantiation: ed25519.c:HexCharToByte Unexecuted instantiation: ed448.c:HexCharToByte Unexecuted instantiation: fe_448.c:HexCharToByte Unexecuted instantiation: fe_operations.c:HexCharToByte Unexecuted instantiation: ge_448.c:HexCharToByte Unexecuted instantiation: ge_operations.c:HexCharToByte Unexecuted instantiation: hash.c:HexCharToByte Unexecuted instantiation: hmac.c:HexCharToByte Unexecuted instantiation: integer.c:HexCharToByte Unexecuted instantiation: kdf.c:HexCharToByte Unexecuted instantiation: md2.c:HexCharToByte Unexecuted instantiation: md4.c:HexCharToByte Unexecuted instantiation: md5.c:HexCharToByte Unexecuted instantiation: memory.c:HexCharToByte Unexecuted instantiation: poly1305.c:HexCharToByte Unexecuted instantiation: pwdbased.c:HexCharToByte Unexecuted instantiation: random.c:HexCharToByte Unexecuted instantiation: ripemd.c:HexCharToByte Unexecuted instantiation: rsa.c:HexCharToByte Unexecuted instantiation: sha.c:HexCharToByte Unexecuted instantiation: sha256.c:HexCharToByte Unexecuted instantiation: sha3.c:HexCharToByte Unexecuted instantiation: sha512.c:HexCharToByte Unexecuted instantiation: siphash.c:HexCharToByte Unexecuted instantiation: sm2.c:HexCharToByte Unexecuted instantiation: sm3.c:HexCharToByte Unexecuted instantiation: sm4.c:HexCharToByte Unexecuted instantiation: wc_encrypt.c:HexCharToByte Unexecuted instantiation: wolfmath.c:HexCharToByte Unexecuted instantiation: ssl.c:HexCharToByte Unexecuted instantiation: tls.c:HexCharToByte Unexecuted instantiation: tls13.c:HexCharToByte Unexecuted instantiation: internal.c:HexCharToByte |
900 | | |
901 | | WC_MISC_STATIC WC_INLINE char ByteToHex(byte in) |
902 | 0 | { |
903 | 0 | static ALIGN64 const char kHexChar[] = { |
904 | 0 | '0', '1', '2', '3', '4', '5', '6', '7', |
905 | 0 | '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' |
906 | 0 | }; |
907 | 0 | return (char)(kHexChar[in & 0xF]); |
908 | 0 | } Unexecuted instantiation: aes.c:ByteToHex Unexecuted instantiation: camellia.c:ByteToHex Unexecuted instantiation: chacha.c:ByteToHex Unexecuted instantiation: chacha20_poly1305.c:ByteToHex Unexecuted instantiation: cmac.c:ByteToHex Unexecuted instantiation: coding.c:ByteToHex Unexecuted instantiation: curve25519.c:ByteToHex Unexecuted instantiation: curve448.c:ByteToHex Unexecuted instantiation: des3.c:ByteToHex Unexecuted instantiation: dh.c:ByteToHex Unexecuted instantiation: ecc.c:ByteToHex Unexecuted instantiation: eccsi.c:ByteToHex Unexecuted instantiation: ed25519.c:ByteToHex Unexecuted instantiation: ed448.c:ByteToHex Unexecuted instantiation: fe_448.c:ByteToHex Unexecuted instantiation: fe_operations.c:ByteToHex Unexecuted instantiation: ge_448.c:ByteToHex Unexecuted instantiation: ge_operations.c:ByteToHex Unexecuted instantiation: hash.c:ByteToHex Unexecuted instantiation: hmac.c:ByteToHex Unexecuted instantiation: integer.c:ByteToHex Unexecuted instantiation: kdf.c:ByteToHex Unexecuted instantiation: md2.c:ByteToHex Unexecuted instantiation: md4.c:ByteToHex Unexecuted instantiation: md5.c:ByteToHex Unexecuted instantiation: memory.c:ByteToHex Unexecuted instantiation: poly1305.c:ByteToHex Unexecuted instantiation: pwdbased.c:ByteToHex Unexecuted instantiation: random.c:ByteToHex Unexecuted instantiation: ripemd.c:ByteToHex Unexecuted instantiation: rsa.c:ByteToHex Unexecuted instantiation: sha.c:ByteToHex Unexecuted instantiation: sha256.c:ByteToHex Unexecuted instantiation: sha3.c:ByteToHex Unexecuted instantiation: sha512.c:ByteToHex Unexecuted instantiation: siphash.c:ByteToHex Unexecuted instantiation: sm2.c:ByteToHex Unexecuted instantiation: sm3.c:ByteToHex Unexecuted instantiation: sm4.c:ByteToHex Unexecuted instantiation: wc_encrypt.c:ByteToHex Unexecuted instantiation: wolfmath.c:ByteToHex Unexecuted instantiation: ssl.c:ByteToHex Unexecuted instantiation: tls.c:ByteToHex Unexecuted instantiation: tls13.c:ByteToHex Unexecuted instantiation: internal.c:ByteToHex |
909 | | |
910 | | WC_MISC_STATIC WC_INLINE int ByteToHexStr(byte in, char* out) |
911 | 0 | { |
912 | 0 | if (out == NULL) |
913 | 0 | return -1; |
914 | 0 |
|
915 | 0 | out[0] = ByteToHex((byte)(in >> 4)); |
916 | 0 | out[1] = ByteToHex((byte)(in & 0xf)); |
917 | 0 | return 0; |
918 | 0 | } Unexecuted instantiation: aes.c:ByteToHexStr Unexecuted instantiation: camellia.c:ByteToHexStr Unexecuted instantiation: chacha.c:ByteToHexStr Unexecuted instantiation: chacha20_poly1305.c:ByteToHexStr Unexecuted instantiation: cmac.c:ByteToHexStr Unexecuted instantiation: coding.c:ByteToHexStr Unexecuted instantiation: curve25519.c:ByteToHexStr Unexecuted instantiation: curve448.c:ByteToHexStr Unexecuted instantiation: des3.c:ByteToHexStr Unexecuted instantiation: dh.c:ByteToHexStr Unexecuted instantiation: ecc.c:ByteToHexStr Unexecuted instantiation: eccsi.c:ByteToHexStr Unexecuted instantiation: ed25519.c:ByteToHexStr Unexecuted instantiation: ed448.c:ByteToHexStr Unexecuted instantiation: fe_448.c:ByteToHexStr Unexecuted instantiation: fe_operations.c:ByteToHexStr Unexecuted instantiation: ge_448.c:ByteToHexStr Unexecuted instantiation: ge_operations.c:ByteToHexStr Unexecuted instantiation: hash.c:ByteToHexStr Unexecuted instantiation: hmac.c:ByteToHexStr Unexecuted instantiation: integer.c:ByteToHexStr Unexecuted instantiation: kdf.c:ByteToHexStr Unexecuted instantiation: md2.c:ByteToHexStr Unexecuted instantiation: md4.c:ByteToHexStr Unexecuted instantiation: md5.c:ByteToHexStr Unexecuted instantiation: memory.c:ByteToHexStr Unexecuted instantiation: poly1305.c:ByteToHexStr Unexecuted instantiation: pwdbased.c:ByteToHexStr Unexecuted instantiation: random.c:ByteToHexStr Unexecuted instantiation: ripemd.c:ByteToHexStr Unexecuted instantiation: rsa.c:ByteToHexStr Unexecuted instantiation: sha.c:ByteToHexStr Unexecuted instantiation: sha256.c:ByteToHexStr Unexecuted instantiation: sha3.c:ByteToHexStr Unexecuted instantiation: sha512.c:ByteToHexStr Unexecuted instantiation: siphash.c:ByteToHexStr Unexecuted instantiation: sm2.c:ByteToHexStr Unexecuted instantiation: sm3.c:ByteToHexStr Unexecuted instantiation: sm4.c:ByteToHexStr Unexecuted instantiation: wc_encrypt.c:ByteToHexStr Unexecuted instantiation: wolfmath.c:ByteToHexStr Unexecuted instantiation: ssl.c:ByteToHexStr Unexecuted instantiation: tls.c:ByteToHexStr Unexecuted instantiation: tls13.c:ByteToHexStr Unexecuted instantiation: internal.c:ByteToHexStr |
919 | | |
920 | | WC_MISC_STATIC WC_INLINE int CharIsWhiteSpace(char ch) |
921 | 72.3k | { |
922 | 72.3k | #ifndef WOLFSSL_NO_CT_OPS |
923 | 72.3k | return (ctMaskEq(ch, ' ') | |
924 | 72.3k | ctMaskEq(ch, '\t') | |
925 | 72.3k | ctMaskEq(ch, '\n')) & 1; |
926 | | #else /* WOLFSSL_NO_CT_OPS */ |
927 | | switch (ch) { |
928 | | case ' ': |
929 | | case '\t': |
930 | | case '\n': |
931 | | return 1; |
932 | | default: |
933 | | return 0; |
934 | | } |
935 | | #endif /* WOLFSSL_NO_CT_OPS */ |
936 | 72.3k | } Unexecuted instantiation: aes.c:CharIsWhiteSpace Unexecuted instantiation: asn.c:CharIsWhiteSpace Unexecuted instantiation: camellia.c:CharIsWhiteSpace Unexecuted instantiation: chacha.c:CharIsWhiteSpace Unexecuted instantiation: chacha20_poly1305.c:CharIsWhiteSpace Unexecuted instantiation: cmac.c:CharIsWhiteSpace Unexecuted instantiation: coding.c:CharIsWhiteSpace Unexecuted instantiation: curve25519.c:CharIsWhiteSpace Unexecuted instantiation: curve448.c:CharIsWhiteSpace Unexecuted instantiation: des3.c:CharIsWhiteSpace Unexecuted instantiation: dh.c:CharIsWhiteSpace Unexecuted instantiation: ecc.c:CharIsWhiteSpace Unexecuted instantiation: eccsi.c:CharIsWhiteSpace Unexecuted instantiation: ed25519.c:CharIsWhiteSpace Unexecuted instantiation: ed448.c:CharIsWhiteSpace Unexecuted instantiation: fe_448.c:CharIsWhiteSpace Unexecuted instantiation: fe_operations.c:CharIsWhiteSpace Unexecuted instantiation: ge_448.c:CharIsWhiteSpace Unexecuted instantiation: ge_operations.c:CharIsWhiteSpace Unexecuted instantiation: hash.c:CharIsWhiteSpace Unexecuted instantiation: hmac.c:CharIsWhiteSpace integer.c:CharIsWhiteSpace Line | Count | Source | 921 | 72.3k | { | 922 | 72.3k | #ifndef WOLFSSL_NO_CT_OPS | 923 | 72.3k | return (ctMaskEq(ch, ' ') | | 924 | 72.3k | ctMaskEq(ch, '\t') | | 925 | 72.3k | ctMaskEq(ch, '\n')) & 1; | 926 | | #else /* WOLFSSL_NO_CT_OPS */ | 927 | | switch (ch) { | 928 | | case ' ': | 929 | | case '\t': | 930 | | case '\n': | 931 | | return 1; | 932 | | default: | 933 | | return 0; | 934 | | } | 935 | | #endif /* WOLFSSL_NO_CT_OPS */ | 936 | 72.3k | } |
Unexecuted instantiation: kdf.c:CharIsWhiteSpace Unexecuted instantiation: md2.c:CharIsWhiteSpace Unexecuted instantiation: md4.c:CharIsWhiteSpace Unexecuted instantiation: md5.c:CharIsWhiteSpace Unexecuted instantiation: memory.c:CharIsWhiteSpace Unexecuted instantiation: poly1305.c:CharIsWhiteSpace Unexecuted instantiation: pwdbased.c:CharIsWhiteSpace Unexecuted instantiation: random.c:CharIsWhiteSpace Unexecuted instantiation: ripemd.c:CharIsWhiteSpace Unexecuted instantiation: rsa.c:CharIsWhiteSpace Unexecuted instantiation: sha.c:CharIsWhiteSpace Unexecuted instantiation: sha256.c:CharIsWhiteSpace Unexecuted instantiation: sha3.c:CharIsWhiteSpace Unexecuted instantiation: sha512.c:CharIsWhiteSpace Unexecuted instantiation: siphash.c:CharIsWhiteSpace Unexecuted instantiation: sm2.c:CharIsWhiteSpace Unexecuted instantiation: sm3.c:CharIsWhiteSpace Unexecuted instantiation: sm4.c:CharIsWhiteSpace Unexecuted instantiation: wc_encrypt.c:CharIsWhiteSpace Unexecuted instantiation: wolfmath.c:CharIsWhiteSpace Unexecuted instantiation: ssl.c:CharIsWhiteSpace Unexecuted instantiation: tls.c:CharIsWhiteSpace Unexecuted instantiation: tls13.c:CharIsWhiteSpace Unexecuted instantiation: internal.c:CharIsWhiteSpace |
937 | | |
938 | | #if defined(WOLFSSL_W64_WRAPPER) |
939 | | #if defined(WORD64_AVAILABLE) && !defined(WOLFSSL_W64_WRAPPER_TEST) |
940 | 0 | WC_MISC_STATIC WC_INLINE void w64Increment(w64wrapper *n) { |
941 | 0 | n->n++; |
942 | 0 | } Unexecuted instantiation: aes.c:w64Increment Unexecuted instantiation: asn.c:w64Increment Unexecuted instantiation: camellia.c:w64Increment Unexecuted instantiation: chacha.c:w64Increment Unexecuted instantiation: chacha20_poly1305.c:w64Increment Unexecuted instantiation: cmac.c:w64Increment Unexecuted instantiation: coding.c:w64Increment Unexecuted instantiation: curve25519.c:w64Increment Unexecuted instantiation: curve448.c:w64Increment Unexecuted instantiation: des3.c:w64Increment Unexecuted instantiation: dh.c:w64Increment Unexecuted instantiation: ecc.c:w64Increment Unexecuted instantiation: eccsi.c:w64Increment Unexecuted instantiation: ed25519.c:w64Increment Unexecuted instantiation: ed448.c:w64Increment Unexecuted instantiation: fe_448.c:w64Increment Unexecuted instantiation: fe_operations.c:w64Increment Unexecuted instantiation: ge_448.c:w64Increment Unexecuted instantiation: ge_operations.c:w64Increment Unexecuted instantiation: hash.c:w64Increment Unexecuted instantiation: hmac.c:w64Increment Unexecuted instantiation: integer.c:w64Increment Unexecuted instantiation: kdf.c:w64Increment Unexecuted instantiation: md2.c:w64Increment Unexecuted instantiation: md4.c:w64Increment Unexecuted instantiation: md5.c:w64Increment Unexecuted instantiation: memory.c:w64Increment Unexecuted instantiation: poly1305.c:w64Increment Unexecuted instantiation: pwdbased.c:w64Increment Unexecuted instantiation: random.c:w64Increment Unexecuted instantiation: ripemd.c:w64Increment Unexecuted instantiation: rsa.c:w64Increment Unexecuted instantiation: sha.c:w64Increment Unexecuted instantiation: sha256.c:w64Increment Unexecuted instantiation: sha3.c:w64Increment Unexecuted instantiation: sha512.c:w64Increment Unexecuted instantiation: siphash.c:w64Increment Unexecuted instantiation: sm2.c:w64Increment Unexecuted instantiation: sm3.c:w64Increment Unexecuted instantiation: sm4.c:w64Increment Unexecuted instantiation: wc_encrypt.c:w64Increment Unexecuted instantiation: wolfmath.c:w64Increment Unexecuted instantiation: ssl.c:w64Increment Unexecuted instantiation: tls.c:w64Increment Unexecuted instantiation: tls13.c:w64Increment |
943 | | |
944 | 0 | WC_MISC_STATIC WC_INLINE void w64Decrement(w64wrapper *n) { |
945 | 0 | n->n--; |
946 | 0 | } Unexecuted instantiation: aes.c:w64Decrement Unexecuted instantiation: asn.c:w64Decrement Unexecuted instantiation: camellia.c:w64Decrement Unexecuted instantiation: chacha.c:w64Decrement Unexecuted instantiation: chacha20_poly1305.c:w64Decrement Unexecuted instantiation: cmac.c:w64Decrement Unexecuted instantiation: coding.c:w64Decrement Unexecuted instantiation: curve25519.c:w64Decrement Unexecuted instantiation: curve448.c:w64Decrement Unexecuted instantiation: des3.c:w64Decrement Unexecuted instantiation: dh.c:w64Decrement Unexecuted instantiation: ecc.c:w64Decrement Unexecuted instantiation: eccsi.c:w64Decrement Unexecuted instantiation: ed25519.c:w64Decrement Unexecuted instantiation: ed448.c:w64Decrement Unexecuted instantiation: fe_448.c:w64Decrement Unexecuted instantiation: fe_operations.c:w64Decrement Unexecuted instantiation: ge_448.c:w64Decrement Unexecuted instantiation: ge_operations.c:w64Decrement Unexecuted instantiation: hash.c:w64Decrement Unexecuted instantiation: hmac.c:w64Decrement Unexecuted instantiation: integer.c:w64Decrement Unexecuted instantiation: kdf.c:w64Decrement Unexecuted instantiation: md2.c:w64Decrement Unexecuted instantiation: md4.c:w64Decrement Unexecuted instantiation: md5.c:w64Decrement Unexecuted instantiation: memory.c:w64Decrement Unexecuted instantiation: poly1305.c:w64Decrement Unexecuted instantiation: pwdbased.c:w64Decrement Unexecuted instantiation: random.c:w64Decrement Unexecuted instantiation: ripemd.c:w64Decrement Unexecuted instantiation: rsa.c:w64Decrement Unexecuted instantiation: sha.c:w64Decrement Unexecuted instantiation: sha256.c:w64Decrement Unexecuted instantiation: sha3.c:w64Decrement Unexecuted instantiation: sha512.c:w64Decrement Unexecuted instantiation: siphash.c:w64Decrement Unexecuted instantiation: sm2.c:w64Decrement Unexecuted instantiation: sm3.c:w64Decrement Unexecuted instantiation: sm4.c:w64Decrement Unexecuted instantiation: wc_encrypt.c:w64Decrement Unexecuted instantiation: wolfmath.c:w64Decrement Unexecuted instantiation: ssl.c:w64Decrement Unexecuted instantiation: tls.c:w64Decrement Unexecuted instantiation: tls13.c:w64Decrement |
947 | | |
948 | 0 | WC_MISC_STATIC WC_INLINE byte w64Equal(w64wrapper a, w64wrapper b) { |
949 | 0 | return (a.n == b.n); |
950 | 0 | } Unexecuted instantiation: aes.c:w64Equal Unexecuted instantiation: asn.c:w64Equal Unexecuted instantiation: camellia.c:w64Equal Unexecuted instantiation: chacha.c:w64Equal Unexecuted instantiation: chacha20_poly1305.c:w64Equal Unexecuted instantiation: cmac.c:w64Equal Unexecuted instantiation: coding.c:w64Equal Unexecuted instantiation: curve25519.c:w64Equal Unexecuted instantiation: curve448.c:w64Equal Unexecuted instantiation: des3.c:w64Equal Unexecuted instantiation: dh.c:w64Equal Unexecuted instantiation: ecc.c:w64Equal Unexecuted instantiation: eccsi.c:w64Equal Unexecuted instantiation: ed25519.c:w64Equal Unexecuted instantiation: ed448.c:w64Equal Unexecuted instantiation: fe_448.c:w64Equal Unexecuted instantiation: fe_operations.c:w64Equal Unexecuted instantiation: ge_448.c:w64Equal Unexecuted instantiation: ge_operations.c:w64Equal Unexecuted instantiation: hash.c:w64Equal Unexecuted instantiation: hmac.c:w64Equal Unexecuted instantiation: integer.c:w64Equal Unexecuted instantiation: kdf.c:w64Equal Unexecuted instantiation: md2.c:w64Equal Unexecuted instantiation: md4.c:w64Equal Unexecuted instantiation: md5.c:w64Equal Unexecuted instantiation: memory.c:w64Equal Unexecuted instantiation: poly1305.c:w64Equal Unexecuted instantiation: pwdbased.c:w64Equal Unexecuted instantiation: random.c:w64Equal Unexecuted instantiation: ripemd.c:w64Equal Unexecuted instantiation: rsa.c:w64Equal Unexecuted instantiation: sha.c:w64Equal Unexecuted instantiation: sha256.c:w64Equal Unexecuted instantiation: sha3.c:w64Equal Unexecuted instantiation: sha512.c:w64Equal Unexecuted instantiation: siphash.c:w64Equal Unexecuted instantiation: sm2.c:w64Equal Unexecuted instantiation: sm3.c:w64Equal Unexecuted instantiation: sm4.c:w64Equal Unexecuted instantiation: wc_encrypt.c:w64Equal Unexecuted instantiation: wolfmath.c:w64Equal Unexecuted instantiation: ssl.c:w64Equal Unexecuted instantiation: tls.c:w64Equal Unexecuted instantiation: tls13.c:w64Equal |
951 | | |
952 | 0 | WC_MISC_STATIC WC_INLINE word32 w64GetLow32(w64wrapper n) { |
953 | 0 | return (word32)n.n; |
954 | 0 | } Unexecuted instantiation: aes.c:w64GetLow32 Unexecuted instantiation: asn.c:w64GetLow32 Unexecuted instantiation: camellia.c:w64GetLow32 Unexecuted instantiation: chacha.c:w64GetLow32 Unexecuted instantiation: chacha20_poly1305.c:w64GetLow32 Unexecuted instantiation: cmac.c:w64GetLow32 Unexecuted instantiation: coding.c:w64GetLow32 Unexecuted instantiation: curve25519.c:w64GetLow32 Unexecuted instantiation: curve448.c:w64GetLow32 Unexecuted instantiation: des3.c:w64GetLow32 Unexecuted instantiation: dh.c:w64GetLow32 Unexecuted instantiation: ecc.c:w64GetLow32 Unexecuted instantiation: eccsi.c:w64GetLow32 Unexecuted instantiation: ed25519.c:w64GetLow32 Unexecuted instantiation: ed448.c:w64GetLow32 Unexecuted instantiation: fe_448.c:w64GetLow32 Unexecuted instantiation: fe_operations.c:w64GetLow32 Unexecuted instantiation: ge_448.c:w64GetLow32 Unexecuted instantiation: ge_operations.c:w64GetLow32 Unexecuted instantiation: hash.c:w64GetLow32 Unexecuted instantiation: hmac.c:w64GetLow32 Unexecuted instantiation: integer.c:w64GetLow32 Unexecuted instantiation: kdf.c:w64GetLow32 Unexecuted instantiation: md2.c:w64GetLow32 Unexecuted instantiation: md4.c:w64GetLow32 Unexecuted instantiation: md5.c:w64GetLow32 Unexecuted instantiation: memory.c:w64GetLow32 Unexecuted instantiation: poly1305.c:w64GetLow32 Unexecuted instantiation: pwdbased.c:w64GetLow32 Unexecuted instantiation: random.c:w64GetLow32 Unexecuted instantiation: ripemd.c:w64GetLow32 Unexecuted instantiation: rsa.c:w64GetLow32 Unexecuted instantiation: sha.c:w64GetLow32 Unexecuted instantiation: sha256.c:w64GetLow32 Unexecuted instantiation: sha3.c:w64GetLow32 Unexecuted instantiation: sha512.c:w64GetLow32 Unexecuted instantiation: siphash.c:w64GetLow32 Unexecuted instantiation: sm2.c:w64GetLow32 Unexecuted instantiation: sm3.c:w64GetLow32 Unexecuted instantiation: sm4.c:w64GetLow32 Unexecuted instantiation: wc_encrypt.c:w64GetLow32 Unexecuted instantiation: wolfmath.c:w64GetLow32 Unexecuted instantiation: ssl.c:w64GetLow32 Unexecuted instantiation: tls.c:w64GetLow32 Unexecuted instantiation: tls13.c:w64GetLow32 |
955 | | |
956 | 0 | WC_MISC_STATIC WC_INLINE word32 w64GetHigh32(w64wrapper n) { |
957 | 0 | return (word32)(n.n >> 32); |
958 | 0 | } Unexecuted instantiation: aes.c:w64GetHigh32 Unexecuted instantiation: asn.c:w64GetHigh32 Unexecuted instantiation: camellia.c:w64GetHigh32 Unexecuted instantiation: chacha.c:w64GetHigh32 Unexecuted instantiation: chacha20_poly1305.c:w64GetHigh32 Unexecuted instantiation: cmac.c:w64GetHigh32 Unexecuted instantiation: coding.c:w64GetHigh32 Unexecuted instantiation: curve25519.c:w64GetHigh32 Unexecuted instantiation: curve448.c:w64GetHigh32 Unexecuted instantiation: des3.c:w64GetHigh32 Unexecuted instantiation: dh.c:w64GetHigh32 Unexecuted instantiation: ecc.c:w64GetHigh32 Unexecuted instantiation: eccsi.c:w64GetHigh32 Unexecuted instantiation: ed25519.c:w64GetHigh32 Unexecuted instantiation: ed448.c:w64GetHigh32 Unexecuted instantiation: fe_448.c:w64GetHigh32 Unexecuted instantiation: fe_operations.c:w64GetHigh32 Unexecuted instantiation: ge_448.c:w64GetHigh32 Unexecuted instantiation: ge_operations.c:w64GetHigh32 Unexecuted instantiation: hash.c:w64GetHigh32 Unexecuted instantiation: hmac.c:w64GetHigh32 Unexecuted instantiation: integer.c:w64GetHigh32 Unexecuted instantiation: kdf.c:w64GetHigh32 Unexecuted instantiation: md2.c:w64GetHigh32 Unexecuted instantiation: md4.c:w64GetHigh32 Unexecuted instantiation: md5.c:w64GetHigh32 Unexecuted instantiation: memory.c:w64GetHigh32 Unexecuted instantiation: poly1305.c:w64GetHigh32 Unexecuted instantiation: pwdbased.c:w64GetHigh32 Unexecuted instantiation: random.c:w64GetHigh32 Unexecuted instantiation: ripemd.c:w64GetHigh32 Unexecuted instantiation: rsa.c:w64GetHigh32 Unexecuted instantiation: sha.c:w64GetHigh32 Unexecuted instantiation: sha256.c:w64GetHigh32 Unexecuted instantiation: sha3.c:w64GetHigh32 Unexecuted instantiation: sha512.c:w64GetHigh32 Unexecuted instantiation: siphash.c:w64GetHigh32 Unexecuted instantiation: sm2.c:w64GetHigh32 Unexecuted instantiation: sm3.c:w64GetHigh32 Unexecuted instantiation: sm4.c:w64GetHigh32 Unexecuted instantiation: wc_encrypt.c:w64GetHigh32 Unexecuted instantiation: wolfmath.c:w64GetHigh32 Unexecuted instantiation: ssl.c:w64GetHigh32 Unexecuted instantiation: tls.c:w64GetHigh32 Unexecuted instantiation: tls13.c:w64GetHigh32 Unexecuted instantiation: internal.c:w64GetHigh32 |
959 | | |
960 | 0 | WC_MISC_STATIC WC_INLINE void w64SetLow32(w64wrapper *n, word32 low) { |
961 | 0 | n->n = (n->n & (~(word64)(0xffffffff))) | low; |
962 | 0 | } Unexecuted instantiation: aes.c:w64SetLow32 Unexecuted instantiation: asn.c:w64SetLow32 Unexecuted instantiation: camellia.c:w64SetLow32 Unexecuted instantiation: chacha.c:w64SetLow32 Unexecuted instantiation: chacha20_poly1305.c:w64SetLow32 Unexecuted instantiation: cmac.c:w64SetLow32 Unexecuted instantiation: coding.c:w64SetLow32 Unexecuted instantiation: curve25519.c:w64SetLow32 Unexecuted instantiation: curve448.c:w64SetLow32 Unexecuted instantiation: des3.c:w64SetLow32 Unexecuted instantiation: dh.c:w64SetLow32 Unexecuted instantiation: ecc.c:w64SetLow32 Unexecuted instantiation: eccsi.c:w64SetLow32 Unexecuted instantiation: ed25519.c:w64SetLow32 Unexecuted instantiation: ed448.c:w64SetLow32 Unexecuted instantiation: fe_448.c:w64SetLow32 Unexecuted instantiation: fe_operations.c:w64SetLow32 Unexecuted instantiation: ge_448.c:w64SetLow32 Unexecuted instantiation: ge_operations.c:w64SetLow32 Unexecuted instantiation: hash.c:w64SetLow32 Unexecuted instantiation: hmac.c:w64SetLow32 Unexecuted instantiation: integer.c:w64SetLow32 Unexecuted instantiation: kdf.c:w64SetLow32 Unexecuted instantiation: md2.c:w64SetLow32 Unexecuted instantiation: md4.c:w64SetLow32 Unexecuted instantiation: md5.c:w64SetLow32 Unexecuted instantiation: memory.c:w64SetLow32 Unexecuted instantiation: poly1305.c:w64SetLow32 Unexecuted instantiation: pwdbased.c:w64SetLow32 Unexecuted instantiation: random.c:w64SetLow32 Unexecuted instantiation: ripemd.c:w64SetLow32 Unexecuted instantiation: rsa.c:w64SetLow32 Unexecuted instantiation: sha.c:w64SetLow32 Unexecuted instantiation: sha256.c:w64SetLow32 Unexecuted instantiation: sha3.c:w64SetLow32 Unexecuted instantiation: sha512.c:w64SetLow32 Unexecuted instantiation: siphash.c:w64SetLow32 Unexecuted instantiation: sm2.c:w64SetLow32 Unexecuted instantiation: sm3.c:w64SetLow32 Unexecuted instantiation: sm4.c:w64SetLow32 Unexecuted instantiation: wc_encrypt.c:w64SetLow32 Unexecuted instantiation: wolfmath.c:w64SetLow32 Unexecuted instantiation: ssl.c:w64SetLow32 Unexecuted instantiation: tls.c:w64SetLow32 Unexecuted instantiation: tls13.c:w64SetLow32 Unexecuted instantiation: internal.c:w64SetLow32 |
963 | | |
964 | | WC_MISC_STATIC WC_INLINE w64wrapper w64Add32(w64wrapper a, word32 b, byte *wrap) |
965 | 0 | { |
966 | 0 | a.n += b; |
967 | 0 | if (a.n < b && wrap != NULL) |
968 | 0 | *wrap = 1; |
969 | 0 |
|
970 | 0 | return a; |
971 | 0 | } Unexecuted instantiation: aes.c:w64Add32 Unexecuted instantiation: asn.c:w64Add32 Unexecuted instantiation: camellia.c:w64Add32 Unexecuted instantiation: chacha.c:w64Add32 Unexecuted instantiation: chacha20_poly1305.c:w64Add32 Unexecuted instantiation: cmac.c:w64Add32 Unexecuted instantiation: coding.c:w64Add32 Unexecuted instantiation: curve25519.c:w64Add32 Unexecuted instantiation: curve448.c:w64Add32 Unexecuted instantiation: des3.c:w64Add32 Unexecuted instantiation: dh.c:w64Add32 Unexecuted instantiation: ecc.c:w64Add32 Unexecuted instantiation: eccsi.c:w64Add32 Unexecuted instantiation: ed25519.c:w64Add32 Unexecuted instantiation: ed448.c:w64Add32 Unexecuted instantiation: fe_448.c:w64Add32 Unexecuted instantiation: fe_operations.c:w64Add32 Unexecuted instantiation: ge_448.c:w64Add32 Unexecuted instantiation: ge_operations.c:w64Add32 Unexecuted instantiation: hash.c:w64Add32 Unexecuted instantiation: hmac.c:w64Add32 Unexecuted instantiation: integer.c:w64Add32 Unexecuted instantiation: kdf.c:w64Add32 Unexecuted instantiation: md2.c:w64Add32 Unexecuted instantiation: md4.c:w64Add32 Unexecuted instantiation: md5.c:w64Add32 Unexecuted instantiation: memory.c:w64Add32 Unexecuted instantiation: poly1305.c:w64Add32 Unexecuted instantiation: pwdbased.c:w64Add32 Unexecuted instantiation: random.c:w64Add32 Unexecuted instantiation: ripemd.c:w64Add32 Unexecuted instantiation: rsa.c:w64Add32 Unexecuted instantiation: sha.c:w64Add32 Unexecuted instantiation: sha256.c:w64Add32 Unexecuted instantiation: sha3.c:w64Add32 Unexecuted instantiation: sha512.c:w64Add32 Unexecuted instantiation: siphash.c:w64Add32 Unexecuted instantiation: sm2.c:w64Add32 Unexecuted instantiation: sm3.c:w64Add32 Unexecuted instantiation: sm4.c:w64Add32 Unexecuted instantiation: wc_encrypt.c:w64Add32 Unexecuted instantiation: wolfmath.c:w64Add32 Unexecuted instantiation: ssl.c:w64Add32 Unexecuted instantiation: tls.c:w64Add32 Unexecuted instantiation: tls13.c:w64Add32 Unexecuted instantiation: internal.c:w64Add32 |
972 | | |
973 | | WC_MISC_STATIC WC_INLINE w64wrapper w64Add(w64wrapper a, w64wrapper b, |
974 | | byte *wrap) |
975 | 0 | { |
976 | 0 | a.n += b.n; |
977 | 0 | if (a.n < b.n && wrap != NULL) |
978 | 0 | *wrap = 1; |
979 | 0 |
|
980 | 0 | return a; |
981 | 0 | } Unexecuted instantiation: aes.c:w64Add Unexecuted instantiation: asn.c:w64Add Unexecuted instantiation: camellia.c:w64Add Unexecuted instantiation: chacha.c:w64Add Unexecuted instantiation: chacha20_poly1305.c:w64Add Unexecuted instantiation: cmac.c:w64Add Unexecuted instantiation: coding.c:w64Add Unexecuted instantiation: curve25519.c:w64Add Unexecuted instantiation: curve448.c:w64Add Unexecuted instantiation: des3.c:w64Add Unexecuted instantiation: dh.c:w64Add Unexecuted instantiation: ecc.c:w64Add Unexecuted instantiation: eccsi.c:w64Add Unexecuted instantiation: ed25519.c:w64Add Unexecuted instantiation: ed448.c:w64Add Unexecuted instantiation: fe_448.c:w64Add Unexecuted instantiation: fe_operations.c:w64Add Unexecuted instantiation: ge_448.c:w64Add Unexecuted instantiation: ge_operations.c:w64Add Unexecuted instantiation: hash.c:w64Add Unexecuted instantiation: hmac.c:w64Add Unexecuted instantiation: integer.c:w64Add Unexecuted instantiation: kdf.c:w64Add Unexecuted instantiation: md2.c:w64Add Unexecuted instantiation: md4.c:w64Add Unexecuted instantiation: md5.c:w64Add Unexecuted instantiation: memory.c:w64Add Unexecuted instantiation: poly1305.c:w64Add Unexecuted instantiation: pwdbased.c:w64Add Unexecuted instantiation: random.c:w64Add Unexecuted instantiation: ripemd.c:w64Add Unexecuted instantiation: rsa.c:w64Add Unexecuted instantiation: sha.c:w64Add Unexecuted instantiation: sha256.c:w64Add Unexecuted instantiation: sha3.c:w64Add Unexecuted instantiation: sha512.c:w64Add Unexecuted instantiation: siphash.c:w64Add Unexecuted instantiation: sm2.c:w64Add Unexecuted instantiation: sm3.c:w64Add Unexecuted instantiation: sm4.c:w64Add Unexecuted instantiation: wc_encrypt.c:w64Add Unexecuted instantiation: wolfmath.c:w64Add Unexecuted instantiation: ssl.c:w64Add Unexecuted instantiation: tls.c:w64Add Unexecuted instantiation: tls13.c:w64Add Unexecuted instantiation: internal.c:w64Add |
982 | | |
983 | | WC_MISC_STATIC WC_INLINE w64wrapper w64Sub32(w64wrapper a, word32 b, byte *wrap) |
984 | 0 | { |
985 | 0 | if (a.n < b && wrap != NULL) |
986 | 0 | *wrap = 1; |
987 | 0 | a.n = a.n - b; |
988 | 0 | return a; |
989 | 0 | } Unexecuted instantiation: aes.c:w64Sub32 Unexecuted instantiation: asn.c:w64Sub32 Unexecuted instantiation: camellia.c:w64Sub32 Unexecuted instantiation: chacha.c:w64Sub32 Unexecuted instantiation: chacha20_poly1305.c:w64Sub32 Unexecuted instantiation: cmac.c:w64Sub32 Unexecuted instantiation: coding.c:w64Sub32 Unexecuted instantiation: curve25519.c:w64Sub32 Unexecuted instantiation: curve448.c:w64Sub32 Unexecuted instantiation: des3.c:w64Sub32 Unexecuted instantiation: dh.c:w64Sub32 Unexecuted instantiation: ecc.c:w64Sub32 Unexecuted instantiation: eccsi.c:w64Sub32 Unexecuted instantiation: ed25519.c:w64Sub32 Unexecuted instantiation: ed448.c:w64Sub32 Unexecuted instantiation: fe_448.c:w64Sub32 Unexecuted instantiation: fe_operations.c:w64Sub32 Unexecuted instantiation: ge_448.c:w64Sub32 Unexecuted instantiation: ge_operations.c:w64Sub32 Unexecuted instantiation: hash.c:w64Sub32 Unexecuted instantiation: hmac.c:w64Sub32 Unexecuted instantiation: integer.c:w64Sub32 Unexecuted instantiation: kdf.c:w64Sub32 Unexecuted instantiation: md2.c:w64Sub32 Unexecuted instantiation: md4.c:w64Sub32 Unexecuted instantiation: md5.c:w64Sub32 Unexecuted instantiation: memory.c:w64Sub32 Unexecuted instantiation: poly1305.c:w64Sub32 Unexecuted instantiation: pwdbased.c:w64Sub32 Unexecuted instantiation: random.c:w64Sub32 Unexecuted instantiation: ripemd.c:w64Sub32 Unexecuted instantiation: rsa.c:w64Sub32 Unexecuted instantiation: sha.c:w64Sub32 Unexecuted instantiation: sha256.c:w64Sub32 Unexecuted instantiation: sha3.c:w64Sub32 Unexecuted instantiation: sha512.c:w64Sub32 Unexecuted instantiation: siphash.c:w64Sub32 Unexecuted instantiation: sm2.c:w64Sub32 Unexecuted instantiation: sm3.c:w64Sub32 Unexecuted instantiation: sm4.c:w64Sub32 Unexecuted instantiation: wc_encrypt.c:w64Sub32 Unexecuted instantiation: wolfmath.c:w64Sub32 Unexecuted instantiation: ssl.c:w64Sub32 Unexecuted instantiation: tls.c:w64Sub32 Unexecuted instantiation: tls13.c:w64Sub32 Unexecuted instantiation: internal.c:w64Sub32 |
990 | | |
991 | | WC_MISC_STATIC WC_INLINE byte w64GT(w64wrapper a, w64wrapper b) |
992 | 0 | { |
993 | 0 | return a.n > b.n; |
994 | 0 | } Unexecuted instantiation: aes.c:w64GT Unexecuted instantiation: asn.c:w64GT Unexecuted instantiation: camellia.c:w64GT Unexecuted instantiation: chacha.c:w64GT Unexecuted instantiation: chacha20_poly1305.c:w64GT Unexecuted instantiation: cmac.c:w64GT Unexecuted instantiation: coding.c:w64GT Unexecuted instantiation: curve25519.c:w64GT Unexecuted instantiation: curve448.c:w64GT Unexecuted instantiation: des3.c:w64GT Unexecuted instantiation: dh.c:w64GT Unexecuted instantiation: ecc.c:w64GT Unexecuted instantiation: eccsi.c:w64GT Unexecuted instantiation: ed25519.c:w64GT Unexecuted instantiation: ed448.c:w64GT Unexecuted instantiation: fe_448.c:w64GT Unexecuted instantiation: fe_operations.c:w64GT Unexecuted instantiation: ge_448.c:w64GT Unexecuted instantiation: ge_operations.c:w64GT Unexecuted instantiation: hash.c:w64GT Unexecuted instantiation: hmac.c:w64GT Unexecuted instantiation: integer.c:w64GT Unexecuted instantiation: kdf.c:w64GT Unexecuted instantiation: md2.c:w64GT Unexecuted instantiation: md4.c:w64GT Unexecuted instantiation: md5.c:w64GT Unexecuted instantiation: memory.c:w64GT Unexecuted instantiation: poly1305.c:w64GT Unexecuted instantiation: pwdbased.c:w64GT Unexecuted instantiation: random.c:w64GT Unexecuted instantiation: ripemd.c:w64GT Unexecuted instantiation: rsa.c:w64GT Unexecuted instantiation: sha.c:w64GT Unexecuted instantiation: sha256.c:w64GT Unexecuted instantiation: sha3.c:w64GT Unexecuted instantiation: sha512.c:w64GT Unexecuted instantiation: siphash.c:w64GT Unexecuted instantiation: sm2.c:w64GT Unexecuted instantiation: sm3.c:w64GT Unexecuted instantiation: sm4.c:w64GT Unexecuted instantiation: wc_encrypt.c:w64GT Unexecuted instantiation: wolfmath.c:w64GT Unexecuted instantiation: ssl.c:w64GT Unexecuted instantiation: tls.c:w64GT Unexecuted instantiation: tls13.c:w64GT |
995 | | |
996 | | WC_MISC_STATIC WC_INLINE byte w64IsZero(w64wrapper a) |
997 | 0 | { |
998 | 0 | return a.n == 0; |
999 | 0 | } Unexecuted instantiation: aes.c:w64IsZero Unexecuted instantiation: asn.c:w64IsZero Unexecuted instantiation: camellia.c:w64IsZero Unexecuted instantiation: chacha.c:w64IsZero Unexecuted instantiation: chacha20_poly1305.c:w64IsZero Unexecuted instantiation: cmac.c:w64IsZero Unexecuted instantiation: coding.c:w64IsZero Unexecuted instantiation: curve25519.c:w64IsZero Unexecuted instantiation: curve448.c:w64IsZero Unexecuted instantiation: des3.c:w64IsZero Unexecuted instantiation: dh.c:w64IsZero Unexecuted instantiation: ecc.c:w64IsZero Unexecuted instantiation: eccsi.c:w64IsZero Unexecuted instantiation: ed25519.c:w64IsZero Unexecuted instantiation: ed448.c:w64IsZero Unexecuted instantiation: fe_448.c:w64IsZero Unexecuted instantiation: fe_operations.c:w64IsZero Unexecuted instantiation: ge_448.c:w64IsZero Unexecuted instantiation: ge_operations.c:w64IsZero Unexecuted instantiation: hash.c:w64IsZero Unexecuted instantiation: hmac.c:w64IsZero Unexecuted instantiation: integer.c:w64IsZero Unexecuted instantiation: kdf.c:w64IsZero Unexecuted instantiation: md2.c:w64IsZero Unexecuted instantiation: md4.c:w64IsZero Unexecuted instantiation: md5.c:w64IsZero Unexecuted instantiation: memory.c:w64IsZero Unexecuted instantiation: poly1305.c:w64IsZero Unexecuted instantiation: pwdbased.c:w64IsZero Unexecuted instantiation: random.c:w64IsZero Unexecuted instantiation: ripemd.c:w64IsZero Unexecuted instantiation: rsa.c:w64IsZero Unexecuted instantiation: sha.c:w64IsZero Unexecuted instantiation: sha256.c:w64IsZero Unexecuted instantiation: sha3.c:w64IsZero Unexecuted instantiation: sha512.c:w64IsZero Unexecuted instantiation: siphash.c:w64IsZero Unexecuted instantiation: sm2.c:w64IsZero Unexecuted instantiation: sm3.c:w64IsZero Unexecuted instantiation: sm4.c:w64IsZero Unexecuted instantiation: wc_encrypt.c:w64IsZero Unexecuted instantiation: wolfmath.c:w64IsZero Unexecuted instantiation: ssl.c:w64IsZero Unexecuted instantiation: tls.c:w64IsZero Unexecuted instantiation: tls13.c:w64IsZero |
1000 | | |
1001 | | WC_MISC_STATIC WC_INLINE void c64toa(const w64wrapper *a, byte *out) |
1002 | 0 | { |
1003 | 0 | #ifdef BIG_ENDIAN_ORDER |
1004 | 0 | XMEMCPY(out, &a->n, sizeof(a->n)); |
1005 | 0 | #else |
1006 | 0 | word64 _out; |
1007 | 0 | _out = ByteReverseWord64(a->n); |
1008 | 0 | XMEMCPY(out, &_out, sizeof(_out)); |
1009 | 0 | #endif /* BIG_ENDIAN_ORDER */ |
1010 | 0 | } Unexecuted instantiation: aes.c:c64toa Unexecuted instantiation: asn.c:c64toa Unexecuted instantiation: camellia.c:c64toa Unexecuted instantiation: chacha.c:c64toa Unexecuted instantiation: chacha20_poly1305.c:c64toa Unexecuted instantiation: cmac.c:c64toa Unexecuted instantiation: coding.c:c64toa Unexecuted instantiation: curve25519.c:c64toa Unexecuted instantiation: curve448.c:c64toa Unexecuted instantiation: des3.c:c64toa Unexecuted instantiation: dh.c:c64toa Unexecuted instantiation: ecc.c:c64toa Unexecuted instantiation: eccsi.c:c64toa Unexecuted instantiation: ed25519.c:c64toa Unexecuted instantiation: ed448.c:c64toa Unexecuted instantiation: fe_448.c:c64toa Unexecuted instantiation: fe_operations.c:c64toa Unexecuted instantiation: ge_448.c:c64toa Unexecuted instantiation: ge_operations.c:c64toa Unexecuted instantiation: hash.c:c64toa Unexecuted instantiation: hmac.c:c64toa Unexecuted instantiation: integer.c:c64toa Unexecuted instantiation: kdf.c:c64toa Unexecuted instantiation: md2.c:c64toa Unexecuted instantiation: md4.c:c64toa Unexecuted instantiation: md5.c:c64toa Unexecuted instantiation: memory.c:c64toa Unexecuted instantiation: poly1305.c:c64toa Unexecuted instantiation: pwdbased.c:c64toa Unexecuted instantiation: random.c:c64toa Unexecuted instantiation: ripemd.c:c64toa Unexecuted instantiation: rsa.c:c64toa Unexecuted instantiation: sha.c:c64toa Unexecuted instantiation: sha256.c:c64toa Unexecuted instantiation: sha3.c:c64toa Unexecuted instantiation: sha512.c:c64toa Unexecuted instantiation: siphash.c:c64toa Unexecuted instantiation: sm2.c:c64toa Unexecuted instantiation: sm3.c:c64toa Unexecuted instantiation: sm4.c:c64toa Unexecuted instantiation: wc_encrypt.c:c64toa Unexecuted instantiation: wolfmath.c:c64toa Unexecuted instantiation: ssl.c:c64toa Unexecuted instantiation: tls.c:c64toa Unexecuted instantiation: tls13.c:c64toa Unexecuted instantiation: internal.c:c64toa |
1011 | | |
1012 | | WC_MISC_STATIC WC_INLINE void ato64(const byte *in, w64wrapper *w64) |
1013 | 0 | { |
1014 | 0 | #ifdef BIG_ENDIAN_ORDER |
1015 | 0 | XMEMCPY(&w64->n, in, sizeof(w64->n)); |
1016 | 0 | #else |
1017 | 0 | union { |
1018 | 0 | word64 w; |
1019 | 0 | byte b[sizeof(word64)]; |
1020 | 0 | } _in; |
1021 | 0 | XMEMCPY(_in.b, in, sizeof(_in)); |
1022 | 0 | w64->n = ByteReverseWord64(_in.w); |
1023 | 0 | #endif /* BIG_ENDIAN_ORDER */ |
1024 | 0 | } Unexecuted instantiation: aes.c:ato64 Unexecuted instantiation: asn.c:ato64 Unexecuted instantiation: camellia.c:ato64 Unexecuted instantiation: chacha.c:ato64 Unexecuted instantiation: chacha20_poly1305.c:ato64 Unexecuted instantiation: cmac.c:ato64 Unexecuted instantiation: coding.c:ato64 Unexecuted instantiation: curve25519.c:ato64 Unexecuted instantiation: curve448.c:ato64 Unexecuted instantiation: des3.c:ato64 Unexecuted instantiation: dh.c:ato64 Unexecuted instantiation: ecc.c:ato64 Unexecuted instantiation: eccsi.c:ato64 Unexecuted instantiation: ed25519.c:ato64 Unexecuted instantiation: ed448.c:ato64 Unexecuted instantiation: fe_448.c:ato64 Unexecuted instantiation: fe_operations.c:ato64 Unexecuted instantiation: ge_448.c:ato64 Unexecuted instantiation: ge_operations.c:ato64 Unexecuted instantiation: hash.c:ato64 Unexecuted instantiation: hmac.c:ato64 Unexecuted instantiation: integer.c:ato64 Unexecuted instantiation: kdf.c:ato64 Unexecuted instantiation: md2.c:ato64 Unexecuted instantiation: md4.c:ato64 Unexecuted instantiation: md5.c:ato64 Unexecuted instantiation: memory.c:ato64 Unexecuted instantiation: poly1305.c:ato64 Unexecuted instantiation: pwdbased.c:ato64 Unexecuted instantiation: random.c:ato64 Unexecuted instantiation: ripemd.c:ato64 Unexecuted instantiation: rsa.c:ato64 Unexecuted instantiation: sha.c:ato64 Unexecuted instantiation: sha256.c:ato64 Unexecuted instantiation: sha3.c:ato64 Unexecuted instantiation: sha512.c:ato64 Unexecuted instantiation: siphash.c:ato64 Unexecuted instantiation: sm2.c:ato64 Unexecuted instantiation: sm3.c:ato64 Unexecuted instantiation: sm4.c:ato64 Unexecuted instantiation: wc_encrypt.c:ato64 Unexecuted instantiation: wolfmath.c:ato64 Unexecuted instantiation: ssl.c:ato64 Unexecuted instantiation: tls.c:ato64 Unexecuted instantiation: tls13.c:ato64 Unexecuted instantiation: internal.c:ato64 |
1025 | | |
1026 | | WC_MISC_STATIC WC_INLINE w64wrapper w64From32(word32 hi, word32 lo) |
1027 | 112k | { |
1028 | 112k | w64wrapper ret; |
1029 | 112k | ret.n = ((word64)hi << 32) | lo; |
1030 | 112k | return ret; |
1031 | 112k | } Unexecuted instantiation: aes.c:w64From32 Unexecuted instantiation: asn.c:w64From32 Unexecuted instantiation: camellia.c:w64From32 Unexecuted instantiation: chacha.c:w64From32 Unexecuted instantiation: chacha20_poly1305.c:w64From32 Unexecuted instantiation: cmac.c:w64From32 Unexecuted instantiation: coding.c:w64From32 Unexecuted instantiation: curve25519.c:w64From32 Unexecuted instantiation: curve448.c:w64From32 Unexecuted instantiation: des3.c:w64From32 Unexecuted instantiation: dh.c:w64From32 Unexecuted instantiation: ecc.c:w64From32 Unexecuted instantiation: eccsi.c:w64From32 Unexecuted instantiation: ed25519.c:w64From32 Unexecuted instantiation: ed448.c:w64From32 Unexecuted instantiation: fe_448.c:w64From32 Unexecuted instantiation: fe_operations.c:w64From32 Unexecuted instantiation: ge_448.c:w64From32 Unexecuted instantiation: ge_operations.c:w64From32 Unexecuted instantiation: hash.c:w64From32 Unexecuted instantiation: hmac.c:w64From32 Unexecuted instantiation: integer.c:w64From32 Unexecuted instantiation: kdf.c:w64From32 Unexecuted instantiation: md2.c:w64From32 Unexecuted instantiation: md4.c:w64From32 Unexecuted instantiation: md5.c:w64From32 Unexecuted instantiation: memory.c:w64From32 Unexecuted instantiation: poly1305.c:w64From32 Unexecuted instantiation: pwdbased.c:w64From32 Unexecuted instantiation: random.c:w64From32 Unexecuted instantiation: ripemd.c:w64From32 Unexecuted instantiation: rsa.c:w64From32 Unexecuted instantiation: sha.c:w64From32 Unexecuted instantiation: sha256.c:w64From32 Unexecuted instantiation: sha3.c:w64From32 Unexecuted instantiation: sha512.c:w64From32 Unexecuted instantiation: siphash.c:w64From32 Unexecuted instantiation: sm2.c:w64From32 Unexecuted instantiation: sm3.c:w64From32 Unexecuted instantiation: sm4.c:w64From32 Unexecuted instantiation: wc_encrypt.c:w64From32 Unexecuted instantiation: wolfmath.c:w64From32 Unexecuted instantiation: ssl.c:w64From32 Unexecuted instantiation: tls.c:w64From32 Unexecuted instantiation: tls13.c:w64From32 Line | Count | Source | 1027 | 112k | { | 1028 | 112k | w64wrapper ret; | 1029 | 112k | ret.n = ((word64)hi << 32) | lo; | 1030 | 112k | return ret; | 1031 | 112k | } |
|
1032 | | |
1033 | | WC_MISC_STATIC WC_INLINE byte w64GTE(w64wrapper a, w64wrapper b) |
1034 | 22.5k | { |
1035 | 22.5k | return a.n >= b.n; |
1036 | 22.5k | } Unexecuted instantiation: aes.c:w64GTE Unexecuted instantiation: asn.c:w64GTE Unexecuted instantiation: camellia.c:w64GTE Unexecuted instantiation: chacha.c:w64GTE Unexecuted instantiation: chacha20_poly1305.c:w64GTE Unexecuted instantiation: cmac.c:w64GTE Unexecuted instantiation: coding.c:w64GTE Unexecuted instantiation: curve25519.c:w64GTE Unexecuted instantiation: curve448.c:w64GTE Unexecuted instantiation: des3.c:w64GTE Unexecuted instantiation: dh.c:w64GTE Unexecuted instantiation: ecc.c:w64GTE Unexecuted instantiation: eccsi.c:w64GTE Unexecuted instantiation: ed25519.c:w64GTE Unexecuted instantiation: ed448.c:w64GTE Unexecuted instantiation: fe_448.c:w64GTE Unexecuted instantiation: fe_operations.c:w64GTE Unexecuted instantiation: ge_448.c:w64GTE Unexecuted instantiation: ge_operations.c:w64GTE Unexecuted instantiation: hash.c:w64GTE Unexecuted instantiation: hmac.c:w64GTE Unexecuted instantiation: integer.c:w64GTE Unexecuted instantiation: kdf.c:w64GTE Unexecuted instantiation: md2.c:w64GTE Unexecuted instantiation: md4.c:w64GTE Unexecuted instantiation: md5.c:w64GTE Unexecuted instantiation: memory.c:w64GTE Unexecuted instantiation: poly1305.c:w64GTE Unexecuted instantiation: pwdbased.c:w64GTE Unexecuted instantiation: random.c:w64GTE Unexecuted instantiation: ripemd.c:w64GTE Unexecuted instantiation: rsa.c:w64GTE Unexecuted instantiation: sha.c:w64GTE Unexecuted instantiation: sha256.c:w64GTE Unexecuted instantiation: sha3.c:w64GTE Unexecuted instantiation: sha512.c:w64GTE Unexecuted instantiation: siphash.c:w64GTE Unexecuted instantiation: sm2.c:w64GTE Unexecuted instantiation: sm3.c:w64GTE Unexecuted instantiation: sm4.c:w64GTE Unexecuted instantiation: wc_encrypt.c:w64GTE Unexecuted instantiation: wolfmath.c:w64GTE Unexecuted instantiation: ssl.c:w64GTE Unexecuted instantiation: tls.c:w64GTE Unexecuted instantiation: tls13.c:w64GTE Line | Count | Source | 1034 | 22.5k | { | 1035 | 22.5k | return a.n >= b.n; | 1036 | 22.5k | } |
|
1037 | | |
1038 | | WC_MISC_STATIC WC_INLINE byte w64LT(w64wrapper a, w64wrapper b) |
1039 | 0 | { |
1040 | 0 | return a.n < b.n; |
1041 | 0 | } Unexecuted instantiation: aes.c:w64LT Unexecuted instantiation: asn.c:w64LT Unexecuted instantiation: camellia.c:w64LT Unexecuted instantiation: chacha.c:w64LT Unexecuted instantiation: chacha20_poly1305.c:w64LT Unexecuted instantiation: cmac.c:w64LT Unexecuted instantiation: coding.c:w64LT Unexecuted instantiation: curve25519.c:w64LT Unexecuted instantiation: curve448.c:w64LT Unexecuted instantiation: des3.c:w64LT Unexecuted instantiation: dh.c:w64LT Unexecuted instantiation: ecc.c:w64LT Unexecuted instantiation: eccsi.c:w64LT Unexecuted instantiation: ed25519.c:w64LT Unexecuted instantiation: ed448.c:w64LT Unexecuted instantiation: fe_448.c:w64LT Unexecuted instantiation: fe_operations.c:w64LT Unexecuted instantiation: ge_448.c:w64LT Unexecuted instantiation: ge_operations.c:w64LT Unexecuted instantiation: hash.c:w64LT Unexecuted instantiation: hmac.c:w64LT Unexecuted instantiation: integer.c:w64LT Unexecuted instantiation: kdf.c:w64LT Unexecuted instantiation: md2.c:w64LT Unexecuted instantiation: md4.c:w64LT Unexecuted instantiation: md5.c:w64LT Unexecuted instantiation: memory.c:w64LT Unexecuted instantiation: poly1305.c:w64LT Unexecuted instantiation: pwdbased.c:w64LT Unexecuted instantiation: random.c:w64LT Unexecuted instantiation: ripemd.c:w64LT Unexecuted instantiation: rsa.c:w64LT Unexecuted instantiation: sha.c:w64LT Unexecuted instantiation: sha256.c:w64LT Unexecuted instantiation: sha3.c:w64LT Unexecuted instantiation: sha512.c:w64LT Unexecuted instantiation: siphash.c:w64LT Unexecuted instantiation: sm2.c:w64LT Unexecuted instantiation: sm3.c:w64LT Unexecuted instantiation: sm4.c:w64LT Unexecuted instantiation: wc_encrypt.c:w64LT Unexecuted instantiation: wolfmath.c:w64LT Unexecuted instantiation: ssl.c:w64LT Unexecuted instantiation: tls.c:w64LT Unexecuted instantiation: tls13.c:w64LT |
1042 | | |
1043 | | WC_MISC_STATIC WC_INLINE w64wrapper w64Sub(w64wrapper a, w64wrapper b) |
1044 | 0 | { |
1045 | 0 | a.n -= b.n; |
1046 | 0 | return a; |
1047 | 0 | } Unexecuted instantiation: aes.c:w64Sub Unexecuted instantiation: asn.c:w64Sub Unexecuted instantiation: camellia.c:w64Sub Unexecuted instantiation: chacha.c:w64Sub Unexecuted instantiation: chacha20_poly1305.c:w64Sub Unexecuted instantiation: cmac.c:w64Sub Unexecuted instantiation: coding.c:w64Sub Unexecuted instantiation: curve25519.c:w64Sub Unexecuted instantiation: curve448.c:w64Sub Unexecuted instantiation: des3.c:w64Sub Unexecuted instantiation: dh.c:w64Sub Unexecuted instantiation: ecc.c:w64Sub Unexecuted instantiation: eccsi.c:w64Sub Unexecuted instantiation: ed25519.c:w64Sub Unexecuted instantiation: ed448.c:w64Sub Unexecuted instantiation: fe_448.c:w64Sub Unexecuted instantiation: fe_operations.c:w64Sub Unexecuted instantiation: ge_448.c:w64Sub Unexecuted instantiation: ge_operations.c:w64Sub Unexecuted instantiation: hash.c:w64Sub Unexecuted instantiation: hmac.c:w64Sub Unexecuted instantiation: integer.c:w64Sub Unexecuted instantiation: kdf.c:w64Sub Unexecuted instantiation: md2.c:w64Sub Unexecuted instantiation: md4.c:w64Sub Unexecuted instantiation: md5.c:w64Sub Unexecuted instantiation: memory.c:w64Sub Unexecuted instantiation: poly1305.c:w64Sub Unexecuted instantiation: pwdbased.c:w64Sub Unexecuted instantiation: random.c:w64Sub Unexecuted instantiation: ripemd.c:w64Sub Unexecuted instantiation: rsa.c:w64Sub Unexecuted instantiation: sha.c:w64Sub Unexecuted instantiation: sha256.c:w64Sub Unexecuted instantiation: sha3.c:w64Sub Unexecuted instantiation: sha512.c:w64Sub Unexecuted instantiation: siphash.c:w64Sub Unexecuted instantiation: sm2.c:w64Sub Unexecuted instantiation: sm3.c:w64Sub Unexecuted instantiation: sm4.c:w64Sub Unexecuted instantiation: wc_encrypt.c:w64Sub Unexecuted instantiation: wolfmath.c:w64Sub Unexecuted instantiation: ssl.c:w64Sub Unexecuted instantiation: tls.c:w64Sub Unexecuted instantiation: tls13.c:w64Sub |
1048 | | |
1049 | | WC_MISC_STATIC WC_INLINE void w64Zero(w64wrapper *a) |
1050 | 0 | { |
1051 | 0 | a->n = 0; |
1052 | 0 | } Unexecuted instantiation: aes.c:w64Zero Unexecuted instantiation: asn.c:w64Zero Unexecuted instantiation: camellia.c:w64Zero Unexecuted instantiation: chacha.c:w64Zero Unexecuted instantiation: chacha20_poly1305.c:w64Zero Unexecuted instantiation: cmac.c:w64Zero Unexecuted instantiation: coding.c:w64Zero Unexecuted instantiation: curve25519.c:w64Zero Unexecuted instantiation: curve448.c:w64Zero Unexecuted instantiation: des3.c:w64Zero Unexecuted instantiation: dh.c:w64Zero Unexecuted instantiation: ecc.c:w64Zero Unexecuted instantiation: eccsi.c:w64Zero Unexecuted instantiation: ed25519.c:w64Zero Unexecuted instantiation: ed448.c:w64Zero Unexecuted instantiation: fe_448.c:w64Zero Unexecuted instantiation: fe_operations.c:w64Zero Unexecuted instantiation: ge_448.c:w64Zero Unexecuted instantiation: ge_operations.c:w64Zero Unexecuted instantiation: hash.c:w64Zero Unexecuted instantiation: hmac.c:w64Zero Unexecuted instantiation: integer.c:w64Zero Unexecuted instantiation: kdf.c:w64Zero Unexecuted instantiation: md2.c:w64Zero Unexecuted instantiation: md4.c:w64Zero Unexecuted instantiation: md5.c:w64Zero Unexecuted instantiation: memory.c:w64Zero Unexecuted instantiation: poly1305.c:w64Zero Unexecuted instantiation: pwdbased.c:w64Zero Unexecuted instantiation: random.c:w64Zero Unexecuted instantiation: ripemd.c:w64Zero Unexecuted instantiation: rsa.c:w64Zero Unexecuted instantiation: sha.c:w64Zero Unexecuted instantiation: sha256.c:w64Zero Unexecuted instantiation: sha3.c:w64Zero Unexecuted instantiation: sha512.c:w64Zero Unexecuted instantiation: siphash.c:w64Zero Unexecuted instantiation: sm2.c:w64Zero Unexecuted instantiation: sm3.c:w64Zero Unexecuted instantiation: sm4.c:w64Zero Unexecuted instantiation: wc_encrypt.c:w64Zero Unexecuted instantiation: wolfmath.c:w64Zero Unexecuted instantiation: ssl.c:w64Zero Unexecuted instantiation: tls.c:w64Zero Unexecuted instantiation: tls13.c:w64Zero |
1053 | | |
1054 | | WC_MISC_STATIC WC_INLINE w64wrapper w64ShiftRight(w64wrapper a, int shift) |
1055 | 0 | { |
1056 | 0 | a.n >>= shift; |
1057 | 0 | return a; |
1058 | 0 | } Unexecuted instantiation: aes.c:w64ShiftRight Unexecuted instantiation: asn.c:w64ShiftRight Unexecuted instantiation: camellia.c:w64ShiftRight Unexecuted instantiation: chacha.c:w64ShiftRight Unexecuted instantiation: chacha20_poly1305.c:w64ShiftRight Unexecuted instantiation: cmac.c:w64ShiftRight Unexecuted instantiation: coding.c:w64ShiftRight Unexecuted instantiation: curve25519.c:w64ShiftRight Unexecuted instantiation: curve448.c:w64ShiftRight Unexecuted instantiation: des3.c:w64ShiftRight Unexecuted instantiation: dh.c:w64ShiftRight Unexecuted instantiation: ecc.c:w64ShiftRight Unexecuted instantiation: eccsi.c:w64ShiftRight Unexecuted instantiation: ed25519.c:w64ShiftRight Unexecuted instantiation: ed448.c:w64ShiftRight Unexecuted instantiation: fe_448.c:w64ShiftRight Unexecuted instantiation: fe_operations.c:w64ShiftRight Unexecuted instantiation: ge_448.c:w64ShiftRight Unexecuted instantiation: ge_operations.c:w64ShiftRight Unexecuted instantiation: hash.c:w64ShiftRight Unexecuted instantiation: hmac.c:w64ShiftRight Unexecuted instantiation: integer.c:w64ShiftRight Unexecuted instantiation: kdf.c:w64ShiftRight Unexecuted instantiation: md2.c:w64ShiftRight Unexecuted instantiation: md4.c:w64ShiftRight Unexecuted instantiation: md5.c:w64ShiftRight Unexecuted instantiation: memory.c:w64ShiftRight Unexecuted instantiation: poly1305.c:w64ShiftRight Unexecuted instantiation: pwdbased.c:w64ShiftRight Unexecuted instantiation: random.c:w64ShiftRight Unexecuted instantiation: ripemd.c:w64ShiftRight Unexecuted instantiation: rsa.c:w64ShiftRight Unexecuted instantiation: sha.c:w64ShiftRight Unexecuted instantiation: sha256.c:w64ShiftRight Unexecuted instantiation: sha3.c:w64ShiftRight Unexecuted instantiation: sha512.c:w64ShiftRight Unexecuted instantiation: siphash.c:w64ShiftRight Unexecuted instantiation: sm2.c:w64ShiftRight Unexecuted instantiation: sm3.c:w64ShiftRight Unexecuted instantiation: sm4.c:w64ShiftRight Unexecuted instantiation: wc_encrypt.c:w64ShiftRight Unexecuted instantiation: wolfmath.c:w64ShiftRight Unexecuted instantiation: ssl.c:w64ShiftRight Unexecuted instantiation: tls.c:w64ShiftRight Unexecuted instantiation: tls13.c:w64ShiftRight Unexecuted instantiation: internal.c:w64ShiftRight |
1059 | | |
1060 | | WC_MISC_STATIC WC_INLINE w64wrapper w64ShiftLeft(w64wrapper a, int shift) |
1061 | 0 | { |
1062 | 0 | a.n <<= shift; |
1063 | 0 | return a; |
1064 | 0 | } Unexecuted instantiation: aes.c:w64ShiftLeft Unexecuted instantiation: asn.c:w64ShiftLeft Unexecuted instantiation: camellia.c:w64ShiftLeft Unexecuted instantiation: chacha.c:w64ShiftLeft Unexecuted instantiation: chacha20_poly1305.c:w64ShiftLeft Unexecuted instantiation: cmac.c:w64ShiftLeft Unexecuted instantiation: coding.c:w64ShiftLeft Unexecuted instantiation: curve25519.c:w64ShiftLeft Unexecuted instantiation: curve448.c:w64ShiftLeft Unexecuted instantiation: des3.c:w64ShiftLeft Unexecuted instantiation: dh.c:w64ShiftLeft Unexecuted instantiation: ecc.c:w64ShiftLeft Unexecuted instantiation: eccsi.c:w64ShiftLeft Unexecuted instantiation: ed25519.c:w64ShiftLeft Unexecuted instantiation: ed448.c:w64ShiftLeft Unexecuted instantiation: fe_448.c:w64ShiftLeft Unexecuted instantiation: fe_operations.c:w64ShiftLeft Unexecuted instantiation: ge_448.c:w64ShiftLeft Unexecuted instantiation: ge_operations.c:w64ShiftLeft Unexecuted instantiation: hash.c:w64ShiftLeft Unexecuted instantiation: hmac.c:w64ShiftLeft Unexecuted instantiation: integer.c:w64ShiftLeft Unexecuted instantiation: kdf.c:w64ShiftLeft Unexecuted instantiation: md2.c:w64ShiftLeft Unexecuted instantiation: md4.c:w64ShiftLeft Unexecuted instantiation: md5.c:w64ShiftLeft Unexecuted instantiation: memory.c:w64ShiftLeft Unexecuted instantiation: poly1305.c:w64ShiftLeft Unexecuted instantiation: pwdbased.c:w64ShiftLeft Unexecuted instantiation: random.c:w64ShiftLeft Unexecuted instantiation: ripemd.c:w64ShiftLeft Unexecuted instantiation: rsa.c:w64ShiftLeft Unexecuted instantiation: sha.c:w64ShiftLeft Unexecuted instantiation: sha256.c:w64ShiftLeft Unexecuted instantiation: sha3.c:w64ShiftLeft Unexecuted instantiation: sha512.c:w64ShiftLeft Unexecuted instantiation: siphash.c:w64ShiftLeft Unexecuted instantiation: sm2.c:w64ShiftLeft Unexecuted instantiation: sm3.c:w64ShiftLeft Unexecuted instantiation: sm4.c:w64ShiftLeft Unexecuted instantiation: wc_encrypt.c:w64ShiftLeft Unexecuted instantiation: wolfmath.c:w64ShiftLeft Unexecuted instantiation: ssl.c:w64ShiftLeft Unexecuted instantiation: tls.c:w64ShiftLeft Unexecuted instantiation: tls13.c:w64ShiftLeft Unexecuted instantiation: internal.c:w64ShiftLeft |
1065 | | |
1066 | | WC_MISC_STATIC WC_INLINE w64wrapper w64Mul(word32 a, word32 b) |
1067 | 0 | { |
1068 | 0 | w64wrapper ret; |
1069 | 0 | ret.n = (word64)a * (word64)b; |
1070 | 0 | return ret; |
1071 | 0 | } Unexecuted instantiation: aes.c:w64Mul Unexecuted instantiation: asn.c:w64Mul Unexecuted instantiation: camellia.c:w64Mul Unexecuted instantiation: chacha.c:w64Mul Unexecuted instantiation: chacha20_poly1305.c:w64Mul Unexecuted instantiation: cmac.c:w64Mul Unexecuted instantiation: coding.c:w64Mul Unexecuted instantiation: curve25519.c:w64Mul Unexecuted instantiation: curve448.c:w64Mul Unexecuted instantiation: des3.c:w64Mul Unexecuted instantiation: dh.c:w64Mul Unexecuted instantiation: ecc.c:w64Mul Unexecuted instantiation: eccsi.c:w64Mul Unexecuted instantiation: ed25519.c:w64Mul Unexecuted instantiation: ed448.c:w64Mul Unexecuted instantiation: fe_448.c:w64Mul Unexecuted instantiation: fe_operations.c:w64Mul Unexecuted instantiation: ge_448.c:w64Mul Unexecuted instantiation: ge_operations.c:w64Mul Unexecuted instantiation: hash.c:w64Mul Unexecuted instantiation: hmac.c:w64Mul Unexecuted instantiation: integer.c:w64Mul Unexecuted instantiation: kdf.c:w64Mul Unexecuted instantiation: md2.c:w64Mul Unexecuted instantiation: md4.c:w64Mul Unexecuted instantiation: md5.c:w64Mul Unexecuted instantiation: memory.c:w64Mul Unexecuted instantiation: poly1305.c:w64Mul Unexecuted instantiation: pwdbased.c:w64Mul Unexecuted instantiation: random.c:w64Mul Unexecuted instantiation: ripemd.c:w64Mul Unexecuted instantiation: rsa.c:w64Mul Unexecuted instantiation: sha.c:w64Mul Unexecuted instantiation: sha256.c:w64Mul Unexecuted instantiation: sha3.c:w64Mul Unexecuted instantiation: sha512.c:w64Mul Unexecuted instantiation: siphash.c:w64Mul Unexecuted instantiation: sm2.c:w64Mul Unexecuted instantiation: sm3.c:w64Mul Unexecuted instantiation: sm4.c:w64Mul Unexecuted instantiation: wc_encrypt.c:w64Mul Unexecuted instantiation: wolfmath.c:w64Mul Unexecuted instantiation: ssl.c:w64Mul Unexecuted instantiation: tls.c:w64Mul Unexecuted instantiation: tls13.c:w64Mul Unexecuted instantiation: internal.c:w64Mul |
1072 | | |
1073 | | #else |
1074 | | |
1075 | | WC_MISC_STATIC WC_INLINE void w64Increment(w64wrapper *n) |
1076 | | { |
1077 | | n->n[1]++; |
1078 | | if (n->n[1] == 0) |
1079 | | n->n[0]++; |
1080 | | } |
1081 | | |
1082 | | WC_MISC_STATIC WC_INLINE void w64Decrement(w64wrapper *n) { |
1083 | | if (n->n[1] == 0) |
1084 | | n->n[0]--; |
1085 | | n->n[1]--; |
1086 | | } |
1087 | | |
1088 | | WC_MISC_STATIC WC_INLINE byte w64Equal(w64wrapper a, w64wrapper b) |
1089 | | { |
1090 | | return (a.n[0] == b.n[0] && a.n[1] == b.n[1]); |
1091 | | } |
1092 | | |
1093 | | WC_MISC_STATIC WC_INLINE word32 w64GetLow32(w64wrapper n) { |
1094 | | return n.n[1]; |
1095 | | } |
1096 | | |
1097 | | WC_MISC_STATIC WC_INLINE word32 w64GetHigh32(w64wrapper n) { |
1098 | | return n.n[0]; |
1099 | | } |
1100 | | |
1101 | | WC_MISC_STATIC WC_INLINE void w64SetLow32(w64wrapper *n, word32 low) |
1102 | | { |
1103 | | n->n[1] = low; |
1104 | | } |
1105 | | |
1106 | | WC_MISC_STATIC WC_INLINE w64wrapper w64Add32(w64wrapper a, word32 b, byte *wrap) |
1107 | | { |
1108 | | a.n[1] += b; |
1109 | | if (a.n[1] < b) { |
1110 | | a.n[0]++; |
1111 | | if (wrap != NULL && a.n[0] == 0) |
1112 | | *wrap = 1; |
1113 | | } |
1114 | | |
1115 | | return a; |
1116 | | } |
1117 | | |
1118 | | WC_MISC_STATIC WC_INLINE w64wrapper w64Add(w64wrapper a, w64wrapper b, |
1119 | | byte *wrap) |
1120 | | { |
1121 | | a.n[1] += b.n[1]; |
1122 | | if (a.n[1] < b.n[1]) { |
1123 | | a.n[0]++; |
1124 | | if (wrap != NULL && a.n[0] == 0) |
1125 | | *wrap = 1; |
1126 | | } |
1127 | | |
1128 | | a.n[0] += b.n[0]; |
1129 | | if (wrap != NULL && a.n[0] < b.n[0]) { |
1130 | | *wrap = 1; |
1131 | | } |
1132 | | |
1133 | | return a; |
1134 | | } |
1135 | | |
1136 | | WC_MISC_STATIC WC_INLINE w64wrapper w64Sub32(w64wrapper a, word32 b, byte *wrap) |
1137 | | { |
1138 | | byte _underflow = 0; |
1139 | | if (a.n[1] < b) |
1140 | | _underflow = 1; |
1141 | | |
1142 | | a.n[1] -= b; |
1143 | | if (_underflow) { |
1144 | | if (a.n[0] == 0 && wrap != NULL) |
1145 | | *wrap = 1; |
1146 | | a.n[0]--; |
1147 | | } |
1148 | | |
1149 | | return a; |
1150 | | } |
1151 | | |
1152 | | WC_MISC_STATIC WC_INLINE w64wrapper w64Sub(w64wrapper a, w64wrapper b) |
1153 | | { |
1154 | | if (a.n[1] < b.n[1]) |
1155 | | a.n[0]--; |
1156 | | a.n[1] -= b.n[1]; |
1157 | | a.n[0] -= b.n[0]; |
1158 | | return a; |
1159 | | } |
1160 | | |
1161 | | WC_MISC_STATIC WC_INLINE void w64Zero(w64wrapper *a) |
1162 | | { |
1163 | | a->n[0] = a->n[1] = 0; |
1164 | | } |
1165 | | |
1166 | | WC_MISC_STATIC WC_INLINE byte w64GT(w64wrapper a, w64wrapper b) |
1167 | | { |
1168 | | if (a.n[0] > b.n[0]) |
1169 | | return 1; |
1170 | | if (a.n[0] == b.n[0]) |
1171 | | return a.n[1] > b.n[1]; |
1172 | | return 0; |
1173 | | } |
1174 | | |
1175 | | WC_MISC_STATIC WC_INLINE byte w64GTE(w64wrapper a, w64wrapper b) |
1176 | | { |
1177 | | if (a.n[0] > b.n[0]) |
1178 | | return 1; |
1179 | | if (a.n[0] == b.n[0]) |
1180 | | return a.n[1] >= b.n[1]; |
1181 | | return 0; |
1182 | | } |
1183 | | |
1184 | | WC_MISC_STATIC WC_INLINE byte w64IsZero(w64wrapper a) |
1185 | | { |
1186 | | return a.n[0] == 0 && a.n[1] == 0; |
1187 | | } |
1188 | | |
1189 | | WC_MISC_STATIC WC_INLINE void c64toa(const w64wrapper *a, byte *out) |
1190 | | { |
1191 | | #ifdef BIG_ENDIAN_ORDER |
1192 | | word32 *_out = (word32*)(out); |
1193 | | _out[0] = a->n[0]; |
1194 | | _out[1] = a->n[1]; |
1195 | | #else |
1196 | | c32toa(a->n[0], out); |
1197 | | c32toa(a->n[1], out + 4); |
1198 | | #endif /* BIG_ENDIAN_ORDER */ |
1199 | | } |
1200 | | |
1201 | | WC_MISC_STATIC WC_INLINE void ato64(const byte *in, w64wrapper *w64) |
1202 | | { |
1203 | | #ifdef BIG_ENDIAN_ORDER |
1204 | | const word32 *_in = (const word32*)(in); |
1205 | | w64->n[0] = *_in; |
1206 | | w64->n[1] = *(_in + 1); |
1207 | | #else |
1208 | | ato32(in, &w64->n[0]); |
1209 | | ato32(in + 4, &w64->n[1]); |
1210 | | #endif /* BIG_ENDIAN_ORDER */ |
1211 | | } |
1212 | | |
1213 | | WC_MISC_STATIC WC_INLINE w64wrapper w64From32(word32 hi, word32 lo) |
1214 | | { |
1215 | | w64wrapper w64; |
1216 | | w64.n[0] = hi; |
1217 | | w64.n[1] = lo; |
1218 | | return w64; |
1219 | | } |
1220 | | |
1221 | | WC_MISC_STATIC WC_INLINE byte w64LT(w64wrapper a, w64wrapper b) |
1222 | | { |
1223 | | if (a.n[0] < b.n[0]) |
1224 | | return 1; |
1225 | | if (a.n[0] == b.n[0]) |
1226 | | return a.n[1] < b.n[1]; |
1227 | | |
1228 | | return 0; |
1229 | | } |
1230 | | |
1231 | | WC_MISC_STATIC WC_INLINE w64wrapper w64ShiftRight(w64wrapper a, int shift) |
1232 | | { |
1233 | | if (shift < 32) { |
1234 | | a.n[1] = (a.n[1] >> shift) | (a.n[0] << (32 - shift)); |
1235 | | a.n[0] >>= shift; |
1236 | | } |
1237 | | else { |
1238 | | a.n[1] = a.n[0] >> (shift - 32); |
1239 | | a.n[0] = 0; |
1240 | | } |
1241 | | return a; |
1242 | | } |
1243 | | WC_MISC_STATIC WC_INLINE w64wrapper w64ShiftLeft(w64wrapper a, int shift) |
1244 | | { |
1245 | | if (shift < 32) { |
1246 | | a.n[0] = (a.n[0] << shift) | (a.n[1] >> (32 - shift)); |
1247 | | a.n[1] <<= shift; |
1248 | | } |
1249 | | else { |
1250 | | a.n[0] = a.n[1] << (shift - 32); |
1251 | | a.n[1] = 0; |
1252 | | } |
1253 | | return a; |
1254 | | } |
1255 | | |
1256 | | WC_MISC_STATIC WC_INLINE w64wrapper w64Mul(word32 a, word32 b) |
1257 | | { |
1258 | | w64wrapper ret; |
1259 | | word16 ltlA, ltlB, ltlC, ltlD; |
1260 | | word32 bigA, bigB, bigC, bigD; |
1261 | | |
1262 | | ltlA = a & 0xFFFF; |
1263 | | ltlB = (a >> 16) & 0xFFFF; |
1264 | | ltlC = b & 0xFFFF; |
1265 | | ltlD = (b >> 16) & 0xFFFF; |
1266 | | |
1267 | | bigA = (word32)ltlA * (word32)ltlC; |
1268 | | bigC = (word32)ltlB * (word32)ltlC; |
1269 | | bigD = (word32)ltlA * (word32)ltlD; |
1270 | | bigB = (word32)ltlB * (word32)ltlD; |
1271 | | |
1272 | | ret = w64From32(0, bigB); |
1273 | | ret = w64ShiftLeft(ret, 16); |
1274 | | ret = w64Add32(ret, bigD, NULL); |
1275 | | ret = w64Add32(ret, bigC, NULL); |
1276 | | ret = w64ShiftLeft(ret, 16); |
1277 | | return w64Add32(ret, bigA, NULL); |
1278 | | } |
1279 | | |
1280 | | #endif /* WORD64_AVAILABLE && !WOLFSSL_W64_WRAPPER_TEST */ |
1281 | | #endif /* WOLFSSL_W64_WRAPPER */ |
1282 | | |
1283 | | #if defined(HAVE_SESSION_TICKET) || !defined(NO_CERTS) || \ |
1284 | | !defined(NO_SESSION_CACHE) |
1285 | | /* Make a word from the front of random hash */ |
1286 | | WC_MISC_STATIC WC_INLINE word32 MakeWordFromHash(const byte* hashID) |
1287 | 5.96k | { |
1288 | 5.96k | return ((word32)hashID[0] << 24) | ((word32)hashID[1] << 16) | |
1289 | 5.96k | ((word32)hashID[2] << 8) | (word32)hashID[3]; |
1290 | 5.96k | } Unexecuted instantiation: aes.c:MakeWordFromHash Unexecuted instantiation: asn.c:MakeWordFromHash Unexecuted instantiation: camellia.c:MakeWordFromHash Unexecuted instantiation: chacha.c:MakeWordFromHash Unexecuted instantiation: chacha20_poly1305.c:MakeWordFromHash Unexecuted instantiation: cmac.c:MakeWordFromHash Unexecuted instantiation: coding.c:MakeWordFromHash Unexecuted instantiation: curve25519.c:MakeWordFromHash Unexecuted instantiation: curve448.c:MakeWordFromHash Unexecuted instantiation: des3.c:MakeWordFromHash Unexecuted instantiation: dh.c:MakeWordFromHash Unexecuted instantiation: ecc.c:MakeWordFromHash Unexecuted instantiation: eccsi.c:MakeWordFromHash Unexecuted instantiation: ed25519.c:MakeWordFromHash Unexecuted instantiation: ed448.c:MakeWordFromHash Unexecuted instantiation: fe_448.c:MakeWordFromHash Unexecuted instantiation: fe_operations.c:MakeWordFromHash Unexecuted instantiation: ge_448.c:MakeWordFromHash Unexecuted instantiation: ge_operations.c:MakeWordFromHash Unexecuted instantiation: hash.c:MakeWordFromHash Unexecuted instantiation: hmac.c:MakeWordFromHash Unexecuted instantiation: integer.c:MakeWordFromHash Unexecuted instantiation: kdf.c:MakeWordFromHash Unexecuted instantiation: md2.c:MakeWordFromHash Unexecuted instantiation: md4.c:MakeWordFromHash Unexecuted instantiation: md5.c:MakeWordFromHash Unexecuted instantiation: memory.c:MakeWordFromHash Unexecuted instantiation: poly1305.c:MakeWordFromHash Unexecuted instantiation: pwdbased.c:MakeWordFromHash Unexecuted instantiation: random.c:MakeWordFromHash Unexecuted instantiation: ripemd.c:MakeWordFromHash Unexecuted instantiation: rsa.c:MakeWordFromHash Unexecuted instantiation: sha.c:MakeWordFromHash Unexecuted instantiation: sha256.c:MakeWordFromHash Unexecuted instantiation: sha3.c:MakeWordFromHash Unexecuted instantiation: sha512.c:MakeWordFromHash Unexecuted instantiation: siphash.c:MakeWordFromHash Unexecuted instantiation: sm2.c:MakeWordFromHash Unexecuted instantiation: sm3.c:MakeWordFromHash Unexecuted instantiation: sm4.c:MakeWordFromHash Unexecuted instantiation: wc_encrypt.c:MakeWordFromHash Unexecuted instantiation: wolfmath.c:MakeWordFromHash Line | Count | Source | 1287 | 5.96k | { | 1288 | 5.96k | return ((word32)hashID[0] << 24) | ((word32)hashID[1] << 16) | | 1289 | 5.96k | ((word32)hashID[2] << 8) | (word32)hashID[3]; | 1290 | 5.96k | } |
Unexecuted instantiation: tls.c:MakeWordFromHash Unexecuted instantiation: tls13.c:MakeWordFromHash Unexecuted instantiation: internal.c:MakeWordFromHash |
1291 | | #endif /* HAVE_SESSION_TICKET || !NO_CERTS || !NO_SESSION_CACHE */ |
1292 | | |
1293 | | |
1294 | | #if !defined(WOLFCRYPT_ONLY) && !defined(NO_HASH_WRAPPER) && \ |
1295 | | (!defined(NO_SESSION_CACHE) || defined(HAVE_SESSION_TICKET)) |
1296 | | |
1297 | | #include <wolfssl/wolfcrypt/hash.h> |
1298 | | |
1299 | | /* some session IDs aren't random after all, let's make them random */ |
1300 | | WC_MISC_STATIC WC_INLINE word32 HashObject(const byte* o, word32 len, |
1301 | | int* error) |
1302 | 514 | { |
1303 | 514 | byte digest[WC_MAX_DIGEST_SIZE]; |
1304 | | |
1305 | 514 | #ifndef NO_MD5 |
1306 | 514 | *error = wc_Md5Hash(o, len, digest); |
1307 | | #elif !defined(NO_SHA) |
1308 | | *error = wc_ShaHash(o, len, digest); |
1309 | | #elif !defined(NO_SHA256) |
1310 | | *error = wc_Sha256Hash(o, len, digest); |
1311 | | #else |
1312 | | #error "We need a digest to hash the session IDs" |
1313 | | #endif |
1314 | | |
1315 | 514 | return *error == 0 ? MakeWordFromHash(digest) : 0; /* 0 on failure */ |
1316 | 514 | } Unexecuted instantiation: aes.c:HashObject Unexecuted instantiation: asn.c:HashObject Unexecuted instantiation: camellia.c:HashObject Unexecuted instantiation: chacha.c:HashObject Unexecuted instantiation: chacha20_poly1305.c:HashObject Unexecuted instantiation: cmac.c:HashObject Unexecuted instantiation: coding.c:HashObject Unexecuted instantiation: curve25519.c:HashObject Unexecuted instantiation: curve448.c:HashObject Unexecuted instantiation: des3.c:HashObject Unexecuted instantiation: dh.c:HashObject Unexecuted instantiation: ecc.c:HashObject Unexecuted instantiation: eccsi.c:HashObject Unexecuted instantiation: ed25519.c:HashObject Unexecuted instantiation: ed448.c:HashObject Unexecuted instantiation: fe_448.c:HashObject Unexecuted instantiation: fe_operations.c:HashObject Unexecuted instantiation: ge_448.c:HashObject Unexecuted instantiation: ge_operations.c:HashObject Unexecuted instantiation: hash.c:HashObject Unexecuted instantiation: hmac.c:HashObject Unexecuted instantiation: integer.c:HashObject Unexecuted instantiation: kdf.c:HashObject Unexecuted instantiation: md2.c:HashObject Unexecuted instantiation: md4.c:HashObject Unexecuted instantiation: md5.c:HashObject Unexecuted instantiation: memory.c:HashObject Unexecuted instantiation: poly1305.c:HashObject Unexecuted instantiation: pwdbased.c:HashObject Unexecuted instantiation: random.c:HashObject Unexecuted instantiation: ripemd.c:HashObject Unexecuted instantiation: rsa.c:HashObject Unexecuted instantiation: sha.c:HashObject Unexecuted instantiation: sha256.c:HashObject Unexecuted instantiation: sha3.c:HashObject Unexecuted instantiation: sha512.c:HashObject Unexecuted instantiation: siphash.c:HashObject Unexecuted instantiation: sm2.c:HashObject Unexecuted instantiation: sm3.c:HashObject Unexecuted instantiation: sm4.c:HashObject Unexecuted instantiation: wc_encrypt.c:HashObject Unexecuted instantiation: wolfmath.c:HashObject Line | Count | Source | 1302 | 514 | { | 1303 | 514 | byte digest[WC_MAX_DIGEST_SIZE]; | 1304 | | | 1305 | 514 | #ifndef NO_MD5 | 1306 | 514 | *error = wc_Md5Hash(o, len, digest); | 1307 | | #elif !defined(NO_SHA) | 1308 | | *error = wc_ShaHash(o, len, digest); | 1309 | | #elif !defined(NO_SHA256) | 1310 | | *error = wc_Sha256Hash(o, len, digest); | 1311 | | #else | 1312 | | #error "We need a digest to hash the session IDs" | 1313 | | #endif | 1314 | | | 1315 | 514 | return *error == 0 ? MakeWordFromHash(digest) : 0; /* 0 on failure */ | 1316 | 514 | } |
Unexecuted instantiation: tls.c:HashObject Unexecuted instantiation: tls13.c:HashObject Unexecuted instantiation: internal.c:HashObject |
1317 | | #endif /* WOLFCRYPT_ONLY && !NO_HASH_WRAPPER && |
1318 | | * (!NO_SESSION_CACHE || HAVE_SESSION_TICKET) */ |
1319 | | |
1320 | | WC_MISC_STATIC WC_INLINE char* CopyString(const char* src, int srcLen, |
1321 | 14.9k | void* heap, int type) { |
1322 | 14.9k | char* dst = NULL; |
1323 | | |
1324 | 14.9k | if (src == NULL) |
1325 | 9.37k | return NULL; |
1326 | | |
1327 | 5.54k | if (srcLen <= 0) |
1328 | 2.02k | srcLen = (int)XSTRLEN(src); |
1329 | | |
1330 | 5.54k | dst = (char*)XMALLOC((size_t)srcLen + 1, heap, type); |
1331 | 5.54k | if (dst != NULL) { |
1332 | 5.54k | XMEMCPY(dst, src, (size_t)srcLen); |
1333 | 5.54k | dst[srcLen] = '\0'; |
1334 | 5.54k | } |
1335 | | |
1336 | 5.54k | return dst; |
1337 | 14.9k | } Unexecuted instantiation: aes.c:CopyString Line | Count | Source | 1321 | 14.9k | void* heap, int type) { | 1322 | 14.9k | char* dst = NULL; | 1323 | | | 1324 | 14.9k | if (src == NULL) | 1325 | 9.37k | return NULL; | 1326 | | | 1327 | 5.54k | if (srcLen <= 0) | 1328 | 2.02k | srcLen = (int)XSTRLEN(src); | 1329 | | | 1330 | 5.54k | dst = (char*)XMALLOC((size_t)srcLen + 1, heap, type); | 1331 | 5.54k | if (dst != NULL) { | 1332 | 5.54k | XMEMCPY(dst, src, (size_t)srcLen); | 1333 | 5.54k | dst[srcLen] = '\0'; | 1334 | 5.54k | } | 1335 | | | 1336 | 5.54k | return dst; | 1337 | 14.9k | } |
Unexecuted instantiation: camellia.c:CopyString Unexecuted instantiation: chacha.c:CopyString Unexecuted instantiation: chacha20_poly1305.c:CopyString Unexecuted instantiation: cmac.c:CopyString Unexecuted instantiation: coding.c:CopyString Unexecuted instantiation: curve25519.c:CopyString Unexecuted instantiation: curve448.c:CopyString Unexecuted instantiation: des3.c:CopyString Unexecuted instantiation: dh.c:CopyString Unexecuted instantiation: ecc.c:CopyString Unexecuted instantiation: eccsi.c:CopyString Unexecuted instantiation: ed25519.c:CopyString Unexecuted instantiation: ed448.c:CopyString Unexecuted instantiation: fe_448.c:CopyString Unexecuted instantiation: fe_operations.c:CopyString Unexecuted instantiation: ge_448.c:CopyString Unexecuted instantiation: ge_operations.c:CopyString Unexecuted instantiation: hash.c:CopyString Unexecuted instantiation: hmac.c:CopyString Unexecuted instantiation: integer.c:CopyString Unexecuted instantiation: kdf.c:CopyString Unexecuted instantiation: md2.c:CopyString Unexecuted instantiation: md4.c:CopyString Unexecuted instantiation: md5.c:CopyString Unexecuted instantiation: memory.c:CopyString Unexecuted instantiation: poly1305.c:CopyString Unexecuted instantiation: pwdbased.c:CopyString Unexecuted instantiation: random.c:CopyString Unexecuted instantiation: ripemd.c:CopyString Unexecuted instantiation: rsa.c:CopyString Unexecuted instantiation: sha.c:CopyString Unexecuted instantiation: sha256.c:CopyString Unexecuted instantiation: sha3.c:CopyString Unexecuted instantiation: sha512.c:CopyString Unexecuted instantiation: siphash.c:CopyString Unexecuted instantiation: sm2.c:CopyString Unexecuted instantiation: sm3.c:CopyString Unexecuted instantiation: sm4.c:CopyString Unexecuted instantiation: wc_encrypt.c:CopyString Unexecuted instantiation: wolfmath.c:CopyString Unexecuted instantiation: ssl.c:CopyString Unexecuted instantiation: tls.c:CopyString Unexecuted instantiation: tls13.c:CopyString Unexecuted instantiation: internal.c:CopyString |
1338 | | |
1339 | | #endif /* !WOLFSSL_MISC_INCLUDED && !NO_INLINE */ |
1340 | | |
1341 | | #endif /* WOLF_CRYPT_MISC_C */ |