Flag the _ac_ functions as deprecated.
[libgcrypt.git] / src / visibility.h
index f0350fa..ea00b89 100644 (file)
@@ -20,7 +20,8 @@
 #ifndef GCRY_VISIBILITY_H
 #define GCRY_VISIBILITY_H
 
-/* Redefine all public symbols with an underscore.  */
+/* Redefine all public symbols with an underscore unless we already
+   use the underscore prefixed version internally.  */
 #define gcry_check_version          _gcry_check_version
 #define gcry_control                _gcry_control
 
@@ -51,7 +52,7 @@
 #define gcry_xmalloc_secure         _gcry_xmalloc_secure
 #define gcry_xrealloc               _gcry_xrealloc
 #define gcry_xstrdup                _gcry_xstrdup
-                                    
+
 #define gcry_md_algo_info           _gcry_md_algo_info
 #define gcry_md_algo_name           _gcry_md_algo_name
 #define gcry_md_close               _gcry_md_close
 #define gcry_md_map_name            _gcry_md_map_name
 #define gcry_md_open                _gcry_md_open
 #define gcry_md_read                _gcry_md_read
-#define gcry_md_register            _gcry_md_register
+/* gcry_md_register and _gcry_md_register differ.  */
+#define gcry_md_unregister          _gcry_md_unregister
 #define gcry_md_reset               _gcry_md_reset
 #define gcry_md_setkey              _gcry_md_setkey
-#define gcry_md_unregister          _gcry_md_unregister
 #define gcry_md_write               _gcry_md_write
 #define gcry_md_debug               _gcry_md_debug
 
 #define gcry_cipher_algo_info       _gcry_cipher_algo_info
 #define gcry_cipher_algo_name       _gcry_cipher_algo_name
 #define gcry_cipher_close           _gcry_cipher_close
+#define gcry_cipher_setkey          _gcry_cipher_setkey
+#define gcry_cipher_setiv           _gcry_cipher_setiv
+#define gcry_cipher_setctr          _gcry_cipher_setctr
 #define gcry_cipher_ctl             _gcry_cipher_ctl
 #define gcry_cipher_decrypt         _gcry_cipher_decrypt
 #define gcry_cipher_encrypt         _gcry_cipher_encrypt
@@ -89,7 +93,7 @@
 #define gcry_cipher_map_name        _gcry_cipher_map_name
 #define gcry_cipher_mode_from_oid   _gcry_cipher_mode_from_oid
 #define gcry_cipher_open            _gcry_cipher_open
-#define gcry_cipher_register        _gcry_cipher_register
+/* gcry_cipher_register and  _gcry_cipher_register differ.  */
 #define gcry_cipher_unregister      _gcry_cipher_unregister
 
 #define gcry_pk_algo_info           _gcry_pk_algo_info
 #define gcry_pk_encrypt             _gcry_pk_encrypt
 #define gcry_pk_genkey              _gcry_pk_genkey
 #define gcry_pk_get_keygrip         _gcry_pk_get_keygrip
+#define gcry_pk_get_curve           _gcry_pk_get_curve
+#define gcry_pk_get_param           _gcry_pk_get_param
 #define gcry_pk_get_nbits           _gcry_pk_get_nbits
 #define gcry_pk_list                _gcry_pk_list
 #define gcry_pk_map_name            _gcry_pk_map_name
-#define gcry_pk_register            _gcry_pk_register
+/* gcry_pk_register and _gcry_pk_register differ.  */
+#define gcry_pk_unregister          _gcry_pk_unregister
 #define gcry_pk_sign                _gcry_pk_sign
 #define gcry_pk_testkey             _gcry_pk_testkey
-#define gcry_pk_unregister          _gcry_pk_unregister
 #define gcry_pk_verify              _gcry_pk_verify
 
 #define gcry_ac_data_new            _gcry_ac_data_new
 #define gcry_mpi_randomize          _gcry_mpi_randomize
 #define gcry_mpi_release            _gcry_mpi_release
 #define gcry_mpi_rshift             _gcry_mpi_rshift
