Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/engine/eng_rdrand.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||
---|---|---|---|---|---|---|---|---|
1 | - | |||||||
2 | size_t OPENSSL_ia32_rdrand_bytes(unsigned char *buf, size_t len); | - | ||||||
3 | - | |||||||
4 | static int get_random_bytes(unsigned char *buf, int num) | - | ||||||
5 | { | - | ||||||
6 | if (num < 0
| 0 | ||||||
7 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||
8 | } | - | ||||||
9 | - | |||||||
10 | return never executed: (size_t)num == OPENSSL_ia32_rdrand_bytes(buf, (size_t)num);return (size_t)num == OPENSSL_ia32_rdrand_bytes(buf, (size_t)num); never executed: return (size_t)num == OPENSSL_ia32_rdrand_bytes(buf, (size_t)num); | 0 | ||||||
11 | } | - | ||||||
12 | - | |||||||
13 | static int random_status(void) | - | ||||||
14 | { | - | ||||||
15 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||
16 | } | - | ||||||
17 | - | |||||||
18 | static RAND_METHOD rdrand_meth = { | - | ||||||
19 | - | |||||||
20 | ((void *)0) | - | ||||||
21 | , | - | ||||||
22 | get_random_bytes, | - | ||||||
23 | - | |||||||
24 | ((void *)0) | - | ||||||
25 | , | - | ||||||
26 | - | |||||||
27 | ((void *)0) | - | ||||||
28 | , | - | ||||||
29 | get_random_bytes, | - | ||||||
30 | random_status, | - | ||||||
31 | }; | - | ||||||
32 | - | |||||||
33 | static int rdrand_init(ENGINE *e) | - | ||||||
34 | { | - | ||||||
35 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||
36 | } | - | ||||||
37 | - | |||||||
38 | static const char *engine_e_rdrand_id = "rdrand"; | - | ||||||
39 | static const char *engine_e_rdrand_name = "Intel RDRAND engine"; | - | ||||||
40 | - | |||||||
41 | static int bind_helper(ENGINE *e) | - | ||||||
42 | { | - | ||||||
43 | if (!ENGINE_set_id(e, engine_e_rdrand_id)
| 0 | ||||||
44 | !ENGINE_set_name(e, engine_e_rdrand_name)
| 0 | ||||||
45 | !ENGINE_set_flags(e, (int)0x0008)
| 0 | ||||||
46 | !ENGINE_set_init_function(e, rdrand_init)
| 0 | ||||||
47 | !ENGINE_set_RAND(e, &rdrand_meth)
| 0 | ||||||
48 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||
49 | - | |||||||
50 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||
51 | } | - | ||||||
52 | - | |||||||
53 | static ENGINE *ENGINE_rdrand(void) | - | ||||||
54 | { | - | ||||||
55 | ENGINE *ret = ENGINE_new(); | - | ||||||
56 | if (ret ==
| 0 | ||||||
57 | ((void *)0)
| 0 | ||||||
58 | ) | - | ||||||
59 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||
60 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||
61 | ; never executed: return ((void *)0) ; | 0 | ||||||
62 | if (!bind_helper(ret)
| 0 | ||||||
63 | ENGINE_free(ret); | - | ||||||
64 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||
65 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||
66 | ; never executed: return ((void *)0) ; | 0 | ||||||
67 | } | - | ||||||
68 | return never executed: ret;return ret; never executed: return ret; | 0 | ||||||
69 | } | - | ||||||
70 | - | |||||||
71 | void engine_load_rdrand_int(void) | - | ||||||
72 | { | - | ||||||
73 | extern unsigned int OPENSSL_ia32cap_P[]; | - | ||||||
74 | - | |||||||
75 | if (OPENSSL_ia32cap_P[1] & (1 << (62 - 32))
| 0-1959 | ||||||
76 | ENGINE *toadd = ENGINE_rdrand(); | - | ||||||
77 | if (!toadd
| 0 | ||||||
78 | return; never executed: return; | 0 | ||||||
79 | ENGINE_add(toadd); | - | ||||||
80 | ENGINE_free(toadd); | - | ||||||
81 | ERR_clear_error(); | - | ||||||
82 | } never executed: end of block | 0 | ||||||
83 | } executed 1959 times by 1 test: end of block Executed by:
| 1959 | ||||||
Switch to Source code | Preprocessed file |