OpenCoverage

rand_unix.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/rand/rand_unix.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6-
7-
8static uint64_t get_time_stamp(void);-
9static uint64_t get_timer_bits(void);-
10static ssize_t syscall_random(void *buf, size_t buflen);-
11static ssize_t syscall_random(void *buf, size_t buflen)-
12{-
13 extern int getentropy(void *buffer, size_t length) __attribute__((weak));-
14-
15 if (getentropy !=
getentropy != ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 780 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
0-780
16 ((void *)0)
getentropy != ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 780 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
0-780
17 )-
18 return
never executed: return getentropy(buf, buflen) == 0 ? (ssize_t)buflen : -1;
getentropy(buf, buflen) == 0
getentropy(buf, buflen) == 0Description
TRUEnever evaluated
FALSEnever evaluated
? (ssize_t)buflen : -1;
never executed: return getentropy(buf, buflen) == 0 ? (ssize_t)buflen : -1;
0
19 return
executed 780 times by 2 tests: return syscall( 318 , buf, buflen, 0);
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
syscall(
executed 780 times by 2 tests: return syscall( 318 , buf, buflen, 0);
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
780
20 318
executed 780 times by 2 tests: return syscall( 318 , buf, buflen, 0);
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
780
21 , buf, buflen, 0);
executed 780 times by 2 tests: return syscall( 318 , buf, buflen, 0);
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
780
22-
23-
24-
25-
26-
27-
28}-
29-
30-
31static const char *random_device_paths[] = { "/dev/urandom","/dev/random","/dev/srandom" };-
32static struct random_device {-
33 int fd;-
34 dev_t dev;-
35 ino_t ino;-
36 mode_t mode;-
37 dev_t rdev;-
38} random_devices[(sizeof(random_device_paths)/sizeof((random_device_paths)[0]))];-
39static int keep_random_devices_open = 1;-
40static int check_random_device(struct random_device * rd)-
41{-
42 struct stat st;-
43-
44 return
executed 9678 times by 12 tests: return rd->fd != -1 && fstat(rd->fd, &st) != -1 && rd->dev == st.st_dev && rd->ino == st.st_ino && ((rd->mode ^ st.st_mode) & ~( (0400|0200|0100) | ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) )) == 0 && rd->rdev == st.st_rdev;
Executed by:
  • asn1_internal_test
  • chacha_internal_test
  • ctype_internal_test
  • curve448_internal_test
  • libcrypto.so.1.1
  • modes_internal_test
  • poly1305_internal_test
  • rdrand_sanitytest
  • siphash_internal_test
  • sm2_internal_test
  • sm4_internal_test
  • x509_internal_test
rd->fd != -1
rd->fd != -1Description
TRUEevaluated 5078 times by 12 tests
Evaluated by:
  • asn1_internal_test
  • chacha_internal_test
  • ctype_internal_test
  • curve448_internal_test
  • libcrypto.so.1.1
  • modes_internal_test
  • poly1305_internal_test
  • rdrand_sanitytest
  • siphash_internal_test
  • sm2_internal_test
  • sm4_internal_test
  • x509_internal_test
FALSEevaluated 4600 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
executed 9678 times by 12 tests: return rd->fd != -1 && fstat(rd->fd, &st) != -1 && rd->dev == st.st_dev && rd->ino == st.st_ino && ((rd->mode ^ st.st_mode) & ~( (0400|0200|0100) | ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) )) == 0 && rd->rdev == st.st_rdev;
Executed by:
  • asn1_internal_test
  • chacha_internal_test
  • ctype_internal_test
  • curve448_internal_test
  • libcrypto.so.1.1
  • modes_internal_test
  • poly1305_internal_test
  • rdrand_sanitytest
  • siphash_internal_test
  • sm2_internal_test
  • sm4_internal_test
  • x509_internal_test
4600-9678
45 && fstat(rd->fd, &st) != -1
fstat(rd->fd, &st) != -1Description
TRUEevaluated 5078 times by 12 tests
Evaluated by:
  • asn1_internal_test
  • chacha_internal_test
  • ctype_internal_test
  • curve448_internal_test
  • libcrypto.so.1.1
  • modes_internal_test
  • poly1305_internal_test
  • rdrand_sanitytest
  • siphash_internal_test
  • sm2_internal_test
  • sm4_internal_test
  • x509_internal_test
