Coverage Report

Created: 2023-09-25 06:41

/src/openssl111/include/internal/constant_time.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright 2014-2019 The OpenSSL Project Authors. All Rights Reserved.
3
 *
4
 * Licensed under the OpenSSL license (the "License").  You may not use
5
 * this file except in compliance with the License.  You can obtain a copy
6
 * in the file LICENSE in the source distribution or at
7
 * https://www.openssl.org/source/license.html
8
 */
9
10
#ifndef OSSL_INTERNAL_CONSTANT_TIME_H
11
# define OSSL_INTERNAL_CONSTANT_TIME_H
12
13
# include <stdlib.h>
14
# include <string.h>
15
# include <openssl/e_os2.h>              /* For 'ossl_inline' */
16
17
/*-
18
 * The boolean methods return a bitmask of all ones (0xff...f) for true
19
 * and 0 for false. This is useful for choosing a value based on the result
20
 * of a conditional in constant time. For example,
21
 *      if (a < b) {
22
 *        c = a;
23
 *      } else {
24
 *        c = b;
25
 *      }
26
 * can be written as
27
 *      unsigned int lt = constant_time_lt(a, b);
28
 *      c = constant_time_select(lt, a, b);
29
 */
30
31
/* Returns the given value with the MSB copied to all the other bits. */
32
static ossl_inline unsigned int constant_time_msb(unsigned int a);
33
/* Convenience method for uint32_t. */
34
static ossl_inline uint32_t constant_time_msb_32(uint32_t a);
35
/* Convenience method for uint64_t. */
36
static ossl_inline uint64_t constant_time_msb_64(uint64_t a);
37
38
/* Returns 0xff..f if a < b and 0 otherwise. */
39
static ossl_inline unsigned int constant_time_lt(unsigned int a,
40
                                                 unsigned int b);
41
/* Convenience method for getting an 8-bit mask. */
42
static ossl_inline unsigned char constant_time_lt_8(unsigned int a,
43
                                                    unsigned int b);
44
/* Convenience method for uint64_t. */
45
static ossl_inline uint64_t constant_time_lt_64(uint64_t a, uint64_t b);
46
47
/* Returns 0xff..f if a >= b and 0 otherwise. */
48
static ossl_inline unsigned int constant_time_ge(unsigned int a,
49
                                                 unsigned int b);
50
/* Convenience method for getting an 8-bit mask. */
51
static ossl_inline unsigned char constant_time_ge_8(unsigned int a,
52
                                                    unsigned int b);
53
54
/* Returns 0xff..f if a == 0 and 0 otherwise. */
55
static ossl_inline unsigned int constant_time_is_zero(unsigned int a);
56
/* Convenience method for getting an 8-bit mask. */
57
static ossl_inline unsigned char constant_time_is_zero_8(unsigned int a);
58
/* Convenience method for getting a 32-bit mask. */
59
static ossl_inline uint32_t constant_time_is_zero_32(uint32_t a);
60
61
/* Returns 0xff..f if a == b and 0 otherwise. */
62
static ossl_inline unsigned int constant_time_eq(unsigned int a,
63
                                                 unsigned int b);
64
/* Convenience method for getting an 8-bit mask. */
65
static ossl_inline unsigned char constant_time_eq_8(unsigned int a,
66
                                                    unsigned int b);
67
/* Signed integers. */
68
static ossl_inline unsigned int constant_time_eq_int(int a, int b);
69
/* Convenience method for getting an 8-bit mask. */
70
static ossl_inline unsigned char constant_time_eq_int_8(int a, int b);
71
72
/*-
73
 * Returns (mask & a) | (~mask & b).
74
 *
75
 * When |mask| is all 1s or all 0s (as returned by the methods above),
76
 * the select methods return either |a| (if |mask| is nonzero) or |b|
77
 * (if |mask| is zero).
78
 */
79
static ossl_inline unsigned int constant_time_select(unsigned int mask,
80
                                                     unsigned int a,
81
                                                     unsigned int b);
82
/* Convenience method for unsigned chars. */
83
static ossl_inline unsigned char constant_time_select_8(unsigned char mask,
84
                                                        unsigned char a,
85
                                                        unsigned char b);
86
87
/* Convenience method for uint32_t. */
88
static ossl_inline uint32_t constant_time_select_32(uint32_t mask, uint32_t a,
89
                                                    uint32_t b);
90
91
/* Convenience method for uint64_t. */
92
static ossl_inline uint64_t constant_time_select_64(uint64_t mask, uint64_t a,
93
                                                    uint64_t b);
94
/* Convenience method for signed integers. */
95
static ossl_inline int constant_time_select_int(unsigned int mask, int a,
96
                                                int b);
97
98
99
static ossl_inline unsigned int constant_time_msb(unsigned int a)
100
12.5M
{
101
12.5M
    return 0 - (a >> (sizeof(a) * 8 - 1));
102
12.5M
}
ssl3_record.c:constant_time_msb
Line
Count
Source
100
10.5k
{
101
10.5k
    return 0 - (a >> (sizeof(a) * 8 - 1));
102
10.5k
}
Unexecuted instantiation: s3_cbc.c:constant_time_msb
statem_srvr.c:constant_time_msb
Line
Count
Source
100
315k
{
101
315k
    return 0 - (a >> (sizeof(a) * 8 - 1));
102
315k
}
bn_lib.c:constant_time_msb
Line
Count
Source
100
560k
{
101
560k
    return 0 - (a >> (sizeof(a) * 8 - 1));
102
560k
}
err.c:constant_time_msb
Line
Count
Source
100
1.50k
{
101
1.50k
    return 0 - (a >> (sizeof(a) * 8 - 1));
102
1.50k
}
e_aes_cbc_hmac_sha1.c:constant_time_msb
Line
Count
Source
100
36
{
101
36
    return 0 - (a >> (sizeof(a) * 8 - 1));
102
36
}
e_aes_cbc_hmac_sha256.c:constant_time_msb
Line
Count
Source
100
37
{
101
37
    return 0 - (a >> (sizeof(a) * 8 - 1));
102
37
}
rsa_ossl.c:constant_time_msb
Line
Count
Source
100
1.50k
{
101
1.50k
    return 0 - (a >> (sizeof(a) * 8 - 1));
102
1.50k
}
Unexecuted instantiation: rsa_pk1.c:constant_time_msb
Unexecuted instantiation: rsa_pmeth.c:constant_time_msb
Unexecuted instantiation: rsa_ssl.c:constant_time_msb
bn_exp.c:constant_time_msb
Line
Count
Source
100
11.6M
{
101
11.6M
    return 0 - (a >> (sizeof(a) * 8 - 1));
102
11.6M
}
Unexecuted instantiation: rsaz_exp.c:constant_time_msb
Unexecuted instantiation: curve448.c:constant_time_msb
Unexecuted instantiation: curve448_tables.c:constant_time_msb
Unexecuted instantiation: eddsa.c:constant_time_msb
Unexecuted instantiation: f_generic.c:constant_time_msb
Unexecuted instantiation: scalar.c:constant_time_msb
Unexecuted instantiation: rsa_oaep.c:constant_time_msb
Unexecuted instantiation: f_impl.c:constant_time_msb
103
104
105
static ossl_inline uint32_t constant_time_msb_32(uint32_t a)
106
159
{
107
159
    return 0 - (a >> 31);
108
159
}
Unexecuted instantiation: ssl3_record.c:constant_time_msb_32
Unexecuted instantiation: s3_cbc.c:constant_time_msb_32
Unexecuted instantiation: statem_srvr.c:constant_time_msb_32
Unexecuted instantiation: bn_lib.c:constant_time_msb_32
Unexecuted instantiation: err.c:constant_time_msb_32
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:constant_time_msb_32
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:constant_time_msb_32
Unexecuted instantiation: rsa_ossl.c:constant_time_msb_32
Unexecuted instantiation: rsa_pk1.c:constant_time_msb_32
Unexecuted instantiation: rsa_pmeth.c:constant_time_msb_32
Unexecuted instantiation: rsa_ssl.c:constant_time_msb_32
Unexecuted instantiation: bn_exp.c:constant_time_msb_32
Unexecuted instantiation: rsaz_exp.c:constant_time_msb_32
Unexecuted instantiation: curve448.c:constant_time_msb_32
Unexecuted instantiation: curve448_tables.c:constant_time_msb_32
Unexecuted instantiation: eddsa.c:constant_time_msb_32
f_generic.c:constant_time_msb_32
Line
Count
Source
106
159
{
107
159
    return 0 - (a >> 31);
108
159
}
Unexecuted instantiation: scalar.c:constant_time_msb_32
Unexecuted instantiation: rsa_oaep.c:constant_time_msb_32
Unexecuted instantiation: f_impl.c:constant_time_msb_32
109
110
static ossl_inline uint64_t constant_time_msb_64(uint64_t a)
111
0
{
112
0
    return 0 - (a >> 63);
113
0
}
Unexecuted instantiation: ssl3_record.c:constant_time_msb_64
Unexecuted instantiation: s3_cbc.c:constant_time_msb_64
Unexecuted instantiation: statem_srvr.c:constant_time_msb_64
Unexecuted instantiation: bn_lib.c:constant_time_msb_64
Unexecuted instantiation: err.c:constant_time_msb_64
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:constant_time_msb_64
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:constant_time_msb_64
Unexecuted instantiation: rsa_ossl.c:constant_time_msb_64
Unexecuted instantiation: rsa_pk1.c:constant_time_msb_64
Unexecuted instantiation: rsa_pmeth.c:constant_time_msb_64
Unexecuted instantiation: rsa_ssl.c:constant_time_msb_64
Unexecuted instantiation: bn_exp.c:constant_time_msb_64
Unexecuted instantiation: rsaz_exp.c:constant_time_msb_64
Unexecuted instantiation: curve448.c:constant_time_msb_64
Unexecuted instantiation: curve448_tables.c:constant_time_msb_64
Unexecuted instantiation: eddsa.c:constant_time_msb_64
Unexecuted instantiation: f_generic.c:constant_time_msb_64
Unexecuted instantiation: scalar.c:constant_time_msb_64
Unexecuted instantiation: rsa_oaep.c:constant_time_msb_64
Unexecuted instantiation: f_impl.c:constant_time_msb_64
114
115
static ossl_inline size_t constant_time_msb_s(size_t a)
116
518k
{
117
518k
    return 0 - (a >> (sizeof(a) * 8 - 1));
118
518k
}
ssl3_record.c:constant_time_msb_s
Line
Count
Source
116
237k
{
117
237k
    return 0 - (a >> (sizeof(a) * 8 - 1));
118
237k
}
s3_cbc.c:constant_time_msb_s
Line
Count
Source
116
224k
{
117
224k
    return 0 - (a >> (sizeof(a) * 8 - 1));
118
224k
}
Unexecuted instantiation: statem_srvr.c:constant_time_msb_s
Unexecuted instantiation: bn_lib.c:constant_time_msb_s
Unexecuted instantiation: err.c:constant_time_msb_s
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:constant_time_msb_s
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:constant_time_msb_s
Unexecuted instantiation: rsa_ossl.c:constant_time_msb_s
Unexecuted instantiation: rsa_pk1.c:constant_time_msb_s
Unexecuted instantiation: rsa_pmeth.c:constant_time_msb_s
Unexecuted instantiation: rsa_ssl.c:constant_time_msb_s
Unexecuted instantiation: bn_exp.c:constant_time_msb_s
Unexecuted instantiation: rsaz_exp.c:constant_time_msb_s
curve448.c:constant_time_msb_s
Line
Count
Source
116
56.1k
{
117
56.1k
    return 0 - (a >> (sizeof(a) * 8 - 1));
118
56.1k
}
Unexecuted instantiation: curve448_tables.c:constant_time_msb_s
Unexecuted instantiation: eddsa.c:constant_time_msb_s
Unexecuted instantiation: f_generic.c:constant_time_msb_s
Unexecuted instantiation: scalar.c:constant_time_msb_s
Unexecuted instantiation: rsa_oaep.c:constant_time_msb_s
Unexecuted instantiation: f_impl.c:constant_time_msb_s
119
120
static ossl_inline unsigned int constant_time_lt(unsigned int a,
121
                                                 unsigned int b)
