summaryrefslogtreecommitdiff
path: root/src/visibility.h
blob: c44cb836ed8f4ed35415e58090bac9d62816f517 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
/* visibility.h - Set visibility attribute
 * Copyright (C) 2007  Free Software Foundation, Inc.
 *
 * This file is part of Libgcrypt.
 *
 * Libgcrypt is free software; you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation; either version 2.1 of
 * the License, or (at your option) any later version.
 *
 * Libgcrypt is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this program; if not, see <http://www.gnu.org/licenses/>.
 */

#ifndef GCRY_VISIBILITY_H
#define GCRY_VISIBILITY_H

/* Redefine all public symbols with an underscore unless we already
   use the underscore prefixed version internally.  */


/* Include the main header here so that public symbols are mapped to
   the internal underscored ones.  */
#ifdef _GCRY_INCLUDED_BY_VISIBILITY_C
  /* We need to redeclare the deprecated functions without the
     deprecated attribute.  */
# define GCRYPT_NO_DEPRECATED
# include "gcrypt-int.h"
  /* None in this version.  */
#else
# include "gcrypt-int.h"
#endif

/* Prototypes of functions exported but not ready for use.  */
gcry_err_code_t gcry_md_get (gcry_md_hd_t hd, int algo,
                             unsigned char *buffer, int buflen);


/* Our use of the ELF visibility feature works by passing
   -fvisibiliy=hidden on the command line and by explicitly marking
   all exported functions as visible.

   NOTE: When adding new functions, please make sure to add them to
         libgcrypt.vers and libgcrypt.def as well.  */

#ifdef _GCRY_INCLUDED_BY_VISIBILITY_C

/* A macro to flag a function as visible.  */
#ifdef GCRY_USE_VISIBILITY
# define MARK_VISIBLEX(name) \
    extern __typeof__ (name) name __attribute__ ((visibility("default")));
#else
# define MARK_VISIBLEX(name) /* */
#endif


/* Now mark all symbols.  */

MARK_VISIBLEX (gcry_check_version)
MARK_VISIBLEX (gcry_control)

MARK_VISIBLEX (gcry_set_allocation_handler)
MARK_VISIBLEX (gcry_set_fatalerror_handler)
MARK_VISIBLEX (gcry_set_gettext_handler)
MARK_VISIBLEX (gcry_set_log_handler)
MARK_VISIBLEX (gcry_set_outofcore_handler)
MARK_VISIBLEX (gcry_set_progress_handler)

MARK_VISIBLEX (gcry_err_code_from_errno)
MARK_VISIBLEX (gcry_err_code_to_errno)
MARK_VISIBLEX (gcry_err_make_from_errno)
MARK_VISIBLEX (gcry_error_from_errno)
MARK_VISIBLEX (gcry_strerror)
MARK_VISIBLEX (gcry_strsource)

MARK_VISIBLEX (gcry_malloc)
MARK_VISIBLEX (gcry_malloc_secure)
MARK_VISIBLEX (gcry_calloc)
MARK_VISIBLEX (gcry_calloc_secure)
MARK_VISIBLEX (gcry_realloc)
MARK_VISIBLEX (gcry_strdup)
MARK_VISIBLEX (gcry_is_secure)
MARK_VISIBLEX (gcry_xcalloc)
MARK_VISIBLEX (gcry_xcalloc_secure)
MARK_VISIBLEX (gcry_xmalloc)
MARK_VISIBLEX (gcry_xmalloc_secure)
MARK_VISIBLEX (gcry_xrealloc)
MARK_VISIBLEX (gcry_xstrdup)
MARK_VISIBLEX (gcry_free)

MARK_VISIBLEX (gcry_md_algo_info)
MARK_VISIBLEX (gcry_md_algo_name)
MARK_VISIBLEX (gcry_md_close)
MARK_VISIBLEX (gcry_md_copy)
MARK_VISIBLEX (gcry_md_ctl)
MARK_VISIBLEX (gcry_md_enable)
MARK_VISIBLEX (gcry_md_get)
MARK_VISIBLEX (gcry_md_get_algo)
MARK_VISIBLEX (gcry_md_get_algo_dlen)
MARK_VISIBLEX (gcry_md_hash_buffer)
MARK_VISIBLEX (gcry_md_hash_buffers)
MARK_VISIBLEX (gcry_md_info)
MARK_VISIBLEX (gcry_md_is_enabled)
MARK_VISIBLEX (gcry_md_is_secure)
MARK_VISIBLEX (gcry_md_map_name)
MARK_VISIBLEX (gcry_md_open)
MARK_VISIBLEX (gcry_md_read)
MARK_VISIBLEX (gcry_md_extract)
MARK_VISIBLEX (gcry_md_reset)
MARK_VISIBLEX (gcry_md_setkey)
MARK_VISIBLEX (gcry_md_write)
MARK_VISIBLEX (gcry_md_debug)