FALSEnever evaluated
executed 9678 times by 12 tests: return rd->fd != -1 && fstat(rd->fd, &st) != -1 && rd->dev == st.st_dev && rd->ino == st.st_ino && ((rd->mode ^ st.st_mode) & ~( (0400|0200|0100) | ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) )) == 0 && rd->rdev == st.st_rdev;
Executed by:
  • asn1_internal_test
  • chacha_internal_test
  • ctype_internal_test
  • curve448_internal_test
  • libcrypto.so.1.1
  • modes_internal_test
  • poly1305_internal_test
  • rdrand_sanitytest
  • siphash_internal_test
  • sm2_internal_test
  • sm4_internal_test
  • x509_internal_test
0-9678
46 && rd->dev == st.st_dev
rd->dev == st.st_devDescription
TRUEevaluated 2300 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEevaluated 2778 times by 11 tests
Evaluated by:
  • asn1_internal_test
  • chacha_internal_test
  • ctype_internal_test
  • curve448_internal_test
  • libcrypto.so.1.1
  • modes_internal_test
  • poly1305_internal_test
  • rdrand_sanitytest
  • siphash_internal_test
  • sm4_internal_test
  • x509_internal_test
executed 9678 times by 12 tests: return rd->fd != -1 && fstat(rd->fd, &st) != -1 && rd->dev == st.st_dev && rd->ino == st.st_ino && ((rd->mode ^ st.st_mode) & ~( (0400|0200|0100) | ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) )) == 0 && rd->rdev == st.st_rdev;
Executed by:
  • asn1_internal_test
  • chacha_internal_test
  • ctype_internal_test
  • curve448_internal_test
  • libcrypto.so.1.1
  • modes_internal_test
  • poly1305_internal_test
  • rdrand_sanitytest
  • siphash_internal_test
  • sm2_internal_test
  • sm4_internal_test
  • x509_internal_test
2300-9678
47 && rd->ino == st.st_ino
rd->ino == st.st_inoDescription
TRUEevaluated 2300 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEnever evaluated
executed 9678 times by 12 tests: return rd->fd != -1 && fstat(rd->fd, &st) != -1 && rd->dev == st.st_dev && rd->ino == st.st_ino && ((rd->mode ^ st.st_mode) & ~( (0400|0200|0100) | ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) )) == 0 && rd->rdev == st.st_rdev;
Executed by:
  • asn1_internal_test
  • chacha_internal_test
  • ctype_internal_test
  • curve448_internal_test
  • libcrypto.so.1.1
  • modes_internal_test
  • poly1305_internal_test
  • rdrand_sanitytest
  • siphash_internal_test
  • sm2_internal_test
  • sm4_internal_test
  • x509_internal_test
0-9678
48 && ((
((rd->mode ^ s... >> 3) )) == 0Description
TRUEevaluated 2300 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEnever evaluated
rd->mode ^ st.st_mode) & ~(
((rd->mode ^ s... >> 3) )) == 0Description
TRUEevaluated 2300 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEnever evaluated
executed 9678 times by 12 tests: return rd->fd != -1 && fstat(rd->fd, &st) != -1 && rd->dev == st.st_dev && rd->ino == st.st_ino && ((rd->mode ^ st.st_mode) & ~( (0400|0200|0100) | ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) )) == 0 && rd->rdev == st.st_rdev;
Executed by:
  • asn1_internal_test
  • chacha_internal_test
  • ctype_internal_test
  • curve448_internal_test
  • libcrypto.so.1.1
  • modes_internal_test
  • poly1305_internal_test
  • rdrand_sanitytest
  • siphash_internal_test
  • sm2_internal_test
  • sm4_internal_test
  • x509_internal_test
0-9678
49 (0400|0200|0100)
((rd->mode ^ s... >> 3) )) == 0Description
TRUEevaluated 2300 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEnever evaluated
executed 9678 times by 12 tests: return rd->fd != -1 && fstat(rd->fd, &st) != -1 && rd->dev == st.st_dev && rd->ino == st.st_ino && ((rd->mode ^ st.st_mode) & ~( (0400|0200|0100) | ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) )) == 0 && rd->rdev == st.st_rdev;
Executed by:
  • asn1_internal_test
  • chacha_internal_test
  • ctype_internal_test
  • curve448_internal_test
  • libcrypto.so.1.1
  • modes_internal_test
  • poly1305_internal_test
  • rdrand_sanitytest
  • siphash_internal_test
  • sm2_internal_test
  • sm4_internal_test
  • x509_internal_test