122
73
{
123
73
    return constant_time_msb(a ^ ((a ^ b) | ((a - b) ^ b)));
124
73
}
Unexecuted instantiation: ssl3_record.c:constant_time_lt
Unexecuted instantiation: s3_cbc.c:constant_time_lt
Unexecuted instantiation: statem_srvr.c:constant_time_lt
Unexecuted instantiation: bn_lib.c:constant_time_lt
Unexecuted instantiation: err.c:constant_time_lt
e_aes_cbc_hmac_sha1.c:constant_time_lt
Line
Count
Source
122
36
{
123
36
    return constant_time_msb(a ^ ((a ^ b) | ((a - b) ^ b)));
124
36
}
e_aes_cbc_hmac_sha256.c:constant_time_lt
Line
Count
Source
122
37
{
123
37
    return constant_time_msb(a ^ ((a ^ b) | ((a - b) ^ b)));
124
37
}
Unexecuted instantiation: rsa_ossl.c:constant_time_lt
Unexecuted instantiation: rsa_pk1.c:constant_time_lt
Unexecuted instantiation: rsa_pmeth.c:constant_time_lt
Unexecuted instantiation: rsa_ssl.c:constant_time_lt
Unexecuted instantiation: bn_exp.c:constant_time_lt
Unexecuted instantiation: rsaz_exp.c:constant_time_lt
Unexecuted instantiation: curve448.c:constant_time_lt
Unexecuted instantiation: curve448_tables.c:constant_time_lt
Unexecuted instantiation: eddsa.c:constant_time_lt
Unexecuted instantiation: f_generic.c:constant_time_lt
Unexecuted instantiation: scalar.c:constant_time_lt
Unexecuted instantiation: rsa_oaep.c:constant_time_lt
Unexecuted instantiation: f_impl.c:constant_time_lt
125
126
static ossl_inline size_t constant_time_lt_s(size_t a, size_t b)
127
386k
{
128
386k
    return constant_time_msb_s(a ^ ((a ^ b) | ((a - b) ^ b)));
129
386k
}
ssl3_record.c:constant_time_lt_s
Line
Count
Source
127
165k
{
128
165k
    return constant_time_msb_s(a ^ ((a ^ b) | ((a - b) ^ b)));
129
165k
}
s3_cbc.c:constant_time_lt_s
Line
Count
Source
127
220k
{
128
220k
    return constant_time_msb_s(a ^ ((a ^ b) | ((a - b) ^ b)));
129
220k
}
Unexecuted instantiation: statem_srvr.c:constant_time_lt_s
Unexecuted instantiation: bn_lib.c:constant_time_lt_s
Unexecuted instantiation: err.c:constant_time_lt_s
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:constant_time_lt_s
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:constant_time_lt_s
Unexecuted instantiation: rsa_ossl.c:constant_time_lt_s
Unexecuted instantiation: rsa_pk1.c:constant_time_lt_s
Unexecuted instantiation: rsa_pmeth.c:constant_time_lt_s
Unexecuted instantiation: rsa_ssl.c:constant_time_lt_s
Unexecuted instantiation: bn_exp.c:constant_time_lt_s
Unexecuted instantiation: rsaz_exp.c:constant_time_lt_s
Unexecuted instantiation: curve448.c:constant_time_lt_s
Unexecuted instantiation: curve448_tables.c:constant_time_lt_s
Unexecuted instantiation: eddsa.c:constant_time_lt_s
Unexecuted instantiation: f_generic.c:constant_time_lt_s
Unexecuted instantiation: scalar.c:constant_time_lt_s
Unexecuted instantiation: rsa_oaep.c:constant_time_lt_s
Unexecuted instantiation: f_impl.c:constant_time_lt_s
130
131
static ossl_inline unsigned char constant_time_lt_8(unsigned int a,
132
                                                    unsigned int b)
133
0
{
134
0
    return (unsigned char)constant_time_lt(a, b);
135
0
}
Unexecuted instantiation: ssl3_record.c:constant_time_lt_8
Unexecuted instantiation: s3_cbc.c:constant_time_lt_8
Unexecuted instantiation: statem_srvr.c:constant_time_lt_8
Unexecuted instantiation: bn_lib.c:constant_time_lt_8
Unexecuted instantiation: err.c:constant_time_lt_8
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:constant_time_lt_8
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:constant_time_lt_8
Unexecuted instantiation: rsa_ossl.c:constant_time_lt_8
Unexecuted instantiation: rsa_pk1.c:constant_time_lt_8
Unexecuted instantiation: rsa_pmeth.c:constant_time_lt_8
Unexecuted instantiation: rsa_ssl.c:constant_time_lt_8
Unexecuted instantiation: bn_exp.c:constant_time_lt_8
Unexecuted instantiation: rsaz_exp.c:constant_time_lt_8
Unexecuted instantiation: curve448.c:constant_time_lt_8
Unexecuted instantiation: curve448_tables.c:constant_time_lt_8
Unexecuted instantiation: eddsa.c:constant_time_lt_8
Unexecuted instantiation: f_generic.c:constant_time_lt_8
Unexecuted instantiation: scalar.c:constant_time_lt_8
Unexecuted instantiation: rsa_oaep.c:constant_time_lt_8
Unexecuted instantiation: f_impl.c:constant_time_lt_8
136
137
static ossl_inline uint64_t constant_time_lt_64(uint64_t a, uint64_t b)
138
0
{
139
0
    return constant_time_msb_64(a ^ ((a ^ b) | ((a - b) ^ b)));
140
0
}
Unexecuted instantiation: ssl3_record.c:constant_time_lt_64
Unexecuted instantiation: s3_cbc.c:constant_time_lt_64
Unexecuted instantiation: statem_srvr.c:constant_time_lt_64
Unexecuted instantiation: bn_lib.c:constant_time_lt_64
Unexecuted instantiation: err.c:constant_time_lt_64
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:constant_time_lt_64
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:constant_time_lt_64
Unexecuted instantiation: rsa_ossl.c:constant_time_lt_64
Unexecuted instantiation: rsa_pk1.c:constant_time_lt_64
Unexecuted instantiation: rsa_pmeth.c:constant_time_lt_64
Unexecuted instantiation: rsa_ssl.c:constant_time_lt_64
Unexecuted instantiation: bn_exp.c:constant_time_lt_64
Unexecuted instantiation: rsaz_exp.c:constant_time_lt_64
Unexecuted instantiation: curve448.c:constant_time_lt_64
Unexecuted instantiation: curve448_tables.c:constant_time_lt_64
Unexecuted instantiation: eddsa.c:constant_time_lt_64
Unexecuted instantiation: f_generic.c:constant_time_lt_64
Unexecuted instantiation: scalar.c:constant_time_lt_64
Unexecuted instantiation: rsa_oaep.c:constant_time_lt_64
Unexecuted instantiation: f_impl.c:constant_time_lt_64
141
142
static ossl_inline unsigned int constant_time_ge(unsigned int a,
143
                                                 unsigned int b)