+#define gcry_mpi_lshift             _gcry_mpi_lshift
 #define gcry_mpi_scan               _gcry_mpi_scan
 #define gcry_mpi_set                _gcry_mpi_set
 #define gcry_mpi_set_bit            _gcry_mpi_set_bit
 #define gcry_mpi_swap               _gcry_mpi_swap
 #define gcry_mpi_test_bit           _gcry_mpi_test_bit
 
-#define gcry_cipher_register        _gcry_cipher_register
-#define gcry_cipher_unregister      _gcry_cipher_unregister
-#define gcry_pk_register            _gcry_pk_register    
-#define gcry_pk_unregister          _gcry_pk_unregister    
-#define gcry_md_register            _gcry_md_register    
-#define gcry_md_unregister          _gcry_md_unregister
-
 
 /* Include the main header here so that public symbols are mapped to
    the internal underscored ones.  */
      deprecated attribute.  */
 # define GCRYPT_NO_DEPRECATED
 # include "gcrypt.h"
+/* The algorithm IDs. */
+  gcry_error_t gcry_ac_data_new (gcry_ac_data_t *data);
+  void gcry_ac_data_destroy (gcry_ac_data_t data);
+  gcry_error_t gcry_ac_data_copy (gcry_ac_data_t *data_cp,
+                                  gcry_ac_data_t data);
+  unsigned int gcry_ac_data_length (gcry_ac_data_t data);
+  void gcry_ac_data_clear (gcry_ac_data_t data);
+  gcry_error_t gcry_ac_data_set (gcry_ac_data_t data, unsigned int flags,
+                                 const char *name, gcry_mpi_t mpi);
+  gcry_error_t gcry_ac_data_get_name (gcry_ac_data_t data, unsigned int flags,
+                                      const char *name, gcry_mpi_t *mpi);
+  gcry_error_t gcry_ac_data_get_index (gcry_ac_data_t data, unsigned int flags,
+                                       unsigned int idx,
+                                       const char **name, gcry_mpi_t *mpi);
+  gcry_error_t gcry_ac_data_to_sexp (gcry_ac_data_t data, gcry_sexp_t *sexp,
+                                   const char **identifiers);
+  gcry_error_t gcry_ac_data_from_sexp (gcry_ac_data_t *data, gcry_sexp_t sexp,
+                                     const char **identifiers);
+  void gcry_ac_io_init (gcry_ac_io_t *ac_io, gcry_ac_io_mode_t mode,
+                      gcry_ac_io_type_t type, ...);
+  void gcry_ac_io_init_va (gcry_ac_io_t *ac_io, gcry_ac_io_mode_t mode,
+                         gcry_ac_io_type_t type, va_list ap);
+  gcry_error_t gcry_ac_open (gcry_ac_handle_t *handle,
+                             gcry_ac_id_t algorithm, unsigned int flags);
+  void gcry_ac_close (gcry_ac_handle_t handle);
+  gcry_error_t gcry_ac_key_init (gcry_ac_key_t *key, gcry_ac_handle_t handle,
+                                 gcry_ac_key_type_t type, gcry_ac_data_t data);
+  gcry_error_t gcry_ac_key_pair_generate (gcry_ac_handle_t handle,
+                                          unsigned int nbits, void *spec,
+                                          gcry_ac_key_pair_t *key_pair,
+                                          gcry_mpi_t **misc_data);
+  gcry_ac_key_t gcry_ac_key_pair_extract (gcry_ac_key_pair_t key_pair,
+                                          gcry_ac_key_type_t which);
+  gcry_ac_data_t gcry_ac_key_data_get (gcry_ac_key_t key);
+  gcry_error_t gcry_ac_key_test (gcry_ac_handle_t handle, gcry_ac_key_t key);
+  gcry_error_t gcry_ac_key_get_nbits (gcry_ac_handle_t handle,
+                                      gcry_ac_key_t key, unsigned int *nbits);
+  gcry_error_t gcry_ac_key_get_grip (gcry_ac_handle_t handle, gcry_ac_key_t key,
+                                     unsigned char *key_grip);
+  void gcry_ac_key_destroy (gcry_ac_key_t key);
+  void gcry_ac_key_pair_destroy (gcry_ac_key_pair_t key_pair);
+  gcry_error_t gcry_ac_data_encode (gcry_ac_em_t method,
+                                  unsigned int flags, void *options,
+                                  gcry_ac_io_t *io_read,
+                                  gcry_ac_io_t *io_write);
+  gcry_error_t gcry_ac_data_decode (gcry_ac_em_t method,
+                                  unsigned int flags, void *options,
+                                  gcry_ac_io_t *io_read,
+                                  gcry_ac_io_t *io_write);
+  gcry_error_t gcry_ac_data_encrypt (gcry_ac_handle_t handle,
+                                     unsigned int flags,
+                                     gcry_ac_key_t key,
+                                     gcry_mpi_t data_plain,
+                                     gcry_ac_data_t *data_encrypted);
+  gcry_error_t gcry_ac_data_decrypt (gcry_ac_handle_t handle,
+                                     unsigned int flags,
+                                     gcry_ac_key_t key,
+                                     gcry_mpi_t *data_plain,
+                                     gcry_ac_data_t data_encrypted);
+  gcry_error_t gcry_ac_data_sign (gcry_ac_handle_t handle,
+                                  gcry_ac_key_t key,
+                                  gcry_mpi_t data,
+                                  gcry_ac_data_t *data_signature);
+  gcry_error_t gcry_ac_data_verify (gcry_ac_handle_t handle,
+                                    gcry_ac_key_t key,
+                                    gcry_mpi_t data,
+                                    gcry_ac_data_t data_signature);
+  gcry_error_t gcry_ac_data_encrypt_scheme (gcry_ac_handle_t handle,
+                                          gcry_ac_scheme_t scheme,
+                                          unsigned int flags, void *opts,
+                                          gcry_ac_key_t key,
+                                          gcry_ac_io_t *io_message,
+                                          gcry_ac_io_t *io_cipher);
+  gcry_error_t gcry_ac_data_decrypt_scheme (gcry_ac_handle_t handle,
+                                          gcry_ac_scheme_t scheme,
+                                          unsigned int flags, void *opts,
+                                          gcry_ac_key_t key,
+                                          gcry_ac_io_t *io_cipher,
+                                          gcry_ac_io_t *io_message);
+  gcry_error_t gcry_ac_data_sign_scheme (gcry_ac_handle_t handle,
+                                       gcry_ac_scheme_t scheme,
+                                       unsigned int flags, void *opts,
+                                       gcry_ac_key_t key,
+                                       gcry_ac_io_t *io_message,
+                                       gcry_ac_io_t *io_signature);
+  gcry_error_t gcry_ac_data_verify_scheme (gcry_ac_handle_t handle,
+                                         gcry_ac_scheme_t scheme,
+                                         unsigned int flags, void *opts,
+                                         gcry_ac_key_t key,
+                                         gcry_ac_io_t *io_message,
+                                         gcry_ac_io_t *io_signature);
   gcry_error_t gcry_ac_id_to_name (gcry_ac_id_t algorithm, const char **name);
   gcry_error_t gcry_ac_name_to_id (const char *name, gcry_ac_id_t *algorithm);
 #else
 #endif
 
 /* Prototypes of functions exported but not ready for use.  */