MARK_VISIBLEX (gcry_cipher_algo_info)
MARK_VISIBLEX (gcry_cipher_algo_name)
MARK_VISIBLEX (gcry_cipher_close)
MARK_VISIBLEX (gcry_cipher_setkey)
MARK_VISIBLEX (gcry_cipher_setiv)
MARK_VISIBLEX (gcry_cipher_setctr)
MARK_VISIBLEX (gcry_cipher_authenticate)
MARK_VISIBLEX (gcry_cipher_checktag)
MARK_VISIBLEX (gcry_cipher_gettag)
MARK_VISIBLEX (gcry_cipher_ctl)
MARK_VISIBLEX (gcry_cipher_decrypt)
MARK_VISIBLEX (gcry_cipher_encrypt)
MARK_VISIBLEX (gcry_cipher_get_algo_blklen)
MARK_VISIBLEX (gcry_cipher_get_algo_keylen)
MARK_VISIBLEX (gcry_cipher_info)
MARK_VISIBLEX (gcry_cipher_map_name)
MARK_VISIBLEX (gcry_cipher_mode_from_oid)
MARK_VISIBLEX (gcry_cipher_open)

MARK_VISIBLEX (gcry_mac_algo_info)
MARK_VISIBLEX (gcry_mac_algo_name)
MARK_VISIBLEX (gcry_mac_map_name)
MARK_VISIBLEX (gcry_mac_get_algo)
MARK_VISIBLEX (gcry_mac_get_algo_maclen)
MARK_VISIBLEX (gcry_mac_get_algo_keylen)
MARK_VISIBLEX (gcry_mac_open)
MARK_VISIBLEX (gcry_mac_close)
MARK_VISIBLEX (gcry_mac_setkey)
MARK_VISIBLEX (gcry_mac_setiv)
MARK_VISIBLEX (gcry_mac_write)
MARK_VISIBLEX (gcry_mac_read)
MARK_VISIBLEX (gcry_mac_verify)
MARK_VISIBLEX (gcry_mac_ctl)

MARK_VISIBLEX (gcry_pk_algo_info)
MARK_VISIBLEX (gcry_pk_algo_name)
MARK_VISIBLEX (gcry_pk_ctl)
MARK_VISIBLEX (gcry_pk_decrypt)
MARK_VISIBLEX (gcry_pk_encrypt)
MARK_VISIBLEX (gcry_pk_genkey)
MARK_VISIBLEX (gcry_pk_get_keygrip)
MARK_VISIBLEX (gcry_pk_get_curve)
MARK_VISIBLEX (gcry_pk_get_param)
MARK_VISIBLEX (gcry_pk_get_nbits)
MARK_VISIBLEX (gcry_pk_map_name)
MARK_VISIBLEX (gcry_pk_sign)
MARK_VISIBLEX (gcry_pk_testkey)
MARK_VISIBLEX (gcry_pk_verify)
MARK_VISIBLEX (gcry_pubkey_get_sexp)
MARK_VISIBLEX (gcry_ecc_get_algo_keylen)
MARK_VISIBLEX (gcry_ecc_mul_point)

MARK_VISIBLEX (gcry_kdf_derive)

MARK_VISIBLEX (gcry_prime_check)
MARK_VISIBLEX (gcry_prime_generate)
MARK_VISIBLEX (gcry_prime_group_generator)
MARK_VISIBLEX (gcry_prime_release_factors)

MARK_VISIBLEX (gcry_random_add_bytes)
MARK_VISIBLEX (gcry_random_bytes)
MARK_VISIBLEX (gcry_random_bytes_secure)
MARK_VISIBLEX (gcry_randomize)
MARK_VISIBLEX (gcry_create_nonce)