144
73
{
145
73
    return ~constant_time_lt(a, b);
146
73
}
Unexecuted instantiation: ssl3_record.c:constant_time_ge
Unexecuted instantiation: s3_cbc.c:constant_time_ge
Unexecuted instantiation: statem_srvr.c:constant_time_ge
Unexecuted instantiation: bn_lib.c:constant_time_ge
Unexecuted instantiation: err.c:constant_time_ge
e_aes_cbc_hmac_sha1.c:constant_time_ge
Line
Count
Source
144
36
{
145
36
    return ~constant_time_lt(a, b);
146
36
}
e_aes_cbc_hmac_sha256.c:constant_time_ge
Line
Count
Source
144
37
{
145
37
    return ~constant_time_lt(a, b);
146
37
}
Unexecuted instantiation: rsa_ossl.c:constant_time_ge
Unexecuted instantiation: rsa_pk1.c:constant_time_ge
Unexecuted instantiation: rsa_pmeth.c:constant_time_ge
Unexecuted instantiation: rsa_ssl.c:constant_time_ge
Unexecuted instantiation: bn_exp.c:constant_time_ge
Unexecuted instantiation: rsaz_exp.c:constant_time_ge
Unexecuted instantiation: curve448.c:constant_time_ge
Unexecuted instantiation: curve448_tables.c:constant_time_ge
Unexecuted instantiation: eddsa.c:constant_time_ge
Unexecuted instantiation: f_generic.c:constant_time_ge
Unexecuted instantiation: scalar.c:constant_time_ge
Unexecuted instantiation: rsa_oaep.c:constant_time_ge
Unexecuted instantiation: f_impl.c:constant_time_ge
147
148
static ossl_inline size_t constant_time_ge_s(size_t a, size_t b)
149
231k
{
150
231k
    return ~constant_time_lt_s(a, b);
151
231k
}
ssl3_record.c:constant_time_ge_s
Line
Count
Source
149
10.4k
{
150
10.4k
    return ~constant_time_lt_s(a, b);
151
10.4k
}
s3_cbc.c:constant_time_ge_s
Line
Count
Source
149
220k
{
150
220k
    return ~constant_time_lt_s(a, b);
151
220k
}
Unexecuted instantiation: statem_srvr.c:constant_time_ge_s
Unexecuted instantiation: bn_lib.c:constant_time_ge_s
Unexecuted instantiation: err.c:constant_time_ge_s
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:constant_time_ge_s
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:constant_time_ge_s
Unexecuted instantiation: rsa_ossl.c:constant_time_ge_s
Unexecuted instantiation: rsa_pk1.c:constant_time_ge_s
Unexecuted instantiation: rsa_pmeth.c:constant_time_ge_s
Unexecuted instantiation: rsa_ssl.c:constant_time_ge_s
Unexecuted instantiation: bn_exp.c:constant_time_ge_s
Unexecuted instantiation: rsaz_exp.c:constant_time_ge_s
Unexecuted instantiation: curve448.c:constant_time_ge_s
Unexecuted instantiation: curve448_tables.c:constant_time_ge_s
Unexecuted instantiation: eddsa.c:constant_time_ge_s
Unexecuted instantiation: f_generic.c:constant_time_ge_s
Unexecuted instantiation: scalar.c:constant_time_ge_s
Unexecuted instantiation: rsa_oaep.c:constant_time_ge_s
Unexecuted instantiation: f_impl.c:constant_time_ge_s
152
153
static ossl_inline unsigned char constant_time_ge_8(unsigned int a,
154
                                                    unsigned int b)
155
0
{
156
0
    return (unsigned char)constant_time_ge(a, b);
157
0
}
Unexecuted instantiation: ssl3_record.c:constant_time_ge_8
Unexecuted instantiation: s3_cbc.c:constant_time_ge_8
Unexecuted instantiation: statem_srvr.c:constant_time_ge_8
Unexecuted instantiation: bn_lib.c:constant_time_ge_8
Unexecuted instantiation: err.c:constant_time_ge_8
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:constant_time_ge_8
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:constant_time_ge_8
Unexecuted instantiation: rsa_ossl.c:constant_time_ge_8
Unexecuted instantiation: rsa_pk1.c:constant_time_ge_8
Unexecuted instantiation: rsa_pmeth.c:constant_time_ge_8
Unexecuted instantiation: rsa_ssl.c:constant_time_ge_8
Unexecuted instantiation: bn_exp.c:constant_time_ge_8
Unexecuted instantiation: rsaz_exp.c:constant_time_ge_8
Unexecuted instantiation: curve448.c:constant_time_ge_8
Unexecuted instantiation: curve448_tables.c:constant_time_ge_8
Unexecuted instantiation: eddsa.c:constant_time_ge_8
Unexecuted instantiation: f_generic.c:constant_time_ge_8
Unexecuted instantiation: scalar.c:constant_time_ge_8
Unexecuted instantiation: rsa_oaep.c:constant_time_ge_8
Unexecuted instantiation: f_impl.c:constant_time_ge_8
158
159
static ossl_inline unsigned char constant_time_ge_8_s(size_t a, size_t b)
160
230k
{
161
230k
    return (unsigned char)constant_time_ge_s(a, b);
162
230k
}
ssl3_record.c:constant_time_ge_8_s
Line
Count
Source
160
9.47k
{
161
9.47k
    return (unsigned char)constant_time_ge_s(a, b);
162
9.47k
}
s3_cbc.c:constant_time_ge_8_s
Line
Count
Source
160
220k
{
161
220k
    return (unsigned char)constant_time_ge_s(a, b);
162
220k
}
Unexecuted instantiation: statem_srvr.c:constant_time_ge_8_s
Unexecuted instantiation: bn_lib.c:constant_time_ge_8_s
Unexecuted instantiation: err.c:constant_time_ge_8_s
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:constant_time_ge_8_s
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:constant_time_ge_8_s
Unexecuted instantiation: rsa_ossl.c:constant_time_ge_8_s
Unexecuted instantiation: rsa_pk1.c:constant_time_ge_8_s
Unexecuted instantiation: rsa_pmeth.c:constant_time_ge_8_s
Unexecuted instantiation: rsa_ssl.c:constant_time_ge_8_s
Unexecuted instantiation: bn_exp.c:constant_time_ge_8_s
Unexecuted instantiation: rsaz_exp.c:constant_time_ge_8_s
Unexecuted instantiation: curve448.c:constant_time_ge_8_s
Unexecuted instantiation: curve448_tables.c:constant_time_ge_8_s
Unexecuted instantiation: eddsa.c:constant_time_ge_8_s
Unexecuted instantiation: f_generic.c:constant_time_ge_8_s
Unexecuted instantiation: scalar.c:constant_time_ge_8_s
Unexecuted instantiation: rsa_oaep.c:constant_time_ge_8_s
Unexecuted instantiation: f_impl.c:constant_time_ge_8_s
163
164
static ossl_inline unsigned int constant_time_is_zero(unsigned int a)
165
12.4M
{
166
12.4M
    return constant_time_msb(~a & (a - 1));
167
12.4M
}
ssl3_record.c:constant_time_is_zero
Line
Count
Source
165
10.5k
{
166
10.5k
    return constant_time_msb(~a & (a - 1));
167
10.5k
}
Unexecuted instantiation: s3_cbc.c:constant_time_is_zero
statem_srvr.c:constant_time_is_zero
Line
Count
Source
165
315k
{
166
315k
    return constant_time_msb(~a & (a - 1));
167
315k
}
bn_lib.c:constant_time_is_zero
Line
Count
Source
165
427k
{
166
427k
    return constant_time_msb(~a & (a - 1));
167
427k
}
err.c:constant_time_is_zero
Line
Count
Source
165
1.50k
{
166
1.50k
    return constant_time_msb(~a & (a - 1));
167
1.50k
}
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:constant_time_is_zero
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:constant_time_is_zero
Unexecuted instantiation: rsa_ossl.c:constant_time_is_zero
Unexecuted instantiation: rsa_pk1.c:constant_time_is_zero
Unexecuted instantiation: rsa_pmeth.c:constant_time_is_zero
Unexecuted instantiation: rsa_ssl.c:constant_time_is_zero
bn_exp.c:constant_time_is_zero
Line
Count
Source
165
11.6M
{
166
11.6M
    return constant_time_msb(~a & (a - 1));
167
11.6M
}
Unexecuted instantiation: rsaz_exp.c:constant_time_is_zero
Unexecuted instantiation: curve448.c:constant_time_is_zero
Unexecuted instantiation: curve448_tables.c:constant_time_is_zero
Unexecuted instantiation: eddsa.c:constant_time_is_zero
Unexecuted instantiation: f_generic.c:constant_time_is_zero
Unexecuted instantiation: scalar.c:constant_time_is_zero
Unexecuted instantiation: rsa_oaep.c:constant_time_is_zero
Unexecuted instantiation: f_impl.c:constant_time_is_zero
168
169
static ossl_inline size_t constant_time_is_zero_s(size_t a)
170
131k
{
171
131k
    return constant_time_msb_s(~a & (a - 1));
172
131k
}
ssl3_record.c:constant_time_is_zero_s
Line
Count
Source
170
72.2k
{
171
72.2k
    return constant_time_msb_s(~a & (a - 1));
172
72.2k
}
s3_cbc.c:constant_time_is_zero_s
Line
Count
Source
170
3.37k
{
171
3.37k
    return constant_time_msb_s(~a & (a - 1));
172
3.37k
}
Unexecuted instantiation: statem_srvr.c:constant_time_is_zero_s
Unexecuted instantiation: bn_lib.c:constant_time_is_zero_s
Unexecuted instantiation: err.c:constant_time_is_zero_s
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:constant_time_is_zero_s
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:constant_time_is_zero_s
Unexecuted instantiation: rsa_ossl.c:constant_time_is_zero_s
Unexecuted instantiation: rsa_pk1.c:constant_time_is_zero_s
Unexecuted instantiation: rsa_pmeth.c:constant_time_is_zero_s
Unexecuted instantiation: rsa_ssl.c:constant_time_is_zero_s
Unexecuted instantiation: bn_exp.c:constant_time_is_zero_s
Unexecuted instantiation: rsaz_exp.c:constant_time_is_zero_s
curve448.c:constant_time_is_zero_s
Line
Count
Source
170
56.1k
{
171
56.1k
    return constant_time_msb_s(~a & (a - 1));
172
56.1k
}
Unexecuted instantiation: curve448_tables.c:constant_time_is_zero_s
Unexecuted instantiation: eddsa.c:constant_time_is_zero_s
Unexecuted instantiation: f_generic.c:constant_time_is_zero_s
Unexecuted instantiation: scalar.c:constant_time_is_zero_s
Unexecuted instantiation: rsa_oaep.c:constant_time_is_zero_s
Unexecuted instantiation: f_impl.c:constant_time_is_zero_s
173
174
static ossl_inline unsigned char constant_time_is_zero_8(unsigned int a)
175
309k
{
176
309k
    return (unsigned char)constant_time_is_zero(a);
177
309k
}
Unexecuted instantiation: ssl3_record.c:constant_time_is_zero_8
Unexecuted instantiation: s3_cbc.c:constant_time_is_zero_8
statem_srvr.c:constant_time_is_zero_8
Line
Count
Source
175
309k
{
176
309k
    return (unsigned char)constant_time_is_zero(a);
177
309k
}
Unexecuted instantiation: bn_lib.c:constant_time_is_zero_8
Unexecuted instantiation: err.c:constant_time_is_zero_8
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:constant_time_is_zero_8
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:constant_time_is_zero_8
Unexecuted instantiation: rsa_ossl.c:constant_time_is_zero_8
Unexecuted instantiation: rsa_pk1.c:constant_time_is_zero_8
Unexecuted instantiation: rsa_pmeth.c:constant_time_is_zero_8
Unexecuted instantiation: rsa_ssl.c:constant_time_is_zero_8
Unexecuted instantiation: bn_exp.c:constant_time_is_zero_8
Unexecuted instantiation: rsaz_exp.c:constant_time_is_zero_8
Unexecuted instantiation: curve448.c:constant_time_is_zero_8
Unexecuted instantiation: curve448_tables.c:constant_time_is_zero_8
Unexecuted instantiation: eddsa.c:constant_time_is_zero_8
Unexecuted instantiation: f_generic.c:constant_time_is_zero_8
Unexecuted instantiation: scalar.c:constant_time_is_zero_8
Unexecuted instantiation: rsa_oaep.c:constant_time_is_zero_8
Unexecuted instantiation: f_impl.c:constant_time_is_zero_8
178
179
static ossl_inline uint32_t constant_time_is_zero_32(uint32_t a)
180
159
{
181
159
    return constant_time_msb_32(~a & (a - 1));
182
159
}
Unexecuted instantiation: ssl3_record.c:constant_time_is_zero_32
Unexecuted instantiation: s3_cbc.c:constant_time_is_zero_32
Unexecuted instantiation: statem_srvr.c:constant_time_is_zero_32
Unexecuted instantiation: bn_lib.c:constant_time_is_zero_32
Unexecuted instantiation: err.c:constant_time_is_zero_32
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:constant_time_is_zero_32
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:constant_time_is_zero_32
Unexecuted instantiation: rsa_ossl.c:constant_time_is_zero_32
Unexecuted instantiation: rsa_pk1.c:constant_time_is_zero_32
Unexecuted instantiation: rsa_pmeth.c:constant_time_is_zero_32
Unexecuted instantiation: rsa_ssl.c:constant_time_is_zero_32
Unexecuted instantiation: bn_exp.c:constant_time_is_zero_32
Unexecuted instantiation: rsaz_exp.c:constant_time_is_zero_32
Unexecuted instantiation: curve448.c:constant_time_is_zero_32
Unexecuted instantiation: curve448_tables.c:constant_time_is_zero_32
Unexecuted instantiation: eddsa.c:constant_time_is_zero_32
f_generic.c:constant_time_is_zero_32
Line
Count
Source
180
159
{
181
159
    return constant_time_msb_32(~a & (a - 1));
182
159
}
Unexecuted instantiation: scalar.c:constant_time_is_zero_32
Unexecuted instantiation: rsa_oaep.c:constant_time_is_zero_32
Unexecuted instantiation: f_impl.c:constant_time_is_zero_32
183
184
static ossl_inline unsigned int constant_time_eq(unsigned int a,
185
                                                 unsigned int b)