-gcry_err_code_t gcry_md_get (gcry_md_hd_t hd, int algo, 
+gcry_err_code_t gcry_md_get (gcry_md_hd_t hd, int algo,
                              unsigned char *buffer, int buflen);
 void gcry_ac_mpi_to_os (gcry_mpi_t mpi, unsigned char *os, size_t os_n);
 gcry_error_t gcry_ac_mpi_to_os_alloc (gcry_mpi_t mpi, unsigned char **os,
@@ -257,7 +348,7 @@ void gcry_ac_os_to_mpi (gcry_mpi_t mpi, unsigned char *os, size_t os_n);
 
 /* 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.  
+   all exported functions as visible.
 
    NOTE: When adding new functions, please make sure to add them to
          libgcrypt.vers and libgcrypt.def as well.  */
@@ -265,227 +356,228 @@ void gcry_ac_os_to_mpi (gcry_mpi_t mpi, unsigned char *os, size_t os_n);
 #ifdef _GCRY_INCLUDED_BY_VISIBILITY_C
 
 /* A macro to flag a function as visible.  Note that we take the
-   defintion from the mapped name.  */
+   definition from the mapped name.  */
 #ifdef GCRY_USE_VISIBILITY
 # define MARK_VISIBLE(name) \
     extern __typeof__ (_##name) name __attribute__ ((visibility("default")));
+# define MARK_VISIBLEX(name) \
+    extern __typeof__ (name) name __attribute__ ((visibility("default")));
 #else
 # define MARK_VISIBLE(name) /* */
+# define MARK_VISIBLEX(name) /* */
 #endif
 
 
 /* First undef all redefined symbols so that we set the attribute on
    the correct version name.  */
-#undef gcry_check_version         
-#undef gcry_control               
+#undef gcry_check_version
+#undef gcry_control
 
 #undef gcry_set_allocation_handler
 #undef gcry_set_fatalerror_handler
-#undef gcry_set_gettext_handler   
-#undef gcry_set_log_handler       
-#undef gcry_set_outofcore_handler 
-#undef gcry_set_progress_handler  
-#undef gcry_err_code_from_errno   
-#undef gcry_err_code_to_errno     
-#undef gcry_err_make_from_errno   
-#undef gcry_error_from_errno      
-#undef gcry_strerror              
-#undef gcry_strsource             
-
-#undef gcry_free                  
-#undef gcry_malloc                
-#undef gcry_malloc_secure         
-#undef gcry_calloc                
-#undef gcry_calloc_secure         
-#undef gcry_realloc               
-#undef gcry_strdup                
-#undef gcry_is_secure             
-#undef gcry_xcalloc               
-#undef gcry_xcalloc_secure        
-#undef gcry_xmalloc               
-#undef gcry_xmalloc_secure        
-#undef gcry_xrealloc              
-#undef gcry_xstrdup               
-                                   
-#undef gcry_md_algo_info          
-#undef gcry_md_algo_name          
-#undef gcry_md_close              
-#undef gcry_md_copy               
-#undef gcry_md_ctl                
-#undef gcry_md_enable             
-#undef gcry_md_get                
-#undef gcry_md_get_algo           
-#undef gcry_md_get_algo_dlen      
-#undef gcry_md_hash_buffer        
-#undef gcry_md_info               
-#undef gcry_md_is_enabled         
-#undef gcry_md_is_secure          
-#undef gcry_md_list               
-#undef gcry_md_map_name           
-#undef gcry_md_open               
-#undef gcry_md_read               
-#undef gcry_md_register           
-#undef gcry_md_reset              
-#undef gcry_md_setkey             
-#undef gcry_md_unregister         
-#undef gcry_md_write              
-#undef gcry_md_debug              
-
-#undef gcry_cipher_algo_info      
-#undef gcry_cipher_algo_name      
-#undef gcry_cipher_close          
-#undef gcry_cipher_ctl            
-#undef gcry_cipher_decrypt        
-#undef gcry_cipher_encrypt        
+#undef gcry_set_gettext_handler
+#undef gcry_set_log_handler
+#undef gcry_set_outofcore_handler
+#undef gcry_set_progress_handler
+#undef gcry_err_code_from_errno
+#undef gcry_err_code_to_errno
+#undef gcry_err_make_from_errno
+#undef gcry_error_from_errno
+#undef gcry_strerror
+#undef gcry_strsource
+
+#undef gcry_free
+#undef gcry_malloc
+#undef gcry_malloc_secure
+#undef gcry_calloc
+#undef gcry_calloc_secure
+#undef gcry_realloc
+#undef gcry_strdup
+#undef gcry_is_secure
+#undef gcry_xcalloc
+#undef gcry_xcalloc_secure
+#undef gcry_xmalloc
+#undef gcry_xmalloc_secure
+#undef gcry_xrealloc
+#undef gcry_xstrdup
+
+#undef gcry_md_algo_info
+#undef gcry_md_algo_name
+#undef gcry_md_close
+#undef gcry_md_copy
+#undef gcry_md_ctl
+#undef gcry_md_enable
+#undef gcry_md_get
+#undef gcry_md_get_algo
+#undef gcry_md_get_algo_dlen
+#undef gcry_md_hash_buffer
+#undef gcry_md_info
+#undef gcry_md_is_enabled
+#undef gcry_md_is_secure
+#undef gcry_md_list
+#undef gcry_md_map_name
+#undef gcry_md_open
+#undef gcry_md_read
+/* gcry_md_register is not anymore a macro.  */
+#undef gcry_md_unregister
+#undef gcry_md_reset
+#undef gcry_md_setkey
+#undef gcry_md_write
+#undef gcry_md_debug
+
+#undef gcry_cipher_algo_info
+#undef gcry_cipher_algo_name
+#undef gcry_cipher_close
+#undef gcry_cipher_setkey
+#undef gcry_cipher_setiv
+#undef gcry_cipher_setctr
+#undef gcry_cipher_ctl
+#undef gcry_cipher_decrypt
+#undef gcry_cipher_encrypt
 #undef gcry_cipher_get_algo_blklen
 #undef gcry_cipher_get_algo_keylen
-#undef gcry_cipher_info           
-#undef gcry_cipher_list           
-#undef gcry_cipher_map_name       
-#undef gcry_cipher_mode_from_oid  
-#undef gcry_cipher_open           
-#undef gcry_cipher_register       
-#undef gcry_cipher_unregister     
-
-#undef gcry_pk_algo_info          
-#undef gcry_pk_algo_name          
-#undef gcry_pk_ctl                
-#undef gcry_pk_decrypt            
-#undef gcry_pk_encrypt            
-#undef gcry_pk_genkey             
-#undef gcry_pk_get_keygrip        
-#undef gcry_pk_get_nbits          
-#undef gcry_pk_list               
-#undef gcry_pk_map_name           
-#undef gcry_pk_register           
-#undef gcry_pk_sign               
-#undef gcry_pk_testkey            
-#undef gcry_pk_unregister         
-#undef gcry_pk_verify             
-
-#undef gcry_ac_data_new           
-#undef gcry_ac_data_destroy       
-#undef gcry_ac_data_copy          
-#undef gcry_ac_data_length        
-#undef gcry_ac_data_clear         
-#undef gcry_ac_data_set           
-#undef gcry_ac_data_get_name      
-#undef gcry_ac_data_get_index     
-#undef gcry_ac_open               
-#undef gcry_ac_close              
-#undef gcry_ac_key_init           
-#undef gcry_ac_key_pair_generate  
-#undef gcry_ac_key_pair_extract   
-#undef gcry_ac_key_data_get       
-#undef gcry_ac_key_test           
-#undef gcry_ac_key_get_nbits      
-#undef gcry_ac_key_get_grip       
-#undef gcry_ac_key_destroy        
-#undef gcry_ac_key_pair_destroy   
-#undef gcry_ac_data_encrypt       
-#undef gcry_ac_data_decrypt       
-#undef gcry_ac_data_sign          
-#undef gcry_ac_data_verify        
-#undef gcry_ac_id_to_name         
-#undef gcry_ac_name_to_id         
-#undef gcry_ac_data_encode        
-#undef gcry_ac_data_decode        
-#undef gcry_ac_mpi_to_os          
-#undef gcry_ac_mpi_to_os_alloc    
-#undef gcry_ac_os_to_mpi          
-#undef gcry_ac_data_encrypt_scheme
-#undef gcry_ac_data_decrypt_scheme
-#undef gcry_ac_data_sign_scheme   
-#undef gcry_ac_data_verify_scheme 
-#undef gcry_ac_data_to_sexp       
-#undef gcry_ac_data_from_sexp     
-#undef gcry_ac_io_init            
-#undef gcry_ac_io_init_va         
-
-#undef gcry_prime_check           
-#undef gcry_prime_generate        
-#undef gcry_prime_group_generator 
-#undef gcry_prime_release_factors 
-
-#undef gcry_random_add_bytes      
-#undef gcry_random_bytes          
-#undef gcry_random_bytes_secure   
-#undef gcry_randomize             
-#undef gcry_create_nonce          
-
-#undef gcry_sexp_alist            
-#undef gcry_sexp_append           
-#undef gcry_sexp_build            
-#undef gcry_sexp_build_array      
-#undef gcry_sexp_cadr             
-#undef gcry_sexp_canon_len        
-#undef gcry_sexp_car              
-#undef gcry_sexp_cdr              
-#undef gcry_sexp_cons             
-#undef gcry_sexp_create           
-#undef gcry_sexp_dump             
-#undef gcry_sexp_find_token       
-#undef gcry_sexp_length           
-#undef gcry_sexp_new              
-#undef gcry_sexp_nth              
-#undef gcry_sexp_nth_data         
-#undef gcry_sexp_nth_mpi          
-#undef gcry_sexp_prepend          
-#undef gcry_sexp_release          
-#undef gcry_sexp_sprint           
-#undef gcry_sexp_sscan            
-#undef gcry_sexp_vlist            
-#undef gcry_sexp_nth_string       
-
-#undef gcry_mpi_add               
-#undef gcry_mpi_add_ui            
-#undef gcry_mpi_addm              
-#undef gcry_mpi_aprint            
-#undef gcry_mpi_clear_bit         
-#undef gcry_mpi_clear_flag        
-#undef gcry_mpi_clear_highbit     
-#undef gcry_mpi_cmp               
-#undef gcry_mpi_cmp_ui            
-#undef gcry_mpi_copy              
-#undef gcry_mpi_div               
-#undef gcry_mpi_dump              
-#undef gcry_mpi_gcd               
-#undef gcry_mpi_get_flag          
-#undef gcry_mpi_get_nbits         
-#undef gcry_mpi_get_opaque        
-#undef gcry_mpi_invm              
-#undef gcry_mpi_mod               
-#undef gcry_mpi_mul               
-#undef gcry_mpi_mul_2exp          
-#undef gcry_mpi_mul_ui            
-#undef gcry_mpi_mulm              
-#undef gcry_mpi_new               
-#undef gcry_mpi_powm              
-#undef gcry_mpi_print             
-#undef gcry_mpi_randomize         
-#undef gcry_mpi_release           
-#undef gcry_mpi_rshift            
-#undef gcry_mpi_scan              
-#undef gcry_mpi_set               
-#undef gcry_mpi_set_bit           
-#undef gcry_mpi_set_flag          
-#undef gcry_mpi_set_highbit       
-#undef gcry_mpi_set_opaque        
-#undef gcry_mpi_set_ui            
-#undef gcry_mpi_snew              
-#undef gcry_mpi_sub               
-#undef gcry_mpi_sub_ui            
-#undef gcry_mpi_subm              
-#undef gcry_mpi_swap              
-#undef gcry_mpi_test_bit          
-
-#undef gcry_cipher_register
+#undef gcry_cipher_info
+#undef gcry_cipher_list
+#undef gcry_cipher_map_name
+#undef gcry_cipher_mode_from_oid
+#undef gcry_cipher_open
+/* gcry_cipher_register is not anymore a macro.  */
 #undef gcry_cipher_unregister
-#undef gcry_pk_register
-#undef gcry_pk_unregister
-#undef gcry_md_register
-#undef gcry_md_unregister
 
+#undef gcry_pk_algo_info
+#undef gcry_pk_algo_name
+#undef gcry_pk_ctl
+#undef gcry_pk_decrypt
+#undef gcry_pk_encrypt
+#undef gcry_pk_genkey
+#undef gcry_pk_get_keygrip
+#undef gcry_pk_get_curve
+#undef gcry_pk_get_param
+#undef gcry_pk_get_nbits
+#undef gcry_pk_list
+#undef gcry_pk_map_name
+/* gcry_pk_register is not anymore a macro.  */
+#undef gcry_pk_unregister
+#undef gcry_pk_sign
+#undef gcry_pk_testkey
+#undef gcry_pk_verify
+
+#undef gcry_ac_data_new
+#undef gcry_ac_data_destroy
+#undef gcry_ac_data_copy
+#undef gcry_ac_data_length
+#undef gcry_ac_data_clear
+#undef gcry_ac_data_set
+#undef gcry_ac_data_get_name
+#undef gcry_ac_data_get_index
+#undef gcry_ac_open
+#undef gcry_ac_close
+#undef gcry_ac_key_init
+#undef gcry_ac_key_pair_generate
+#undef gcry_ac_key_pair_extract
+#undef gcry_ac_key_data_get
+#undef gcry_ac_key_test
+#undef gcry_ac_key_get_nbits
+#undef gcry_ac_key_get_grip
+#undef gcry_ac_key_destroy
+#undef gcry_ac_key_pair_destroy
+#undef gcry_ac_data_encrypt
+#undef gcry_ac_data_decrypt
+#undef gcry_ac_data_sign
+#undef gcry_ac_data_verify
+#undef gcry_ac_id_to_name
+#undef gcry_ac_name_to_id
+#undef gcry_ac_data_encode
+#undef gcry_ac_data_decode
+#undef gcry_ac_mpi_to_os
+#undef gcry_ac_mpi_to_os_alloc
+#undef gcry_ac_os_to_mpi
+#undef gcry_ac_data_encrypt_scheme
+#undef gcry_ac_data_decrypt_scheme
+#undef gcry_ac_data_sign_scheme
+#undef gcry_ac_data_verify_scheme
+#undef gcry_ac_data_to_sexp
+#undef gcry_ac_data_from_sexp
+#undef gcry_ac_io_init
+#undef gcry_ac_io_init_va
+
+#undef gcry_prime_check
+#undef gcry_prime_generate
+#undef gcry_prime_group_generator
+#undef gcry_prime_release_factors
+
+#undef gcry_random_add_bytes
+#undef gcry_random_bytes
+#undef gcry_random_bytes_secure
+#undef gcry_randomize
+#undef gcry_create_nonce
+
+#undef gcry_sexp_alist
+#undef gcry_sexp_append
+#undef gcry_sexp_build
+#undef gcry_sexp_build_array
+#undef gcry_sexp_cadr
+#undef gcry_sexp_canon_len
+#undef gcry_sexp_car
+#undef gcry_sexp_cdr
+#undef gcry_sexp_cons
+#undef gcry_sexp_create
+#undef gcry_sexp_dump
+#undef gcry_sexp_find_token
+#undef gcry_sexp_length
+#undef gcry_sexp_new
+#undef gcry_sexp_nth
+#undef gcry_sexp_nth_data
+#undef gcry_sexp_nth_mpi
+#undef gcry_sexp_prepend
+#undef gcry_sexp_release
+#undef gcry_sexp_sprint
+#undef gcry_sexp_sscan
+#undef gcry_sexp_vlist
+#undef gcry_sexp_nth_string
+
+#undef gcry_mpi_add
+#undef gcry_mpi_add_ui
+#undef gcry_mpi_addm
+#undef gcry_mpi_aprint
+#undef gcry_mpi_clear_bit
+#undef gcry_mpi_clear_flag
+#undef gcry_mpi_clear_highbit
+#undef gcry_mpi_cmp
+#undef gcry_mpi_cmp_ui
+#undef gcry_mpi_copy
+#undef gcry_mpi_div
+#undef gcry_mpi_dump
+#undef gcry_mpi_gcd
+#undef gcry_mpi_get_flag
+#undef gcry_mpi_get_nbits
+#undef gcry_mpi_get_opaque
+#undef gcry_mpi_invm
+#undef gcry_mpi_mod
+#undef gcry_mpi_mul
+#undef gcry_mpi_mul_2exp
+#undef gcry_mpi_mul_ui
+#undef gcry_mpi_mulm
+#undef gcry_mpi_new
+#undef gcry_mpi_powm
+#undef gcry_mpi_print
+#undef gcry_mpi_randomize
+#undef gcry_mpi_release
+#undef gcry_mpi_rshift
+#undef gcry_mpi_lshift
+#undef gcry_mpi_scan
+#undef gcry_mpi_set
+#undef gcry_mpi_set_bit
+#undef gcry_mpi_set_flag
+#undef gcry_mpi_set_highbit
+#undef gcry_mpi_set_opaque
+#undef gcry_mpi_set_ui
+#undef gcry_mpi_snew
+#undef gcry_mpi_sub
+#undef gcry_mpi_sub_ui
+#undef gcry_mpi_subm
+#undef gcry_mpi_swap
+#undef gcry_mpi_test_bit
 
 
 /* Now mark all symbols.  */
@@ -538,7 +630,7 @@ MARK_VISIBLE (gcry_md_list)
 MARK_VISIBLE (gcry_md_map_name)
 MARK_VISIBLE (gcry_md_open)
 MARK_VISIBLE (gcry_md_read)
-MARK_VISIBLE (gcry_md_register)
+MARK_VISIBLEX(gcry_md_register)
 MARK_VISIBLE (gcry_md_reset)
 MARK_VISIBLE (gcry_md_setkey)
 MARK_VISIBLE (gcry_md_unregister)
@@ -548,6 +640,9 @@ MARK_VISIBLE (gcry_md_debug)
 MARK_VISIBLE (gcry_cipher_algo_info)
 MARK_VISIBLE (gcry_cipher_algo_name)
 MARK_VISIBLE (gcry_cipher_close)
+MARK_VISIBLE (gcry_cipher_setkey)
+MARK_VISIBLE (gcry_cipher_setiv)
+MARK_VISIBLE (gcry_cipher_setctr)
 MARK_VISIBLE (gcry_cipher_ctl)
 MARK_VISIBLE (gcry_cipher_decrypt)
 MARK_VISIBLE (gcry_cipher_encrypt)
@@ -558,7 +653,7 @@ MARK_VISIBLE (gcry_cipher_list)
 MARK_VISIBLE (gcry_cipher_map_name)
 MARK_VISIBLE (gcry_cipher_mode_from_oid)
 MARK_VISIBLE (gcry_cipher_open)
-MARK_VISIBLE (gcry_cipher_register)
+MARK_VISIBLEX(gcry_cipher_register)
 MARK_VISIBLE (gcry_cipher_unregister)
 
 MARK_VISIBLE (gcry_pk_algo_info)
@@ -568,10 +663,12 @@ MARK_VISIBLE (gcry_pk_decrypt)
 MARK_VISIBLE (gcry_pk_encrypt)
 MARK_VISIBLE (gcry_pk_genkey)
 MARK_VISIBLE (gcry_pk_get_keygrip)
+MARK_VISIBLE (gcry_pk_get_curve)
+MARK_VISIBLE (gcry_pk_get_param)
 MARK_VISIBLE (gcry_pk_get_nbits)
 MARK_VISIBLE (gcry_pk_list)
 MARK_VISIBLE (gcry_pk_map_name)
-MARK_VISIBLE (gcry_pk_register)
+MARK_VISIBLEX(gcry_pk_register)
 MARK_VISIBLE (gcry_pk_sign)
 MARK_VISIBLE (gcry_pk_testkey)
 MARK_VISIBLE (gcry_pk_unregister)
@@ -681,6 +778,7 @@ MARK_VISIBLE (gcry_mpi_print)
 MARK_VISIBLE (gcry_mpi_randomize)
 MARK_VISIBLE (gcry_mpi_release)
 MARK_VISIBLE (gcry_mpi_rshift)
+MARK_VISIBLE (gcry_mpi_lshift)
 MARK_VISIBLE (gcry_mpi_scan)
 MARK_VISIBLE (gcry_mpi_set)
 MARK_VISIBLE (gcry_mpi_set_bit)
@@ -695,13 +793,6 @@ MARK_VISIBLE (gcry_mpi_subm)
 MARK_VISIBLE (gcry_mpi_swap)
 MARK_VISIBLE (gcry_mpi_test_bit)
 
-MARK_VISIBLE (gcry_cipher_register)
-MARK_VISIBLE (gcry_cipher_unregister)
-MARK_VISIBLE (gcry_pk_register)
-MARK_VISIBLE (gcry_pk_unregister)
-MARK_VISIBLE (gcry_md_register)
-MARK_VISIBLE (gcry_md_unregister)
-
 
 
 #undef MARK_VISIBLE