| 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 blockExecuted by:
| 1959 | ||||||
| Switch to Source code | Preprocessed file |