186
12.1M
{
187
12.1M
    return constant_time_is_zero(a ^ b);
188
12.1M
}
ssl3_record.c:constant_time_eq
Line
Count
Source
186
10.5k
{
187
10.5k
    return constant_time_is_zero(a ^ b);
188
10.5k
}
Unexecuted instantiation: s3_cbc.c:constant_time_eq
statem_srvr.c:constant_time_eq
Line
Count
Source
186
6.01k
{
187
6.01k
    return constant_time_is_zero(a ^ b);
188
6.01k
}
bn_lib.c:constant_time_eq
Line
Count
Source
186
427k
{
187
427k
    return constant_time_is_zero(a ^ b);
188
427k
}
err.c:constant_time_eq
Line
Count
Source
186
1.50k
{
187
1.50k
    return constant_time_is_zero(a ^ b);
188
1.50k
}
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:constant_time_eq
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:constant_time_eq
Unexecuted instantiation: rsa_ossl.c:constant_time_eq
Unexecuted instantiation: rsa_pk1.c:constant_time_eq
Unexecuted instantiation: rsa_pmeth.c:constant_time_eq
Unexecuted instantiation: rsa_ssl.c:constant_time_eq
bn_exp.c:constant_time_eq
Line
Count
Source
186
11.6M
{
187
11.6M
    return constant_time_is_zero(a ^ b);
188
11.6M
}
Unexecuted instantiation: rsaz_exp.c:constant_time_eq
Unexecuted instantiation: curve448.c:constant_time_eq
Unexecuted instantiation: curve448_tables.c:constant_time_eq
Unexecuted instantiation: eddsa.c:constant_time_eq
Unexecuted instantiation: f_generic.c:constant_time_eq
Unexecuted instantiation: scalar.c:constant_time_eq
Unexecuted instantiation: rsa_oaep.c:constant_time_eq
Unexecuted instantiation: f_impl.c:constant_time_eq
189
190
static ossl_inline size_t constant_time_eq_s(size_t a, size_t b)
191
75.6k
{
192
75.6k
    return constant_time_is_zero_s(a ^ b);
193
75.6k
}
ssl3_record.c:constant_time_eq_s
Line
Count
Source
191
72.2k
{
192
72.2k
    return constant_time_is_zero_s(a ^ b);
193
72.2k
}
s3_cbc.c:constant_time_eq_s
Line
Count
Source
191
3.37k
{
192
3.37k
    return constant_time_is_zero_s(a ^ b);
193
3.37k
}
Unexecuted instantiation: statem_srvr.c:constant_time_eq_s
Unexecuted instantiation: bn_lib.c:constant_time_eq_s
Unexecuted instantiation: err.c:constant_time_eq_s
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:constant_time_eq_s
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:constant_time_eq_s
Unexecuted instantiation: rsa_ossl.c:constant_time_eq_s
Unexecuted instantiation: rsa_pk1.c:constant_time_eq_s
Unexecuted instantiation: rsa_pmeth.c:constant_time_eq_s
Unexecuted instantiation: rsa_ssl.c:constant_time_eq_s
Unexecuted instantiation: bn_exp.c:constant_time_eq_s
Unexecuted instantiation: rsaz_exp.c:constant_time_eq_s
Unexecuted instantiation: curve448.c:constant_time_eq_s
Unexecuted instantiation: curve448_tables.c:constant_time_eq_s
Unexecuted instantiation: eddsa.c:constant_time_eq_s
Unexecuted instantiation: f_generic.c:constant_time_eq_s
Unexecuted instantiation: scalar.c:constant_time_eq_s
Unexecuted instantiation: rsa_oaep.c:constant_time_eq_s
Unexecuted instantiation: f_impl.c:constant_time_eq_s
194
195
static ossl_inline unsigned char constant_time_eq_8(unsigned int a,
196
                                                    unsigned int b)