0-9678
50 |
((rd->mode ^ s... >> 3) )) == 0Description
TRUEevaluated 2300 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEnever evaluated
executed 9678 times by 12 tests: return rd->fd != -1 && fstat(rd->fd, &st) != -1 && rd->dev == st.st_dev && rd->ino == st.st_ino && ((rd->mode ^ st.st_mode) & ~( (0400|0200|0100) | ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) )) == 0 && rd->rdev == st.st_rdev;
Executed by:
  • asn1_internal_test
  • chacha_internal_test
  • ctype_internal_test
  • curve448_internal_test
  • libcrypto.so.1.1
  • modes_internal_test
  • poly1305_internal_test
  • rdrand_sanitytest
  • siphash_internal_test
  • sm2_internal_test
  • sm4_internal_test
  • x509_internal_test
0-9678
51 ((0400|0200|0100) >> 3)
((rd->mode ^ s... >> 3) )) == 0Description
TRUEevaluated 2300 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEnever evaluated
executed 9678 times by 12 tests: return rd->fd != -1 && fstat(rd->fd, &st) != -1 && rd->dev == st.st_dev && rd->ino == st.st_ino && ((rd->mode ^ st.st_mode) & ~( (0400|0200|0100) | ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) )) == 0 && rd->rdev == st.st_rdev;
Executed by:
  • asn1_internal_test
  • chacha_internal_test
  • ctype_internal_test
  • curve448_internal_test
  • libcrypto.so.1.1
  • modes_internal_test
  • poly1305_internal_test
  • rdrand_sanitytest
  • siphash_internal_test
  • sm2_internal_test
  • sm4_internal_test
  • x509_internal_test
0-9678
52 |
((rd->mode ^ s... >> 3) )) == 0Description
TRUEevaluated 2300 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEnever evaluated
executed 9678 times by 12 tests: return rd->fd != -1 && fstat(rd->fd, &st) != -1 && rd->dev == st.st_dev && rd->ino == st.st_ino && ((rd->mode ^ st.st_mode) & ~( (0400|0200|0100) | ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) )) == 0 && rd->rdev == st.st_rdev;
Executed by:
  • asn1_internal_test
  • chacha_internal_test
  • ctype_internal_test
  • curve448_internal_test
  • libcrypto.so.1.1
  • modes_internal_test
  • poly1305_internal_test
  • rdrand_sanitytest
  • siphash_internal_test
  • sm2_internal_test
  • sm4_internal_test
  • x509_internal_test
0-9678
53 (((0400|0200|0100) >> 3) >> 3)
((rd->mode ^ s... >> 3) )) == 0Description
TRUEevaluated 2300 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEnever evaluated
executed 9678 times by 12 tests: return rd->fd != -1 && fstat(rd->fd, &st) != -1 && rd->dev == st.st_dev && rd->ino == st.st_ino && ((rd->mode ^ st.st_mode) & ~( (0400|0200|0100) | ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) )) == 0 && rd->rdev == st.st_rdev;
Executed by:
  • asn1_internal_test
  • chacha_internal_test
  • ctype_internal_test
  • curve448_internal_test
  • libcrypto.so.1.1
  • modes_internal_test
  • poly1305_internal_test
  • rdrand_sanitytest
  • siphash_internal_test
  • sm2_internal_test
  • sm4_internal_test
  • x509_internal_test
0-9678
54 )) == 0
((rd->mode ^ s... >> 3) )) == 0Description
TRUEevaluated 2300 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEnever evaluated
executed 9678 times by 12 tests: return rd->fd != -1 && fstat(rd->fd, &st) != -1 && rd->dev == st.st_dev && rd->ino == st.st_ino && ((rd->mode ^ st.st_mode) & ~( (0400|0200|0100) | ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) )) == 0 && rd->rdev == st.st_rdev;
Executed by:
  • asn1_internal_test
  • chacha_internal_test
  • ctype_internal_test
  • curve448_internal_test
  • libcrypto.so.1.1
  • modes_internal_test
  • poly1305_internal_test
  • rdrand_sanitytest
  • siphash_internal_test
  • sm2_internal_test
  • sm4_internal_test
  • x509_internal_test