MARK_VISIBLEX (gcry_sexp_alist)
MARK_VISIBLEX (gcry_sexp_append)
MARK_VISIBLEX (gcry_sexp_build)
MARK_VISIBLEX (gcry_sexp_build_array)
MARK_VISIBLEX (gcry_sexp_cadr)
MARK_VISIBLEX (gcry_sexp_canon_len)
MARK_VISIBLEX (gcry_sexp_car)
MARK_VISIBLEX (gcry_sexp_cdr)
MARK_VISIBLEX (gcry_sexp_cons)
MARK_VISIBLEX (gcry_sexp_create)
MARK_VISIBLEX (gcry_sexp_dump)
MARK_VISIBLEX (gcry_sexp_find_token)
MARK_VISIBLEX (gcry_sexp_length)
MARK_VISIBLEX (gcry_sexp_new)
MARK_VISIBLEX (gcry_sexp_nth)
MARK_VISIBLEX (gcry_sexp_nth_buffer)
MARK_VISIBLEX (gcry_sexp_nth_data)
MARK_VISIBLEX (gcry_sexp_nth_mpi)
MARK_VISIBLEX (gcry_sexp_nth_string)
MARK_VISIBLEX (gcry_sexp_prepend)
MARK_VISIBLEX (gcry_sexp_release)
MARK_VISIBLEX (gcry_sexp_sprint)
MARK_VISIBLEX (gcry_sexp_sscan)
MARK_VISIBLEX (gcry_sexp_vlist)
MARK_VISIBLEX (gcry_sexp_extract_param)

MARK_VISIBLEX (gcry_mpi_abs)
MARK_VISIBLEX (gcry_mpi_add)
MARK_VISIBLEX (gcry_mpi_add_ui)
MARK_VISIBLEX (gcry_mpi_addm)
MARK_VISIBLEX (gcry_mpi_aprint)
MARK_VISIBLEX (gcry_mpi_clear_bit)
MARK_VISIBLEX (gcry_mpi_clear_flag)
MARK_VISIBLEX (gcry_mpi_clear_highbit)
MARK_VISIBLEX (gcry_mpi_cmp)
MARK_VISIBLEX (gcry_mpi_cmp_ui)
MARK_VISIBLEX (gcry_mpi_copy)
MARK_VISIBLEX (gcry_mpi_div)
MARK_VISIBLEX (gcry_mpi_dump)
MARK_VISIBLEX (gcry_mpi_ec_add)
MARK_VISIBLEX (gcry_mpi_ec_sub)
MARK_VISIBLEX (gcry_mpi_ec_curve_point)
MARK_VISIBLEX (gcry_mpi_ec_dup)
MARK_VISIBLEX (gcry_mpi_ec_decode_point)
MARK_VISIBLEX (gcry_mpi_ec_get_affine)
MARK_VISIBLEX (gcry_mpi_ec_mul)
MARK_VISIBLEX (gcry_mpi_ec_new)
MARK_VISIBLEX (gcry_mpi_ec_get_mpi)
MARK_VISIBLEX (gcry_mpi_ec_get_point)
MARK_VISIBLEX (gcry_mpi_ec_set_mpi)
MARK_VISIBLEX (gcry_mpi_ec_set_point)
MARK_VISIBLEX (gcry_mpi_gcd)
MARK_VISIBLEX (gcry_mpi_get_flag)
MARK_VISIBLEX (gcry_mpi_get_nbits)
MARK_VISIBLEX (gcry_mpi_get_opaque)
MARK_VISIBLEX (gcry_mpi_is_neg)
MARK_VISIBLEX (gcry_mpi_invm)
MARK_VISIBLEX (gcry_mpi_mod)
MARK_VISIBLEX (gcry_mpi_mul)
MARK_VISIBLEX (gcry_mpi_mul_2exp)
MARK_VISIBLEX (gcry_mpi_mul_ui)
MARK_VISIBLEX (gcry_mpi_mulm)
MARK_VISIBLEX (gcry_mpi_neg)
MARK_VISIBLEX (gcry_mpi_new)
MARK_VISIBLEX (gcry_mpi_point_get)
MARK_VISIBLEX (gcry_mpi_point_new)
MARK_VISIBLEX (gcry_mpi_point_release)
MARK_VISIBLEX (gcry_mpi_point_copy)
MARK_VISIBLEX (gcry_mpi_point_set)
MARK_VISIBLEX (gcry_mpi_point_snatch_get)
MARK_VISIBLEX (gcry_mpi_point_snatch_set)
MARK_VISIBLEX (gcry_mpi_powm)
MARK_VISIBLEX (gcry_mpi_print)
MARK_VISIBLEX (gcry_mpi_randomize)
MARK_VISIBLEX (gcry_mpi_release)
MARK_VISIBLEX (gcry_mpi_rshift)
MARK_VISIBLEX (gcry_mpi_lshift)
MARK_VISIBLEX (gcry_mpi_scan)
MARK_VISIBLEX (gcry_mpi_snatch)
MARK_VISIBLEX (gcry_mpi_set)
MARK_VISIBLEX (gcry_mpi_set_bit)
MARK_VISIBLEX (gcry_mpi_set_flag)
MARK_VISIBLEX (gcry_mpi_set_highbit)
MARK_VISIBLEX (gcry_mpi_set_opaque)
MARK_VISIBLEX (gcry_mpi_set_opaque_copy)
MARK_VISIBLEX (gcry_mpi_set_ui)
MARK_VISIBLEX (gcry_mpi_get_ui)
MARK_VISIBLEX (gcry_mpi_snew)
MARK_VISIBLEX (gcry_mpi_sub)
MARK_VISIBLEX (gcry_mpi_sub_ui)
MARK_VISIBLEX (gcry_mpi_subm)
MARK_VISIBLEX (gcry_mpi_swap)
MARK_VISIBLEX (gcry_mpi_test_bit)