197
16.5k
{
198
16.5k
    return (unsigned char)constant_time_eq(a, b);
199
16.5k
}
ssl3_record.c:constant_time_eq_8
Line
Count
Source
197
10.4k
{
198
10.4k
    return (unsigned char)constant_time_eq(a, b);
199
10.4k
}
Unexecuted instantiation: s3_cbc.c:constant_time_eq_8
statem_srvr.c:constant_time_eq_8
Line
Count
Source
197
6.01k
{
198
6.01k
    return (unsigned char)constant_time_eq(a, b);
199
6.01k
}
Unexecuted instantiation: bn_lib.c:constant_time_eq_8
Unexecuted instantiation: err.c:constant_time_eq_8
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:constant_time_eq_8
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:constant_time_eq_8
Unexecuted instantiation: rsa_ossl.c:constant_time_eq_8
Unexecuted instantiation: rsa_pk1.c:constant_time_eq_8
Unexecuted instantiation: rsa_pmeth.c:constant_time_eq_8
Unexecuted instantiation: rsa_ssl.c:constant_time_eq_8
Unexecuted instantiation: bn_exp.c:constant_time_eq_8
Unexecuted instantiation: rsaz_exp.c:constant_time_eq_8
Unexecuted instantiation: curve448.c:constant_time_eq_8
Unexecuted instantiation: curve448_tables.c:constant_time_eq_8
Unexecuted instantiation: eddsa.c:constant_time_eq_8
Unexecuted instantiation: f_generic.c:constant_time_eq_8
Unexecuted instantiation: scalar.c:constant_time_eq_8
Unexecuted instantiation: rsa_oaep.c:constant_time_eq_8
Unexecuted instantiation: f_impl.c:constant_time_eq_8
200
201
static ossl_inline unsigned char constant_time_eq_8_s(size_t a, size_t b)
202
3.37k
{
203
3.37k
    return (unsigned char)constant_time_eq_s(a, b);
204
3.37k
}
Unexecuted instantiation: ssl3_record.c:constant_time_eq_8_s
s3_cbc.c:constant_time_eq_8_s
Line
Count
Source
202
3.37k
{
203
3.37k
    return (unsigned char)constant_time_eq_s(a, b);
204
3.37k
}
Unexecuted instantiation: statem_srvr.c:constant_time_eq_8_s
Unexecuted instantiation: bn_lib.c:constant_time_eq_8_s
Unexecuted instantiation: err.c:constant_time_eq_8_s
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:constant_time_eq_8_s
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:constant_time_eq_8_s
Unexecuted instantiation: rsa_ossl.c:constant_time_eq_8_s
Unexecuted instantiation: rsa_pk1.c:constant_time_eq_8_s
Unexecuted instantiation: rsa_pmeth.c:constant_time_eq_8_s
Unexecuted instantiation: rsa_ssl.c:constant_time_eq_8_s
Unexecuted instantiation: bn_exp.c:constant_time_eq_8_s
Unexecuted instantiation: rsaz_exp.c:constant_time_eq_8_s
Unexecuted instantiation: curve448.c:constant_time_eq_8_s
Unexecuted instantiation: curve448_tables.c:constant_time_eq_8_s
Unexecuted instantiation: eddsa.c:constant_time_eq_8_s
Unexecuted instantiation: f_generic.c:constant_time_eq_8_s
Unexecuted instantiation: scalar.c:constant_time_eq_8_s
Unexecuted instantiation: rsa_oaep.c:constant_time_eq_8_s
Unexecuted instantiation: f_impl.c:constant_time_eq_8_s
205
206
static ossl_inline unsigned int constant_time_eq_int(int a, int b)
207
12.1M
{
208
12.1M
    return constant_time_eq((unsigned)(a), (unsigned)(b));
209
12.1M
}
ssl3_record.c:constant_time_eq_int
Line
Count
Source
207
49
{
208
49
    return constant_time_eq((unsigned)(a), (unsigned)(b));
209
49
}
Unexecuted instantiation: s3_cbc.c:constant_time_eq_int
Unexecuted instantiation: statem_srvr.c:constant_time_eq_int
bn_lib.c:constant_time_eq_int
Line
Count
Source
207
427k
{
208
427k
    return constant_time_eq((unsigned)(a), (unsigned)(b));
209
427k
}
err.c:constant_time_eq_int
Line
Count
Source
207
1.50k
{
208
1.50k
    return constant_time_eq((unsigned)(a), (unsigned)(b));
209
1.50k
}
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:constant_time_eq_int
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:constant_time_eq_int
Unexecuted instantiation: rsa_ossl.c:constant_time_eq_int
Unexecuted instantiation: rsa_pk1.c:constant_time_eq_int
Unexecuted instantiation: rsa_pmeth.c:constant_time_eq_int
Unexecuted instantiation: rsa_ssl.c:constant_time_eq_int
bn_exp.c:constant_time_eq_int
Line
Count
Source
207
11.6M
{
208
11.6M
    return constant_time_eq((unsigned)(a), (unsigned)(b));
209
11.6M
}
Unexecuted instantiation: rsaz_exp.c:constant_time_eq_int
Unexecuted instantiation: curve448.c:constant_time_eq_int
Unexecuted instantiation: curve448_tables.c:constant_time_eq_int
Unexecuted instantiation: eddsa.c:constant_time_eq_int
Unexecuted instantiation: f_generic.c:constant_time_eq_int
Unexecuted instantiation: scalar.c:constant_time_eq_int
Unexecuted instantiation: rsa_oaep.c:constant_time_eq_int
Unexecuted instantiation: f_impl.c:constant_time_eq_int
210
211
static ossl_inline unsigned char constant_time_eq_int_8(int a, int b)
212
3.00k
{
213
3.00k
    return constant_time_eq_8((unsigned)(a), (unsigned)(b));
214
3.00k
}
Unexecuted instantiation: ssl3_record.c:constant_time_eq_int_8
Unexecuted instantiation: s3_cbc.c:constant_time_eq_int_8
statem_srvr.c:constant_time_eq_int_8
Line
Count
Source
212
3.00k
{
213
3.00k
    return constant_time_eq_8((unsigned)(a), (unsigned)(b));
214
3.00k
}
Unexecuted instantiation: bn_lib.c:constant_time_eq_int_8
Unexecuted instantiation: err.c:constant_time_eq_int_8
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:constant_time_eq_int_8
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:constant_time_eq_int_8
Unexecuted instantiation: rsa_ossl.c:constant_time_eq_int_8
Unexecuted instantiation: rsa_pk1.c:constant_time_eq_int_8
Unexecuted instantiation: rsa_pmeth.c:constant_time_eq_int_8
Unexecuted instantiation: rsa_ssl.c:constant_time_eq_int_8
Unexecuted instantiation: bn_exp.c:constant_time_eq_int_8
Unexecuted instantiation: rsaz_exp.c:constant_time_eq_int_8
Unexecuted instantiation: curve448.c:constant_time_eq_int_8
Unexecuted instantiation: curve448_tables.c:constant_time_eq_int_8
Unexecuted instantiation: eddsa.c:constant_time_eq_int_8
Unexecuted instantiation: f_generic.c:constant_time_eq_int_8
Unexecuted instantiation: scalar.c:constant_time_eq_int_8
Unexecuted instantiation: rsa_oaep.c:constant_time_eq_int_8
Unexecuted instantiation: f_impl.c:constant_time_eq_int_8
215
216
/*
217
 * Returns the value unmodified, but avoids optimizations.
218
 * The barriers prevent the compiler from narrowing down the
219
 * possible value range of the mask and ~mask in the select
220
 * statements, which avoids the recognition of the select
221
 * and turning it into a conditional load or branch.
222
 */