0-9678
55 && rd->rdev == st.st_rdev
rd->rdev == st.st_rdevDescription
TRUEevaluated 2300 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEnever evaluated
;
executed 9678 times by 12 tests: return rd->fd != -1 && fstat(rd->fd, &st) != -1 && rd->dev == st.st_dev && rd->ino == st.st_ino && ((rd->mode ^ st.st_mode) & ~( (0400|0200|0100) | ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) )) == 0 && rd->rdev == st.st_rdev;
Executed by:
  • asn1_internal_test
  • chacha_internal_test
  • ctype_internal_test
  • curve448_internal_test
  • libcrypto.so.1.1
  • modes_internal_test
  • poly1305_internal_test
  • rdrand_sanitytest
  • siphash_internal_test
  • sm2_internal_test
  • sm4_internal_test
  • x509_internal_test
0-9678
56}-
57-
58-
59-
60-
61static int get_random_device(size_t n)-
62{-
63 struct stat st;-
64 struct random_device * rd = &random_devices[n];-
65-
66-
67 if (check_random_device(rd)
check_random_device(rd)Description
TRUEnever evaluated
FALSEevaluated 3450 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
)
0-3450
68 return
never executed: return rd->fd;
rd->fd;
never executed: return rd->fd;
0
69-
70-
71 if ((
(rd->fd = open...], 00 )) == -1Description
TRUEevaluated 1150 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEevaluated 2300 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
rd->fd = open(random_device_paths[n],
(rd->fd = open...], 00 )) == -1Description
TRUEevaluated 1150 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEevaluated 2300 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
1150-2300
72 00
(rd->fd = open...], 00 )) == -1Description
TRUEevaluated 1150 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEevaluated 2300 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
1150-2300
73 )) == -1
(rd->fd = open...], 00 )) == -1Description
TRUEevaluated 1150 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEevaluated 2300 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
)
1150-2300
74 return
executed 1150 times by 2 tests: return rd->fd;
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
rd->fd;
executed 1150 times by 2 tests: return rd->fd;
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
1150
75-
76-
77 if (fstat(rd->fd, &st) != -1
fstat(rd->fd, &st) != -1Description
TRUEevaluated 2300 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEnever evaluated
) {
0-2300
78 rd->dev = st.st_dev;-
79 rd->ino = st.st_ino;-
80 rd->mode = st.st_mode;-
81 rd->rdev = st.st_rdev;-
82 }
executed 2300 times by 2 tests: end of block
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
else {
2300
83 close(rd->fd);-
84 rd->fd = -1;-
85 }
never executed: end of block
0
86-
87 return
executed 2300 times by 2 tests: return rd->fd;
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
rd->fd;
executed 2300 times by 2 tests: return rd->fd;
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
2300
88}-
89-
90-
91-
92-
93static void close_random_device(size_t n)-
94{-
95 struct random_device * rd = &random_devices[n];-
96-
97 if (check_random_device(rd)
check_random_device(rd)Description
TRUEevaluated 2300 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEevaluated 3928 times by 12 tests
Evaluated by:
  • asn1_internal_test
  • chacha_internal_test
  • ctype_internal_test
  • curve448_internal_test
  • libcrypto.so.1.1
  • modes_internal_test
  • poly1305_internal_test
  • rdrand_sanitytest
  • siphash_internal_test
  • sm2_internal_test
  • sm4_internal_test
  • x509_internal_test
)
2300-3928
98 close(rd->fd);
executed 2300 times by 2 tests: close(rd->fd);
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
2300
99 rd->fd = -1;-
100}
executed 6228 times by 12 tests: end of block
Executed by:
  • asn1_internal_test
  • chacha_internal_test
  • ctype_internal_test
  • curve448_internal_test
  • libcrypto.so.1.1
  • modes_internal_test
  • poly1305_internal_test
  • rdrand_sanitytest
  • siphash_internal_test
  • sm2_internal_test
  • sm4_internal_test
  • x509_internal_test
