aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEli Zaretskii2017-07-15 11:33:22 +0300
committerEli Zaretskii2017-07-15 11:33:22 +0300
commitd23f38e31d0adf102526b5b4291a20581418b8eb (patch)
tree6731acdb764daad155c93fc987a5b7aead156e10 /src
parent55d65682ab81ee6e7ca12f4902a6f8799782cd23 (diff)
downloademacs-d23f38e31d0adf102526b5b4291a20581418b8eb.tar.gz
emacs-d23f38e31d0adf102526b5b4291a20581418b8eb.zip
Rearrange MS-Windows code that dynamically loads GnuTLS functions
* src/gnutls.c [WINDOWSNT]: Reorganize definitions and loading of functions using the same preprocessing directives as in the code.
Diffstat (limited to 'src')
-rw-r--r--src/gnutls.c98
1 files changed, 62 insertions, 36 deletions
diff --git a/src/gnutls.c b/src/gnutls.c
index deffbd4b053..0fc5d90c3ac 100644
--- a/src/gnutls.c
+++ b/src/gnutls.c
@@ -172,8 +172,14 @@ DEF_DLL_FN (const char *, gnutls_cipher_get_name,
172DEF_DLL_FN (gnutls_mac_algorithm_t, gnutls_mac_get, (gnutls_session_t)); 172DEF_DLL_FN (gnutls_mac_algorithm_t, gnutls_mac_get, (gnutls_session_t));
173DEF_DLL_FN (const char *, gnutls_mac_get_name, (gnutls_mac_algorithm_t)); 173DEF_DLL_FN (const char *, gnutls_mac_get_name, (gnutls_mac_algorithm_t));
174 174
175# if (GNUTLS_VERSION_MAJOR + (GNUTLS_VERSION_MINOR >= 4) > 3) 175# ifdef HAVE_GNUTLS3
176DEF_DLL_FN (int, gnutls_rnd, (gnutls_rnd_level_t, void *, size_t)); 176DEF_DLL_FN (int, gnutls_rnd, (gnutls_rnd_level_t, void *, size_t));
177DEF_DLL_FN (const gnutls_mac_algorithm_t *, gnutls_mac_list, (void));
178DEF_DLL_FN (size_t, gnutls_mac_get_nonce_size, (gnutls_mac_algorithm_t));
179DEF_DLL_FN (size_t, gnutls_mac_get_key_size, (gnutls_mac_algorithm_t));
180DEF_DLL_FN (const gnutls_digest_algorithm_t *, gnutls_digest_list, (void));
181DEF_DLL_FN (const char *, gnutls_digest_get_name, (gnutls_digest_algorithm_t));
182# ifdef HAVE_GNUTLS3_CIPHER
177DEF_DLL_FN (gnutls_cipher_algorithm_t *, gnutls_cipher_list, (void)); 183DEF_DLL_FN (gnutls_cipher_algorithm_t *, gnutls_cipher_list, (void));
178DEF_DLL_FN (int, gnutls_cipher_get_iv_size, (gnutls_cipher_algorithm_t)); 184DEF_DLL_FN (int, gnutls_cipher_get_iv_size, (gnutls_cipher_algorithm_t));
179DEF_DLL_FN (size_t, gnutls_cipher_get_key_size, (gnutls_cipher_algorithm_t)); 185DEF_DLL_FN (size_t, gnutls_cipher_get_key_size, (gnutls_cipher_algorithm_t));
@@ -182,6 +188,13 @@ DEF_DLL_FN (int, gnutls_cipher_get_tag_size, (gnutls_cipher_algorithm_t));
182DEF_DLL_FN (int, gnutls_cipher_init, 188DEF_DLL_FN (int, gnutls_cipher_init,
183 (gnutls_cipher_hd_t *, gnutls_cipher_algorithm_t, 189 (gnutls_cipher_hd_t *, gnutls_cipher_algorithm_t,
184 const gnutls_datum_t *, const gnutls_datum_t *)); 190 const gnutls_datum_t *, const gnutls_datum_t *));
191DEF_DLL_FN (void, gnutls_cipher_set_iv, (gnutls_cipher_hd_t, void *, size_t));
192DEF_DLL_FN (int, gnutls_cipher_encrypt2,
193 (gnutls_cipher_hd_t, const void *, size_t, void *, size_t));
194DEF_DLL_FN (void, gnutls_cipher_deinit, (gnutls_cipher_hd_t));
195DEF_DLL_FN (int, gnutls_cipher_decrypt2,
196 (gnutls_cipher_hd_t, const void *, size_t, void *, size_t));
197# ifdef HAVE_GNUTLS3_AEAD
185DEF_DLL_FN (int, gnutls_aead_cipher_init, 198DEF_DLL_FN (int, gnutls_aead_cipher_init,
186 (gnutls_aead_cipher_hd_t *, gnutls_cipher_algorithm_t, 199 (gnutls_aead_cipher_hd_t *, gnutls_cipher_algorithm_t,
187 const gnutls_datum_t *)); 200 const gnutls_datum_t *));
@@ -192,30 +205,25 @@ DEF_DLL_FN (int, gnutls_aead_cipher_encrypt,
192DEF_DLL_FN (int, gnutls_aead_cipher_decrypt, 205DEF_DLL_FN (int, gnutls_aead_cipher_decrypt,
193 (gnutls_aead_cipher_hd_t, const void *, size_t, const void *, 206 (gnutls_aead_cipher_hd_t, const void *, size_t, const void *,
194 size_t, size_t, const void *, size_t, void *, size_t *)); 207 size_t, size_t, const void *, size_t, void *, size_t *));
195DEF_DLL_FN (void, gnutls_cipher_set_iv, (gnutls_cipher_hd_t, void *, size_t)); 208# endif /* HAVE_GNUTLS3_AEAD */
196DEF_DLL_FN (int, gnutls_cipher_encrypt2, 209# ifdef HAVE_GNUTLS3_HMAC
197 (gnutls_cipher_hd_t, const void *, size_t, void *, size_t));
198DEF_DLL_FN (void, gnutls_cipher_deinit, (gnutls_cipher_hd_t));
199DEF_DLL_FN (int, gnutls_cipher_decrypt2,
200 (gnutls_cipher_hd_t, const void *, size_t, void *, size_t));
201DEF_DLL_FN (const gnutls_mac_algorithm_t *, gnutls_mac_list, (void));
202DEF_DLL_FN (size_t, gnutls_mac_get_nonce_size, (gnutls_mac_algorithm_t));
203DEF_DLL_FN (size_t, gnutls_mac_get_key_size, (gnutls_mac_algorithm_t));
204DEF_DLL_FN (const gnutls_digest_algorithm_t *, gnutls_digest_list, (void));
205DEF_DLL_FN (const char *, gnutls_digest_get_name, (gnutls_digest_algorithm_t));
206DEF_DLL_FN (int, gnutls_hmac_init, 210DEF_DLL_FN (int, gnutls_hmac_init,
207 (gnutls_hmac_hd_t *, gnutls_mac_algorithm_t, const void *, size_t)); 211 (gnutls_hmac_hd_t *, gnutls_mac_algorithm_t, const void *, size_t));
208DEF_DLL_FN (int, gnutls_hmac_get_len, (gnutls_mac_algorithm_t)); 212DEF_DLL_FN (int, gnutls_hmac_get_len, (gnutls_mac_algorithm_t));
209DEF_DLL_FN (int, gnutls_hmac, (gnutls_hmac_hd_t, const void *, size_t)); 213DEF_DLL_FN (int, gnutls_hmac, (gnutls_hmac_hd_t, const void *, size_t));
210DEF_DLL_FN (void, gnutls_hmac_deinit, (gnutls_hmac_hd_t, void *)); 214DEF_DLL_FN (void, gnutls_hmac_deinit, (gnutls_hmac_hd_t, void *));
211DEF_DLL_FN (int, gnutls_hash_init,
212 (gnutls_hash_hd_t *, gnutls_digest_algorithm_t));
213DEF_DLL_FN (void, gnutls_hmac_output, (gnutls_hmac_hd_t, void *)); 215DEF_DLL_FN (void, gnutls_hmac_output, (gnutls_hmac_hd_t, void *));
216# endif /* HAVE_GNUTLS3_HMAC */
217# endif /* HAVE_GNUTLS3_CIPHER */
218# ifdef HAVE_GNUTLS3_DIGEST
219 DEF_DLL_FN (int, gnutls_hash_init,
220 (gnutls_hash_hd_t *, gnutls_digest_algorithm_t));
214DEF_DLL_FN (int, gnutls_hash_get_len, (gnutls_digest_algorithm_t)); 221DEF_DLL_FN (int, gnutls_hash_get_len, (gnutls_digest_algorithm_t));
215DEF_DLL_FN (int, gnutls_hash, (gnutls_hash_hd_t, const void *, size_t)); 222DEF_DLL_FN (int, gnutls_hash, (gnutls_hash_hd_t, const void *, size_t));
216DEF_DLL_FN (void, gnutls_hash_deinit, (gnutls_hash_hd_t, void *)); 223DEF_DLL_FN (void, gnutls_hash_deinit, (gnutls_hash_hd_t, void *));
217DEF_DLL_FN (void, gnutls_hash_output, (gnutls_hash_hd_t, void *)); 224DEF_DLL_FN (void, gnutls_hash_output, (gnutls_hash_hd_t, void *));
218# endif 225# endif /* HAVE_GNUTLS3_DIGEST */
226# endif /* HAVE_GNUTLS3 */
219 227
220 228
221static bool 229static bool
@@ -301,38 +309,46 @@ init_gnutls_functions (void)
301 LOAD_DLL_FN (library, gnutls_cipher_get_name); 309 LOAD_DLL_FN (library, gnutls_cipher_get_name);
302 LOAD_DLL_FN (library, gnutls_mac_get); 310 LOAD_DLL_FN (library, gnutls_mac_get);
303 LOAD_DLL_FN (library, gnutls_mac_get_name); 311 LOAD_DLL_FN (library, gnutls_mac_get_name);
304# if GNUTLS_VERSION_MAJOR + (GNUTLS_VERSION_MINOR >= 4) > 3 312# ifdef HAVE_GNUTLS3
305 LOAD_DLL_FN (library, gnutls_rnd); 313 LOAD_DLL_FN (library, gnutls_rnd);
314 LOAD_DLL_FN (library, gnutls_mac_list);
315 LOAD_DLL_FN (library, gnutls_mac_get_nonce_size);
316 LOAD_DLL_FN (library, gnutls_mac_get_key_size);
317 LOAD_DLL_FN (library, gnutls_digest_list);
318 LOAD_DLL_FN (library, gnutls_digest_get_name);
319# ifdef HAVE_GNUTLS3_CIPHER
306 LOAD_DLL_FN (library, gnutls_cipher_list); 320 LOAD_DLL_FN (library, gnutls_cipher_list);
307 LOAD_DLL_FN (library, gnutls_cipher_get_iv_size); 321 LOAD_DLL_FN (library, gnutls_cipher_get_iv_size);
308 LOAD_DLL_FN (library, gnutls_cipher_get_key_size); 322 LOAD_DLL_FN (library, gnutls_cipher_get_key_size);
309 LOAD_DLL_FN (library, gnutls_cipher_get_block_size); 323 LOAD_DLL_FN (library, gnutls_cipher_get_block_size);
310 LOAD_DLL_FN (library, gnutls_cipher_get_tag_size); 324 LOAD_DLL_FN (library, gnutls_cipher_get_tag_size);
311 LOAD_DLL_FN (library, gnutls_cipher_init); 325 LOAD_DLL_FN (library, gnutls_cipher_init);
312 LOAD_DLL_FN (library, gnutls_aead_cipher_encrypt);
313 LOAD_DLL_FN (library, gnutls_aead_cipher_decrypt);
314 LOAD_DLL_FN (library, gnutls_aead_cipher_init);
315 LOAD_DLL_FN (library, gnutls_aead_cipher_deinit);
316 LOAD_DLL_FN (library, gnutls_cipher_set_iv); 326 LOAD_DLL_FN (library, gnutls_cipher_set_iv);
317 LOAD_DLL_FN (library, gnutls_cipher_encrypt2); 327 LOAD_DLL_FN (library, gnutls_cipher_encrypt2);
318 LOAD_DLL_FN (library, gnutls_cipher_decrypt2);
319 LOAD_DLL_FN (library, gnutls_cipher_deinit); 328 LOAD_DLL_FN (library, gnutls_cipher_deinit);
320 LOAD_DLL_FN (library, gnutls_mac_list); 329 LOAD_DLL_FN (library, gnutls_cipher_decrypt2);
321 LOAD_DLL_FN (library, gnutls_mac_get_nonce_size); 330# ifdef HAVE_GNUTLS3_AEAD
322 LOAD_DLL_FN (library, gnutls_mac_get_key_size); 331 LOAD_DLL_FN (library, gnutls_aead_cipher_init);
323 LOAD_DLL_FN (library, gnutls_digest_list); 332 LOAD_DLL_FN (library, gnutls_aead_cipher_deinit);
324 LOAD_DLL_FN (library, gnutls_digest_get_name); 333 LOAD_DLL_FN (library, gnutls_aead_cipher_encrypt);
334 LOAD_DLL_FN (library, gnutls_aead_cipher_decrypt);
335# endif
336# ifdef HAVE_GNUTLS3_HMAC
325 LOAD_DLL_FN (library, gnutls_hmac_init); 337 LOAD_DLL_FN (library, gnutls_hmac_init);
326 LOAD_DLL_FN (library, gnutls_hmac_get_len); 338 LOAD_DLL_FN (library, gnutls_hmac_get_len);
327 LOAD_DLL_FN (library, gnutls_hmac); 339 LOAD_DLL_FN (library, gnutls_hmac);
328 LOAD_DLL_FN (library, gnutls_hmac_deinit); 340 LOAD_DLL_FN (library, gnutls_hmac_deinit);
329 LOAD_DLL_FN (library, gnutls_hmac_output); 341 LOAD_DLL_FN (library, gnutls_hmac_output);
342# endif /* HAVE_GNUTLS3_HMAC */
343# endif /* HAVE_GNUTLS3_CIPHER */
344# ifdef HAVE_GNUTLS3_DIGEST
330 LOAD_DLL_FN (library, gnutls_hash_init); 345 LOAD_DLL_FN (library, gnutls_hash_init);
331 LOAD_DLL_FN (library, gnutls_hash_get_len); 346 LOAD_DLL_FN (library, gnutls_hash_get_len);
332 LOAD_DLL_FN (library, gnutls_hash); 347 LOAD_DLL_FN (library, gnutls_hash);
333 LOAD_DLL_FN (library, gnutls_hash_deinit); 348 LOAD_DLL_FN (library, gnutls_hash_deinit);
334 LOAD_DLL_FN (library, gnutls_hash_output); 349 LOAD_DLL_FN (library, gnutls_hash_output);
335# endif 350# endif
351# endif /* HAVE_GNUTLS3 */
336 352
337 max_log_level = global_gnutls_log_level; 353 max_log_level = global_gnutls_log_level;
338 354
@@ -410,36 +426,46 @@ init_gnutls_functions (void)
410# define gnutls_x509_crt_get_version fn_gnutls_x509_crt_get_version 426# define gnutls_x509_crt_get_version fn_gnutls_x509_crt_get_version
411# define gnutls_x509_crt_import fn_gnutls_x509_crt_import 427# define gnutls_x509_crt_import fn_gnutls_x509_crt_import
412# define gnutls_x509_crt_init fn_gnutls_x509_crt_init 428# define gnutls_x509_crt_init fn_gnutls_x509_crt_init
429# ifdef HAVE_GNUTLS3
413# define gnutls_rnd fn_gnutls_rnd 430# define gnutls_rnd fn_gnutls_rnd
431# define gnutls_mac_list fn_gnutls_mac_list
432# define gnutls_mac_get_nonce_size fn_gnutls_mac_get_nonce_size
433# define gnutls_mac_get_key_size fn_gnutls_mac_get_key_size
434# define gnutls_digest_list fn_gnutls_digest_list
435# define gnutls_digest_get_name fn_gnutls_digest_get_name
436# ifdef HAVE_GNUTLS3_CIPHER
414# define gnutls_cipher_list fn_gnutls_cipher_list 437# define gnutls_cipher_list fn_gnutls_cipher_list
415# define gnutls_cipher_get_iv_size fn_gnutls_cipher_get_iv_size 438# define gnutls_cipher_get_iv_size fn_gnutls_cipher_get_iv_size
416# define gnutls_cipher_get_key_size fn_gnutls_cipher_get_key_size 439# define gnutls_cipher_get_key_size fn_gnutls_cipher_get_key_size
417# define gnutls_cipher_get_block_size fn_gnutls_cipher_get_block_size 440# define gnutls_cipher_get_block_size fn_gnutls_cipher_get_block_size
418# define gnutls_cipher_get_tag_size fn_gnutls_cipher_get_tag_size 441# define gnutls_cipher_get_tag_size fn_gnutls_cipher_get_tag_size
419# define gnutls_cipher_init fn_gnutls_cipher_init 442# define gnutls_cipher_init fn_gnutls_cipher_init
420# define gnutls_aead_cipher_encrypt fn_gnutls_aead_cipher_encrypt
421# define gnutls_aead_cipher_decrypt fn_gnutls_aead_cipher_decrypt
422# define gnutls_aead_cipher_init fn_gnutls_aead_cipher_init
423# define gnutls_aead_cipher_deinit fn_gnutls_aead_cipher_deinit
424# define gnutls_cipher_set_iv fn_gnutls_cipher_set_iv 443# define gnutls_cipher_set_iv fn_gnutls_cipher_set_iv
425# define gnutls_cipher_encrypt2 fn_gnutls_cipher_encrypt2 444# define gnutls_cipher_encrypt2 fn_gnutls_cipher_encrypt2
426# define gnutls_cipher_decrypt2 fn_gnutls_cipher_decrypt2 445# define gnutls_cipher_decrypt2 fn_gnutls_cipher_decrypt2
427# define gnutls_cipher_deinit fn_gnutls_cipher_deinit 446# define gnutls_cipher_deinit fn_gnutls_cipher_deinit
428# define gnutls_mac_list fn_gnutls_mac_list 447# ifdef HAVE_GNUTLS3_AEAD
429# define gnutls_mac_get_nonce_size fn_gnutls_mac_get_nonce_size 448# define gnutls_aead_cipher_encrypt fn_gnutls_aead_cipher_encrypt
430# define gnutls_mac_get_key_size fn_gnutls_mac_get_key_size 449# define gnutls_aead_cipher_decrypt fn_gnutls_aead_cipher_decrypt
431# define gnutls_digest_list fn_gnutls_digest_list 450# define gnutls_aead_cipher_init fn_gnutls_aead_cipher_init
432# define gnutls_digest_get_name fn_gnutls_digest_get_name 451# define gnutls_aead_cipher_deinit fn_gnutls_aead_cipher_deinit
452# endif /* HAVE_GNUTLS3_AEAD */
453# ifdef HAVE_GNUTLS3_HMAC
433# define gnutls_hmac_init fn_gnutls_hmac_init 454# define gnutls_hmac_init fn_gnutls_hmac_init
434# define gnutls_hmac_get_len fn_gnutls_hmac_get_len 455# define gnutls_hmac_get_len fn_gnutls_hmac_get_len
435# define gnutls_hmac fn_gnutls_hmac 456# define gnutls_hmac fn_gnutls_hmac
436# define gnutls_hmac_deinit fn_gnutls_hmac_deinit 457# define gnutls_hmac_deinit fn_gnutls_hmac_deinit
437# define gnutls_hmac_output fn_gnutls_hmac_output 458# define gnutls_hmac_output fn_gnutls_hmac_output
459# endif /* HAVE_GNUTLS3_HMAC */
460# endif /* HAVE_GNUTLS3_CIPHER */
461# ifdef HAVE_GNUTLS3_DIGEST
438# define gnutls_hash_init fn_gnutls_hash_init 462# define gnutls_hash_init fn_gnutls_hash_init
439# define gnutls_hash_get_len fn_gnutls_hash_get_len 463# define gnutls_hash_get_len fn_gnutls_hash_get_len
440# define gnutls_hash fn_gnutls_hash 464# define gnutls_hash fn_gnutls_hash
441# define gnutls_hash_deinit fn_gnutls_hash_deinit 465# define gnutls_hash_deinit fn_gnutls_hash_deinit
442# define gnutls_hash_output fn_gnutls_hash_output 466# define gnutls_hash_output fn_gnutls_hash_output
467# endif
468# endif /* HAVE_GNUTLS3 */
443 469
444/* This wrapper is called from fns.c, which doesn't know about the 470/* This wrapper is called from fns.c, which doesn't know about the
445 LOAD_DLL_FN stuff above. */ 471 LOAD_DLL_FN stuff above. */