223
static ossl_inline unsigned int value_barrier(unsigned int a)
224
22.2M
{
225
22.2M
#if !defined(OPENSSL_NO_ASM) && defined(__GNUC__)
226
22.2M
    unsigned int r;
227
22.2M
    __asm__("" : "=r"(r) : "0"(a));
228
#else
229
    volatile unsigned int r = a;
230
#endif
231
22.2M
    return r;
232
22.2M
}
ssl3_record.c:value_barrier
Line
Count
Source
224
22.1k
{
225
22.1k
#if !defined(OPENSSL_NO_ASM) && defined(__GNUC__)
226
22.1k
    unsigned int r;
227
22.1k
    __asm__("" : "=r"(r) : "0"(a));
228
#else
229
    volatile unsigned int r = a;
230
#endif
231
22.1k
    return r;
232
22.1k
}
s3_cbc.c:value_barrier
Line
Count
Source
224
248k
{
225
248k
#if !defined(OPENSSL_NO_ASM) && defined(__GNUC__)
226
248k
    unsigned int r;
227
248k
    __asm__("" : "=r"(r) : "0"(a));
228
#else
229
    volatile unsigned int r = a;
230
#endif
231
248k
    return r;
232
248k
}
statem_srvr.c:value_barrier
Line
Count
Source
224
144k
{
225
144k
#if !defined(OPENSSL_NO_ASM) && defined(__GNUC__)
226
144k
    unsigned int r;
227
144k
    __asm__("" : "=r"(r) : "0"(a));
228
#else
229
    volatile unsigned int r = a;
230
#endif
231
144k
    return r;
232
144k
}
bn_lib.c:value_barrier
Line
Count
Source
224
269k
{
225
269k
#if !defined(OPENSSL_NO_ASM) && defined(__GNUC__)
226
269k
    unsigned int r;
227
269k
    __asm__("" : "=r"(r) : "0"(a));
228
#else
229
    volatile unsigned int r = a;
230
#endif
231
269k
    return r;
232
269k
}
err.c:value_barrier
Line
Count
Source
224
3.00k
{
225
3.00k
#if !defined(OPENSSL_NO_ASM) && defined(__GNUC__)
226
3.00k
    unsigned int r;
227
3.00k
    __asm__("" : "=r"(r) : "0"(a));
228
#else
229
    volatile unsigned int r = a;
230
#endif
231
3.00k
    return r;
232
3.00k
}
e_aes_cbc_hmac_sha1.c:value_barrier
Line
Count
Source
224
72
{
225
72
#if !defined(OPENSSL_NO_ASM) && defined(__GNUC__)
226
72
    unsigned int r;
227
72
    __asm__("" : "=r"(r) : "0"(a));
228
#else
229
    volatile unsigned int r = a;
230
#endif
231
72
    return r;
232
72
}
e_aes_cbc_hmac_sha256.c:value_barrier
Line
Count
Source
224
74
{
225
74
#if !defined(OPENSSL_NO_ASM) && defined(__GNUC__)
226
74
    unsigned int r;
227
74
    __asm__("" : "=r"(r) : "0"(a));
228
#else
229
    volatile unsigned int r = a;
230
#endif
231
74
    return r;
232
74
}
Unexecuted instantiation: rsa_ossl.c:value_barrier
Unexecuted instantiation: rsa_pk1.c:value_barrier
Unexecuted instantiation: rsa_pmeth.c:value_barrier
Unexecuted instantiation: rsa_ssl.c:value_barrier
Unexecuted instantiation: bn_exp.c:value_barrier
Unexecuted instantiation: rsaz_exp.c:value_barrier
curve448.c:value_barrier
Line
Count
Source
224
21.5M
{
225
21.5M
#if !defined(OPENSSL_NO_ASM) && defined(__GNUC__)
226
21.5M
    unsigned int r;
227
21.5M
    __asm__("" : "=r"(r) : "0"(a));
228
#else
229
    volatile unsigned int r = a;
230
#endif
231
21.5M
    return r;
232
21.5M
}
Unexecuted instantiation: curve448_tables.c:value_barrier
Unexecuted instantiation: eddsa.c:value_barrier
Unexecuted instantiation: f_generic.c:value_barrier
Unexecuted instantiation: scalar.c:value_barrier
Unexecuted instantiation: rsa_oaep.c:value_barrier
Unexecuted instantiation: f_impl.c:value_barrier
233
234
/* Convenience method for uint32_t. */
235
static ossl_inline uint32_t value_barrier_32(uint32_t a)
236
112k
{
237
112k
#if !defined(OPENSSL_NO_ASM) && defined(__GNUC__)
238
112k
    uint32_t r;
239
112k
    __asm__("" : "=r"(r) : "0"(a));
240
#else
241
    volatile uint32_t r = a;
242
#endif
243
112k
    return r;
244
112k
}
Unexecuted instantiation: ssl3_record.c:value_barrier_32
Unexecuted instantiation: s3_cbc.c:value_barrier_32
Unexecuted instantiation: statem_srvr.c:value_barrier_32
Unexecuted instantiation: bn_lib.c:value_barrier_32
Unexecuted instantiation: err.c:value_barrier_32
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:value_barrier_32
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:value_barrier_32
Unexecuted instantiation: rsa_ossl.c:value_barrier_32
Unexecuted instantiation: rsa_pk1.c:value_barrier_32
Unexecuted instantiation: rsa_pmeth.c:value_barrier_32
Unexecuted instantiation: rsa_ssl.c:value_barrier_32
Unexecuted instantiation: bn_exp.c:value_barrier_32
Unexecuted instantiation: rsaz_exp.c:value_barrier_32
curve448.c:value_barrier_32
Line
Count
Source
236
112k
{
237
112k
#if !defined(OPENSSL_NO_ASM) && defined(__GNUC__)
238
112k
    uint32_t r;
239
112k
    __asm__("" : "=r"(r) : "0"(a));
240
#else
241
    volatile uint32_t r = a;
242
#endif
243
112k
    return r;
244
112k
}
Unexecuted instantiation: curve448_tables.c:value_barrier_32
Unexecuted instantiation: eddsa.c:value_barrier_32
Unexecuted instantiation: f_generic.c:value_barrier_32
Unexecuted instantiation: scalar.c:value_barrier_32
Unexecuted instantiation: rsa_oaep.c:value_barrier_32
Unexecuted instantiation: f_impl.c:value_barrier_32
245
246
/* Convenience method for uint64_t. */
247
static ossl_inline uint64_t value_barrier_64(uint64_t a)
248
0
{
249
0
#if !defined(OPENSSL_NO_ASM) && defined(__GNUC__)
250
0
    uint64_t r;
251
0
    __asm__("" : "=r"(r) : "0"(a));
252
#else
253
    volatile uint64_t r = a;
254
#endif
255
0
    return r;
256
0
}
Unexecuted instantiation: ssl3_record.c:value_barrier_64
Unexecuted instantiation: s3_cbc.c:value_barrier_64
Unexecuted instantiation: statem_srvr.c:value_barrier_64
Unexecuted instantiation: bn_lib.c:value_barrier_64
Unexecuted instantiation: err.c:value_barrier_64
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:value_barrier_64
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:value_barrier_64
Unexecuted instantiation: rsa_ossl.c:value_barrier_64
Unexecuted instantiation: rsa_pk1.c:value_barrier_64
Unexecuted instantiation: rsa_pmeth.c:value_barrier_64
Unexecuted instantiation: rsa_ssl.c:value_barrier_64
Unexecuted instantiation: bn_exp.c:value_barrier_64
Unexecuted instantiation: rsaz_exp.c:value_barrier_64
Unexecuted instantiation: curve448.c:value_barrier_64
Unexecuted instantiation: curve448_tables.c:value_barrier_64
Unexecuted instantiation: eddsa.c:value_barrier_64
Unexecuted instantiation: f_generic.c:value_barrier_64
Unexecuted instantiation: scalar.c:value_barrier_64
Unexecuted instantiation: rsa_oaep.c:value_barrier_64
Unexecuted instantiation: f_impl.c:value_barrier_64
257
258
/* Convenience method for size_t. */
259
static ossl_inline size_t value_barrier_s(size_t a)
260
0
{
261
0
#if !defined(OPENSSL_NO_ASM) && defined(__GNUC__)
262
0
    size_t r;
263
0
    __asm__("" : "=r"(r) : "0"(a));
264
#else
265
    volatile size_t r = a;
266
#endif
267
0
    return r;
268
0
}
Unexecuted instantiation: ssl3_record.c:value_barrier_s
Unexecuted instantiation: s3_cbc.c:value_barrier_s
Unexecuted instantiation: statem_srvr.c:value_barrier_s
Unexecuted instantiation: bn_lib.c:value_barrier_s
Unexecuted instantiation: err.c:value_barrier_s
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:value_barrier_s
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:value_barrier_s
Unexecuted instantiation: rsa_ossl.c:value_barrier_s
Unexecuted instantiation: rsa_pk1.c:value_barrier_s
Unexecuted instantiation: rsa_pmeth.c:value_barrier_s
Unexecuted instantiation: rsa_ssl.c:value_barrier_s
Unexecuted instantiation: bn_exp.c:value_barrier_s
Unexecuted instantiation: rsaz_exp.c:value_barrier_s
Unexecuted instantiation: curve448.c:value_barrier_s
Unexecuted instantiation: curve448_tables.c:value_barrier_s
Unexecuted instantiation: eddsa.c:value_barrier_s
Unexecuted instantiation: f_generic.c:value_barrier_s
Unexecuted instantiation: scalar.c:value_barrier_s
Unexecuted instantiation: rsa_oaep.c:value_barrier_s
Unexecuted instantiation: f_impl.c:value_barrier_s
269
270
static ossl_inline unsigned int constant_time_select(unsigned int mask,
271
                                                     unsigned int a,
272
                                                     unsigned int b)
273
11.1M
{
274
11.1M
    return (value_barrier(mask) & a) | (value_barrier(~mask) & b);
275
11.1M
}
ssl3_record.c:constant_time_select
Line
Count
Source
273
11.0k
{
274
11.0k
    return (value_barrier(mask) & a) | (value_barrier(~mask) & b);
275
11.0k
}
s3_cbc.c:constant_time_select
Line
Count
Source
273
124k
{
274
124k
    return (value_barrier(mask) & a) | (value_barrier(~mask) & b);
275
124k
}
statem_srvr.c:constant_time_select
Line
Count
Source
273
72.1k
{
274
72.1k
    return (value_barrier(mask) & a) | (value_barrier(~mask) & b);
275
72.1k
}
bn_lib.c:constant_time_select
Line
Count
Source
273
134k
{
274
134k
    return (value_barrier(mask) & a) | (value_barrier(~mask) & b);
275
134k
}
err.c:constant_time_select
Line
Count
Source
273
1.50k
{
274
1.50k
    return (value_barrier(mask) & a) | (value_barrier(~mask) & b);
275
1.50k
}
e_aes_cbc_hmac_sha1.c:constant_time_select
Line
Count
Source
273
36
{
274
36
    return (value_barrier(mask) & a) | (value_barrier(~mask) & b);
275
36
}
e_aes_cbc_hmac_sha256.c:constant_time_select
Line
Count
Source
273
37
{
274
37
    return (value_barrier(mask) & a) | (value_barrier(~mask) & b);
275
37
}
Unexecuted instantiation: rsa_ossl.c:constant_time_select
Unexecuted instantiation: rsa_pk1.c:constant_time_select
Unexecuted instantiation: rsa_pmeth.c:constant_time_select
Unexecuted instantiation: rsa_ssl.c:constant_time_select
Unexecuted instantiation: bn_exp.c:constant_time_select
Unexecuted instantiation: rsaz_exp.c:constant_time_select
curve448.c:constant_time_select
Line
Count
Source
273
10.7M
{
274
10.7M
    return (value_barrier(mask) & a) | (value_barrier(~mask) & b);
275
10.7M
}
Unexecuted instantiation: curve448_tables.c:constant_time_select
Unexecuted instantiation: eddsa.c:constant_time_select
Unexecuted instantiation: f_generic.c:constant_time_select
Unexecuted instantiation: scalar.c:constant_time_select
Unexecuted instantiation: rsa_oaep.c:constant_time_select
Unexecuted instantiation: f_impl.c:constant_time_select
276
277
static ossl_inline size_t constant_time_select_s(size_t mask,
278
                                                 size_t a,
279
                                                 size_t b)