6228
101-
102static void open_random_devices(void)-
103{-
104 size_t i;-
105-
106 for (i = 0; i < (sizeof(random_devices)/sizeof((random_devices)[0]))
i < (sizeof(ra..._devices)[0]))Description
TRUEevaluated 3450 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEevaluated 1150 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
; i++)
1150-3450
107 (
executed 3450 times by 2 tests: (void)get_random_device(i);
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
void)get_random_device(i);
executed 3450 times by 2 tests: (void)get_random_device(i);
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
3450
108}
executed 1150 times by 2 tests: end of block
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
1150
109-
110int rand_pool_init(void)-
111{-
112 size_t i;-
113-
114 for (i = 0; i < (sizeof(random_devices)/sizeof((random_devices)[0]))
i < (sizeof(ra..._devices)[0]))Description
TRUEevaluated 3450 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEevaluated 1150 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
; i++)
1150-3450
115 random_devices[i].fd = -1;
executed 3450 times by 2 tests: random_devices[i].fd = -1;
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
3450
116 open_random_devices();-
117 return
executed 1150 times by 2 tests: return 1;
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
1;
executed 1150 times by 2 tests: return 1;
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
1150
118}-
119-
120void rand_pool_cleanup(void)-
121{-
122 size_t i;-
123-
124 for (i = 0; i < (sizeof(random_devices)/sizeof((random_devices)[0]))
i < (sizeof(ra..._devices)[0]))Description
TRUEevaluated 6228 times by 12 tests
Evaluated by:
  • asn1_internal_test
  • chacha_internal_test
  • ctype_internal_test
  • curve448_internal_test
  • libcrypto.so.1.1
  • modes_internal_test
  • poly1305_internal_test
  • rdrand_sanitytest
  • siphash_internal_test
  • sm2_internal_test
  • sm4_internal_test
  • x509_internal_test
FALSEevaluated 2076 times by 12 tests
Evaluated by:
  • asn1_internal_test
  • chacha_internal_test
  • ctype_internal_test
  • curve448_internal_test
  • libcrypto.so.1.1
  • modes_internal_test
  • poly1305_internal_test
  • rdrand_sanitytest
  • siphash_internal_test
  • sm2_internal_test
  • sm4_internal_test
  • x509_internal_test
; i++)
2076-6228
125 close_random_device(i);
executed 6228 times by 12 tests: close_random_device(i);
Executed by:
  • asn1_internal_test
  • chacha_internal_test
  • ctype_internal_test
  • curve448_internal_test
  • libcrypto.so.1.1
  • modes_internal_test
  • poly1305_internal_test
  • rdrand_sanitytest
  • siphash_internal_test
  • sm2_internal_test
  • sm4_internal_test
  • x509_internal_test
6228
126}
executed 2076 times by 12 tests: end of block
Executed by:
  • asn1_internal_test
  • chacha_internal_test
  • ctype_internal_test
  • curve448_internal_test
  • libcrypto.so.1.1
  • modes_internal_test
  • poly1305_internal_test
  • rdrand_sanitytest
  • siphash_internal_test
  • sm2_internal_test
  • sm4_internal_test
  • x509_internal_test
