Coverage Report

Created: 2023-06-08 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.3M
{
101
12.3M
    return 0 - (a >> (sizeof(a) * 8 - 1));
102
12.3M
}
ssl3_record.c:constant_time_msb
Line
Count
Source
100
9.65k
{
101
9.65k
    return 0 - (a >> (sizeof(a) * 8 - 1));
102
9.65k
}
Unexecuted instantiation: s3_cbc.c:constant_time_msb
statem_srvr.c:constant_time_msb
Line
Count
Source
100
308k
{
101
308k
    return 0 - (a >> (sizeof(a) * 8 - 1));
102
308k
}
bn_lib.c:constant_time_msb
Line
Count
Source
100
551k
{
101
551k
    return 0 - (a >> (sizeof(a) * 8 - 1));
102
551k
}
err.c:constant_time_msb
Line
Count
Source
100
1.46k
{
101
1.46k
    return 0 - (a >> (sizeof(a) * 8 - 1));
102
1.46k
}
e_aes_cbc_hmac_sha1.c:constant_time_msb
Line
Count
Source
100
40
{
101
40
    return 0 - (a >> (sizeof(a) * 8 - 1));
102
40
}
e_aes_cbc_hmac_sha256.c:constant_time_msb
Line
Count
Source
100
36
{
101
36
    return 0 - (a >> (sizeof(a) * 8 - 1));
102
36
}
rsa_ossl.c:constant_time_msb
Line
Count
Source
100
1.46k
{
101
1.46k
    return 0 - (a >> (sizeof(a) * 8 - 1));
102
1.46k
}
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.5M
{
101
11.5M
    return 0 - (a >> (sizeof(a) * 8 - 1));
102
11.5M
}
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
158
{
107
158
    return 0 - (a >> 31);
108
158
}
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
158
{
107
158
    return 0 - (a >> 31);
108
158
}
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
483k
{
117
483k
    return 0 - (a >> (sizeof(a) * 8 - 1));
118
483k
}
ssl3_record.c:constant_time_msb_s
Line
Count
Source
116
224k
{
117
224k
    return 0 - (a >> (sizeof(a) * 8 - 1));
118
224k
}
s3_cbc.c:constant_time_msb_s
Line
Count
Source
116
204k
{
117
204k
    return 0 - (a >> (sizeof(a) * 8 - 1));
118
204k
}
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
54.7k
{
117
54.7k
    return 0 - (a >> (sizeof(a) * 8 - 1));
118
54.7k
}
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
76
{
123
76
    return constant_time_msb(a ^ ((a ^ b) | ((a - b) ^ b)));
124
76
}
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
40
{
123
40
    return constant_time_msb(a ^ ((a ^ b) | ((a - b) ^ b)));
124
40
}
e_aes_cbc_hmac_sha256.c:constant_time_lt
Line
Count
Source
122
36
{
123
36
    return constant_time_msb(a ^ ((a ^ b) | ((a - b) ^ b)));
124
36
}
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
357k
{
128
357k
    return constant_time_msb_s(a ^ ((a ^ b) | ((a - b) ^ b)));
129
357k
}
ssl3_record.c:constant_time_lt_s
Line
Count
Source
127
155k
{
128
155k
    return constant_time_msb_s(a ^ ((a ^ b) | ((a - b) ^ b)));
129
155k
}
s3_cbc.c:constant_time_lt_s
Line
Count
Source
127
201k
{
128
201k
    return constant_time_msb_s(a ^ ((a ^ b) | ((a - b) ^ b)));
129
201k
}
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
76
{
145
76
    return ~constant_time_lt(a, b);
146
76
}
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
40
{
145
40
    return ~constant_time_lt(a, b);
146
40
}
e_aes_cbc_hmac_sha256.c:constant_time_ge
Line
Count
Source
144
36
{
145
36
    return ~constant_time_lt(a, b);
146
36
}
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
210k
{
150
210k
    return ~constant_time_lt_s(a, b);
151
210k
}
ssl3_record.c:constant_time_ge_s
Line
Count
Source
149
8.51k
{
150
8.51k
    return ~constant_time_lt_s(a, b);
151
8.51k
}
s3_cbc.c:constant_time_ge_s
Line
Count
Source
149
201k
{
150
201k
    return ~constant_time_lt_s(a, b);
151
201k
}
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
209k
{
161
209k
    return (unsigned char)constant_time_ge_s(a, b);
162
209k
}
ssl3_record.c:constant_time_ge_8_s
Line
Count
Source
160
7.62k
{
161
7.62k
    return (unsigned char)constant_time_ge_s(a, b);
162
7.62k
}
s3_cbc.c:constant_time_ge_8_s
Line
Count
Source
160
201k
{
161
201k
    return (unsigned char)constant_time_ge_s(a, b);
162
201k
}
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.2M
{
166
12.2M
    return constant_time_msb(~a & (a - 1));
167
12.2M
}
ssl3_record.c:constant_time_is_zero
Line
Count
Source
165
9.65k
{
166
9.65k
    return constant_time_msb(~a & (a - 1));
167
9.65k
}
Unexecuted instantiation: s3_cbc.c:constant_time_is_zero
statem_srvr.c:constant_time_is_zero
Line
Count
Source
165
308k
{
166
308k
    return constant_time_msb(~a & (a - 1));
167
308k
}
bn_lib.c:constant_time_is_zero
Line
Count
Source
165
420k
{
166
420k
    return constant_time_msb(~a & (a - 1));
167
420k
}
err.c:constant_time_is_zero
Line
Count
Source
165
1.46k
{
166
1.46k
    return constant_time_msb(~a & (a - 1));
167
1.46k
}
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.5M
{
166
11.5M
    return constant_time_msb(~a & (a - 1));
167
11.5M
}
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
126k
{
171
126k
    return constant_time_msb_s(~a & (a - 1));
172
126k
}
ssl3_record.c:constant_time_is_zero_s
Line
Count
Source
170
68.6k
{
171
68.6k
    return constant_time_msb_s(~a & (a - 1));
172
68.6k
}
s3_cbc.c:constant_time_is_zero_s
Line
Count
Source
170
3.07k
{
171
3.07k
    return constant_time_msb_s(~a & (a - 1));
172
3.07k
}
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
54.7k
{
171
54.7k
    return constant_time_msb_s(~a & (a - 1));
172
54.7k
}
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
302k
{
176
302k
    return (unsigned char)constant_time_is_zero(a);
177
302k
}
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
302k
{
176
302k
    return (unsigned char)constant_time_is_zero(a);
177
302k
}
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
158
{
181
158
    return constant_time_msb_32(~a & (a - 1));
182
158
}
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
158
{
181
158
    return constant_time_msb_32(~a & (a - 1));
182
158
}
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
11.9M
{
187
11.9M
    return constant_time_is_zero(a ^ b);
188
11.9M
}
ssl3_record.c:constant_time_eq
Line
Count
Source
186
9.65k
{
187
9.65k
    return constant_time_is_zero(a ^ b);
188
9.65k
}
Unexecuted instantiation: s3_cbc.c:constant_time_eq
statem_srvr.c:constant_time_eq
Line
Count
Source
186
5.87k
{
187
5.87k
    return constant_time_is_zero(a ^ b);
188
5.87k
}
bn_lib.c:constant_time_eq
Line
Count
Source
186
420k
{
187
420k
    return constant_time_is_zero(a ^ b);
188
420k
}
err.c:constant_time_eq
Line
Count
Source
186
1.46k
{
187
1.46k
    return constant_time_is_zero(a ^ b);
188
1.46k
}
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.5M
{
187
11.5M
    return constant_time_is_zero(a ^ b);
188
11.5M
}
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
71.7k
{
192
71.7k
    return constant_time_is_zero_s(a ^ b);
193
71.7k
}
ssl3_record.c:constant_time_eq_s
Line
Count
Source
191
68.6k
{
192
68.6k
    return constant_time_is_zero_s(a ^ b);
193
68.6k
}
s3_cbc.c:constant_time_eq_s
Line
Count
Source
191
3.07k
{
192
3.07k
    return constant_time_is_zero_s(a ^ b);
193
3.07k
}
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
15.4k
{
198
15.4k
    return (unsigned char)constant_time_eq(a, b);
199
15.4k
}
ssl3_record.c:constant_time_eq_8
Line
Count
Source
197
9.61k
{
198
9.61k
    return (unsigned char)constant_time_eq(a, b);
199
9.61k
}
Unexecuted instantiation: s3_cbc.c:constant_time_eq_8
statem_srvr.c:constant_time_eq_8
Line
Count
Source
197
5.87k
{
198
5.87k
    return (unsigned char)constant_time_eq(a, b);
199
5.87k
}
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.07k
{
203
3.07k
    return (unsigned char)constant_time_eq_s(a, b);
204
3.07k
}
Unexecuted instantiation: ssl3_record.c:constant_time_eq_8_s
s3_cbc.c:constant_time_eq_8_s
Line
Count
Source
202
3.07k
{
203
3.07k
    return (unsigned char)constant_time_eq_s(a, b);
204
3.07k
}
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
11.9M
{
208
11.9M
    return constant_time_eq((unsigned)(a), (unsigned)(b));
209
11.9M
}
ssl3_record.c:constant_time_eq_int
Line
Count
Source
207
43
{
208
43
    return constant_time_eq((unsigned)(a), (unsigned)(b));
209
43
}
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
420k
{
208
420k
    return constant_time_eq((unsigned)(a), (unsigned)(b));
209
420k
}
err.c:constant_time_eq_int
Line
Count
Source
207
1.46k
{
208
1.46k
    return constant_time_eq((unsigned)(a), (unsigned)(b));
209
1.46k
}
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.5M
{
208
11.5M
    return constant_time_eq((unsigned)(a), (unsigned)(b));
209
11.5M
}
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
2.93k
{
213
2.93k
    return constant_time_eq_8((unsigned)(a), (unsigned)(b));
214
2.93k
}
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
2.93k
{
213
2.93k
    return constant_time_eq_8((unsigned)(a), (unsigned)(b));
214
2.93k
}
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
21.6M
{
225
21.6M
#if !defined(OPENSSL_NO_ASM) && defined(__GNUC__)
226
21.6M
    unsigned int r;
227
21.6M
    __asm__("" : "=r"(r) : "0"(a));
228
#else
229
    volatile unsigned int r = a;
230
#endif
231
21.6M
    return r;
232
21.6M
}
ssl3_record.c:value_barrier
Line
Count
Source
224
20.2k
{
225
20.2k
#if !defined(OPENSSL_NO_ASM) && defined(__GNUC__)
226
20.2k
    unsigned int r;
227
20.2k
    __asm__("" : "=r"(r) : "0"(a));
228
#else
229
    volatile unsigned int r = a;
230
#endif
231
20.2k
    return r;
232
20.2k
}
s3_cbc.c:value_barrier
Line
Count
Source
224
226k
{
225
226k
#if !defined(OPENSSL_NO_ASM) && defined(__GNUC__)
226
226k
    unsigned int r;
227
226k
    __asm__("" : "=r"(r) : "0"(a));
228
#else
229
    volatile unsigned int r = a;
230
#endif
231
226k
    return r;
232
226k
}
statem_srvr.c:value_barrier
Line
Count
Source
224
141k
{
225
141k
#if !defined(OPENSSL_NO_ASM) && defined(__GNUC__)
226
141k
    unsigned int r;
227
141k
    __asm__("" : "=r"(r) : "0"(a));
228
#else
229
    volatile unsigned int r = a;
230
#endif
231
141k
    return r;
232
141k
}
bn_lib.c:value_barrier
Line
Count
Source
224
265k
{
225
265k
#if !defined(OPENSSL_NO_ASM) && defined(__GNUC__)
226
265k
    unsigned int r;
227
265k
    __asm__("" : "=r"(r) : "0"(a));
228
#else
229
    volatile unsigned int r = a;
230
#endif
231
265k
    return r;
232
265k
}
err.c:value_barrier
Line
Count
Source
224
2.93k
{
225
2.93k
#if !defined(OPENSSL_NO_ASM) && defined(__GNUC__)
226
2.93k
    unsigned int r;
227
2.93k
    __asm__("" : "=r"(r) : "0"(a));
228
#else
229
    volatile unsigned int r = a;
230
#endif
231
2.93k
    return r;
232
2.93k
}
e_aes_cbc_hmac_sha1.c:value_barrier
Line
Count
Source
224
80
{
225
80
#if !defined(OPENSSL_NO_ASM) && defined(__GNUC__)
226
80
    unsigned int r;
227
80
    __asm__("" : "=r"(r) : "0"(a));
228
#else
229
    volatile unsigned int r = a;
230
#endif
231
80
    return r;
232
80
}
e_aes_cbc_hmac_sha256.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
}
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.0M
{
225
21.0M
#if !defined(OPENSSL_NO_ASM) && defined(__GNUC__)
226
21.0M
    unsigned int r;
227
21.0M
    __asm__("" : "=r"(r) : "0"(a));
228
#else
229
    volatile unsigned int r = a;
230
#endif
231
21.0M
    return r;
232
21.0M
}
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
109k
{
237
109k
#if !defined(OPENSSL_NO_ASM) && defined(__GNUC__)
238
109k
    uint32_t r;
239
109k
    __asm__("" : "=r"(r) : "0"(a));
240
#else
241
    volatile uint32_t r = a;
242
#endif
243
109k
    return r;
244
109k
}
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
109k
{
237
109k
#if !defined(OPENSSL_NO_ASM) && defined(__GNUC__)
238
109k
    uint32_t r;
239
109k
    __asm__("" : "=r"(r) : "0"(a));
240
#else
241
    volatile uint32_t r = a;
242
#endif
243
109k
    return r;
244
109k
}
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
10.8M
{
274
10.8M
    return (value_barrier(mask) & a) | (value_barrier(~mask) & b);
275
10.8M
}
ssl3_record.c:constant_time_select
Line
Count
Source
273
10.1k
{
274
10.1k
    return (value_barrier(mask) & a) | (value_barrier(~mask) & b);
275
10.1k
}
s3_cbc.c:constant_time_select
Line
Count
Source
273
113k
{
274
113k
    return (value_barrier(mask) & a) | (value_barrier(~mask) & b);
275
113k
}
statem_srvr.c:constant_time_select
Line
Count
Source
273
70.5k
{
274
70.5k
    return (value_barrier(mask) & a) | (value_barrier(~mask) & b);
275
70.5k
}
bn_lib.c:constant_time_select
Line
Count
Source
273
132k
{
274
132k
    return (value_barrier(mask) & a) | (value_barrier(~mask) & b);
275
132k
}
err.c:constant_time_select
Line
Count
Source
273
1.46k
{
274
1.46k
    return (value_barrier(mask) & a) | (value_barrier(~mask) & b);
275
1.46k
}
e_aes_cbc_hmac_sha1.c:constant_time_select
Line
Count
Source
273
40
{
274
40
    return (value_barrier(mask) & a) | (value_barrier(~mask) & b);
275
40
}
e_aes_cbc_hmac_sha256.c:constant_time_select
Line
Count
Source
273
36
{
274
36
    return (value_barrier(mask) & a) | (value_barrier(~mask) & b);
275
36
}
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.5M
{
274
10.5M
    return (value_barrier(mask) & a) | (value_barrier(~mask) & b);
275
10.5M
}
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.6M
{
288
10.6M
    return (unsigned char)constant_time_select(mask, a, b);
289
10.6M
}
ssl3_record.c:constant_time_select_8
Line
Count
Source
287
9.61k
{
288
9.61k
    return (unsigned char)constant_time_select(mask, a, b);
289
9.61k
}
s3_cbc.c:constant_time_select_8
Line
Count
Source
287
113k
{
288
113k
    return (unsigned char)constant_time_select(mask, a, b);
289
113k
}
statem_srvr.c:constant_time_select_8
Line
Count
Source
287
70.5k
{
288
70.5k
    return (unsigned char)constant_time_select(mask, a, b);
289
70.5k
}
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.5M
{
288
10.5M
    return (unsigned char)constant_time_select(mask, a, b);
289
10.5M
}
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
134k
{
294
134k
    return (int)constant_time_select(mask, (unsigned)(a), (unsigned)(b));
295
134k
}
ssl3_record.c:constant_time_select_int
Line
Count
Source
293
43
{
294
43
    return (int)constant_time_select(mask, (unsigned)(a), (unsigned)(b));
295
43
}
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
132k
{
294
132k
    return (int)constant_time_select(mask, (unsigned)(a), (unsigned)(b));
295
132k
}
err.c:constant_time_select_int
Line
Count
Source
293
1.46k
{
294
1.46k
    return (int)constant_time_select(mask, (unsigned)(a), (unsigned)(b));
295
1.46k
}
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
467
{
299
467
    return (int)constant_time_select((unsigned)mask, (unsigned)(a),
300
467
                                      (unsigned)(b));
301
467
}
ssl3_record.c:constant_time_select_int_s
Line
Count
Source
298
467
{
299
467
    return (int)constant_time_select((unsigned)mask, (unsigned)(a),
300
467
                                      (unsigned)(b));
301
467
}
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
54.7k
{
306
54.7k
    return (value_barrier_32(mask) & a) | (value_barrier_32(~mask) & b);
307
54.7k
}
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
54.7k
{
306
54.7k
    return (value_barrier_32(mask) & a) | (value_barrier_32(~mask) & b);
307
54.7k
}
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
485k
{
328
485k
    uint32_t xor = *a ^ *b;
329
330
485k
    xor &= mask;
331
485k
    *a ^= xor;
332
485k
    *b ^= xor;
333
485k
}
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
485k
{
328
485k
    uint32_t xor = *a ^ *b;
329
330
485k
    xor &= mask;
331
485k
    *a ^= xor;
332
485k
    *b ^= xor;
333
485k
}
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.42k
{
366
3.42k
    size_t i, j;
367
3.42k
    const unsigned char *tablec = (const unsigned char *)table;
368
3.42k
    unsigned char *outc = (unsigned char *)out;
369
3.42k
    unsigned char mask;
370
371
3.42k
    memset(out, 0, rowsize);
372
373
    /* Note idx may underflow - but that is well defined */
374
58.1k
    for (i = 0; i < numrows; i++, idx--) {
375
54.7k
        mask = (unsigned char)constant_time_is_zero_s(idx);
376
10.5M
        for (j = 0; j < rowsize; j++)
377
10.5M
            *(outc + j) |= constant_time_select_8(mask, *(tablec++), 0);
378
54.7k
    }
379
3.42k
}
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.42k
{
366
3.42k
    size_t i, j;
367
3.42k
    const unsigned char *tablec = (const unsigned char *)table;
368
3.42k
    unsigned char *outc = (unsigned char *)out;
369
3.42k
    unsigned char mask;
370
371
3.42k
    memset(out, 0, rowsize);
372
373
    /* Note idx may underflow - but that is well defined */
374
58.1k
    for (i = 0; i < numrows; i++, idx--) {
375
54.7k
        mask = (unsigned char)constant_time_is_zero_s(idx);
376
10.5M
        for (j = 0; j < rowsize; j++)
377
10.5M
            *(outc + j) |= constant_time_select_8(mask, *(tablec++), 0);
378
54.7k
    }
379
3.42k
}
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 */