280
0
{
281
0
    return (value_barrier_s(mask) & a) | (value_barrier_s(~mask) & b);
282
0
}
Unexecuted instantiation: ssl3_record.c:constant_time_select_s
Unexecuted instantiation: s3_cbc.c:constant_time_select_s
Unexecuted instantiation: statem_srvr.c:constant_time_select_s
Unexecuted instantiation: bn_lib.c:constant_time_select_s
Unexecuted instantiation: err.c:constant_time_select_s
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:constant_time_select_s
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:constant_time_select_s
Unexecuted instantiation: rsa_ossl.c:constant_time_select_s
Unexecuted instantiation: rsa_pk1.c:constant_time_select_s
Unexecuted instantiation: rsa_pmeth.c:constant_time_select_s
Unexecuted instantiation: rsa_ssl.c:constant_time_select_s
Unexecuted instantiation: bn_exp.c:constant_time_select_s
Unexecuted instantiation: rsaz_exp.c:constant_time_select_s
Unexecuted instantiation: curve448.c:constant_time_select_s
Unexecuted instantiation: curve448_tables.c:constant_time_select_s
Unexecuted instantiation: eddsa.c:constant_time_select_s
Unexecuted instantiation: f_generic.c:constant_time_select_s
Unexecuted instantiation: scalar.c:constant_time_select_s
Unexecuted instantiation: rsa_oaep.c:constant_time_select_s
Unexecuted instantiation: f_impl.c:constant_time_select_s
283
284
static ossl_inline unsigned char constant_time_select_8(unsigned char mask,
285
                                                        unsigned char a,
286
                                                        unsigned char b)
287
10.9M
{
288
10.9M
    return (unsigned char)constant_time_select(mask, a, b);
289
10.9M
}
ssl3_record.c:constant_time_select_8
Line
Count
Source
287
10.4k
{
288
10.4k
    return (unsigned char)constant_time_select(mask, a, b);
289
10.4k
}
s3_cbc.c:constant_time_select_8
Line
Count
Source
287
124k
{
288
124k
    return (unsigned char)constant_time_select(mask, a, b);
289
124k
}
statem_srvr.c:constant_time_select_8
Line
Count
Source
287
72.1k
{
288
72.1k
    return (unsigned char)constant_time_select(mask, a, b);
289
72.1k
}
Unexecuted instantiation: bn_lib.c:constant_time_select_8
Unexecuted instantiation: err.c:constant_time_select_8
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:constant_time_select_8
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:constant_time_select_8
Unexecuted instantiation: rsa_ossl.c:constant_time_select_8
Unexecuted instantiation: rsa_pk1.c:constant_time_select_8
Unexecuted instantiation: rsa_pmeth.c:constant_time_select_8
Unexecuted instantiation: rsa_ssl.c:constant_time_select_8
Unexecuted instantiation: bn_exp.c:constant_time_select_8
Unexecuted instantiation: rsaz_exp.c:constant_time_select_8
curve448.c:constant_time_select_8
Line
Count
Source
287
10.7M
{
288
10.7M
    return (unsigned char)constant_time_select(mask, a, b);
289
10.7M
}
Unexecuted instantiation: curve448_tables.c:constant_time_select_8
Unexecuted instantiation: eddsa.c:constant_time_select_8
Unexecuted instantiation: f_generic.c:constant_time_select_8
Unexecuted instantiation: scalar.c:constant_time_select_8
Unexecuted instantiation: rsa_oaep.c:constant_time_select_8
Unexecuted instantiation: f_impl.c:constant_time_select_8
290
291
static ossl_inline int constant_time_select_int(unsigned int mask, int a,
292
                                                int b)
293
136k
{
294
136k
    return (int)constant_time_select(mask, (unsigned)(a), (unsigned)(b));
295
136k
}
ssl3_record.c:constant_time_select_int
Line
Count
Source
293
49
{
294
49
    return (int)constant_time_select(mask, (unsigned)(a), (unsigned)(b));
295
49
}
Unexecuted instantiation: s3_cbc.c:constant_time_select_int
Unexecuted instantiation: statem_srvr.c:constant_time_select_int
bn_lib.c:constant_time_select_int
Line
Count
Source
293
134k
{
294
134k
    return (int)constant_time_select(mask, (unsigned)(a), (unsigned)(b));
295
134k
}
err.c:constant_time_select_int
Line
Count
Source
293
1.50k
{
294
1.50k
    return (int)constant_time_select(mask, (unsigned)(a), (unsigned)(b));
295
1.50k
}
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:constant_time_select_int
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:constant_time_select_int
Unexecuted instantiation: rsa_ossl.c:constant_time_select_int
Unexecuted instantiation: rsa_pk1.c:constant_time_select_int
Unexecuted instantiation: rsa_pmeth.c:constant_time_select_int
Unexecuted instantiation: rsa_ssl.c:constant_time_select_int
Unexecuted instantiation: bn_exp.c:constant_time_select_int
Unexecuted instantiation: rsaz_exp.c:constant_time_select_int
Unexecuted instantiation: curve448.c:constant_time_select_int
Unexecuted instantiation: curve448_tables.c:constant_time_select_int
Unexecuted instantiation: eddsa.c:constant_time_select_int
Unexecuted instantiation: f_generic.c:constant_time_select_int
Unexecuted instantiation: scalar.c:constant_time_select_int
Unexecuted instantiation: rsa_oaep.c:constant_time_select_int
Unexecuted instantiation: f_impl.c:constant_time_select_int
296
297
static ossl_inline int constant_time_select_int_s(size_t mask, int a, int b)
298
511
{
299
511
    return (int)constant_time_select((unsigned)mask, (unsigned)(a),
300
511
                                      (unsigned)(b));
301
511
}
ssl3_record.c:constant_time_select_int_s
Line
Count
Source
298
511
{
299
511
    return (int)constant_time_select((unsigned)mask, (unsigned)(a),
300
511
                                      (unsigned)(b));
301
511
}
Unexecuted instantiation: s3_cbc.c:constant_time_select_int_s
Unexecuted instantiation: statem_srvr.c:constant_time_select_int_s
Unexecuted instantiation: bn_lib.c:constant_time_select_int_s
Unexecuted instantiation: err.c:constant_time_select_int_s
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:constant_time_select_int_s
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:constant_time_select_int_s
Unexecuted instantiation: rsa_ossl.c:constant_time_select_int_s
Unexecuted instantiation: rsa_pk1.c:constant_time_select_int_s
Unexecuted instantiation: rsa_pmeth.c:constant_time_select_int_s
Unexecuted instantiation: rsa_ssl.c:constant_time_select_int_s
Unexecuted instantiation: bn_exp.c:constant_time_select_int_s
Unexecuted instantiation: rsaz_exp.c:constant_time_select_int_s
Unexecuted instantiation: curve448.c:constant_time_select_int_s
Unexecuted instantiation: curve448_tables.c:constant_time_select_int_s
Unexecuted instantiation: eddsa.c:constant_time_select_int_s
Unexecuted instantiation: f_generic.c:constant_time_select_int_s
Unexecuted instantiation: scalar.c:constant_time_select_int_s
Unexecuted instantiation: rsa_oaep.c:constant_time_select_int_s
Unexecuted instantiation: f_impl.c:constant_time_select_int_s
302
303
static ossl_inline uint32_t constant_time_select_32(uint32_t mask, uint32_t a,
304
                                                    uint32_t b)
305
56.1k
{
306
56.1k
    return (value_barrier_32(mask) & a) | (value_barrier_32(~mask) & b);
307
56.1k
}
Unexecuted instantiation: ssl3_record.c:constant_time_select_32
Unexecuted instantiation: s3_cbc.c:constant_time_select_32
Unexecuted instantiation: statem_srvr.c:constant_time_select_32
Unexecuted instantiation: bn_lib.c:constant_time_select_32
Unexecuted instantiation: err.c:constant_time_select_32
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:constant_time_select_32
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:constant_time_select_32
Unexecuted instantiation: rsa_ossl.c:constant_time_select_32
Unexecuted instantiation: rsa_pk1.c:constant_time_select_32
Unexecuted instantiation: rsa_pmeth.c:constant_time_select_32
Unexecuted instantiation: rsa_ssl.c:constant_time_select_32
Unexecuted instantiation: bn_exp.c:constant_time_select_32
Unexecuted instantiation: rsaz_exp.c:constant_time_select_32
curve448.c:constant_time_select_32
Line
Count
Source
305
56.1k
{
306
56.1k
    return (value_barrier_32(mask) & a) | (value_barrier_32(~mask) & b);
307
56.1k
}
Unexecuted instantiation: curve448_tables.c:constant_time_select_32
Unexecuted instantiation: eddsa.c:constant_time_select_32
Unexecuted instantiation: f_generic.c:constant_time_select_32
Unexecuted instantiation: scalar.c:constant_time_select_32
Unexecuted instantiation: rsa_oaep.c:constant_time_select_32
Unexecuted instantiation: f_impl.c:constant_time_select_32
308
309
static ossl_inline uint64_t constant_time_select_64(uint64_t mask, uint64_t a,
310
                                                    uint64_t b)