2076
127-
128void rand_pool_keep_random_devices_open(int keep)-
129{-
130 if (keep
keepDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
131 open_random_devices();
never executed: open_random_devices();
0
132 else-
133 rand_pool_cleanup();
never executed: rand_pool_cleanup();
0
134 keep_random_devices_open = keep;-
135}
never executed: end of block
0
136size_t rand_pool_acquire_entropy(RAND_POOL *pool)-
137{-
138-
139-
140-
141 size_t bytes_needed;-
142 size_t entropy_available = 0;-
143 unsigned char *buffer;-
144-
145-
146 {-
147 ssize_t bytes;-
148-
149 int attempts = 3;-
150-
151 bytes_needed = rand_pool_bytes_needed(pool, 1 );-
152 while (bytes_needed != 0
bytes_needed != 0Description
TRUEevaluated 780 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEevaluated 799 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
&& attempts-- > 0
attempts-- > 0Description
TRUEevaluated 780 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEnever evaluated
) {
0-799
153 buffer = rand_pool_add_begin(pool, bytes_needed);-
154 bytes = syscall_random(buffer, bytes_needed);-
155 if (bytes > 0
bytes > 0Description
TRUEevaluated 780 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEnever evaluated
) {
0-780
156 rand_pool_add_end(pool, bytes, 8 * bytes);-
157 bytes_needed -= bytes;-
158 attempts = 3;-
159 }
executed 780 times by 2 tests: end of block
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
else if (bytes < 0
bytes < 0Description
TRUEnever evaluated
FALSEnever evaluated
&&
0-780
160 (*
(*__errno_location ()) != 4Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) != 4Description
TRUEnever evaluated
FALSEnever evaluated
0
161 !=
(*__errno_location ()) != 4Description
TRUEnever evaluated
FALSEnever evaluated
0
162 4
(*__errno_location ()) != 4Description
TRUEnever evaluated
FALSEnever evaluated
0
163 ) {-
164 break;
never executed: break;
0
165 }-
166 }
executed 780 times by 2 tests: end of block
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
780
167 }-
168 entropy_available = rand_pool_entropy_available(pool);-
169 if (entropy_available > 0
entropy_available > 0Description
TRUEevaluated 799 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEnever evaluated
)
0-799
170 return
executed 799 times by 2 tests: return entropy_available;
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
entropy_available;
executed 799 times by 2 tests: return entropy_available;
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
799
171 bytes_needed = rand_pool_bytes_needed(pool, 1 );-
172 {-
173 size_t i;-
174-
175 for (i = 0; bytes_needed > 0
bytes_needed > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& i < (sizeof(random_device_paths)/sizeof((random_device_paths)[0]))
i < (sizeof(ra...ce_paths)[0]))Description
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
176 ssize_t bytes = 0;-
177-
178 int attempts = 3;-
179 const int fd = get_random_device(i);-
180-
181 if (fd == -1
fd == -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
182 continue;
never executed: continue;
0
183-
184 while (bytes_needed != 0
bytes_needed != 0Description
TRUEnever evaluated
FALSEnever evaluated
&& attempts-- > 0
attempts-- > 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
185 buffer = rand_pool_add_begin(pool, bytes_needed);-
186 bytes = read(fd, buffer, bytes_needed);-
187-
188 if (bytes > 0
bytes > 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
189 rand_pool_add_end(pool, bytes, 8 * bytes);-
190 bytes_needed -= bytes;-
191 attempts = 3;-
192 }
never executed: end of block
else if (bytes < 0
bytes < 0Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
193 (*
(*__errno_location ()) != 4Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) != 4Description
TRUEnever evaluated
FALSEnever evaluated
0
194 !=
(*__errno_location ()) != 4Description
TRUEnever evaluated
FALSEnever evaluated
0
195 4
(*__errno_location ()) != 4Description
TRUEnever evaluated
FALSEnever evaluated
0
196 ) {-
197 break;
never executed: break;
0
198 }-
199 }
never executed: end of block
0
200 if (bytes < 0
bytes < 0Description
TRUEnever evaluated
FALSEnever evaluated
|| !keep_random_devices_open
!keep_random_devices_openDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
201 close_random_device(i);
never executed: close_random_device(i);
0
202-
203 bytes_needed = rand_pool_bytes_needed(pool, 1 );-
204 }
never executed: end of block
0
205 entropy_available = rand_pool_entropy_available(pool);-
206 if (entropy_available > 0
entropy_available > 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
207 return
never executed: return entropy_available;
entropy_available;
never executed: return entropy_available;
0
208 }-
209 return
never executed: return rand_pool_entropy_available(pool);
rand_pool_entropy_available(pool);
never executed: return rand_pool_entropy_available(pool);
0
210-
211}-
212-
213-
214-
215-
216int rand_pool_add_nonce_data(RAND_POOL *pool)-
217{-
218 struct {-
219 pid_t pid;-
220 CRYPTO_THREAD_ID tid;-
221 uint64_t time;-
222 } data = { 0 };-
223-
224-
225-
226-
227-
228-
229 data.pid = getpid();-
230 data.tid = CRYPTO_THREAD_get_current_id();-
231 data.time = get_time_stamp();-
232-
233 return
executed 781 times by 2 tests: return rand_pool_add(pool, (unsigned char *)&data, sizeof(data), 0);
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
rand_pool_add(pool, (unsigned char *)&data, sizeof(data), 0);
executed 781 times by 2 tests: return rand_pool_add(pool, (unsigned char *)&data, sizeof(data), 0);
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
781
234}-
235-
236int rand_pool_add_additional_data(RAND_POOL *pool)-
237{-
238 struct {-
239 CRYPTO_THREAD_ID tid;-
240 uint64_t time;-
241 } data = { 0 };-
242-
243-
244-
245-
246-
247-
248 data.tid = CRYPTO_THREAD_get_current_id();-
249 data.time = get_timer_bits();-
250-
251 return
executed 1046919 times by 2 tests: return rand_pool_add(pool, (unsigned char *)&data, sizeof(data), 0);
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
rand_pool_add(pool, (unsigned char *)&data, sizeof(data), 0);
executed 1046919 times by 2 tests: return rand_pool_add(pool, (unsigned char *)&data, sizeof(data), 0);
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
1046919
252}-
253static uint64_t get_time_stamp(void)-
254{-
255-
256 {-
257 struct timespec ts;-
258-
259 if (clock_gettime(
clock_gettime( 0 , &ts) == 0Description
TRUEevaluated 781 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEnever evaluated
0-781
260 0
clock_gettime( 0 , &ts) == 0Description
TRUEevaluated 781 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEnever evaluated
0-781
261 , &ts) == 0
clock_gettime( 0 , &ts) == 0Description
TRUEevaluated 781 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEnever evaluated
)
0-781
262 return
executed 781 times by 2 tests: return ((((uint64_t)(ts.tv_sec)) << 32) + (ts.tv_nsec));
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
((((uint64_t)(ts.tv_sec)) << 32) + (ts.tv_nsec));
executed 781 times by 2 tests: return ((((uint64_t)(ts.tv_sec)) << 32) + (ts.tv_nsec));
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
781
263 }-
264-
265-
266-
267 {-
268 struct timeval tv;-
269-
270 if (gettimeofday(&tv,
gettimeofday(&...id *)0) ) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
271 ((void *)0)
gettimeofday(&...id *)0) ) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
272 ) == 0
gettimeofday(&...id *)0) ) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
273 return
never executed: return ((((uint64_t)(tv.tv_sec)) << 32) + (tv.tv_usec));
((((uint64_t)(tv.tv_sec)) << 32) + (tv.tv_usec));
never executed: return ((((uint64_t)(tv.tv_sec)) << 32) + (tv.tv_usec));
0
274 }-
275-
276 return
never executed: return time( ((void *)0) );
time(
never executed: return time( ((void *)0) );
0
277 ((void *)0)
never executed: return time( ((void *)0) );
0
278 );
never executed: return time( ((void *)0) );
0
279}-
280static uint64_t get_timer_bits(void)-
281{-
282 uint64_t res = OPENSSL_rdtsc();-
283-
284 if (res != 0
res != 0Description
TRUEevaluated 1048187 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEnever evaluated
)
0-1048187
285 return
executed 1047722 times by 2 tests: return res;
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
res;
executed 1047722 times by 2 tests: return res;
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
1047722
286 {-
287 struct timespec ts;-
288 if (clock_gettime(
clock_gettime( 7 , &ts) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
289 7
clock_gettime( 7 , &ts) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
290 , &ts) == 0
clock_gettime( 7 , &ts) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
291 return
never executed: return ((((uint64_t)(ts.tv_sec)) << 32) + (ts.tv_nsec));
((((uint64_t)(ts.tv_sec)) << 32) + (ts.tv_nsec));
never executed: return ((((uint64_t)(ts.tv_sec)) << 32) + (ts.tv_nsec));
0
292 }-
293-
294-
295-
296 {-
297 struct timeval tv;-
298-
299 if (gettimeofday(&tv,
gettimeofday(&...id *)0) ) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
300 ((void *)0)
gettimeofday(&...id *)0) ) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
301 ) == 0
gettimeofday(&...id *)0) ) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
302 return
never executed: return ((((uint64_t)(tv.tv_sec)) << 32) + (tv.tv_usec));
((((uint64_t)(tv.tv_sec)) << 32) + (tv.tv_usec));
never executed: return ((((uint64_t)(tv.tv_sec)) << 32) + (tv.tv_usec));
0
303 }-
304-
305 return
never executed: return time( ((void *)0) );
time(
never executed: return time( ((void *)0) );
0
306 ((void *)0)
never executed: return time( ((void *)0) );
0
307 );
never executed: return time( ((void *)0) );
0
308}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2