Add API to support AEAD cipher modes
[libgcrypt.git] / src / visibility.h
1 /* visibility.h - Set visibility attribute
2  * Copyright (C) 2007  Free Software Foundation, Inc.
3  *
4  * This file is part of Libgcrypt.
5  *
6  * Libgcrypt is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU Lesser General Public License as
8  * published by the Free Software Foundation; either version 2.1 of
9  * the License, or (at your option) any later version.
10  *
11  * Libgcrypt is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this program; if not, see <http://www.gnu.org/licenses/>.
18  */
19
20 #ifndef GCRY_VISIBILITY_H
21 #define GCRY_VISIBILITY_H
22
23 /* Redefine all public symbols with an underscore unless we already
24    use the underscore prefixed version internally.  */
25 #define gcry_check_version          _gcry_check_version
26 #define gcry_control                _gcry_control
27
28 #define gcry_set_allocation_handler _gcry_set_allocation_handler
29 #define gcry_set_fatalerror_handler _gcry_set_fatalerror_handler
30 #define gcry_set_gettext_handler    _gcry_set_gettext_handler
31 #define gcry_set_log_handler        _gcry_set_log_handler
32 #define gcry_set_outofcore_handler  _gcry_set_outofcore_handler
33 #define gcry_set_progress_handler   _gcry_set_progress_handler
34 #define gcry_err_code_from_errno    _gcry_err_code_from_errno
35 #define gcry_err_code_to_errno      _gcry_err_code_to_errno
36 #define gcry_err_make_from_errno    _gcry_err_make_from_errno
37 #define gcry_error_from_errno       _gcry_error_from_errno
38 #define gcry_strerror               _gcry_strerror
39 #define gcry_strsource              _gcry_strsource
40
41 #define gcry_free                   _gcry_free
42 #define gcry_malloc                 _gcry_malloc
43 #define gcry_malloc_secure          _gcry_malloc_secure
44 #define gcry_calloc                 _gcry_calloc
45 #define gcry_calloc_secure          _gcry_calloc_secure
46 #define gcry_realloc                _gcry_realloc
47 #define gcry_strdup                 _gcry_strdup
48 #define gcry_is_secure              _gcry_is_secure
49 #define gcry_xcalloc                _gcry_xcalloc
50 #define gcry_xcalloc_secure         _gcry_xcalloc_secure
51 #define gcry_xmalloc                _gcry_xmalloc
52 #define gcry_xmalloc_secure         _gcry_xmalloc_secure
53 #define gcry_xrealloc               _gcry_xrealloc
54 #define gcry_xstrdup                _gcry_xstrdup
55
56 #define gcry_md_algo_info           _gcry_md_algo_info
57 #define gcry_md_algo_name           _gcry_md_algo_name
58 #define gcry_md_close               _gcry_md_close
59 #define gcry_md_copy                _gcry_md_copy
60 #define gcry_md_ctl                 _gcry_md_ctl
61 #define gcry_md_enable              _gcry_md_enable
62 #define gcry_md_get                 _gcry_md_get
63 #define gcry_md_get_algo            _gcry_md_get_algo
64 #define gcry_md_get_algo_dlen       _gcry_md_get_algo_dlen
65 #define gcry_md_hash_buffer         _gcry_md_hash_buffer
66 #define gcry_md_hash_buffers        _gcry_md_hash_buffers
67 #define gcry_md_info                _gcry_md_info
68 #define gcry_md_is_enabled          _gcry_md_is_enabled
69 #define gcry_md_is_secure           _gcry_md_is_secure
70 #define gcry_md_map_name            _gcry_md_map_name
71 #define gcry_md_open                _gcry_md_open
72 #define gcry_md_read                _gcry_md_read
73 #define gcry_md_reset               _gcry_md_reset
74 #define gcry_md_setkey              _gcry_md_setkey
75 #define gcry_md_write               _gcry_md_write
76 #define gcry_md_debug               _gcry_md_debug
77
78 #define gcry_cipher_algo_info       _gcry_cipher_algo_info
79 #define gcry_cipher_algo_name       _gcry_cipher_algo_name
80 #define gcry_cipher_close           _gcry_cipher_close
81 #define gcry_cipher_setkey          _gcry_cipher_setkey
82 #define gcry_cipher_setiv           _gcry_cipher_setiv
83 #define gcry_cipher_setctr          _gcry_cipher_setctr
84 #define gcry_cipher_authenticate    _gcry_cipher_authenticate
85 #define gcry_cipher_checktag        _gcry_cipher_checktag
86 #define gcry_cipher_gettag          _gcry_cipher_gettag
87 #define gcry_cipher_ctl             _gcry_cipher_ctl
88 #define gcry_cipher_decrypt         _gcry_cipher_decrypt
89 #define gcry_cipher_encrypt         _gcry_cipher_encrypt
90 #define gcry_cipher_get_algo_blklen _gcry_cipher_get_algo_blklen
91 #define gcry_cipher_get_algo_keylen _gcry_cipher_get_algo_keylen
92 #define gcry_cipher_info            _gcry_cipher_info
93 #define gcry_cipher_map_name        _gcry_cipher_map_name
94 #define gcry_cipher_mode_from_oid   _gcry_cipher_mode_from_oid
95 #define gcry_cipher_open            _gcry_cipher_open
96
97 #define gcry_pk_algo_info           _gcry_pk_algo_info
98 #define gcry_pk_algo_name           _gcry_pk_algo_name
99 #define gcry_pk_ctl                 _gcry_pk_ctl
100 #define gcry_pk_decrypt             _gcry_pk_decrypt
101 #define gcry_pk_encrypt             _gcry_pk_encrypt
102 #define gcry_pk_genkey              _gcry_pk_genkey
103 #define gcry_pk_get_keygrip         _gcry_pk_get_keygrip
104 #define gcry_pk_get_curve           _gcry_pk_get_curve
105 #define gcry_pk_get_param           _gcry_pk_get_param
106 #define gcry_pk_get_nbits           _gcry_pk_get_nbits
107 #define gcry_pk_map_name            _gcry_pk_map_name
108 #define gcry_pk_sign                _gcry_pk_sign
109 #define gcry_pk_testkey             _gcry_pk_testkey
110 #define gcry_pk_verify              _gcry_pk_verify
111
112 #define gcry_kdf_derive             _gcry_kdf_derive
113
114 #define gcry_prime_check            _gcry_prime_check
115 #define gcry_prime_generate         _gcry_prime_generate
116 #define gcry_prime_group_generator  _gcry_prime_group_generator
117 #define gcry_prime_release_factors  _gcry_prime_release_factors
118
119 #define gcry_random_add_bytes       _gcry_random_add_bytes
120 #define gcry_random_bytes           _gcry_random_bytes
121 #define gcry_random_bytes_secure    _gcry_random_bytes_secure
122 #define gcry_randomize              _gcry_randomize
123 #define gcry_create_nonce           _gcry_create_nonce
124
125 #define gcry_sexp_alist             _gcry_sexp_alist
126 #define gcry_sexp_append            _gcry_sexp_append
127 #define gcry_sexp_build             _gcry_sexp_build
128 #define gcry_sexp_build_array       _gcry_sexp_build_array
129 #define gcry_sexp_cadr              _gcry_sexp_cadr
130 #define gcry_sexp_canon_len         _gcry_sexp_canon_len
131 #define gcry_sexp_car               _gcry_sexp_car
132 #define gcry_sexp_cdr               _gcry_sexp_cdr
133 #define gcry_sexp_cons              _gcry_sexp_cons
134 #define gcry_sexp_create            _gcry_sexp_create
135 #define gcry_sexp_dump              _gcry_sexp_dump
136 #define gcry_sexp_find_token        _gcry_sexp_find_token
137 #define gcry_sexp_length            _gcry_sexp_length
138 #define gcry_sexp_new               _gcry_sexp_new
139 #define gcry_sexp_nth               _gcry_sexp_nth
140 #define gcry_sexp_nth_buffer        _gcry_sexp_nth_buffer
141 #define gcry_sexp_nth_data          _gcry_sexp_nth_data
142 #define gcry_sexp_nth_mpi           _gcry_sexp_nth_mpi
143 #define gcry_sexp_nth_string        _gcry_sexp_nth_string
144 #define gcry_sexp_prepend           _gcry_sexp_prepend
145 #define gcry_sexp_release           _gcry_sexp_release
146 #define gcry_sexp_sprint            _gcry_sexp_sprint
147 #define gcry_sexp_sscan             _gcry_sexp_sscan
148 #define gcry_sexp_vlist             _gcry_sexp_vlist
149
150 #define gcry_mpi_add                _gcry_mpi_add
151 #define gcry_mpi_add_ui             _gcry_mpi_add_ui
152 #define gcry_mpi_addm               _gcry_mpi_addm
153 #define gcry_mpi_aprint             _gcry_mpi_aprint
154 #define gcry_mpi_clear_bit          _gcry_mpi_clear_bit
155 #define gcry_mpi_clear_flag         _gcry_mpi_clear_flag
156 #define gcry_mpi_clear_highbit      _gcry_mpi_clear_highbit
157 #define gcry_mpi_cmp                _gcry_mpi_cmp
158 #define gcry_mpi_cmp_ui             _gcry_mpi_cmp_ui
159 #define gcry_mpi_copy               _gcry_mpi_copy
160 #define gcry_mpi_div                _gcry_mpi_div
161 #define gcry_mpi_dump               _gcry_mpi_dump
162 #define gcry_mpi_gcd                _gcry_mpi_gcd
163 #define gcry_mpi_get_flag           _gcry_mpi_get_flag
164 #define gcry_mpi_get_nbits          _gcry_mpi_get_nbits
165 #define gcry_mpi_get_opaque         _gcry_mpi_get_opaque
166 #define gcry_mpi_invm               _gcry_mpi_invm
167 #define gcry_mpi_mod                _gcry_mpi_mod
168 #define gcry_mpi_mul                _gcry_mpi_mul
169 #define gcry_mpi_mul_2exp           _gcry_mpi_mul_2exp
170 #define gcry_mpi_mul_ui             _gcry_mpi_mul_ui
171 #define gcry_mpi_mulm               _gcry_mpi_mulm
172 #define gcry_mpi_new                _gcry_mpi_new
173 #define gcry_mpi_point_get          _gcry_mpi_point_get
174 #define gcry_mpi_point_new          _gcry_mpi_point_new
175 #define gcry_mpi_point_release      _gcry_mpi_point_release
176 #define gcry_mpi_point_set          _gcry_mpi_point_set
177 #define gcry_mpi_point_snatch_get   _gcry_mpi_point_snatch_get
178 #define gcry_mpi_point_snatch_set   _gcry_mpi_point_snatch_set
179 #define gcry_mpi_powm               _gcry_mpi_powm
180 #define gcry_mpi_print              _gcry_mpi_print
181 #define gcry_mpi_randomize          _gcry_mpi_randomize
182 #define gcry_mpi_release            _gcry_mpi_release
183 #define gcry_mpi_rshift             _gcry_mpi_rshift
184 #define gcry_mpi_lshift             _gcry_mpi_lshift
185 #define gcry_mpi_scan               _gcry_mpi_scan
186 #define gcry_mpi_set                _gcry_mpi_set
187 #define gcry_mpi_set_bit            _gcry_mpi_set_bit
188 #define gcry_mpi_set_flag           _gcry_mpi_set_flag
189 #define gcry_mpi_set_highbit        _gcry_mpi_set_highbit
190 #define gcry_mpi_set_opaque         _gcry_mpi_set_opaque
191 #define gcry_mpi_set_ui             _gcry_mpi_set_ui
192 #define gcry_mpi_snatch             _gcry_mpi_snatch
193 #define gcry_mpi_snew               _gcry_mpi_snew
194 #define gcry_mpi_sub                _gcry_mpi_sub
195 #define gcry_mpi_sub_ui             _gcry_mpi_sub_ui
196 #define gcry_mpi_subm               _gcry_mpi_subm
197 #define gcry_mpi_swap               _gcry_mpi_swap
198 #define gcry_mpi_test_bit           _gcry_mpi_test_bit
199
200 #define gcry_ctx_release            _gcry_ctx_release
201
202
203 /* Include the main header here so that public symbols are mapped to
204    the internal underscored ones.  */
205 #ifdef _GCRY_INCLUDED_BY_VISIBILITY_C
206   /* We need to redeclare the deprecated functions without the
207      deprecated attribute.  */
208 # define GCRYPT_NO_DEPRECATED
209 # include "gcrypt-int.h"
210   /* None in this version.  */
211 #else
212 # include "gcrypt-int.h"
213 #endif
214
215 /* Prototypes of functions exported but not ready for use.  */
216 gcry_err_code_t gcry_md_get (gcry_md_hd_t hd, int algo,
217                              unsigned char *buffer, int buflen);
218
219
220 /* Our use of the ELF visibility feature works by passing
221    -fvisibiliy=hidden on the command line and by explicitly marking
222    all exported functions as visible.
223
224    NOTE: When adding new functions, please make sure to add them to
225          libgcrypt.vers and libgcrypt.def as well.  */
226
227 #ifdef _GCRY_INCLUDED_BY_VISIBILITY_C
228
229 /* A macro to flag a function as visible.  Note that we take the
230    definition from the mapped name.  */
231 #ifdef GCRY_USE_VISIBILITY
232 # define MARK_VISIBLE(name) \
233     extern __typeof__ (_##name) name __attribute__ ((visibility("default")));
234 # define MARK_VISIBLEX(name) \
235     extern __typeof__ (name) name __attribute__ ((visibility("default")));
236 #else
237 # define MARK_VISIBLE(name) /* */
238 # define MARK_VISIBLEX(name) /* */
239 #endif
240
241
242 /* First undef all redefined symbols so that we set the attribute on
243    the correct version name.  */
244 #undef gcry_check_version
245 #undef gcry_control
246
247 #undef gcry_set_allocation_handler
248 #undef gcry_set_fatalerror_handler
249 #undef gcry_set_gettext_handler
250 #undef gcry_set_log_handler
251 #undef gcry_set_outofcore_handler
252 #undef gcry_set_progress_handler
253 #undef gcry_err_code_from_errno
254 #undef gcry_err_code_to_errno
255 #undef gcry_err_make_from_errno
256 #undef gcry_error_from_errno
257 #undef gcry_strerror
258 #undef gcry_strsource
259
260 #undef gcry_free
261 #undef gcry_malloc
262 #undef gcry_malloc_secure
263 #undef gcry_calloc
264 #undef gcry_calloc_secure
265 #undef gcry_realloc
266 #undef gcry_strdup
267 #undef gcry_is_secure
268 #undef gcry_xcalloc
269 #undef gcry_xcalloc_secure
270 #undef gcry_xmalloc
271 #undef gcry_xmalloc_secure
272 #undef gcry_xrealloc
273 #undef gcry_xstrdup
274
275 #undef gcry_md_algo_info
276 #undef gcry_md_algo_name
277 #undef gcry_md_close
278 #undef gcry_md_copy
279 #undef gcry_md_ctl
280 #undef gcry_md_enable
281 #undef gcry_md_get
282 #undef gcry_md_get_algo
283 #undef gcry_md_get_algo_dlen
284 #undef gcry_md_hash_buffer
285 #undef gcry_md_hash_buffers
286 #undef gcry_md_info
287 #undef gcry_md_is_enabled
288 #undef gcry_md_is_secure
289 #undef gcry_md_map_name
290 #undef gcry_md_open
291 #undef gcry_md_read
292 #undef gcry_md_reset
293 #undef gcry_md_setkey
294 #undef gcry_md_write
295 #undef gcry_md_debug
296
297 #undef gcry_cipher_algo_info
298 #undef gcry_cipher_algo_name
299 #undef gcry_cipher_close
300 #undef gcry_cipher_setkey
301 #undef gcry_cipher_setiv
302 #undef gcry_cipher_setctr
303 #undef gcry_cipher_authenticate
304 #undef gcry_cipher_checktag
305 #undef gcry_cipher_gettag
306 #undef gcry_cipher_ctl
307 #undef gcry_cipher_decrypt
308 #undef gcry_cipher_encrypt
309 #undef gcry_cipher_get_algo_blklen
310 #undef gcry_cipher_get_algo_keylen
311 #undef gcry_cipher_info
312 #undef gcry_cipher_map_name
313 #undef gcry_cipher_mode_from_oid
314 #undef gcry_cipher_open
315
316 #undef gcry_pk_algo_info
317 #undef gcry_pk_algo_name
318 #undef gcry_pk_ctl
319 #undef gcry_pk_decrypt
320 #undef gcry_pk_encrypt
321 #undef gcry_pk_genkey
322 #undef gcry_pk_get_keygrip
323 #undef gcry_pk_get_curve
324 #undef gcry_pk_get_param
325 #undef gcry_pk_get_nbits
326 #undef gcry_pk_map_name
327 #undef gcry_pk_sign
328 #undef gcry_pk_testkey
329 #undef gcry_pk_verify
330
331 #undef gcry_kdf_derive
332
333 #undef gcry_prime_check
334 #undef gcry_prime_generate
335 #undef gcry_prime_group_generator
336 #undef gcry_prime_release_factors
337
338 #undef gcry_random_add_bytes
339 #undef gcry_random_bytes
340 #undef gcry_random_bytes_secure
341 #undef gcry_randomize
342 #undef gcry_create_nonce
343
344 #undef gcry_sexp_alist
345 #undef gcry_sexp_append
346 #undef gcry_sexp_build
347 #undef gcry_sexp_build_array
348 #undef gcry_sexp_cadr
349 #undef gcry_sexp_canon_len
350 #undef gcry_sexp_car
351 #undef gcry_sexp_cdr
352 #undef gcry_sexp_cons
353 #undef gcry_sexp_create
354 #undef gcry_sexp_dump
355 #undef gcry_sexp_find_token
356 #undef gcry_sexp_length
357 #undef gcry_sexp_new
358 #undef gcry_sexp_nth
359 #undef gcry_sexp_nth_buffer
360 #undef gcry_sexp_nth_data
361 #undef gcry_sexp_nth_mpi
362 #undef gcry_sexp_nth_string
363 #undef gcry_sexp_prepend
364 #undef gcry_sexp_release
365 #undef gcry_sexp_sprint
366 #undef gcry_sexp_sscan
367 #undef gcry_sexp_vlist
368
369 #undef gcry_mpi_add
370 #undef gcry_mpi_add_ui
371 #undef gcry_mpi_addm
372 #undef gcry_mpi_aprint
373 #undef gcry_mpi_clear_bit
374 #undef gcry_mpi_clear_flag
375 #undef gcry_mpi_clear_highbit
376 #undef gcry_mpi_cmp
377 #undef gcry_mpi_cmp_ui
378 #undef gcry_mpi_copy
379 #undef gcry_mpi_div
380 #undef gcry_mpi_dump
381 #undef gcry_mpi_gcd
382 #undef gcry_mpi_get_flag
383 #undef gcry_mpi_get_nbits
384 #undef gcry_mpi_get_opaque
385 #undef gcry_mpi_invm
386 #undef gcry_mpi_mod
387 #undef gcry_mpi_mul
388 #undef gcry_mpi_mul_2exp
389 #undef gcry_mpi_mul_ui
390 #undef gcry_mpi_mulm
391 #undef gcry_mpi_new
392 #undef gcry_mpi_point_get
393 #undef gcry_mpi_point_new
394 #undef gcry_mpi_point_release
395 #undef gcry_mpi_point_set
396 #undef gcry_mpi_point_snatch_get
397 #undef gcry_mpi_point_snatch_set
398 #undef gcry_mpi_powm
399 #undef gcry_mpi_print
400 #undef gcry_mpi_randomize
401 #undef gcry_mpi_release
402 #undef gcry_mpi_rshift
403 #undef gcry_mpi_lshift
404 #undef gcry_mpi_scan
405 #undef gcry_mpi_snatch
406 #undef gcry_mpi_set
407 #undef gcry_mpi_set_bit
408 #undef gcry_mpi_set_flag
409 #undef gcry_mpi_set_highbit
410 #undef gcry_mpi_set_opaque
411 #undef gcry_mpi_set_ui
412 #undef gcry_mpi_snew
413 #undef gcry_mpi_sub
414 #undef gcry_mpi_sub_ui
415 #undef gcry_mpi_subm
416 #undef gcry_mpi_swap
417 #undef gcry_mpi_test_bit
418
419 #undef gcry_ctx_release
420
421
422 /* Now mark all symbols.  */
423
424 MARK_VISIBLE (gcry_check_version)
425 MARK_VISIBLE (gcry_control)
426
427 MARK_VISIBLE (gcry_set_allocation_handler)
428 MARK_VISIBLE (gcry_set_fatalerror_handler)
429 MARK_VISIBLE (gcry_set_gettext_handler)
430 MARK_VISIBLE (gcry_set_log_handler)
431 MARK_VISIBLE (gcry_set_outofcore_handler)
432 MARK_VISIBLE (gcry_set_progress_handler)
433 MARK_VISIBLE (gcry_err_code_from_errno)
434 MARK_VISIBLE (gcry_err_code_to_errno)
435 MARK_VISIBLE (gcry_err_make_from_errno)
436 MARK_VISIBLE (gcry_error_from_errno)
437 MARK_VISIBLE (gcry_strerror)
438 MARK_VISIBLE (gcry_strsource)
439
440 MARK_VISIBLE (gcry_free)
441 MARK_VISIBLE (gcry_malloc)
442 MARK_VISIBLE (gcry_malloc_secure)
443 MARK_VISIBLE (gcry_calloc)
444 MARK_VISIBLE (gcry_calloc_secure)
445 MARK_VISIBLE (gcry_realloc)
446 MARK_VISIBLE (gcry_strdup)
447 MARK_VISIBLE (gcry_is_secure)
448 MARK_VISIBLE (gcry_xcalloc)
449 MARK_VISIBLE (gcry_xcalloc_secure)
450 MARK_VISIBLE (gcry_xmalloc)
451 MARK_VISIBLE (gcry_xmalloc_secure)
452 MARK_VISIBLE (gcry_xrealloc)
453 MARK_VISIBLE (gcry_xstrdup)
454
455 MARK_VISIBLE (gcry_md_algo_info)
456 MARK_VISIBLE (gcry_md_algo_name)
457 MARK_VISIBLE (gcry_md_close)
458 MARK_VISIBLE (gcry_md_copy)
459 MARK_VISIBLE (gcry_md_ctl)
460 MARK_VISIBLE (gcry_md_enable)
461 MARK_VISIBLE (gcry_md_get)
462 MARK_VISIBLE (gcry_md_get_algo)
463 MARK_VISIBLE (gcry_md_get_algo_dlen)
464 MARK_VISIBLE (gcry_md_hash_buffer)
465 MARK_VISIBLE (gcry_md_hash_buffers)
466 MARK_VISIBLE (gcry_md_info)
467 MARK_VISIBLE (gcry_md_is_enabled)
468 MARK_VISIBLE (gcry_md_is_secure)
469 MARK_VISIBLE (gcry_md_map_name)
470 MARK_VISIBLE (gcry_md_open)
471 MARK_VISIBLE (gcry_md_read)
472 MARK_VISIBLE (gcry_md_reset)
473 MARK_VISIBLE (gcry_md_setkey)
474 MARK_VISIBLE (gcry_md_write)
475 MARK_VISIBLE (gcry_md_debug)
476
477 MARK_VISIBLE (gcry_cipher_algo_info)
478 MARK_VISIBLE (gcry_cipher_algo_name)
479 MARK_VISIBLE (gcry_cipher_close)
480 MARK_VISIBLE (gcry_cipher_setkey)
481 MARK_VISIBLE (gcry_cipher_setiv)
482 MARK_VISIBLE (gcry_cipher_setctr)
483 MARK_VISIBLE (gcry_cipher_authenticate)
484 MARK_VISIBLE (gcry_cipher_checktag)
485 MARK_VISIBLE (gcry_cipher_gettag)
486 MARK_VISIBLE (gcry_cipher_ctl)
487 MARK_VISIBLE (gcry_cipher_decrypt)
488 MARK_VISIBLE (gcry_cipher_encrypt)
489 MARK_VISIBLE (gcry_cipher_get_algo_blklen)
490 MARK_VISIBLE (gcry_cipher_get_algo_keylen)
491 MARK_VISIBLE (gcry_cipher_info)
492 MARK_VISIBLE (gcry_cipher_map_name)
493 MARK_VISIBLE (gcry_cipher_mode_from_oid)
494 MARK_VISIBLE (gcry_cipher_open)
495
496 MARK_VISIBLE (gcry_pk_algo_info)
497 MARK_VISIBLE (gcry_pk_algo_name)
498 MARK_VISIBLE (gcry_pk_ctl)
499 MARK_VISIBLE (gcry_pk_decrypt)
500 MARK_VISIBLE (gcry_pk_encrypt)
501 MARK_VISIBLE (gcry_pk_genkey)
502 MARK_VISIBLE (gcry_pk_get_keygrip)
503 MARK_VISIBLE (gcry_pk_get_curve)
504 MARK_VISIBLE (gcry_pk_get_param)
505 MARK_VISIBLE (gcry_pk_get_nbits)
506 MARK_VISIBLE (gcry_pk_map_name)
507 MARK_VISIBLE (gcry_pk_sign)
508 MARK_VISIBLE (gcry_pk_testkey)
509 MARK_VISIBLE (gcry_pk_verify)
510 MARK_VISIBLEX(gcry_pubkey_get_sexp)
511
512 MARK_VISIBLE (gcry_kdf_derive)
513
514 MARK_VISIBLE (gcry_prime_check)
515 MARK_VISIBLE (gcry_prime_generate)
516 MARK_VISIBLE (gcry_prime_group_generator)
517 MARK_VISIBLE (gcry_prime_release_factors)
518
519 MARK_VISIBLE (gcry_random_add_bytes)
520 MARK_VISIBLE (gcry_random_bytes)
521 MARK_VISIBLE (gcry_random_bytes_secure)
522 MARK_VISIBLE (gcry_randomize)
523 MARK_VISIBLE (gcry_create_nonce)
524
525 MARK_VISIBLE (gcry_sexp_alist)
526 MARK_VISIBLE (gcry_sexp_append)
527 MARK_VISIBLE (gcry_sexp_build)
528 MARK_VISIBLE (gcry_sexp_build_array)
529 MARK_VISIBLE (gcry_sexp_cadr)
530 MARK_VISIBLE (gcry_sexp_canon_len)
531 MARK_VISIBLE (gcry_sexp_car)
532 MARK_VISIBLE (gcry_sexp_cdr)
533 MARK_VISIBLE (gcry_sexp_cons)
534 MARK_VISIBLE (gcry_sexp_create)
535 MARK_VISIBLE (gcry_sexp_dump)
536 MARK_VISIBLE (gcry_sexp_find_token)
537 MARK_VISIBLE (gcry_sexp_length)
538 MARK_VISIBLE (gcry_sexp_new)
539 MARK_VISIBLE (gcry_sexp_nth)
540 MARK_VISIBLE (gcry_sexp_nth_buffer)
541 MARK_VISIBLE (gcry_sexp_nth_data)
542 MARK_VISIBLE (gcry_sexp_nth_mpi)
543 MARK_VISIBLE (gcry_sexp_nth_string)
544 MARK_VISIBLE (gcry_sexp_prepend)
545 MARK_VISIBLE (gcry_sexp_release)
546 MARK_VISIBLE (gcry_sexp_sprint)
547 MARK_VISIBLE (gcry_sexp_sscan)
548 MARK_VISIBLE (gcry_sexp_vlist)
549 MARK_VISIBLEX(gcry_sexp_extract_param)
550
551 MARK_VISIBLEX(gcry_mpi_abs)
552 MARK_VISIBLE (gcry_mpi_add)
553 MARK_VISIBLE (gcry_mpi_add_ui)
554 MARK_VISIBLE (gcry_mpi_addm)
555 MARK_VISIBLE (gcry_mpi_aprint)
556 MARK_VISIBLE (gcry_mpi_clear_bit)
557 MARK_VISIBLE (gcry_mpi_clear_flag)
558 MARK_VISIBLE (gcry_mpi_clear_highbit)
559 MARK_VISIBLE (gcry_mpi_cmp)
560 MARK_VISIBLE (gcry_mpi_cmp_ui)
561 MARK_VISIBLE (gcry_mpi_copy)
562 MARK_VISIBLE (gcry_mpi_div)
563 MARK_VISIBLE (gcry_mpi_dump)
564 MARK_VISIBLEX(gcry_mpi_ec_add)
565 MARK_VISIBLEX(gcry_mpi_ec_curve_point)
566 MARK_VISIBLEX(gcry_mpi_ec_dup)
567 MARK_VISIBLEX(gcry_mpi_ec_get_affine)
568 MARK_VISIBLEX(gcry_mpi_ec_mul)
569 MARK_VISIBLEX(gcry_mpi_ec_new)
570 MARK_VISIBLEX(gcry_mpi_ec_get_mpi)
571 MARK_VISIBLEX(gcry_mpi_ec_get_point)
572 MARK_VISIBLEX(gcry_mpi_ec_set_mpi)
573 MARK_VISIBLEX(gcry_mpi_ec_set_point)
574 MARK_VISIBLE (gcry_mpi_gcd)
575 MARK_VISIBLE (gcry_mpi_get_flag)
576 MARK_VISIBLE (gcry_mpi_get_nbits)
577 MARK_VISIBLE (gcry_mpi_get_opaque)
578 MARK_VISIBLEX(gcry_mpi_is_neg)
579 MARK_VISIBLE (gcry_mpi_invm)
580 MARK_VISIBLE (gcry_mpi_mod)
581 MARK_VISIBLE (gcry_mpi_mul)
582 MARK_VISIBLE (gcry_mpi_mul_2exp)
583 MARK_VISIBLE (gcry_mpi_mul_ui)
584 MARK_VISIBLE (gcry_mpi_mulm)
585 MARK_VISIBLEX(gcry_mpi_neg)
586 MARK_VISIBLE (gcry_mpi_new)
587 MARK_VISIBLE (gcry_mpi_point_get)
588 MARK_VISIBLE (gcry_mpi_point_new)
589 MARK_VISIBLE (gcry_mpi_point_release)
590 MARK_VISIBLE (gcry_mpi_point_set)
591 MARK_VISIBLE (gcry_mpi_point_snatch_get)
592 MARK_VISIBLE (gcry_mpi_point_snatch_set)
593 MARK_VISIBLE (gcry_mpi_powm)
594 MARK_VISIBLE (gcry_mpi_print)
595 MARK_VISIBLE (gcry_mpi_randomize)
596 MARK_VISIBLE (gcry_mpi_release)
597 MARK_VISIBLE (gcry_mpi_rshift)
598 MARK_VISIBLE (gcry_mpi_lshift)
599 MARK_VISIBLE (gcry_mpi_scan)
600 MARK_VISIBLE (gcry_mpi_snatch)
601 MARK_VISIBLE (gcry_mpi_set)
602 MARK_VISIBLE (gcry_mpi_set_bit)
603 MARK_VISIBLE (gcry_mpi_set_flag)
604 MARK_VISIBLE (gcry_mpi_set_highbit)
605 MARK_VISIBLE (gcry_mpi_set_opaque)
606 MARK_VISIBLE (gcry_mpi_set_ui)
607 MARK_VISIBLE (gcry_mpi_snew)
608 MARK_VISIBLE (gcry_mpi_sub)
609 MARK_VISIBLE (gcry_mpi_sub_ui)
610 MARK_VISIBLE (gcry_mpi_subm)
611 MARK_VISIBLE (gcry_mpi_swap)
612 MARK_VISIBLE (gcry_mpi_test_bit)
613
614 MARK_VISIBLE (gcry_ctx_release)
615
616 MARK_VISIBLEX(gcry_log_debug)
617 MARK_VISIBLEX(gcry_log_debughex)
618 MARK_VISIBLEX(gcry_log_debugmpi)
619 MARK_VISIBLEX(gcry_log_debugpnt)
620 MARK_VISIBLEX(gcry_log_debugsxp)
621
622 /* Functions used to implement macros.  */
623 MARK_VISIBLEX(_gcry_mpi_get_const)
624
625
626
627 #undef MARK_VISIBLE
628 #else /*!_GCRY_INCLUDED_BY_VISIBILITY_C*/
629
630 /* To avoid accidental use of the public functions inside Libgcrypt,
631    we redefine them to catch such errors.  The usual difference
632    between a public and an internal version is that the internal
633    version use gpg_err_code_t and the public version gpg_error_t.  */
634
635 #define gcry_sexp_extract_param _gcry_USE_THE_UNDERSCORED_FUNCTION
636
637
638 #endif /*!_GCRY_INCLUDED_BY_VISIBILITY_C*/
639
640 #endif /*GCRY_VISIBILITY_H*/