311
0
{
312
0
    return (value_barrier_64(mask) & a) | (value_barrier_64(~mask) & b);
313
0
}
Unexecuted instantiation: ssl3_record.c:constant_time_select_64
Unexecuted instantiation: s3_cbc.c:constant_time_select_64
Unexecuted instantiation: statem_srvr.c:constant_time_select_64
Unexecuted instantiation: bn_lib.c:constant_time_select_64
Unexecuted instantiation: err.c:constant_time_select_64
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:constant_time_select_64
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:constant_time_select_64
Unexecuted instantiation: rsa_ossl.c:constant_time_select_64
Unexecuted instantiation: rsa_pk1.c:constant_time_select_64
Unexecuted instantiation: rsa_pmeth.c:constant_time_select_64
Unexecuted instantiation: rsa_ssl.c:constant_time_select_64
Unexecuted instantiation: bn_exp.c:constant_time_select_64
Unexecuted instantiation: rsaz_exp.c:constant_time_select_64
Unexecuted instantiation: curve448.c:constant_time_select_64
Unexecuted instantiation: curve448_tables.c:constant_time_select_64
Unexecuted instantiation: eddsa.c:constant_time_select_64
Unexecuted instantiation: f_generic.c:constant_time_select_64
Unexecuted instantiation: scalar.c:constant_time_select_64
Unexecuted instantiation: rsa_oaep.c:constant_time_select_64
Unexecuted instantiation: f_impl.c:constant_time_select_64
314
315
/*
316
 * mask must be 0xFFFFFFFF or 0x00000000.
317
 *
318
 * if (mask) {
319
 *     uint32_t tmp = *a;
320
 *
321
 *     *a = *b;
322
 *     *b = tmp;
323
 * }
324
 */
325
static ossl_inline void constant_time_cond_swap_32(uint32_t mask, uint32_t *a,
326
                                                   uint32_t *b)
327
487k
{
328
487k
    uint32_t xor = *a ^ *b;
329
330
487k
    xor &= mask;
331
487k
    *a ^= xor;
332
487k
    *b ^= xor;
333
487k
}
Unexecuted instantiation: ssl3_record.c:constant_time_cond_swap_32
Unexecuted instantiation: s3_cbc.c:constant_time_cond_swap_32
Unexecuted instantiation: statem_srvr.c:constant_time_cond_swap_32
Unexecuted instantiation: bn_lib.c:constant_time_cond_swap_32
Unexecuted instantiation: err.c:constant_time_cond_swap_32
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:constant_time_cond_swap_32
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:constant_time_cond_swap_32
Unexecuted instantiation: rsa_ossl.c:constant_time_cond_swap_32
Unexecuted instantiation: rsa_pk1.c:constant_time_cond_swap_32
Unexecuted instantiation: rsa_pmeth.c:constant_time_cond_swap_32
Unexecuted instantiation: rsa_ssl.c:constant_time_cond_swap_32
Unexecuted instantiation: bn_exp.c:constant_time_cond_swap_32
Unexecuted instantiation: rsaz_exp.c:constant_time_cond_swap_32
curve448.c:constant_time_cond_swap_32
Line
Count
Source
327
487k
{
328
487k
    uint32_t xor = *a ^ *b;
329
330
487k
    xor &= mask;
331
487k
    *a ^= xor;
332
487k
    *b ^= xor;
333
487k
}
Unexecuted instantiation: curve448_tables.c:constant_time_cond_swap_32
Unexecuted instantiation: eddsa.c:constant_time_cond_swap_32
Unexecuted instantiation: f_generic.c:constant_time_cond_swap_32
Unexecuted instantiation: scalar.c:constant_time_cond_swap_32
Unexecuted instantiation: rsa_oaep.c:constant_time_cond_swap_32
Unexecuted instantiation: f_impl.c:constant_time_cond_swap_32
334
335
/*
336
 * mask must be 0xFFFFFFFF or 0x00000000.
337
 *
338
 * if (mask) {
339
 *     uint64_t tmp = *a;
340
 *
341
 *     *a = *b;
342
 *     *b = tmp;
343
 * }
344
 */
345
static ossl_inline void constant_time_cond_swap_64(uint64_t mask, uint64_t *a,
346
                                                   uint64_t *b)
347
0
{
348
0
    uint64_t xor = *a ^ *b;
349
0
350
0
    xor &= mask;
351
0
    *a ^= xor;
352
0
    *b ^= xor;
353
0
}
Unexecuted instantiation: ssl3_record.c:constant_time_cond_swap_64
Unexecuted instantiation: s3_cbc.c:constant_time_cond_swap_64
Unexecuted instantiation: statem_srvr.c:constant_time_cond_swap_64
Unexecuted instantiation: bn_lib.c:constant_time_cond_swap_64
Unexecuted instantiation: err.c:constant_time_cond_swap_64
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:constant_time_cond_swap_64
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:constant_time_cond_swap_64
Unexecuted instantiation: rsa_ossl.c:constant_time_cond_swap_64
Unexecuted instantiation: rsa_pk1.c:constant_time_cond_swap_64
Unexecuted instantiation: rsa_pmeth.c:constant_time_cond_swap_64
Unexecuted instantiation: rsa_ssl.c:constant_time_cond_swap_64
Unexecuted instantiation: bn_exp.c:constant_time_cond_swap_64
Unexecuted instantiation: rsaz_exp.c:constant_time_cond_swap_64
Unexecuted instantiation: curve448.c:constant_time_cond_swap_64
Unexecuted instantiation: curve448_tables.c:constant_time_cond_swap_64
Unexecuted instantiation: eddsa.c:constant_time_cond_swap_64
Unexecuted instantiation: f_generic.c:constant_time_cond_swap_64
Unexecuted instantiation: scalar.c:constant_time_cond_swap_64
Unexecuted instantiation: rsa_oaep.c:constant_time_cond_swap_64
Unexecuted instantiation: f_impl.c:constant_time_cond_swap_64
354
355
/*
356
 * table is a two dimensional array of bytes. Each row has rowsize elements.
357
 * Copies row number idx into out. rowsize and numrows are not considered
358
 * private.
359
 */
360
static ossl_inline void constant_time_lookup(void *out,
361
                                             const void *table,
362
                                             size_t rowsize,
363
                                             size_t numrows,
364
                                             size_t idx)
365
3.51k
{
366
3.51k
    size_t i, j;
367
3.51k
    const unsigned char *tablec = (const unsigned char *)table;
368
3.51k
    unsigned char *outc = (unsigned char *)out;
369
3.51k
    unsigned char mask;
370
371
3.51k
    memset(out, 0, rowsize);
372
373
    /* Note idx may underflow - but that is well defined */
374
59.6k
    for (i = 0; i < numrows; i++, idx--) {
375
56.1k
        mask = (unsigned char)constant_time_is_zero_s(idx);
376
10.8M
        for (j = 0; j < rowsize; j++)
377
10.7M
            *(outc + j) |= constant_time_select_8(mask, *(tablec++), 0);
378
56.1k
    }
379
3.51k
}
Unexecuted instantiation: ssl3_record.c:constant_time_lookup
Unexecuted instantiation: s3_cbc.c:constant_time_lookup
Unexecuted instantiation: statem_srvr.c:constant_time_lookup
Unexecuted instantiation: bn_lib.c:constant_time_lookup
Unexecuted instantiation: err.c:constant_time_lookup
Unexecuted instantiation: e_aes_cbc_hmac_sha1.c:constant_time_lookup
Unexecuted instantiation: e_aes_cbc_hmac_sha256.c:constant_time_lookup
Unexecuted instantiation: rsa_ossl.c:constant_time_lookup
Unexecuted instantiation: rsa_pk1.c:constant_time_lookup
Unexecuted instantiation: rsa_pmeth.c:constant_time_lookup
Unexecuted instantiation: rsa_ssl.c:constant_time_lookup
Unexecuted instantiation: bn_exp.c:constant_time_lookup
Unexecuted instantiation: rsaz_exp.c:constant_time_lookup
curve448.c:constant_time_lookup
Line
Count
Source
365
3.51k
{
366
3.51k
    size_t i, j;
367
3.51k
    const unsigned char *tablec = (const unsigned char *)table;
368
3.51k
    unsigned char *outc = (unsigned char *)out;
369
3.51k
    unsigned char mask;
370
371
3.51k
    memset(out, 0, rowsize);
372
373
    /* Note idx may underflow - but that is well defined */
374
59.6k
    for (i = 0; i < numrows; i++, idx--) {
375
56.1k
        mask = (unsigned char)constant_time_is_zero_s(idx);
376
10.8M
        for (j = 0; j < rowsize; j++)
377
10.7M
            *(outc + j) |= constant_time_select_8(mask, *(tablec++), 0);
378
56.1k
    }
379
3.51k
}
Unexecuted instantiation: curve448_tables.c:constant_time_lookup
Unexecuted instantiation: eddsa.c:constant_time_lookup
Unexecuted instantiation: f_generic.c:constant_time_lookup
Unexecuted instantiation: scalar.c:constant_time_lookup
Unexecuted instantiation: rsa_oaep.c:constant_time_lookup
Unexecuted instantiation: f_impl.c:constant_time_lookup
380
381
/*
382
 * Expected usage pattern is to unconditionally set error and then
383
 * wipe it if there was no actual error. |clear| is 1 or 0.
384
 */
385
void err_clear_last_constant_time(int clear);
386
387
#endif                          /* OSSL_INTERNAL_CONSTANT_TIME_H */