MARK_VISIBLEX (gcry_ctx_release)

MARK_VISIBLEX (gcry_log_debug)
MARK_VISIBLEX (gcry_log_debughex)
MARK_VISIBLEX (gcry_log_debugmpi)
MARK_VISIBLEX (gcry_log_debugpnt)
MARK_VISIBLEX (gcry_log_debugsxp)

MARK_VISIBLEX (gcry_get_config)

/* Functions used to implement macros.  */
MARK_VISIBLEX (_gcry_mpi_get_const)


#undef MARK_VISIBLEX

#else /*!_GCRY_INCLUDED_BY_VISIBILITY_C*/

/* To avoid accidental use of the public functions inside Libgcrypt,
   we redefine them to catch such errors.  The usual difference
   between a public and an internal version is that the internal
   version use gpg_err_code_t and the public version gpg_error_t.  */

#if defined(FIPS_FORCE_FILE)
/* It's valid use in src/fips.c to get the address of gcry_check_version.  */
#else
#define gcry_check_version          _gcry_USE_THE_UNDERSCORED_FUNCTION
#endif

#define gcry_control                _gcry_USE_THE_UNDERSCORED_FUNCTION

#define gcry_set_allocation_handler _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_set_fatalerror_handler _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_set_gettext_handler    _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_set_log_handler        _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_set_outofcore_handler  _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_set_progress_handler   _gcry_USE_THE_UNDERSCORED_FUNCTION

#define gcry_err_code_from_errno    _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_err_code_to_errno      _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_err_make_from_errno    _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_error_from_errno       _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_strerror               _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_strsource              _gcry_USE_THE_UNDERSCORED_FUNCTION

#define gcry_malloc                 _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_malloc_secure          _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_calloc                 _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_calloc_secure          _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_realloc                _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_strdup                 _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_xcalloc                _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_xcalloc_secure         _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_xmalloc                _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_xmalloc_secure         _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_xrealloc               _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_xstrdup                _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_free                   _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_is_secure              _gcry_USE_THE_UNDERSCORED_FUNCTION

#define gcry_cipher_open            _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_cipher_close           _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_cipher_setkey          _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_cipher_setiv           _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_cipher_setctr          _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_cipher_algo_info       _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_cipher_algo_name       _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_cipher_authenticate    _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_cipher_checktag        _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_cipher_gettag          _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_cipher_ctl             _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_cipher_decrypt         _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_cipher_encrypt         _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_cipher_get_algo_blklen _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_cipher_get_algo_keylen _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_cipher_info            _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_cipher_map_name        _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_cipher_mode_from_oid   _gcry_USE_THE_UNDERSCORED_FUNCTION

