;; libgcrypt.defs -  Exported symbols for W32
;; Copyright (C) 2003, 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, write to the Free Software
;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
;;

;; Note: This file should be updated manually and the ordinals shall
;; never be changed.  Also check libgcrypt.vers and visibility.h.


EXPORTS
      gcry_check_version  @1
      gcry_control  @2

      gcry_malloc  @3
      gcry_calloc  @4
      gcry_malloc_secure  @5
      gcry_calloc_secure  @6
      gcry_realloc  @7
      gcry_strdup  @8
      gcry_xmalloc  @9
      gcry_xcalloc  @10
      gcry_xmalloc_secure  @11
      gcry_xcalloc_secure  @12
      gcry_xrealloc  @13
      gcry_xstrdup  @14
      gcry_is_secure  @15
      gcry_free  @16

      gcry_set_progress_handler  @17
      gcry_set_allocation_handler  @18
      gcry_set_outofcore_handler  @19
      gcry_set_fatalerror_handler  @20
      gcry_set_log_handler  @21
      gcry_set_gettext_handler  @22

      gcry_strerror  @23
      gcry_strsource  @24
      gcry_err_code_from_errno  @25
      gcry_err_code_to_errno  @26
      gcry_err_make_from_errno  @27
      gcry_error_from_errno  @28

      gcry_sexp_new  @29
      gcry_sexp_create  @30
      gcry_sexp_sscan  @31
      gcry_sexp_build  @32
      gcry_sexp_build_array  @33
      gcry_sexp_release  @34
      gcry_sexp_canon_len  @35
      gcry_sexp_sprint  @36
      gcry_sexp_dump  @37
      gcry_sexp_cons  @38
      gcry_sexp_alist  @39
      gcry_sexp_vlist  @40
      gcry_sexp_append  @41
      gcry_sexp_prepend  @42
      gcry_sexp_find_token  @43
      gcry_sexp_length  @44
      gcry_sexp_nth  @45
      gcry_sexp_car  @46
      gcry_sexp_cdr  @47
      gcry_sexp_cadr  @48
      gcry_sexp_nth_data  @49
      gcry_sexp_nth_mpi  @50

      gcry_mpi_new  @51
      gcry_mpi_snew  @52
      gcry_mpi_release  @53
      gcry_mpi_copy  @54
      gcry_mpi_set  @55
      gcry_mpi_set_ui  @56
      gcry_mpi_swap  @57
      gcry_mpi_cmp  @58
      gcry_mpi_cmp_ui  @59
      gcry_mpi_scan  @60
      gcry_mpi_print  @61
      gcry_mpi_aprint  @62
      gcry_mpi_dump  @63
      gcry_mpi_add  @64
      gcry_mpi_add_ui  @65
      gcry_mpi_addm  @66
      gcry_mpi_sub  @67
      gcry_mpi_sub_ui  @68
      gcry_mpi_subm  @69
      gcry_mpi_mul  @70
      gcry_mpi_mul_ui  @71
      gcry_mpi_mulm  @72
      gcry_mpi_mul_2exp  @73
      gcry_mpi_div  @74
      gcry_mpi_mod  @75
      gcry_mpi_powm  @76
      gcry_mpi_gcd  @77
      gcry_mpi_invm  @78
      gcry_mpi_get_nbits  @79
      gcry_mpi_test_bit  @80
      gcry_mpi_set_bit  @81
      gcry_mpi_clear_bit  @82
      gcry_mpi_set_highbit  @83
      gcry_mpi_clear_highbit  @84
      gcry_mpi_rshift  @85
      gcry_mpi_set_opaque  @86
      gcry_mpi_get_opaque  @87
      gcry_mpi_set_flag  @88
      gcry_mpi_clear_flag  @89
      gcry_mpi_get_flag  @90


      gcry_cipher_open  @92
      gcry_cipher_close  @93
      gcry_cipher_ctl  @94
      gcry_cipher_info  @95
      gcry_cipher_algo_info  @96
      gcry_cipher_algo_name  @97
      gcry_cipher_map_name  @98
      gcry_cipher_mode_from_oid  @99
      gcry_cipher_encrypt  @100
      gcry_cipher_decrypt  @101
      gcry_cipher_get_algo_keylen  @102
      gcry_cipher_get_algo_blklen  @103

