Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/tls/tls_keypair.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||
2 | - | |||||||||||||
3 | - | |||||||||||||
4 | struct tls_keypair * | - | ||||||||||||
5 | tls_keypair_new(void) | - | ||||||||||||
6 | { | - | ||||||||||||
7 | return executed 8 times by 4 tests: calloc(1, sizeof(struct tls_keypair));return calloc(1, sizeof(struct tls_keypair)); Executed by:
executed 8 times by 4 tests: return calloc(1, sizeof(struct tls_keypair)); Executed by:
| 8 | ||||||||||||
8 | } | - | ||||||||||||
9 | - | |||||||||||||
10 | static int | - | ||||||||||||
11 | tls_keypair_pubkey_hash(struct tls_keypair *keypair, struct tls_error *error) | - | ||||||||||||
12 | { | - | ||||||||||||
13 | X509 *cert = | - | ||||||||||||
14 | ((void *)0) | - | ||||||||||||
15 | ; | - | ||||||||||||
16 | int rv = -1; | - | ||||||||||||
17 | - | |||||||||||||
18 | free(keypair->pubkey_hash); | - | ||||||||||||
19 | keypair->pubkey_hash = | - | ||||||||||||
20 | ((void *)0) | - | ||||||||||||
21 | ; | - | ||||||||||||
22 | - | |||||||||||||
23 | if (keypair->cert_mem ==
| 0-4 | ||||||||||||
24 | ((void *)0)
| 0-4 | ||||||||||||
25 | ) { | - | ||||||||||||
26 | rv = 0; | - | ||||||||||||
27 | goto never executed: done;goto done; never executed: goto done; | 0 | ||||||||||||
28 | } | - | ||||||||||||
29 | - | |||||||||||||
30 | if (tls_keypair_load_cert(keypair, error, &cert) == -1
| 0-4 | ||||||||||||
31 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
32 | if (tls_cert_pubkey_hash(cert, &keypair->pubkey_hash) == -1
| 0-4 | ||||||||||||
33 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
34 | - | |||||||||||||
35 | rv = 0; | - | ||||||||||||
36 | - | |||||||||||||
37 | err: code before this statement executed 4 times by 2 tests: err: Executed by:
| 4 | ||||||||||||
38 | X509_free(cert); | - | ||||||||||||
39 | done: code before this statement executed 4 times by 2 tests: done: Executed by:
| 4 | ||||||||||||
40 | return executed 4 times by 2 tests: (rv);return (rv); Executed by:
executed 4 times by 2 tests: return (rv); Executed by:
| 4 | ||||||||||||
41 | } | - | ||||||||||||
42 | - | |||||||||||||
43 | void | - | ||||||||||||
44 | tls_keypair_clear_key(struct tls_keypair *keypair) | - | ||||||||||||
45 | { | - | ||||||||||||
46 | freezero(keypair->key_mem, keypair->key_len); | - | ||||||||||||
47 | keypair->key_mem = | - | ||||||||||||
48 | ((void *)0) | - | ||||||||||||
49 | ; | - | ||||||||||||
50 | keypair->key_len = 0; | - | ||||||||||||
51 | } executed 13 times by 2 tests: end of block Executed by:
| 13 | ||||||||||||
52 | - | |||||||||||||
53 | int | - | ||||||||||||
54 | tls_keypair_set_cert_file(struct tls_keypair *keypair, struct tls_error *error, | - | ||||||||||||
55 | const char *cert_file) | - | ||||||||||||
56 | { | - | ||||||||||||
57 | if (tls_config_load_file(error, "certificate", cert_file,
| 0-3 | ||||||||||||
58 | &keypair->cert_mem, &keypair->cert_len) == -1
| 0-3 | ||||||||||||
59 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||
60 | return executed 3 times by 2 tests: tls_keypair_pubkey_hash(keypair, error);return tls_keypair_pubkey_hash(keypair, error); Executed by:
executed 3 times by 2 tests: return tls_keypair_pubkey_hash(keypair, error); Executed by:
| 3 | ||||||||||||
61 | } | - | ||||||||||||
62 | - | |||||||||||||
63 | int | - | ||||||||||||
64 | tls_keypair_set_cert_mem(struct tls_keypair *keypair, struct tls_error *error, | - | ||||||||||||
65 | const uint8_t *cert, size_t len) | - | ||||||||||||
66 | { | - | ||||||||||||
67 | if (tls_set_mem(&keypair->cert_mem, &keypair->cert_len, cert, len) == -1
| 0-1 | ||||||||||||
68 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||
69 | return executed 1 time by 1 test: tls_keypair_pubkey_hash(keypair, error);return tls_keypair_pubkey_hash(keypair, error); Executed by:
executed 1 time by 1 test: return tls_keypair_pubkey_hash(keypair, error); Executed by:
| 1 | ||||||||||||
70 | } | - | ||||||||||||
71 | - | |||||||||||||
72 | int | - | ||||||||||||
73 | tls_keypair_set_key_file(struct tls_keypair *keypair, struct tls_error *error, | - | ||||||||||||
74 | const char *key_file) | - | ||||||||||||
75 | { | - | ||||||||||||
76 | tls_keypair_clear_key(keypair); | - | ||||||||||||
77 | return executed 5 times by 2 tests: tls_config_load_file(error, "key", key_file,return tls_config_load_file(error, "key", key_file, &keypair->key_mem, &keypair->key_len); Executed by:
executed 5 times by 2 tests: return tls_config_load_file(error, "key", key_file, &keypair->key_mem, &keypair->key_len); Executed by:
| 5 | ||||||||||||
78 | &keypair->key_mem, &keypair->key_len); executed 5 times by 2 tests: return tls_config_load_file(error, "key", key_file, &keypair->key_mem, &keypair->key_len); Executed by:
| 5 | ||||||||||||
79 | } | - | ||||||||||||
80 | - | |||||||||||||
81 | int | - | ||||||||||||
82 | tls_keypair_set_key_mem(struct tls_keypair *keypair, struct tls_error *error, | - | ||||||||||||
83 | const uint8_t *key, size_t len) | - | ||||||||||||
84 | { | - | ||||||||||||
85 | tls_keypair_clear_key(keypair); | - | ||||||||||||
86 | return executed 1 time by 1 test: tls_set_mem(&keypair->key_mem, &keypair->key_len, key, len);return tls_set_mem(&keypair->key_mem, &keypair->key_len, key, len); Executed by:
executed 1 time by 1 test: return tls_set_mem(&keypair->key_mem, &keypair->key_len, key, len); Executed by:
| 1 | ||||||||||||
87 | } | - | ||||||||||||
88 | - | |||||||||||||
89 | int | - | ||||||||||||
90 | tls_keypair_set_ocsp_staple_file(struct tls_keypair *keypair, | - | ||||||||||||
91 | struct tls_error *error, const char *ocsp_file) | - | ||||||||||||
92 | { | - | ||||||||||||
93 | return executed 1 time by 1 test: tls_config_load_file(error, "ocsp", ocsp_file,return tls_config_load_file(error, "ocsp", ocsp_file, &keypair->ocsp_staple, &keypair->ocsp_staple_len); Executed by:
executed 1 time by 1 test: return tls_config_load_file(error, "ocsp", ocsp_file, &keypair->ocsp_staple, &keypair->ocsp_staple_len); Executed by:
| 1 | ||||||||||||
94 | &keypair->ocsp_staple, &keypair->ocsp_staple_len); executed 1 time by 1 test: return tls_config_load_file(error, "ocsp", ocsp_file, &keypair->ocsp_staple, &keypair->ocsp_staple_len); Executed by:
| 1 | ||||||||||||
95 | } | - | ||||||||||||
96 | - | |||||||||||||
97 | int | - | ||||||||||||
98 | tls_keypair_set_ocsp_staple_mem(struct tls_keypair *keypair, | - | ||||||||||||
99 | struct tls_error *error, const uint8_t *staple, size_t len) | - | ||||||||||||
100 | { | - | ||||||||||||
101 | return executed 1 time by 1 test: tls_set_mem(&keypair->ocsp_staple, &keypair->ocsp_staple_len,return tls_set_mem(&keypair->ocsp_staple, &keypair->ocsp_staple_len, staple, len); Executed by:
executed 1 time by 1 test: return tls_set_mem(&keypair->ocsp_staple, &keypair->ocsp_staple_len, staple, len); Executed by:
| 1 | ||||||||||||
102 | staple, len); executed 1 time by 1 test: return tls_set_mem(&keypair->ocsp_staple, &keypair->ocsp_staple_len, staple, len); Executed by:
| 1 | ||||||||||||
103 | } | - | ||||||||||||
104 | - | |||||||||||||
105 | void | - | ||||||||||||
106 | tls_keypair_free(struct tls_keypair *keypair) | - | ||||||||||||
107 | { | - | ||||||||||||
108 | if (keypair ==
| 0-5 | ||||||||||||
109 | ((void *)0)
| 0-5 | ||||||||||||
110 | ) | - | ||||||||||||
111 | return; never executed: return; | 0 | ||||||||||||
112 | - | |||||||||||||
113 | tls_keypair_clear_key(keypair); | - | ||||||||||||
114 | - | |||||||||||||
115 | free(keypair->cert_mem); | - | ||||||||||||
116 | free(keypair->ocsp_staple); | - | ||||||||||||
117 | free(keypair->pubkey_hash); | - | ||||||||||||
118 | - | |||||||||||||
119 | free(keypair); | - | ||||||||||||
120 | } executed 5 times by 2 tests: end of block Executed by:
| 5 | ||||||||||||
121 | - | |||||||||||||
122 | int | - | ||||||||||||
123 | tls_keypair_load_cert(struct tls_keypair *keypair, struct tls_error *error, | - | ||||||||||||
124 | X509 **cert) | - | ||||||||||||
125 | { | - | ||||||||||||
126 | char *errstr = "unknown"; | - | ||||||||||||
127 | BIO *cert_bio = | - | ||||||||||||
128 | ((void *)0) | - | ||||||||||||
129 | ; | - | ||||||||||||
130 | int ssl_err; | - | ||||||||||||
131 | int rv = -1; | - | ||||||||||||
132 | - | |||||||||||||
133 | X509_free(*cert); | - | ||||||||||||
134 | *cert = | - | ||||||||||||
135 | ((void *)0) | - | ||||||||||||
136 | ; | - | ||||||||||||
137 | - | |||||||||||||
138 | if (keypair->cert_mem ==
| 0-5 | ||||||||||||
139 | ((void *)0)
| 0-5 | ||||||||||||
140 | ) { | - | ||||||||||||
141 | tls_error_set(error, "keypair has no certificate"); | - | ||||||||||||
142 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
143 | } | - | ||||||||||||
144 | if ((
| 0-5 | ||||||||||||
145 | keypair->cert_len)) ==
| 0-5 | ||||||||||||
146 | ((void *)0)
| 0-5 | ||||||||||||
147 | ) { | - | ||||||||||||
148 | tls_error_set(error, "failed to create certificate bio"); | - | ||||||||||||
149 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
150 | } | - | ||||||||||||
151 | if ((*
| 0-5 | ||||||||||||
152 | ((void *)0)
| 0-5 | ||||||||||||
153 | , tls_password_cb,
| 0-5 | ||||||||||||
154 |
| 0-5 | ||||||||||||
155 | ((void *)0)
| 0-5 | ||||||||||||
156 | )) ==
| 0-5 | ||||||||||||
157 | ((void *)0)
| 0-5 | ||||||||||||
158 | ) { | - | ||||||||||||
159 | if ((
| 0 | ||||||||||||
160 | errstr = ERR_error_string(ssl_err, never executed: errstr = ERR_error_string(ssl_err, ((void *)0) ); | 0 | ||||||||||||
161 | ((void *)0) never executed: errstr = ERR_error_string(ssl_err, ((void *)0) ); | 0 | ||||||||||||
162 | ); never executed: errstr = ERR_error_string(ssl_err, ((void *)0) ); | 0 | ||||||||||||
163 | tls_error_set(error, "failed to load certificate: %s", errstr); | - | ||||||||||||
164 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
165 | } | - | ||||||||||||
166 | - | |||||||||||||
167 | rv = 0; | - | ||||||||||||
168 | - | |||||||||||||
169 | err: code before this statement executed 5 times by 2 tests: err: Executed by:
| 5 | ||||||||||||
170 | BIO_free(cert_bio); | - | ||||||||||||
171 | - | |||||||||||||
172 | return executed 5 times by 2 tests: (rv);return (rv); Executed by:
executed 5 times by 2 tests: return (rv); Executed by:
| 5 | ||||||||||||
173 | } | - | ||||||||||||
Switch to Source code | Preprocessed file |