#define gcry_pk_algo_info           _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_pk_algo_name           _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_pk_ctl                 _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_pk_decrypt             _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_pk_encrypt             _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_pk_genkey              _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_pk_get_keygrip         _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_pk_get_curve           _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_pk_get_param           _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_pk_get_nbits           _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_pk_map_name            _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_pk_sign                _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_pk_testkey             _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_pk_verify              _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_pubkey_get_sexp        _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_ecc_get_algo_keylen    _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_ecc_mul_point          _gcry_USE_THE_UNDERSCORED_FUNCTION

#define gcry_md_algo_info           _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_md_algo_name           _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_md_close               _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_md_copy                _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_md_ctl                 _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_md_enable              _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_md_get                 _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_md_get_algo            _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_md_get_algo_dlen       _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_md_hash_buffer         _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_md_hash_buffers        _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_md_info                _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_md_is_enabled          _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_md_is_secure           _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_md_map_name            _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_md_open                _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_md_read                _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_md_extract             _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_md_reset               _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_md_setkey              _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_md_write               _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_md_debug               _gcry_USE_THE_UNDERSCORED_FUNCTION

#define gcry_mac_algo_info          _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mac_algo_name          _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mac_map_name           _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mac_get_algo           _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mac_get_algo_maclen    _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mac_get_algo_keylen    _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mac_open               _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mac_close              _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mac_setkey             _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mac_setiv              _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mac_write              _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mac_read               _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mac_verify             _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mac_ctl                _gcry_USE_THE_UNDERSCORED_FUNCTION

#define gcry_kdf_derive             _gcry_USE_THE_UNDERSCORED_FUNCTION

#define gcry_prime_check            _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_prime_generate         _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_prime_group_generator  _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_prime_release_factors  _gcry_USE_THE_UNDERSCORED_FUNCTION

#define gcry_random_add_bytes       _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_random_bytes           _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_random_bytes_secure    _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_randomize              _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_create_nonce           _gcry_USE_THE_UNDERSCORED_FUNCTION

#define gcry_ctx_release            _gcry_USE_THE_UNDERSCORED_FUNCTION

#define gcry_sexp_alist             _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_sexp_append            _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_sexp_build             _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_sexp_build_array       _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_sexp_cadr              _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_sexp_canon_len         _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_sexp_car               _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_sexp_cdr               _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_sexp_cons              _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_sexp_create            _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_sexp_dump              _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_sexp_find_token        _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_sexp_length            _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_sexp_new               _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_sexp_nth               _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_sexp_nth_buffer        _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_sexp_nth_data          _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_sexp_nth_mpi           _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_sexp_nth_string        _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_sexp_prepend           _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_sexp_release           _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_sexp_sprint            _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_sexp_sscan             _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_sexp_vlist             _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_sexp_extract_param     _gcry_USE_THE_UNDERSCORED_FUNCTION

#define gcry_mpi_add                _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_add_ui             _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_addm               _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_aprint             _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_clear_bit          _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_clear_flag         _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_clear_highbit      _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_cmp                _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_cmp_ui             _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_copy               _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_div                _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_dump               _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_gcd                _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_get_flag           _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_get_nbits          _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_get_opaque         _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_invm               _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_mod                _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_mul                _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_mul_2exp           _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_mul_ui             _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_mulm               _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_new                _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_point_get          _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_point_new          _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_point_release      _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_point_copy         _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_point_set          _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_point_snatch_get   _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_point_snatch_set   _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_powm               _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_print              _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_randomize          _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_release            _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_rshift             _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_lshift             _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_scan               _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_set                _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_set_bit            _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_set_flag           _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_set_highbit        _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_set_opaque         _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_set_ui             _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_get_ui             _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_snatch             _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_snew               _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_sub                _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_sub_ui             _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_subm               _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_swap               _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_test_bit           _gcry_USE_THE_UNDERSCORED_FUNCTION

#define gcry_mpi_abs                _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_ec_add             _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_ec_sub             _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_ec_curve_point     _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_ec_dup             _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_ec_decode_point    _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_ec_get_affine      _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_ec_get_mpi         _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_ec_get_point       _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_ec_mul             _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_ec_new             _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_ec_set_mpi         _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_ec_set_point       _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_is_neg             _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_neg                _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mpi_set_opaque_copy    _gcry_USE_THE_UNDERSCORED_FUNCTION


#endif /*!_GCRY_INCLUDED_BY_VISIBILITY_C*/

#endif /*GCRY_VISIBILITY_H*/