A whole bunch of changes to eventually support
[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_info                _gcry_md_info
67 #define gcry_md_is_enabled          _gcry_md_is_enabled
68 #define gcry_md_is_secure           _gcry_md_is_secure
69 #define gcry_md_list                _gcry_md_list
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 /* gcry_md_register and _gcry_md_register differ.  */
74 #define gcry_md_unregister          _gcry_md_unregister
75 #define gcry_md_reset               _gcry_md_reset
76 #define gcry_md_setkey              _gcry_md_setkey
77 #define gcry_md_write               _gcry_md_write
78 #define gcry_md_debug               _gcry_md_debug
79
80 #define gcry_cipher_algo_info       _gcry_cipher_algo_info
81 #define gcry_cipher_algo_name       _gcry_cipher_algo_name
82 #define gcry_cipher_close           _gcry_cipher_close
83 #define gcry_cipher_setkey          _gcry_cipher_setkey
84 #define gcry_cipher_setiv           _gcry_cipher_setiv
85 #define gcry_cipher_setctr          _gcry_cipher_setctr
86 #define gcry_cipher_ctl             _gcry_cipher_ctl
87 #define gcry_cipher_decrypt         _gcry_cipher_decrypt
88 #define gcry_cipher_encrypt         _gcry_cipher_encrypt
89 #define gcry_cipher_get_algo_blklen _gcry_cipher_get_algo_blklen
90 #define gcry_cipher_get_algo_keylen _gcry_cipher_get_algo_keylen
91 #define gcry_cipher_info            _gcry_cipher_info
92 #define gcry_cipher_list            _gcry_cipher_list
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 /* gcry_cipher_register and  _gcry_cipher_register differ.  */
97 #define gcry_cipher_unregister      _gcry_cipher_unregister
98
99 #define gcry_pk_algo_info           _gcry_pk_algo_info
100 #define gcry_pk_algo_name           _gcry_pk_algo_name
101 #define gcry_pk_ctl                 _gcry_pk_ctl
102 #define gcry_pk_decrypt             _gcry_pk_decrypt
103 #define gcry_pk_encrypt             _gcry_pk_encrypt
104 #define gcry_pk_genkey              _gcry_pk_genkey
105 #define gcry_pk_get_keygrip         _gcry_pk_get_keygrip
106 #define gcry_pk_get_nbits           _gcry_pk_get_nbits
107 #define gcry_pk_list                _gcry_pk_list
108 #define gcry_pk_map_name            _gcry_pk_map_name
109 /* gcry_pk_register and _gcry_pk_register differ.  */
110 #define gcry_pk_unregister          _gcry_pk_unregister
111 #define gcry_pk_sign                _gcry_pk_sign
112 #define gcry_pk_testkey             _gcry_pk_testkey
113 #define gcry_pk_verify              _gcry_pk_verify
114
115 #define gcry_ac_data_new            _gcry_ac_data_new
116 #define gcry_ac_data_destroy        _gcry_ac_data_destroy
117 #define gcry_ac_data_copy           _gcry_ac_data_copy
118 #define gcry_ac_data_length         _gcry_ac_data_length
119 #define gcry_ac_data_clear          _gcry_ac_data_clear
120 #define gcry_ac_data_set            _gcry_ac_data_set
121 #define gcry_ac_data_get_name       _gcry_ac_data_get_name
122 #define gcry_ac_data_get_index      _gcry_ac_data_get_index
123 #define gcry_ac_open                _gcry_ac_open
124 #define gcry_ac_close               _gcry_ac_close
125 #define gcry_ac_key_init            _gcry_ac_key_init
126 #define gcry_ac_key_pair_generate   _gcry_ac_key_pair_generate
127 #define gcry_ac_key_pair_extract    _gcry_ac_key_pair_extract
128 #define gcry_ac_key_data_get        _gcry_ac_key_data_get
129 #define gcry_ac_key_test            _gcry_ac_key_test
130 #define gcry_ac_key_get_nbits       _gcry_ac_key_get_nbits
131 #define gcry_ac_key_get_grip        _gcry_ac_key_get_grip
132 #define gcry_ac_key_destroy         _gcry_ac_key_destroy
133 #define gcry_ac_key_pair_destroy    _gcry_ac_key_pair_destroy
134 #define gcry_ac_data_encrypt        _gcry_ac_data_encrypt
135 #define gcry_ac_data_decrypt        _gcry_ac_data_decrypt
136 #define gcry_ac_data_sign           _gcry_ac_data_sign
137 #define gcry_ac_data_verify         _gcry_ac_data_verify
138 #define gcry_ac_id_to_name          _gcry_ac_id_to_name
139 #define gcry_ac_name_to_id          _gcry_ac_name_to_id
140 #define gcry_ac_data_encode         _gcry_ac_data_encode
141 #define gcry_ac_data_decode         _gcry_ac_data_decode
142 #define gcry_ac_mpi_to_os           _gcry_ac_mpi_to_os
143 #define gcry_ac_mpi_to_os_alloc     _gcry_ac_mpi_to_os_alloc
144 #define gcry_ac_os_to_mpi           _gcry_ac_os_to_mpi
145 #define gcry_ac_data_encrypt_scheme _gcry_ac_data_encrypt_scheme
146 #define gcry_ac_data_decrypt_scheme _gcry_ac_data_decrypt_scheme
147 #define gcry_ac_data_sign_scheme    _gcry_ac_data_sign_scheme
148 #define gcry_ac_data_verify_scheme  _gcry_ac_data_verify_scheme
149 #define gcry_ac_data_to_sexp        _gcry_ac_data_to_sexp
150 #define gcry_ac_data_from_sexp      _gcry_ac_data_from_sexp
151 #define gcry_ac_io_init             _gcry_ac_io_init
152 #define gcry_ac_io_init_va          _gcry_ac_io_init_va
153
154 #define gcry_prime_check            _gcry_prime_check
155 #define gcry_prime_generate         _gcry_prime_generate
156 #define gcry_prime_group_generator  _gcry_prime_group_generator
157 #define gcry_prime_release_factors  _gcry_prime_release_factors
158
159 #define gcry_random_add_bytes       _gcry_random_add_bytes
160 #define gcry_random_bytes           _gcry_random_bytes
161 #define gcry_random_bytes_secure    _gcry_random_bytes_secure
162 #define gcry_randomize              _gcry_randomize
163 #define gcry_create_nonce           _gcry_create_nonce
164
165 #define gcry_sexp_alist             _gcry_sexp_alist
166 #define gcry_sexp_append            _gcry_sexp_append
167 #define gcry_sexp_build             _gcry_sexp_build
168 #define gcry_sexp_build_array       _gcry_sexp_build_array
169 #define gcry_sexp_cadr              _gcry_sexp_cadr
170 #define gcry_sexp_canon_len         _gcry_sexp_canon_len
171 #define gcry_sexp_car               _gcry_sexp_car
172 #define gcry_sexp_cdr               _gcry_sexp_cdr
173 #define gcry_sexp_cons              _gcry_sexp_cons
174 #define gcry_sexp_create            _gcry_sexp_create
175 #define gcry_sexp_dump              _gcry_sexp_dump
176 #define gcry_sexp_find_token        _gcry_sexp_find_token
177 #define gcry_sexp_length            _gcry_sexp_length
178 #define gcry_sexp_new               _gcry_sexp_new
179 #define gcry_sexp_nth               _gcry_sexp_nth
180 #define gcry_sexp_nth_data          _gcry_sexp_nth_data
181 #define gcry_sexp_nth_mpi           _gcry_sexp_nth_mpi
182 #define gcry_sexp_prepend           _gcry_sexp_prepend
183 #define gcry_sexp_release           _gcry_sexp_release
184 #define gcry_sexp_sprint            _gcry_sexp_sprint
185 #define gcry_sexp_sscan             _gcry_sexp_sscan
186 #define gcry_sexp_vlist             _gcry_sexp_vlist
187 #define gcry_sexp_nth_string        _gcry_sexp_nth_string
188
189 #define gcry_mpi_add                _gcry_mpi_add
190 #define gcry_mpi_add_ui             _gcry_mpi_add_ui
191 #define gcry_mpi_addm               _gcry_mpi_addm
192 #define gcry_mpi_aprint             _gcry_mpi_aprint
193 #define gcry_mpi_clear_bit          _gcry_mpi_clear_bit
194 #define gcry_mpi_clear_flag         _gcry_mpi_clear_flag
195 #define gcry_mpi_clear_highbit      _gcry_mpi_clear_highbit
196 #define gcry_mpi_cmp                _gcry_mpi_cmp
197 #define gcry_mpi_cmp_ui             _gcry_mpi_cmp_ui
198 #define gcry_mpi_copy               _gcry_mpi_copy
199 #define gcry_mpi_div                _gcry_mpi_div
200 #define gcry_mpi_dump               _gcry_mpi_dump
201 #define gcry_mpi_gcd                _gcry_mpi_gcd
202 #define gcry_mpi_get_flag           _gcry_mpi_get_flag
203 #define gcry_mpi_get_nbits          _gcry_mpi_get_nbits
204 #define gcry_mpi_get_opaque         _gcry_mpi_get_opaque
205 #define gcry_mpi_invm               _gcry_mpi_invm
206 #define gcry_mpi_mod                _gcry_mpi_mod
207 #define gcry_mpi_mul                _gcry_mpi_mul
208 #define gcry_mpi_mul_2exp           _gcry_mpi_mul_2exp
209 #define gcry_mpi_mul_ui             _gcry_mpi_mul_ui
210 #define gcry_mpi_mulm               _gcry_mpi_mulm
211 #define gcry_mpi_new                _gcry_mpi_new
212 #define gcry_mpi_powm               _gcry_mpi_powm
213 #define gcry_mpi_print              _gcry_mpi_print
214 #define gcry_mpi_randomize          _gcry_mpi_randomize
215 #define gcry_mpi_release            _gcry_mpi_release
216 #define gcry_mpi_rshift             _gcry_mpi_rshift
217 #define gcry_mpi_scan               _gcry_mpi_scan
218 #define gcry_mpi_set                _gcry_mpi_set
219 #define gcry_mpi_set_bit            _gcry_mpi_set_bit
220 #define gcry_mpi_set_flag           _gcry_mpi_set_flag
221 #define gcry_mpi_set_highbit        _gcry_mpi_set_highbit
222 #define gcry_mpi_set_opaque         _gcry_mpi_set_opaque
223 #define gcry_mpi_set_ui             _gcry_mpi_set_ui
224 #define gcry_mpi_snew               _gcry_mpi_snew
225 #define gcry_mpi_sub                _gcry_mpi_sub
226 #define gcry_mpi_sub_ui             _gcry_mpi_sub_ui
227 #define gcry_mpi_subm               _gcry_mpi_subm
228 #define gcry_mpi_swap               _gcry_mpi_swap
229 #define gcry_mpi_test_bit           _gcry_mpi_test_bit
230
231
232 /* Include the main header here so that public symbols are mapped to
233    the internal underscored ones.  */
234 #ifdef _GCRY_INCLUDED_BY_VISIBILITY_C
235   /* We need to redeclare the deprecated functions without the
236      deprecated attribute.  */
237 # define GCRYPT_NO_DEPRECATED
238 # include "gcrypt.h"
239   gcry_error_t gcry_ac_id_to_name (gcry_ac_id_t algorithm, const char **name);
240   gcry_error_t gcry_ac_name_to_id (const char *name, gcry_ac_id_t *algorithm);
241 #else
242 # include "gcrypt.h"
243 #endif
244
245 /* Prototypes of functions exported but not ready for use.  */
246 gcry_err_code_t gcry_md_get (gcry_md_hd_t hd, int algo, 
247                              unsigned char *buffer, int buflen);
248 void gcry_ac_mpi_to_os (gcry_mpi_t mpi, unsigned char *os, size_t os_n);
249 gcry_error_t gcry_ac_mpi_to_os_alloc (gcry_mpi_t mpi, unsigned char **os,
250                                        size_t *os_n);
251 void gcry_ac_os_to_mpi (gcry_mpi_t mpi, unsigned char *os, size_t os_n);
252
253
254
255 /* Our use of the ELF visibility feature works by passing
256    -fvisibiliy=hidden on the command line and by explicitly marking
257    all exported functions as visible.  
258
259    NOTE: When adding new functions, please make sure to add them to
260          libgcrypt.vers and libgcrypt.def as well.  */
261
262 #ifdef _GCRY_INCLUDED_BY_VISIBILITY_C
263
264 /* A macro to flag a function as visible.  Note that we take the
265    definition from the mapped name.  */
266 #ifdef GCRY_USE_VISIBILITY
267 # define MARK_VISIBLE(name) \
268     extern __typeof__ (_##name) name __attribute__ ((visibility("default")));
269 # define MARK_VISIBLEX(name) \
270     extern __typeof__ (name) name __attribute__ ((visibility("default")));
271 #else
272 # define MARK_VISIBLE(name) /* */
273 # define MARK_VISIBLEX(name) /* */
274 #endif
275
276
277 /* First undef all redefined symbols so that we set the attribute on
278    the correct version name.  */
279 #undef gcry_check_version         
280 #undef gcry_control               
281
282 #undef gcry_set_allocation_handler
283 #undef gcry_set_fatalerror_handler
284 #undef gcry_set_gettext_handler   
285 #undef gcry_set_log_handler       
286 #undef gcry_set_outofcore_handler 
287 #undef gcry_set_progress_handler  
288 #undef gcry_err_code_from_errno   
289 #undef gcry_err_code_to_errno     
290 #undef gcry_err_make_from_errno   
291 #undef gcry_error_from_errno      
292 #undef gcry_strerror              
293 #undef gcry_strsource             
294
295 #undef gcry_free                  
296 #undef gcry_malloc                
297 #undef gcry_malloc_secure         
298 #undef gcry_calloc                
299 #undef gcry_calloc_secure         
300 #undef gcry_realloc               
301 #undef gcry_strdup                
302 #undef gcry_is_secure             
303 #undef gcry_xcalloc               
304 #undef gcry_xcalloc_secure        
305 #undef gcry_xmalloc               
306 #undef gcry_xmalloc_secure        
307 #undef gcry_xrealloc              
308 #undef gcry_xstrdup               
309                                    
310 #undef gcry_md_algo_info          
311 #undef gcry_md_algo_name          
312 #undef gcry_md_close              
313 #undef gcry_md_copy               
314 #undef gcry_md_ctl                
315 #undef gcry_md_enable             
316 #undef gcry_md_get                
317 #undef gcry_md_get_algo           
318 #undef gcry_md_get_algo_dlen      
319 #undef gcry_md_hash_buffer        
320 #undef gcry_md_info               
321 #undef gcry_md_is_enabled         
322 #undef gcry_md_is_secure          
323 #undef gcry_md_list               
324 #undef gcry_md_map_name           
325 #undef gcry_md_open               
326 #undef gcry_md_read               
327 /* gcry_md_register is not anymore a macro.  */
328 #undef gcry_md_unregister         
329 #undef gcry_md_reset              
330 #undef gcry_md_setkey             
331 #undef gcry_md_write              
332 #undef gcry_md_debug              
333
334 #undef gcry_cipher_algo_info      
335 #undef gcry_cipher_algo_name      
336 #undef gcry_cipher_close          
337 #undef gcry_cipher_setkey
338 #undef gcry_cipher_setiv
339 #undef gcry_cipher_setctr
340 #undef gcry_cipher_ctl            
341 #undef gcry_cipher_decrypt        
342 #undef gcry_cipher_encrypt        
343 #undef gcry_cipher_get_algo_blklen
344 #undef gcry_cipher_get_algo_keylen
345 #undef gcry_cipher_info           
346 #undef gcry_cipher_list           
347 #undef gcry_cipher_map_name       
348 #undef gcry_cipher_mode_from_oid  
349 #undef gcry_cipher_open           
350 /* gcry_cipher_register is not anymore a macro.  */
351 #undef gcry_cipher_unregister     
352
353 #undef gcry_pk_algo_info          
354 #undef gcry_pk_algo_name          
355 #undef gcry_pk_ctl                
356 #undef gcry_pk_decrypt            
357 #undef gcry_pk_encrypt            
358 #undef gcry_pk_genkey             
359 #undef gcry_pk_get_keygrip        
360 #undef gcry_pk_get_nbits          
361 #undef gcry_pk_list               
362 #undef gcry_pk_map_name           
363 /* gcry_pk_register is not anymore a macro.  */
364 #undef gcry_pk_unregister         
365 #undef gcry_pk_sign               
366 #undef gcry_pk_testkey            
367 #undef gcry_pk_verify             
368
369 #undef gcry_ac_data_new           
370 #undef gcry_ac_data_destroy       
371 #undef gcry_ac_data_copy          
372 #undef gcry_ac_data_length        
373 #undef gcry_ac_data_clear         
374 #undef gcry_ac_data_set           
375 #undef gcry_ac_data_get_name      
376 #undef gcry_ac_data_get_index     
377 #undef gcry_ac_open               
378 #undef gcry_ac_close              
379 #undef gcry_ac_key_init           
380 #undef gcry_ac_key_pair_generate  
381 #undef gcry_ac_key_pair_extract   
382 #undef gcry_ac_key_data_get       
383 #undef gcry_ac_key_test           
384 #undef gcry_ac_key_get_nbits      
385 #undef gcry_ac_key_get_grip       
386 #undef gcry_ac_key_destroy        
387 #undef gcry_ac_key_pair_destroy   
388 #undef gcry_ac_data_encrypt       
389 #undef gcry_ac_data_decrypt       
390 #undef gcry_ac_data_sign          
391 #undef gcry_ac_data_verify        
392 #undef gcry_ac_id_to_name         
393 #undef gcry_ac_name_to_id         
394 #undef gcry_ac_data_encode        
395 #undef gcry_ac_data_decode        
396 #undef gcry_ac_mpi_to_os          
397 #undef gcry_ac_mpi_to_os_alloc    
398 #undef gcry_ac_os_to_mpi          
399 #undef gcry_ac_data_encrypt_scheme
400 #undef gcry_ac_data_decrypt_scheme
401 #undef gcry_ac_data_sign_scheme   
402 #undef gcry_ac_data_verify_scheme 
403 #undef gcry_ac_data_to_sexp       
404 #undef gcry_ac_data_from_sexp     
405 #undef gcry_ac_io_init            
406 #undef gcry_ac_io_init_va         
407
408 #undef gcry_prime_check           
409 #undef gcry_prime_generate        
410 #undef gcry_prime_group_generator 
411 #undef gcry_prime_release_factors 
412
413 #undef gcry_random_add_bytes      
414 #undef gcry_random_bytes          
415 #undef gcry_random_bytes_secure   
416 #undef gcry_randomize             
417 #undef gcry_create_nonce          
418
419 #undef gcry_sexp_alist            
420 #undef gcry_sexp_append           
421 #undef gcry_sexp_build            
422 #undef gcry_sexp_build_array      
423 #undef gcry_sexp_cadr             
424 #undef gcry_sexp_canon_len        
425 #undef gcry_sexp_car              
426 #undef gcry_sexp_cdr              
427 #undef gcry_sexp_cons             
428 #undef gcry_sexp_create           
429 #undef gcry_sexp_dump             
430 #undef gcry_sexp_find_token       
431 #undef gcry_sexp_length           
432 #undef gcry_sexp_new              
433 #undef gcry_sexp_nth              
434 #undef gcry_sexp_nth_data         
435 #undef gcry_sexp_nth_mpi          
436 #undef gcry_sexp_prepend          
437 #undef gcry_sexp_release          
438 #undef gcry_sexp_sprint           
439 #undef gcry_sexp_sscan            
440 #undef gcry_sexp_vlist            
441 #undef gcry_sexp_nth_string       
442
443 #undef gcry_mpi_add               
444 #undef gcry_mpi_add_ui            
445 #undef gcry_mpi_addm              
446 #undef gcry_mpi_aprint            
447 #undef gcry_mpi_clear_bit         
448 #undef gcry_mpi_clear_flag        
449 #undef gcry_mpi_clear_highbit     
450 #undef gcry_mpi_cmp               
451 #undef gcry_mpi_cmp_ui            
452 #undef gcry_mpi_copy              
453 #undef gcry_mpi_div               
454 #undef gcry_mpi_dump              
455 #undef gcry_mpi_gcd               
456 #undef gcry_mpi_get_flag          
457 #undef gcry_mpi_get_nbits         
458 #undef gcry_mpi_get_opaque        
459 #undef gcry_mpi_invm              
460 #undef gcry_mpi_mod               
461 #undef gcry_mpi_mul               
462 #undef gcry_mpi_mul_2exp          
463 #undef gcry_mpi_mul_ui            
464 #undef gcry_mpi_mulm              
465 #undef gcry_mpi_new               
466 #undef gcry_mpi_powm              
467 #undef gcry_mpi_print             
468 #undef gcry_mpi_randomize         
469 #undef gcry_mpi_release           
470 #undef gcry_mpi_rshift            
471 #undef gcry_mpi_scan              
472 #undef gcry_mpi_set               
473 #undef gcry_mpi_set_bit           
474 #undef gcry_mpi_set_flag          
475 #undef gcry_mpi_set_highbit       
476 #undef gcry_mpi_set_opaque        
477 #undef gcry_mpi_set_ui            
478 #undef gcry_mpi_snew              
479 #undef gcry_mpi_sub               
480 #undef gcry_mpi_sub_ui            
481 #undef gcry_mpi_subm              
482 #undef gcry_mpi_swap              
483 #undef gcry_mpi_test_bit          
484
485
486 /* Now mark all symbols.  */
487
488 MARK_VISIBLE (gcry_check_version)
489 MARK_VISIBLE (gcry_control)
490
491 MARK_VISIBLE (gcry_set_allocation_handler)
492 MARK_VISIBLE (gcry_set_fatalerror_handler)
493 MARK_VISIBLE (gcry_set_gettext_handler)
494 MARK_VISIBLE (gcry_set_log_handler)
495 MARK_VISIBLE (gcry_set_outofcore_handler)
496 MARK_VISIBLE (gcry_set_progress_handler)
497 MARK_VISIBLE (gcry_err_code_from_errno)
498 MARK_VISIBLE (gcry_err_code_to_errno)
499 MARK_VISIBLE (gcry_err_make_from_errno)
500 MARK_VISIBLE (gcry_error_from_errno)
501 MARK_VISIBLE (gcry_strerror)
502 MARK_VISIBLE (gcry_strsource)
503
504 MARK_VISIBLE (gcry_free)
505 MARK_VISIBLE (gcry_malloc)
506 MARK_VISIBLE (gcry_malloc_secure)
507 MARK_VISIBLE (gcry_calloc)
508 MARK_VISIBLE (gcry_calloc_secure)
509 MARK_VISIBLE (gcry_realloc)
510 MARK_VISIBLE (gcry_strdup)
511 MARK_VISIBLE (gcry_is_secure)
512 MARK_VISIBLE (gcry_xcalloc)
513 MARK_VISIBLE (gcry_xcalloc_secure)
514 MARK_VISIBLE (gcry_xmalloc)
515 MARK_VISIBLE (gcry_xmalloc_secure)
516 MARK_VISIBLE (gcry_xrealloc)
517 MARK_VISIBLE (gcry_xstrdup)
518
519 MARK_VISIBLE (gcry_md_algo_info)
520 MARK_VISIBLE (gcry_md_algo_name)
521 MARK_VISIBLE (gcry_md_close)
522 MARK_VISIBLE (gcry_md_copy)
523 MARK_VISIBLE (gcry_md_ctl)
524 MARK_VISIBLE (gcry_md_enable)
525 MARK_VISIBLE (gcry_md_get)
526 MARK_VISIBLE (gcry_md_get_algo)
527 MARK_VISIBLE (gcry_md_get_algo_dlen)
528 MARK_VISIBLE (gcry_md_hash_buffer)
529 MARK_VISIBLE (gcry_md_info)
530 MARK_VISIBLE (gcry_md_is_enabled)
531 MARK_VISIBLE (gcry_md_is_secure)
532 MARK_VISIBLE (gcry_md_list)
533 MARK_VISIBLE (gcry_md_map_name)
534 MARK_VISIBLE (gcry_md_open)
535 MARK_VISIBLE (gcry_md_read)
536 MARK_VISIBLEX(gcry_md_register)
537 MARK_VISIBLE (gcry_md_reset)
538 MARK_VISIBLE (gcry_md_setkey)
539 MARK_VISIBLE (gcry_md_unregister)
540 MARK_VISIBLE (gcry_md_write)
541 MARK_VISIBLE (gcry_md_debug)
542
543 MARK_VISIBLE (gcry_cipher_algo_info)
544 MARK_VISIBLE (gcry_cipher_algo_name)
545 MARK_VISIBLE (gcry_cipher_close)
546 MARK_VISIBLE (gcry_cipher_setkey)
547 MARK_VISIBLE (gcry_cipher_setiv)
548 MARK_VISIBLE (gcry_cipher_setctr)
549 MARK_VISIBLE (gcry_cipher_ctl)
550 MARK_VISIBLE (gcry_cipher_decrypt)
551 MARK_VISIBLE (gcry_cipher_encrypt)
552 MARK_VISIBLE (gcry_cipher_get_algo_blklen)
553 MARK_VISIBLE (gcry_cipher_get_algo_keylen)
554 MARK_VISIBLE (gcry_cipher_info)
555 MARK_VISIBLE (gcry_cipher_list)
556 MARK_VISIBLE (gcry_cipher_map_name)
557 MARK_VISIBLE (gcry_cipher_mode_from_oid)
558 MARK_VISIBLE (gcry_cipher_open)
559 MARK_VISIBLEX(gcry_cipher_register)
560 MARK_VISIBLE (gcry_cipher_unregister)
561
562 MARK_VISIBLE (gcry_pk_algo_info)
563 MARK_VISIBLE (gcry_pk_algo_name)
564 MARK_VISIBLE (gcry_pk_ctl)
565 MARK_VISIBLE (gcry_pk_decrypt)
566 MARK_VISIBLE (gcry_pk_encrypt)
567 MARK_VISIBLE (gcry_pk_genkey)
568 MARK_VISIBLE (gcry_pk_get_keygrip)
569 MARK_VISIBLE (gcry_pk_get_nbits)
570 MARK_VISIBLE (gcry_pk_list)
571 MARK_VISIBLE (gcry_pk_map_name)
572 MARK_VISIBLEX(gcry_pk_register)
573 MARK_VISIBLE (gcry_pk_sign)
574 MARK_VISIBLE (gcry_pk_testkey)
575 MARK_VISIBLE (gcry_pk_unregister)
576 MARK_VISIBLE (gcry_pk_verify)
577
578 MARK_VISIBLE (gcry_ac_data_new)
579 MARK_VISIBLE (gcry_ac_data_destroy)
580 MARK_VISIBLE (gcry_ac_data_copy)
581 MARK_VISIBLE (gcry_ac_data_length)
582 MARK_VISIBLE (gcry_ac_data_clear)
583 MARK_VISIBLE (gcry_ac_data_set)
584 MARK_VISIBLE (gcry_ac_data_get_name)
585 MARK_VISIBLE (gcry_ac_data_get_index)
586 MARK_VISIBLE (gcry_ac_open)
587 MARK_VISIBLE (gcry_ac_close)
588 MARK_VISIBLE (gcry_ac_key_init)
589 MARK_VISIBLE (gcry_ac_key_pair_generate)
590 MARK_VISIBLE (gcry_ac_key_pair_extract)
591 MARK_VISIBLE (gcry_ac_key_data_get)
592 MARK_VISIBLE (gcry_ac_key_test)
593 MARK_VISIBLE (gcry_ac_key_get_nbits)
594 MARK_VISIBLE (gcry_ac_key_get_grip)
595 MARK_VISIBLE (gcry_ac_key_destroy)
596 MARK_VISIBLE (gcry_ac_key_pair_destroy)
597 MARK_VISIBLE (gcry_ac_data_encrypt)
598 MARK_VISIBLE (gcry_ac_data_decrypt)
599 MARK_VISIBLE (gcry_ac_data_sign)
600 MARK_VISIBLE (gcry_ac_data_verify)
601 MARK_VISIBLE (gcry_ac_id_to_name)
602 MARK_VISIBLE (gcry_ac_name_to_id)
603 /* MARK_VISIBLE (gcry_ac_list) Not defined although it is in
604         libgcrypt.vers. */
605 MARK_VISIBLE (gcry_ac_data_encode)
606 MARK_VISIBLE (gcry_ac_data_decode)
607 MARK_VISIBLE (gcry_ac_mpi_to_os)
608 MARK_VISIBLE (gcry_ac_mpi_to_os_alloc)
609 MARK_VISIBLE (gcry_ac_os_to_mpi)
610 MARK_VISIBLE (gcry_ac_data_encrypt_scheme)
611 MARK_VISIBLE (gcry_ac_data_decrypt_scheme)
612 MARK_VISIBLE (gcry_ac_data_sign_scheme)
613 MARK_VISIBLE (gcry_ac_data_verify_scheme)
614 MARK_VISIBLE (gcry_ac_data_to_sexp)
615 MARK_VISIBLE (gcry_ac_data_from_sexp)
616 MARK_VISIBLE (gcry_ac_io_init)
617 MARK_VISIBLE (gcry_ac_io_init_va)
618
619 MARK_VISIBLE (gcry_prime_check)
620 MARK_VISIBLE (gcry_prime_generate)
621 MARK_VISIBLE (gcry_prime_group_generator)
622 MARK_VISIBLE (gcry_prime_release_factors)
623
624 MARK_VISIBLE (gcry_random_add_bytes)
625 MARK_VISIBLE (gcry_random_bytes)
626 MARK_VISIBLE (gcry_random_bytes_secure)
627 MARK_VISIBLE (gcry_randomize)
628 MARK_VISIBLE (gcry_create_nonce)
629
630 MARK_VISIBLE (gcry_sexp_alist)
631 MARK_VISIBLE (gcry_sexp_append)
632 MARK_VISIBLE (gcry_sexp_build)
633 MARK_VISIBLE (gcry_sexp_build_array)
634 MARK_VISIBLE (gcry_sexp_cadr)
635 MARK_VISIBLE (gcry_sexp_canon_len)
636 MARK_VISIBLE (gcry_sexp_car)
637 MARK_VISIBLE (gcry_sexp_cdr)
638 MARK_VISIBLE (gcry_sexp_cons)
639 MARK_VISIBLE (gcry_sexp_create)
640 MARK_VISIBLE (gcry_sexp_dump)
641 MARK_VISIBLE (gcry_sexp_find_token)
642 MARK_VISIBLE (gcry_sexp_length)
643 MARK_VISIBLE (gcry_sexp_new)
644 MARK_VISIBLE (gcry_sexp_nth)
645 MARK_VISIBLE (gcry_sexp_nth_data)
646 MARK_VISIBLE (gcry_sexp_nth_mpi)
647 MARK_VISIBLE (gcry_sexp_prepend)
648 MARK_VISIBLE (gcry_sexp_release)
649 MARK_VISIBLE (gcry_sexp_sprint)
650 MARK_VISIBLE (gcry_sexp_sscan)
651 MARK_VISIBLE (gcry_sexp_vlist)
652 MARK_VISIBLE (gcry_sexp_nth_string)
653
654 MARK_VISIBLE (gcry_mpi_add)
655 MARK_VISIBLE (gcry_mpi_add_ui)
656 MARK_VISIBLE (gcry_mpi_addm)
657 MARK_VISIBLE (gcry_mpi_aprint)
658 MARK_VISIBLE (gcry_mpi_clear_bit)
659 MARK_VISIBLE (gcry_mpi_clear_flag)
660 MARK_VISIBLE (gcry_mpi_clear_highbit)
661 MARK_VISIBLE (gcry_mpi_cmp)
662 MARK_VISIBLE (gcry_mpi_cmp_ui)
663 MARK_VISIBLE (gcry_mpi_copy)
664 MARK_VISIBLE (gcry_mpi_div)
665 MARK_VISIBLE (gcry_mpi_dump)
666 MARK_VISIBLE (gcry_mpi_gcd)
667 MARK_VISIBLE (gcry_mpi_get_flag)
668 MARK_VISIBLE (gcry_mpi_get_nbits)
669 MARK_VISIBLE (gcry_mpi_get_opaque)
670 MARK_VISIBLE (gcry_mpi_invm)
671 MARK_VISIBLE (gcry_mpi_mod)
672 MARK_VISIBLE (gcry_mpi_mul)
673 MARK_VISIBLE (gcry_mpi_mul_2exp)
674 MARK_VISIBLE (gcry_mpi_mul_ui)
675 MARK_VISIBLE (gcry_mpi_mulm)
676 MARK_VISIBLE (gcry_mpi_new)
677 MARK_VISIBLE (gcry_mpi_powm)
678 MARK_VISIBLE (gcry_mpi_print)
679 MARK_VISIBLE (gcry_mpi_randomize)
680 MARK_VISIBLE (gcry_mpi_release)
681 MARK_VISIBLE (gcry_mpi_rshift)
682 MARK_VISIBLE (gcry_mpi_scan)
683 MARK_VISIBLE (gcry_mpi_set)
684 MARK_VISIBLE (gcry_mpi_set_bit)
685 MARK_VISIBLE (gcry_mpi_set_flag)
686 MARK_VISIBLE (gcry_mpi_set_highbit)
687 MARK_VISIBLE (gcry_mpi_set_opaque)
688 MARK_VISIBLE (gcry_mpi_set_ui)
689 MARK_VISIBLE (gcry_mpi_snew)
690 MARK_VISIBLE (gcry_mpi_sub)
691 MARK_VISIBLE (gcry_mpi_sub_ui)
692 MARK_VISIBLE (gcry_mpi_subm)
693 MARK_VISIBLE (gcry_mpi_swap)
694 MARK_VISIBLE (gcry_mpi_test_bit)
695
696
697
698 #undef MARK_VISIBLE
699 #endif /*_GCRY_INCLUDED_BY_VISIBILITY_C*/
700
701 #endif /*GCRY_VISIBILITY_H*/