… | |
… | |
166 | |
166 | |
167 | exit (c); |
167 | exit (c); |
168 | } |
168 | } |
169 | |
169 | |
170 | // signal handlers |
170 | // signal handlers |
171 | static RETSIGTYPE |
171 | static void |
172 | sigterm_handler (int a) |
172 | sigterm_handler (int a) |
173 | { |
173 | { |
174 | network.events |= vpn::EVENT_SHUTDOWN; |
174 | network.events |= vpn::EVENT_SHUTDOWN; |
175 | network.event.start (); |
175 | network.event.start (); |
176 | } |
176 | } |
177 | |
177 | |
178 | static RETSIGTYPE |
178 | static void |
179 | sighup_handler (int a) |
179 | sighup_handler (int a) |
180 | { |
180 | { |
181 | network.events |= vpn::EVENT_RECONNECT; |
181 | network.events |= vpn::EVENT_RECONNECT; |
182 | network.event.start (); |
182 | network.event.start (); |
183 | } |
183 | } |
184 | |
184 | |
185 | static RETSIGTYPE |
185 | static void |
186 | sigusr1_handler (int a) |
186 | sigusr1_handler (int a) |
187 | { |
187 | { |
188 | network.dump_status (); |
188 | network.dump_status (); |
189 | } |
189 | } |
190 | |
190 | |
191 | static RETSIGTYPE |
191 | static void |
192 | sigusr2_handler (int a) |
192 | sigusr2_handler (int a) |
193 | { |
193 | { |
194 | } |
194 | } |
195 | |
195 | |
196 | static void |
196 | static void |
… | |
… | |
259 | int |
259 | int |
260 | main (int argc, char **argv, char **envp) |
260 | main (int argc, char **argv, char **envp) |
261 | { |
261 | { |
262 | ERR_load_crypto_strings (); // we have the RAM |
262 | ERR_load_crypto_strings (); // we have the RAM |
263 | |
263 | |
|
|
264 | // m,ake sure openssl agrees with us on the important bits |
264 | require (EVP_MD_size (MAC_DIGEST ()) == HASH_SIZE (MAC_DIGEST )); |
265 | require (EVP_MD_size (MAC_DIGEST ()) == HASH_SIZE (MAC_DIGEST )); |
265 | require (EVP_MD_size (AUTH_DIGEST ()) == HASH_SIZE (AUTH_DIGEST)); |
266 | require (EVP_MD_size (AUTH_DIGEST ()) == HASH_SIZE (AUTH_DIGEST)); |
266 | require (EVP_CIPHER_key_length (CIPHER ()) == KEY_SIZE (CIPHER )); |
267 | require (EVP_CIPHER_key_length (CIPHER ()) == KEY_SIZE (CIPHER )); |
267 | require (EVP_CIPHER_block_size (CIPHER ()) == BLOCK_SIZE (CIPHER )); |
268 | require (EVP_CIPHER_block_size (CIPHER ()) == BLOCK_SIZE (CIPHER )); |
|
|
269 | require (EVP_CIPHER_iv_length (CIPHER ()) == IV_SIZE (CIPHER )); |
|
|
270 | require (EVP_CIPHER_mode (CIPHER ()) == EVP_CIPH_CTR_MODE); |
268 | |
271 | |
269 | curve25519_verify (); |
272 | curve25519_verify (); |
270 | hkdf::verify (); |
273 | hkdf::verify (); |
271 | |
274 | |
272 | set_loglevel (L_INFO); |
275 | set_loglevel (L_INFO); |