;; @104 used to be part of the module register interface

      gcry_pk_encrypt  @105
      gcry_pk_decrypt  @106
      gcry_pk_sign  @107
      gcry_pk_verify  @108
      gcry_pk_testkey  @109
      gcry_pk_genkey  @110
      gcry_pk_ctl  @111
      gcry_pk_algo_info  @112
      gcry_pk_algo_name  @113
      gcry_pk_map_name  @114
      gcry_pk_get_nbits  @115
      gcry_pk_get_keygrip  @116

;; @117 used to be part of the module register interface

;;
;; 118 to 142 were used in previous Libgcrypt versions for the gcry_ac
;; interface
;;

      gcry_md_open  @143
      gcry_md_close  @144
      gcry_md_enable  @145
      gcry_md_copy  @146
      gcry_md_reset  @147
      gcry_md_ctl  @148
      gcry_md_write  @149
      gcry_md_read  @150
      gcry_md_hash_buffer  @151
      gcry_md_get_algo  @152
      gcry_md_get_algo_dlen  @153
      gcry_md_is_enabled  @154
      gcry_md_is_secure  @155
      gcry_md_info  @156
      gcry_md_algo_info  @157
      gcry_md_algo_name  @158
      gcry_md_map_name  @159
      gcry_md_setkey  @160
;; @161 used to be part of the module register interface
      gcry_randomize  @162
      gcry_random_add_bytes  @163
      gcry_random_bytes  @164
      gcry_random_bytes_secure  @165
      gcry_mpi_randomize  @166

      gcry_prime_generate  @167
      gcry_prime_group_generator  @168
      gcry_prime_release_factors  @169
      gcry_prime_check  @170

      gcry_create_nonce  @171

      gcry_md_debug  @172

;; @173 used to be part of the module register interface
;; @174 used to be part of the module register interface
;; @175 used to be part of the module register interface
;; @176 used to be part of the module register interface
;; @177 used to be part of the module register interface
;; @178 used to be part of the module register interface
;;
;; @179 to @186 used to be part of the removed gcry_ac interface
;;

      gcry_sexp_nth_string  @187

      gcry_cipher_setkey    @188
      gcry_cipher_setiv     @189
      gcry_cipher_setctr    @190

      gcry_mpi_lshift       @191

      gcry_pk_get_curve     @192
      gcry_pk_get_param     @193

      gcry_kdf_derive       @194

      gcry_mpi_snatch       @195

      gcry_mpi_point_new        @196
      gcry_mpi_point_release    @197
      gcry_mpi_point_get        @198
      gcry_mpi_point_snatch_get @199
      gcry_mpi_point_set        @200
      gcry_mpi_point_snatch_set @201

      gcry_ctx_release          @202

      gcry_mpi_ec_new           @203
      gcry_mpi_ec_get_mpi       @204
      gcry_mpi_ec_get_point     @205
      gcry_mpi_ec_set_mpi       @206
      gcry_mpi_ec_set_point     @207
      gcry_mpi_ec_get_affine    @208
      gcry_mpi_ec_dup           @209
      gcry_mpi_ec_add           @210
      gcry_mpi_ec_mul           @211

      gcry_pubkey_get_sexp      @212

      _gcry_mpi_get_const       @213

      gcry_sexp_nth_buffer      @214

      gcry_mpi_is_neg           @215
      gcry_mpi_neg              @216
      gcry_mpi_abs              @217

      gcry_mpi_ec_curve_point   @218

      gcry_md_hash_buffers      @219

      gcry_log_debug            @220
      gcry_log_debughex         @221
      gcry_log_debugmpi         @222
      gcry_log_debugpnt         @223
      gcry_log_debugsxp         @224

      gcry_sexp_extract_param   @225

      gcry_cipher_authenticate  @226
      gcry_cipher_gettag        @227
      gcry_cipher_checktag      @228

      gcry_mpi_set_opaque_copy  @229

      gcry_mac_algo_info        @230
      gcry_mac_algo_name        @231
      gcry_mac_map_name         @232
      gcry_mac_get_algo_maclen  @233
      gcry_mac_get_algo_keylen  @234
      gcry_mac_open             @235
      gcry_mac_close            @236
      gcry_mac_setkey           @237
      gcry_mac_setiv            @238
      gcry_mac_write            @239
      gcry_mac_read             @240
      gcry_mac_verify           @241
      gcry_mac_ctl              @242


;; end of file with public symbols for Windows.
