gpg-error.h 50 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423
  1. /* gpg-error.h - Public interface to libgpg-error. -*- c -*-
  2. * Copyright (C) 2003, 2004, 2010, 2013, 2014, 2015, 2016 g10 Code GmbH
  3. *
  4. * This file is part of libgpg-error.
  5. *
  6. * libgpg-error is free software; you can redistribute it and/or
  7. * modify it under the terms of the GNU Lesser General Public License
  8. * as published by the Free Software Foundation; either version 2.1 of
  9. * the License, or (at your option) any later version.
  10. *
  11. * libgpg-error is distributed in the hope that it will be useful, but
  12. * WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  14. * 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 <https://www.gnu.org/licenses/>.
  18. *
  19. * Do not edit. Generated from gpg-error.h.in for:
  20. arm-unknown-linux-gnueabi
  21. */
  22. #ifndef GPG_ERROR_H
  23. #define GPG_ERROR_H 1
  24. #include <stddef.h>
  25. #include <stdio.h>
  26. #include <stdarg.h>
  27. /* The version string of this header. */
  28. #define GPG_ERROR_VERSION "1.24"
  29. #define GPGRT_VERSION "1.24"
  30. /* The version number of this header. */
  31. #define GPG_ERROR_VERSION_NUMBER 0x011800
  32. #define GPGRT_VERSION_NUMBER 0x011800
  33. #ifdef __GNUC__
  34. # define GPG_ERR_INLINE __inline__
  35. #elif defined(_MSC_VER) && _MSC_VER >= 1300
  36. # define GPG_ERR_INLINE __inline
  37. #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
  38. # define GPG_ERR_INLINE inline
  39. #else
  40. # ifndef GPG_ERR_INLINE
  41. # define GPG_ERR_INLINE
  42. # endif
  43. #endif
  44. #ifdef __cplusplus
  45. extern "C" {
  46. #if 0 /* just to make Emacs auto-indent happy */
  47. }
  48. #endif
  49. #endif /* __cplusplus */
  50. /* The GnuPG project consists of many components. Error codes are
  51. exchanged between all components. The common error codes and their
  52. user-presentable descriptions are kept into a shared library to
  53. allow adding new error codes and components without recompiling any
  54. of the other components. The interface will not change in a
  55. backward incompatible way.
  56. An error code together with an error source build up an error
  57. value. As the error value is been passed from one component to
  58. another, it preserver the information about the source and nature
  59. of the error.
  60. A component of the GnuPG project can define the following macros to
  61. tune the behaviour of the library:
  62. GPG_ERR_SOURCE_DEFAULT: Define to an error source of type
  63. gpg_err_source_t to make that source the default for gpg_error().
  64. Otherwise GPG_ERR_SOURCE_UNKNOWN is used as default.
  65. GPG_ERR_ENABLE_GETTEXT_MACROS: Define to provide macros to map the
  66. internal gettext API to standard names. This has only an effect on
  67. Windows platforms.
  68. GPGRT_ENABLE_ES_MACROS: Define to provide "es_" macros for the
  69. estream functions.
  70. In addition to the error codes, Libgpg-error also provides a set of
  71. functions used by most GnuPG components. */
  72. /* The error source type gpg_err_source_t.
  73. Where as the Poo out of a welle small
  74. Taketh his firste springing and his sours.
  75. --Chaucer. */
  76. /* Only use free slots, never change or reorder the existing
  77. entries. */
  78. typedef enum
  79. {
  80. GPG_ERR_SOURCE_UNKNOWN = 0,
  81. GPG_ERR_SOURCE_GCRYPT = 1,
  82. GPG_ERR_SOURCE_GPG = 2,
  83. GPG_ERR_SOURCE_GPGSM = 3,
  84. GPG_ERR_SOURCE_GPGAGENT = 4,
  85. GPG_ERR_SOURCE_PINENTRY = 5,
  86. GPG_ERR_SOURCE_SCD = 6,
  87. GPG_ERR_SOURCE_GPGME = 7,
  88. GPG_ERR_SOURCE_KEYBOX = 8,
  89. GPG_ERR_SOURCE_KSBA = 9,
  90. GPG_ERR_SOURCE_DIRMNGR = 10,
  91. GPG_ERR_SOURCE_GSTI = 11,
  92. GPG_ERR_SOURCE_GPA = 12,
  93. GPG_ERR_SOURCE_KLEO = 13,
  94. GPG_ERR_SOURCE_G13 = 14,
  95. GPG_ERR_SOURCE_ASSUAN = 15,
  96. GPG_ERR_SOURCE_TLS = 17,
  97. GPG_ERR_SOURCE_ANY = 31,
  98. GPG_ERR_SOURCE_USER_1 = 32,
  99. GPG_ERR_SOURCE_USER_2 = 33,
  100. GPG_ERR_SOURCE_USER_3 = 34,
  101. GPG_ERR_SOURCE_USER_4 = 35,
  102. /* This is one more than the largest allowed entry. */
  103. GPG_ERR_SOURCE_DIM = 128
  104. } gpg_err_source_t;
  105. /* The error code type gpg_err_code_t. */
  106. /* Only use free slots, never change or reorder the existing
  107. entries. */
  108. typedef enum
  109. {
  110. GPG_ERR_NO_ERROR = 0,
  111. GPG_ERR_GENERAL = 1,
  112. GPG_ERR_UNKNOWN_PACKET = 2,
  113. GPG_ERR_UNKNOWN_VERSION = 3,
  114. GPG_ERR_PUBKEY_ALGO = 4,
  115. GPG_ERR_DIGEST_ALGO = 5,
  116. GPG_ERR_BAD_PUBKEY = 6,
  117. GPG_ERR_BAD_SECKEY = 7,
  118. GPG_ERR_BAD_SIGNATURE = 8,
  119. GPG_ERR_NO_PUBKEY = 9,
  120. GPG_ERR_CHECKSUM = 10,
  121. GPG_ERR_BAD_PASSPHRASE = 11,
  122. GPG_ERR_CIPHER_ALGO = 12,
  123. GPG_ERR_KEYRING_OPEN = 13,
  124. GPG_ERR_INV_PACKET = 14,
  125. GPG_ERR_INV_ARMOR = 15,
  126. GPG_ERR_NO_USER_ID = 16,
  127. GPG_ERR_NO_SECKEY = 17,
  128. GPG_ERR_WRONG_SECKEY = 18,
  129. GPG_ERR_BAD_KEY = 19,
  130. GPG_ERR_COMPR_ALGO = 20,
  131. GPG_ERR_NO_PRIME = 21,
  132. GPG_ERR_NO_ENCODING_METHOD = 22,
  133. GPG_ERR_NO_ENCRYPTION_SCHEME = 23,
  134. GPG_ERR_NO_SIGNATURE_SCHEME = 24,
  135. GPG_ERR_INV_ATTR = 25,
  136. GPG_ERR_NO_VALUE = 26,
  137. GPG_ERR_NOT_FOUND = 27,
  138. GPG_ERR_VALUE_NOT_FOUND = 28,
  139. GPG_ERR_SYNTAX = 29,
  140. GPG_ERR_BAD_MPI = 30,
  141. GPG_ERR_INV_PASSPHRASE = 31,
  142. GPG_ERR_SIG_CLASS = 32,
  143. GPG_ERR_RESOURCE_LIMIT = 33,
  144. GPG_ERR_INV_KEYRING = 34,
  145. GPG_ERR_TRUSTDB = 35,
  146. GPG_ERR_BAD_CERT = 36,
  147. GPG_ERR_INV_USER_ID = 37,
  148. GPG_ERR_UNEXPECTED = 38,
  149. GPG_ERR_TIME_CONFLICT = 39,
  150. GPG_ERR_KEYSERVER = 40,
  151. GPG_ERR_WRONG_PUBKEY_ALGO = 41,
  152. GPG_ERR_TRIBUTE_TO_D_A = 42,
  153. GPG_ERR_WEAK_KEY = 43,
  154. GPG_ERR_INV_KEYLEN = 44,
  155. GPG_ERR_INV_ARG = 45,
  156. GPG_ERR_BAD_URI = 46,
  157. GPG_ERR_INV_URI = 47,
  158. GPG_ERR_NETWORK = 48,
  159. GPG_ERR_UNKNOWN_HOST = 49,
  160. GPG_ERR_SELFTEST_FAILED = 50,
  161. GPG_ERR_NOT_ENCRYPTED = 51,
  162. GPG_ERR_NOT_PROCESSED = 52,
  163. GPG_ERR_UNUSABLE_PUBKEY = 53,
  164. GPG_ERR_UNUSABLE_SECKEY = 54,
  165. GPG_ERR_INV_VALUE = 55,
  166. GPG_ERR_BAD_CERT_CHAIN = 56,
  167. GPG_ERR_MISSING_CERT = 57,
  168. GPG_ERR_NO_DATA = 58,
  169. GPG_ERR_BUG = 59,
  170. GPG_ERR_NOT_SUPPORTED = 60,
  171. GPG_ERR_INV_OP = 61,
  172. GPG_ERR_TIMEOUT = 62,
  173. GPG_ERR_INTERNAL = 63,
  174. GPG_ERR_EOF_GCRYPT = 64,
  175. GPG_ERR_INV_OBJ = 65,
  176. GPG_ERR_TOO_SHORT = 66,
  177. GPG_ERR_TOO_LARGE = 67,
  178. GPG_ERR_NO_OBJ = 68,
  179. GPG_ERR_NOT_IMPLEMENTED = 69,
  180. GPG_ERR_CONFLICT = 70,
  181. GPG_ERR_INV_CIPHER_MODE = 71,
  182. GPG_ERR_INV_FLAG = 72,
  183. GPG_ERR_INV_HANDLE = 73,
  184. GPG_ERR_TRUNCATED = 74,
  185. GPG_ERR_INCOMPLETE_LINE = 75,
  186. GPG_ERR_INV_RESPONSE = 76,
  187. GPG_ERR_NO_AGENT = 77,
  188. GPG_ERR_AGENT = 78,
  189. GPG_ERR_INV_DATA = 79,
  190. GPG_ERR_ASSUAN_SERVER_FAULT = 80,
  191. GPG_ERR_ASSUAN = 81,
  192. GPG_ERR_INV_SESSION_KEY = 82,
  193. GPG_ERR_INV_SEXP = 83,
  194. GPG_ERR_UNSUPPORTED_ALGORITHM = 84,
  195. GPG_ERR_NO_PIN_ENTRY = 85,
  196. GPG_ERR_PIN_ENTRY = 86,
  197. GPG_ERR_BAD_PIN = 87,
  198. GPG_ERR_INV_NAME = 88,
  199. GPG_ERR_BAD_DATA = 89,
  200. GPG_ERR_INV_PARAMETER = 90,
  201. GPG_ERR_WRONG_CARD = 91,
  202. GPG_ERR_NO_DIRMNGR = 92,
  203. GPG_ERR_DIRMNGR = 93,
  204. GPG_ERR_CERT_REVOKED = 94,
  205. GPG_ERR_NO_CRL_KNOWN = 95,
  206. GPG_ERR_CRL_TOO_OLD = 96,
  207. GPG_ERR_LINE_TOO_LONG = 97,
  208. GPG_ERR_NOT_TRUSTED = 98,
  209. GPG_ERR_CANCELED = 99,
  210. GPG_ERR_BAD_CA_CERT = 100,
  211. GPG_ERR_CERT_EXPIRED = 101,
  212. GPG_ERR_CERT_TOO_YOUNG = 102,
  213. GPG_ERR_UNSUPPORTED_CERT = 103,
  214. GPG_ERR_UNKNOWN_SEXP = 104,
  215. GPG_ERR_UNSUPPORTED_PROTECTION = 105,
  216. GPG_ERR_CORRUPTED_PROTECTION = 106,
  217. GPG_ERR_AMBIGUOUS_NAME = 107,
  218. GPG_ERR_CARD = 108,
  219. GPG_ERR_CARD_RESET = 109,
  220. GPG_ERR_CARD_REMOVED = 110,
  221. GPG_ERR_INV_CARD = 111,
  222. GPG_ERR_CARD_NOT_PRESENT = 112,
  223. GPG_ERR_NO_PKCS15_APP = 113,
  224. GPG_ERR_NOT_CONFIRMED = 114,
  225. GPG_ERR_CONFIGURATION = 115,
  226. GPG_ERR_NO_POLICY_MATCH = 116,
  227. GPG_ERR_INV_INDEX = 117,
  228. GPG_ERR_INV_ID = 118,
  229. GPG_ERR_NO_SCDAEMON = 119,
  230. GPG_ERR_SCDAEMON = 120,
  231. GPG_ERR_UNSUPPORTED_PROTOCOL = 121,
  232. GPG_ERR_BAD_PIN_METHOD = 122,
  233. GPG_ERR_CARD_NOT_INITIALIZED = 123,
  234. GPG_ERR_UNSUPPORTED_OPERATION = 124,
  235. GPG_ERR_WRONG_KEY_USAGE = 125,
  236. GPG_ERR_NOTHING_FOUND = 126,
  237. GPG_ERR_WRONG_BLOB_TYPE = 127,
  238. GPG_ERR_MISSING_VALUE = 128,
  239. GPG_ERR_HARDWARE = 129,
  240. GPG_ERR_PIN_BLOCKED = 130,
  241. GPG_ERR_USE_CONDITIONS = 131,
  242. GPG_ERR_PIN_NOT_SYNCED = 132,
  243. GPG_ERR_INV_CRL = 133,
  244. GPG_ERR_BAD_BER = 134,
  245. GPG_ERR_INV_BER = 135,
  246. GPG_ERR_ELEMENT_NOT_FOUND = 136,
  247. GPG_ERR_IDENTIFIER_NOT_FOUND = 137,
  248. GPG_ERR_INV_TAG = 138,
  249. GPG_ERR_INV_LENGTH = 139,
  250. GPG_ERR_INV_KEYINFO = 140,
  251. GPG_ERR_UNEXPECTED_TAG = 141,
  252. GPG_ERR_NOT_DER_ENCODED = 142,
  253. GPG_ERR_NO_CMS_OBJ = 143,
  254. GPG_ERR_INV_CMS_OBJ = 144,
  255. GPG_ERR_UNKNOWN_CMS_OBJ = 145,
  256. GPG_ERR_UNSUPPORTED_CMS_OBJ = 146,
  257. GPG_ERR_UNSUPPORTED_ENCODING = 147,
  258. GPG_ERR_UNSUPPORTED_CMS_VERSION = 148,
  259. GPG_ERR_UNKNOWN_ALGORITHM = 149,
  260. GPG_ERR_INV_ENGINE = 150,
  261. GPG_ERR_PUBKEY_NOT_TRUSTED = 151,
  262. GPG_ERR_DECRYPT_FAILED = 152,
  263. GPG_ERR_KEY_EXPIRED = 153,
  264. GPG_ERR_SIG_EXPIRED = 154,
  265. GPG_ERR_ENCODING_PROBLEM = 155,
  266. GPG_ERR_INV_STATE = 156,
  267. GPG_ERR_DUP_VALUE = 157,
  268. GPG_ERR_MISSING_ACTION = 158,
  269. GPG_ERR_MODULE_NOT_FOUND = 159,
  270. GPG_ERR_INV_OID_STRING = 160,
  271. GPG_ERR_INV_TIME = 161,
  272. GPG_ERR_INV_CRL_OBJ = 162,
  273. GPG_ERR_UNSUPPORTED_CRL_VERSION = 163,
  274. GPG_ERR_INV_CERT_OBJ = 164,
  275. GPG_ERR_UNKNOWN_NAME = 165,
  276. GPG_ERR_LOCALE_PROBLEM = 166,
  277. GPG_ERR_NOT_LOCKED = 167,
  278. GPG_ERR_PROTOCOL_VIOLATION = 168,
  279. GPG_ERR_INV_MAC = 169,
  280. GPG_ERR_INV_REQUEST = 170,
  281. GPG_ERR_UNKNOWN_EXTN = 171,
  282. GPG_ERR_UNKNOWN_CRIT_EXTN = 172,
  283. GPG_ERR_LOCKED = 173,
  284. GPG_ERR_UNKNOWN_OPTION = 174,
  285. GPG_ERR_UNKNOWN_COMMAND = 175,
  286. GPG_ERR_NOT_OPERATIONAL = 176,
  287. GPG_ERR_NO_PASSPHRASE = 177,
  288. GPG_ERR_NO_PIN = 178,
  289. GPG_ERR_NOT_ENABLED = 179,
  290. GPG_ERR_NO_ENGINE = 180,
  291. GPG_ERR_MISSING_KEY = 181,
  292. GPG_ERR_TOO_MANY = 182,
  293. GPG_ERR_LIMIT_REACHED = 183,
  294. GPG_ERR_NOT_INITIALIZED = 184,
  295. GPG_ERR_MISSING_ISSUER_CERT = 185,
  296. GPG_ERR_NO_KEYSERVER = 186,
  297. GPG_ERR_INV_CURVE = 187,
  298. GPG_ERR_UNKNOWN_CURVE = 188,
  299. GPG_ERR_DUP_KEY = 189,
  300. GPG_ERR_AMBIGUOUS = 190,
  301. GPG_ERR_NO_CRYPT_CTX = 191,
  302. GPG_ERR_WRONG_CRYPT_CTX = 192,
  303. GPG_ERR_BAD_CRYPT_CTX = 193,
  304. GPG_ERR_CRYPT_CTX_CONFLICT = 194,
  305. GPG_ERR_BROKEN_PUBKEY = 195,
  306. GPG_ERR_BROKEN_SECKEY = 196,
  307. GPG_ERR_MAC_ALGO = 197,
  308. GPG_ERR_FULLY_CANCELED = 198,
  309. GPG_ERR_UNFINISHED = 199,
  310. GPG_ERR_BUFFER_TOO_SHORT = 200,
  311. GPG_ERR_SEXP_INV_LEN_SPEC = 201,
  312. GPG_ERR_SEXP_STRING_TOO_LONG = 202,
  313. GPG_ERR_SEXP_UNMATCHED_PAREN = 203,
  314. GPG_ERR_SEXP_NOT_CANONICAL = 204,
  315. GPG_ERR_SEXP_BAD_CHARACTER = 205,
  316. GPG_ERR_SEXP_BAD_QUOTATION = 206,
  317. GPG_ERR_SEXP_ZERO_PREFIX = 207,
  318. GPG_ERR_SEXP_NESTED_DH = 208,
  319. GPG_ERR_SEXP_UNMATCHED_DH = 209,
  320. GPG_ERR_SEXP_UNEXPECTED_PUNC = 210,
  321. GPG_ERR_SEXP_BAD_HEX_CHAR = 211,
  322. GPG_ERR_SEXP_ODD_HEX_NUMBERS = 212,
  323. GPG_ERR_SEXP_BAD_OCT_CHAR = 213,
  324. GPG_ERR_SUBKEYS_EXP_OR_REV = 217,
  325. GPG_ERR_DB_CORRUPTED = 218,
  326. GPG_ERR_SERVER_FAILED = 219,
  327. GPG_ERR_NO_NAME = 220,
  328. GPG_ERR_NO_KEY = 221,
  329. GPG_ERR_LEGACY_KEY = 222,
  330. GPG_ERR_REQUEST_TOO_SHORT = 223,
  331. GPG_ERR_REQUEST_TOO_LONG = 224,
  332. GPG_ERR_OBJ_TERM_STATE = 225,
  333. GPG_ERR_NO_CERT_CHAIN = 226,
  334. GPG_ERR_CERT_TOO_LARGE = 227,
  335. GPG_ERR_INV_RECORD = 228,
  336. GPG_ERR_BAD_MAC = 229,
  337. GPG_ERR_UNEXPECTED_MSG = 230,
  338. GPG_ERR_COMPR_FAILED = 231,
  339. GPG_ERR_WOULD_WRAP = 232,
  340. GPG_ERR_FATAL_ALERT = 233,
  341. GPG_ERR_NO_CIPHER = 234,
  342. GPG_ERR_MISSING_CLIENT_CERT = 235,
  343. GPG_ERR_CLOSE_NOTIFY = 236,
  344. GPG_ERR_TICKET_EXPIRED = 237,
  345. GPG_ERR_BAD_TICKET = 238,
  346. GPG_ERR_UNKNOWN_IDENTITY = 239,
  347. GPG_ERR_BAD_HS_CERT = 240,
  348. GPG_ERR_BAD_HS_CERT_REQ = 241,
  349. GPG_ERR_BAD_HS_CERT_VER = 242,
  350. GPG_ERR_BAD_HS_CHANGE_CIPHER = 243,
  351. GPG_ERR_BAD_HS_CLIENT_HELLO = 244,
  352. GPG_ERR_BAD_HS_SERVER_HELLO = 245,
  353. GPG_ERR_BAD_HS_SERVER_HELLO_DONE = 246,
  354. GPG_ERR_BAD_HS_FINISHED = 247,
  355. GPG_ERR_BAD_HS_SERVER_KEX = 248,
  356. GPG_ERR_BAD_HS_CLIENT_KEX = 249,
  357. GPG_ERR_BOGUS_STRING = 250,
  358. GPG_ERR_FORBIDDEN = 251,
  359. GPG_ERR_KEY_DISABLED = 252,
  360. GPG_ERR_KEY_ON_CARD = 253,
  361. GPG_ERR_INV_LOCK_OBJ = 254,
  362. GPG_ERR_TRUE = 255,
  363. GPG_ERR_FALSE = 256,
  364. GPG_ERR_ASS_GENERAL = 257,
  365. GPG_ERR_ASS_ACCEPT_FAILED = 258,
  366. GPG_ERR_ASS_CONNECT_FAILED = 259,
  367. GPG_ERR_ASS_INV_RESPONSE = 260,
  368. GPG_ERR_ASS_INV_VALUE = 261,
  369. GPG_ERR_ASS_INCOMPLETE_LINE = 262,
  370. GPG_ERR_ASS_LINE_TOO_LONG = 263,
  371. GPG_ERR_ASS_NESTED_COMMANDS = 264,
  372. GPG_ERR_ASS_NO_DATA_CB = 265,
  373. GPG_ERR_ASS_NO_INQUIRE_CB = 266,
  374. GPG_ERR_ASS_NOT_A_SERVER = 267,
  375. GPG_ERR_ASS_NOT_A_CLIENT = 268,
  376. GPG_ERR_ASS_SERVER_START = 269,
  377. GPG_ERR_ASS_READ_ERROR = 270,
  378. GPG_ERR_ASS_WRITE_ERROR = 271,
  379. GPG_ERR_ASS_TOO_MUCH_DATA = 273,
  380. GPG_ERR_ASS_UNEXPECTED_CMD = 274,
  381. GPG_ERR_ASS_UNKNOWN_CMD = 275,
  382. GPG_ERR_ASS_SYNTAX = 276,
  383. GPG_ERR_ASS_CANCELED = 277,
  384. GPG_ERR_ASS_NO_INPUT = 278,
  385. GPG_ERR_ASS_NO_OUTPUT = 279,
  386. GPG_ERR_ASS_PARAMETER = 280,
  387. GPG_ERR_ASS_UNKNOWN_INQUIRE = 281,
  388. GPG_ERR_LDAP_GENERAL = 721,
  389. GPG_ERR_LDAP_ATTR_GENERAL = 722,
  390. GPG_ERR_LDAP_NAME_GENERAL = 723,
  391. GPG_ERR_LDAP_SECURITY_GENERAL = 724,
  392. GPG_ERR_LDAP_SERVICE_GENERAL = 725,
  393. GPG_ERR_LDAP_UPDATE_GENERAL = 726,
  394. GPG_ERR_LDAP_E_GENERAL = 727,
  395. GPG_ERR_LDAP_X_GENERAL = 728,
  396. GPG_ERR_LDAP_OTHER_GENERAL = 729,
  397. GPG_ERR_LDAP_X_CONNECTING = 750,
  398. GPG_ERR_LDAP_REFERRAL_LIMIT = 751,
  399. GPG_ERR_LDAP_CLIENT_LOOP = 752,
  400. GPG_ERR_LDAP_NO_RESULTS = 754,
  401. GPG_ERR_LDAP_CONTROL_NOT_FOUND = 755,
  402. GPG_ERR_LDAP_NOT_SUPPORTED = 756,
  403. GPG_ERR_LDAP_CONNECT = 757,
  404. GPG_ERR_LDAP_NO_MEMORY = 758,
  405. GPG_ERR_LDAP_PARAM = 759,
  406. GPG_ERR_LDAP_USER_CANCELLED = 760,
  407. GPG_ERR_LDAP_FILTER = 761,
  408. GPG_ERR_LDAP_AUTH_UNKNOWN = 762,
  409. GPG_ERR_LDAP_TIMEOUT = 763,
  410. GPG_ERR_LDAP_DECODING = 764,
  411. GPG_ERR_LDAP_ENCODING = 765,
  412. GPG_ERR_LDAP_LOCAL = 766,
  413. GPG_ERR_LDAP_SERVER_DOWN = 767,
  414. GPG_ERR_LDAP_SUCCESS = 768,
  415. GPG_ERR_LDAP_OPERATIONS = 769,
  416. GPG_ERR_LDAP_PROTOCOL = 770,
  417. GPG_ERR_LDAP_TIMELIMIT = 771,
  418. GPG_ERR_LDAP_SIZELIMIT = 772,
  419. GPG_ERR_LDAP_COMPARE_FALSE = 773,
  420. GPG_ERR_LDAP_COMPARE_TRUE = 774,
  421. GPG_ERR_LDAP_UNSUPPORTED_AUTH = 775,
  422. GPG_ERR_LDAP_STRONG_AUTH_RQRD = 776,
  423. GPG_ERR_LDAP_PARTIAL_RESULTS = 777,
  424. GPG_ERR_LDAP_REFERRAL = 778,
  425. GPG_ERR_LDAP_ADMINLIMIT = 779,
  426. GPG_ERR_LDAP_UNAVAIL_CRIT_EXTN = 780,
  427. GPG_ERR_LDAP_CONFIDENT_RQRD = 781,
  428. GPG_ERR_LDAP_SASL_BIND_INPROG = 782,
  429. GPG_ERR_LDAP_NO_SUCH_ATTRIBUTE = 784,
  430. GPG_ERR_LDAP_UNDEFINED_TYPE = 785,
  431. GPG_ERR_LDAP_BAD_MATCHING = 786,
  432. GPG_ERR_LDAP_CONST_VIOLATION = 787,
  433. GPG_ERR_LDAP_TYPE_VALUE_EXISTS = 788,
  434. GPG_ERR_LDAP_INV_SYNTAX = 789,
  435. GPG_ERR_LDAP_NO_SUCH_OBJ = 800,
  436. GPG_ERR_LDAP_ALIAS_PROBLEM = 801,
  437. GPG_ERR_LDAP_INV_DN_SYNTAX = 802,
  438. GPG_ERR_LDAP_IS_LEAF = 803,
  439. GPG_ERR_LDAP_ALIAS_DEREF = 804,
  440. GPG_ERR_LDAP_X_PROXY_AUTH_FAIL = 815,
  441. GPG_ERR_LDAP_BAD_AUTH = 816,
  442. GPG_ERR_LDAP_INV_CREDENTIALS = 817,
  443. GPG_ERR_LDAP_INSUFFICIENT_ACC = 818,
  444. GPG_ERR_LDAP_BUSY = 819,
  445. GPG_ERR_LDAP_UNAVAILABLE = 820,
  446. GPG_ERR_LDAP_UNWILL_TO_PERFORM = 821,
  447. GPG_ERR_LDAP_LOOP_DETECT = 822,
  448. GPG_ERR_LDAP_NAMING_VIOLATION = 832,
  449. GPG_ERR_LDAP_OBJ_CLS_VIOLATION = 833,
  450. GPG_ERR_LDAP_NOT_ALLOW_NONLEAF = 834,
  451. GPG_ERR_LDAP_NOT_ALLOW_ON_RDN = 835,
  452. GPG_ERR_LDAP_ALREADY_EXISTS = 836,
  453. GPG_ERR_LDAP_NO_OBJ_CLASS_MODS = 837,
  454. GPG_ERR_LDAP_RESULTS_TOO_LARGE = 838,
  455. GPG_ERR_LDAP_AFFECTS_MULT_DSAS = 839,
  456. GPG_ERR_LDAP_VLV = 844,
  457. GPG_ERR_LDAP_OTHER = 848,
  458. GPG_ERR_LDAP_CUP_RESOURCE_LIMIT = 881,
  459. GPG_ERR_LDAP_CUP_SEC_VIOLATION = 882,
  460. GPG_ERR_LDAP_CUP_INV_DATA = 883,
  461. GPG_ERR_LDAP_CUP_UNSUP_SCHEME = 884,
  462. GPG_ERR_LDAP_CUP_RELOAD = 885,
  463. GPG_ERR_LDAP_CANCELLED = 886,
  464. GPG_ERR_LDAP_NO_SUCH_OPERATION = 887,
  465. GPG_ERR_LDAP_TOO_LATE = 888,
  466. GPG_ERR_LDAP_CANNOT_CANCEL = 889,
  467. GPG_ERR_LDAP_ASSERTION_FAILED = 890,
  468. GPG_ERR_LDAP_PROX_AUTH_DENIED = 891,
  469. GPG_ERR_USER_1 = 1024,
  470. GPG_ERR_USER_2 = 1025,
  471. GPG_ERR_USER_3 = 1026,
  472. GPG_ERR_USER_4 = 1027,
  473. GPG_ERR_USER_5 = 1028,
  474. GPG_ERR_USER_6 = 1029,
  475. GPG_ERR_USER_7 = 1030,
  476. GPG_ERR_USER_8 = 1031,
  477. GPG_ERR_USER_9 = 1032,
  478. GPG_ERR_USER_10 = 1033,
  479. GPG_ERR_USER_11 = 1034,
  480. GPG_ERR_USER_12 = 1035,
  481. GPG_ERR_USER_13 = 1036,
  482. GPG_ERR_USER_14 = 1037,
  483. GPG_ERR_USER_15 = 1038,
  484. GPG_ERR_USER_16 = 1039,
  485. GPG_ERR_MISSING_ERRNO = 16381,
  486. GPG_ERR_UNKNOWN_ERRNO = 16382,
  487. GPG_ERR_EOF = 16383,
  488. /* The following error codes are used to map system errors. */
  489. #define GPG_ERR_SYSTEM_ERROR (1 << 15)
  490. GPG_ERR_E2BIG = GPG_ERR_SYSTEM_ERROR | 0,
  491. GPG_ERR_EACCES = GPG_ERR_SYSTEM_ERROR | 1,
  492. GPG_ERR_EADDRINUSE = GPG_ERR_SYSTEM_ERROR | 2,
  493. GPG_ERR_EADDRNOTAVAIL = GPG_ERR_SYSTEM_ERROR | 3,
  494. GPG_ERR_EADV = GPG_ERR_SYSTEM_ERROR | 4,
  495. GPG_ERR_EAFNOSUPPORT = GPG_ERR_SYSTEM_ERROR | 5,
  496. GPG_ERR_EAGAIN = GPG_ERR_SYSTEM_ERROR | 6,
  497. GPG_ERR_EALREADY = GPG_ERR_SYSTEM_ERROR | 7,
  498. GPG_ERR_EAUTH = GPG_ERR_SYSTEM_ERROR | 8,
  499. GPG_ERR_EBACKGROUND = GPG_ERR_SYSTEM_ERROR | 9,
  500. GPG_ERR_EBADE = GPG_ERR_SYSTEM_ERROR | 10,
  501. GPG_ERR_EBADF = GPG_ERR_SYSTEM_ERROR | 11,
  502. GPG_ERR_EBADFD = GPG_ERR_SYSTEM_ERROR | 12,
  503. GPG_ERR_EBADMSG = GPG_ERR_SYSTEM_ERROR | 13,
  504. GPG_ERR_EBADR = GPG_ERR_SYSTEM_ERROR | 14,
  505. GPG_ERR_EBADRPC = GPG_ERR_SYSTEM_ERROR | 15,
  506. GPG_ERR_EBADRQC = GPG_ERR_SYSTEM_ERROR | 16,
  507. GPG_ERR_EBADSLT = GPG_ERR_SYSTEM_ERROR | 17,
  508. GPG_ERR_EBFONT = GPG_ERR_SYSTEM_ERROR | 18,
  509. GPG_ERR_EBUSY = GPG_ERR_SYSTEM_ERROR | 19,
  510. GPG_ERR_ECANCELED = GPG_ERR_SYSTEM_ERROR | 20,
  511. GPG_ERR_ECHILD = GPG_ERR_SYSTEM_ERROR | 21,
  512. GPG_ERR_ECHRNG = GPG_ERR_SYSTEM_ERROR | 22,
  513. GPG_ERR_ECOMM = GPG_ERR_SYSTEM_ERROR | 23,
  514. GPG_ERR_ECONNABORTED = GPG_ERR_SYSTEM_ERROR | 24,
  515. GPG_ERR_ECONNREFUSED = GPG_ERR_SYSTEM_ERROR | 25,
  516. GPG_ERR_ECONNRESET = GPG_ERR_SYSTEM_ERROR | 26,
  517. GPG_ERR_ED = GPG_ERR_SYSTEM_ERROR | 27,
  518. GPG_ERR_EDEADLK = GPG_ERR_SYSTEM_ERROR | 28,
  519. GPG_ERR_EDEADLOCK = GPG_ERR_SYSTEM_ERROR | 29,
  520. GPG_ERR_EDESTADDRREQ = GPG_ERR_SYSTEM_ERROR | 30,
  521. GPG_ERR_EDIED = GPG_ERR_SYSTEM_ERROR | 31,
  522. GPG_ERR_EDOM = GPG_ERR_SYSTEM_ERROR | 32,
  523. GPG_ERR_EDOTDOT = GPG_ERR_SYSTEM_ERROR | 33,
  524. GPG_ERR_EDQUOT = GPG_ERR_SYSTEM_ERROR | 34,
  525. GPG_ERR_EEXIST = GPG_ERR_SYSTEM_ERROR | 35,
  526. GPG_ERR_EFAULT = GPG_ERR_SYSTEM_ERROR | 36,
  527. GPG_ERR_EFBIG = GPG_ERR_SYSTEM_ERROR | 37,
  528. GPG_ERR_EFTYPE = GPG_ERR_SYSTEM_ERROR | 38,
  529. GPG_ERR_EGRATUITOUS = GPG_ERR_SYSTEM_ERROR | 39,
  530. GPG_ERR_EGREGIOUS = GPG_ERR_SYSTEM_ERROR | 40,
  531. GPG_ERR_EHOSTDOWN = GPG_ERR_SYSTEM_ERROR | 41,
  532. GPG_ERR_EHOSTUNREACH = GPG_ERR_SYSTEM_ERROR | 42,
  533. GPG_ERR_EIDRM = GPG_ERR_SYSTEM_ERROR | 43,
  534. GPG_ERR_EIEIO = GPG_ERR_SYSTEM_ERROR | 44,
  535. GPG_ERR_EILSEQ = GPG_ERR_SYSTEM_ERROR | 45,
  536. GPG_ERR_EINPROGRESS = GPG_ERR_SYSTEM_ERROR | 46,
  537. GPG_ERR_EINTR = GPG_ERR_SYSTEM_ERROR | 47,
  538. GPG_ERR_EINVAL = GPG_ERR_SYSTEM_ERROR | 48,
  539. GPG_ERR_EIO = GPG_ERR_SYSTEM_ERROR | 49,
  540. GPG_ERR_EISCONN = GPG_ERR_SYSTEM_ERROR | 50,
  541. GPG_ERR_EISDIR = GPG_ERR_SYSTEM_ERROR | 51,
  542. GPG_ERR_EISNAM = GPG_ERR_SYSTEM_ERROR | 52,
  543. GPG_ERR_EL2HLT = GPG_ERR_SYSTEM_ERROR | 53,
  544. GPG_ERR_EL2NSYNC = GPG_ERR_SYSTEM_ERROR | 54,
  545. GPG_ERR_EL3HLT = GPG_ERR_SYSTEM_ERROR | 55,
  546. GPG_ERR_EL3RST = GPG_ERR_SYSTEM_ERROR | 56,
  547. GPG_ERR_ELIBACC = GPG_ERR_SYSTEM_ERROR | 57,
  548. GPG_ERR_ELIBBAD = GPG_ERR_SYSTEM_ERROR | 58,
  549. GPG_ERR_ELIBEXEC = GPG_ERR_SYSTEM_ERROR | 59,
  550. GPG_ERR_ELIBMAX = GPG_ERR_SYSTEM_ERROR | 60,
  551. GPG_ERR_ELIBSCN = GPG_ERR_SYSTEM_ERROR | 61,
  552. GPG_ERR_ELNRNG = GPG_ERR_SYSTEM_ERROR | 62,
  553. GPG_ERR_ELOOP = GPG_ERR_SYSTEM_ERROR | 63,
  554. GPG_ERR_EMEDIUMTYPE = GPG_ERR_SYSTEM_ERROR | 64,
  555. GPG_ERR_EMFILE = GPG_ERR_SYSTEM_ERROR | 65,
  556. GPG_ERR_EMLINK = GPG_ERR_SYSTEM_ERROR | 66,
  557. GPG_ERR_EMSGSIZE = GPG_ERR_SYSTEM_ERROR | 67,
  558. GPG_ERR_EMULTIHOP = GPG_ERR_SYSTEM_ERROR | 68,
  559. GPG_ERR_ENAMETOOLONG = GPG_ERR_SYSTEM_ERROR | 69,
  560. GPG_ERR_ENAVAIL = GPG_ERR_SYSTEM_ERROR | 70,
  561. GPG_ERR_ENEEDAUTH = GPG_ERR_SYSTEM_ERROR | 71,
  562. GPG_ERR_ENETDOWN = GPG_ERR_SYSTEM_ERROR | 72,
  563. GPG_ERR_ENETRESET = GPG_ERR_SYSTEM_ERROR | 73,
  564. GPG_ERR_ENETUNREACH = GPG_ERR_SYSTEM_ERROR | 74,
  565. GPG_ERR_ENFILE = GPG_ERR_SYSTEM_ERROR | 75,
  566. GPG_ERR_ENOANO = GPG_ERR_SYSTEM_ERROR | 76,
  567. GPG_ERR_ENOBUFS = GPG_ERR_SYSTEM_ERROR | 77,
  568. GPG_ERR_ENOCSI = GPG_ERR_SYSTEM_ERROR | 78,
  569. GPG_ERR_ENODATA = GPG_ERR_SYSTEM_ERROR | 79,
  570. GPG_ERR_ENODEV = GPG_ERR_SYSTEM_ERROR | 80,
  571. GPG_ERR_ENOENT = GPG_ERR_SYSTEM_ERROR | 81,
  572. GPG_ERR_ENOEXEC = GPG_ERR_SYSTEM_ERROR | 82,
  573. GPG_ERR_ENOLCK = GPG_ERR_SYSTEM_ERROR | 83,
  574. GPG_ERR_ENOLINK = GPG_ERR_SYSTEM_ERROR | 84,
  575. GPG_ERR_ENOMEDIUM = GPG_ERR_SYSTEM_ERROR | 85,
  576. GPG_ERR_ENOMEM = GPG_ERR_SYSTEM_ERROR | 86,
  577. GPG_ERR_ENOMSG = GPG_ERR_SYSTEM_ERROR | 87,
  578. GPG_ERR_ENONET = GPG_ERR_SYSTEM_ERROR | 88,
  579. GPG_ERR_ENOPKG = GPG_ERR_SYSTEM_ERROR | 89,
  580. GPG_ERR_ENOPROTOOPT = GPG_ERR_SYSTEM_ERROR | 90,
  581. GPG_ERR_ENOSPC = GPG_ERR_SYSTEM_ERROR | 91,
  582. GPG_ERR_ENOSR = GPG_ERR_SYSTEM_ERROR | 92,
  583. GPG_ERR_ENOSTR = GPG_ERR_SYSTEM_ERROR | 93,
  584. GPG_ERR_ENOSYS = GPG_ERR_SYSTEM_ERROR | 94,
  585. GPG_ERR_ENOTBLK = GPG_ERR_SYSTEM_ERROR | 95,
  586. GPG_ERR_ENOTCONN = GPG_ERR_SYSTEM_ERROR | 96,
  587. GPG_ERR_ENOTDIR = GPG_ERR_SYSTEM_ERROR | 97,
  588. GPG_ERR_ENOTEMPTY = GPG_ERR_SYSTEM_ERROR | 98,
  589. GPG_ERR_ENOTNAM = GPG_ERR_SYSTEM_ERROR | 99,
  590. GPG_ERR_ENOTSOCK = GPG_ERR_SYSTEM_ERROR | 100,
  591. GPG_ERR_ENOTSUP = GPG_ERR_SYSTEM_ERROR | 101,
  592. GPG_ERR_ENOTTY = GPG_ERR_SYSTEM_ERROR | 102,
  593. GPG_ERR_ENOTUNIQ = GPG_ERR_SYSTEM_ERROR | 103,
  594. GPG_ERR_ENXIO = GPG_ERR_SYSTEM_ERROR | 104,
  595. GPG_ERR_EOPNOTSUPP = GPG_ERR_SYSTEM_ERROR | 105,
  596. GPG_ERR_EOVERFLOW = GPG_ERR_SYSTEM_ERROR | 106,
  597. GPG_ERR_EPERM = GPG_ERR_SYSTEM_ERROR | 107,
  598. GPG_ERR_EPFNOSUPPORT = GPG_ERR_SYSTEM_ERROR | 108,
  599. GPG_ERR_EPIPE = GPG_ERR_SYSTEM_ERROR | 109,
  600. GPG_ERR_EPROCLIM = GPG_ERR_SYSTEM_ERROR | 110,
  601. GPG_ERR_EPROCUNAVAIL = GPG_ERR_SYSTEM_ERROR | 111,
  602. GPG_ERR_EPROGMISMATCH = GPG_ERR_SYSTEM_ERROR | 112,
  603. GPG_ERR_EPROGUNAVAIL = GPG_ERR_SYSTEM_ERROR | 113,
  604. GPG_ERR_EPROTO = GPG_ERR_SYSTEM_ERROR | 114,
  605. GPG_ERR_EPROTONOSUPPORT = GPG_ERR_SYSTEM_ERROR | 115,
  606. GPG_ERR_EPROTOTYPE = GPG_ERR_SYSTEM_ERROR | 116,
  607. GPG_ERR_ERANGE = GPG_ERR_SYSTEM_ERROR | 117,
  608. GPG_ERR_EREMCHG = GPG_ERR_SYSTEM_ERROR | 118,
  609. GPG_ERR_EREMOTE = GPG_ERR_SYSTEM_ERROR | 119,
  610. GPG_ERR_EREMOTEIO = GPG_ERR_SYSTEM_ERROR | 120,
  611. GPG_ERR_ERESTART = GPG_ERR_SYSTEM_ERROR | 121,
  612. GPG_ERR_EROFS = GPG_ERR_SYSTEM_ERROR | 122,
  613. GPG_ERR_ERPCMISMATCH = GPG_ERR_SYSTEM_ERROR | 123,
  614. GPG_ERR_ESHUTDOWN = GPG_ERR_SYSTEM_ERROR | 124,
  615. GPG_ERR_ESOCKTNOSUPPORT = GPG_ERR_SYSTEM_ERROR | 125,
  616. GPG_ERR_ESPIPE = GPG_ERR_SYSTEM_ERROR | 126,
  617. GPG_ERR_ESRCH = GPG_ERR_SYSTEM_ERROR | 127,
  618. GPG_ERR_ESRMNT = GPG_ERR_SYSTEM_ERROR | 128,
  619. GPG_ERR_ESTALE = GPG_ERR_SYSTEM_ERROR | 129,
  620. GPG_ERR_ESTRPIPE = GPG_ERR_SYSTEM_ERROR | 130,
  621. GPG_ERR_ETIME = GPG_ERR_SYSTEM_ERROR | 131,
  622. GPG_ERR_ETIMEDOUT = GPG_ERR_SYSTEM_ERROR | 132,
  623. GPG_ERR_ETOOMANYREFS = GPG_ERR_SYSTEM_ERROR | 133,
  624. GPG_ERR_ETXTBSY = GPG_ERR_SYSTEM_ERROR | 134,
  625. GPG_ERR_EUCLEAN = GPG_ERR_SYSTEM_ERROR | 135,
  626. GPG_ERR_EUNATCH = GPG_ERR_SYSTEM_ERROR | 136,
  627. GPG_ERR_EUSERS = GPG_ERR_SYSTEM_ERROR | 137,
  628. GPG_ERR_EWOULDBLOCK = GPG_ERR_SYSTEM_ERROR | 138,
  629. GPG_ERR_EXDEV = GPG_ERR_SYSTEM_ERROR | 139,
  630. GPG_ERR_EXFULL = GPG_ERR_SYSTEM_ERROR | 140,
  631. /* This is one more than the largest allowed entry. */
  632. GPG_ERR_CODE_DIM = 65536
  633. } gpg_err_code_t;
  634. /* The error value type gpg_error_t. */
  635. /* We would really like to use bit-fields in a struct, but using
  636. structs as return values can cause binary compatibility issues, in
  637. particular if you want to do it efficiently (also see
  638. -freg-struct-return option to GCC). */
  639. typedef unsigned int gpg_error_t;
  640. /* We use the lowest 16 bits of gpg_error_t for error codes. The 16th
  641. bit indicates system errors. */
  642. #define GPG_ERR_CODE_MASK (GPG_ERR_CODE_DIM - 1)
  643. /* Bits 17 to 24 are reserved. */
  644. /* We use the upper 7 bits of gpg_error_t for error sources. */
  645. #define GPG_ERR_SOURCE_MASK (GPG_ERR_SOURCE_DIM - 1)
  646. #define GPG_ERR_SOURCE_SHIFT 24
  647. /* The highest bit is reserved. It shouldn't be used to prevent
  648. potential negative numbers when transmitting error values as
  649. text. */
  650. /* GCC feature test. */
  651. #if __GNUC__
  652. # define _GPG_ERR_GCC_VERSION (__GNUC__ * 10000 \
  653. + __GNUC_MINOR__ * 100 \
  654. + __GNUC_PATCHLEVEL__)
  655. #else
  656. # define _GPG_ERR_GCC_VERSION 0
  657. #endif
  658. #undef _GPG_ERR_HAVE_CONSTRUCTOR
  659. #if _GPG_ERR_GCC_VERSION > 30100
  660. # define _GPG_ERR_CONSTRUCTOR __attribute__ ((__constructor__))
  661. # define _GPG_ERR_HAVE_CONSTRUCTOR
  662. #else
  663. # define _GPG_ERR_CONSTRUCTOR
  664. #endif
  665. #define GPGRT_GCC_VERSION _GCC_ERR_GCC_VERSION
  666. #if _GPG_ERR_GCC_VERSION >= 29200
  667. # define _GPGRT__RESTRICT __restrict__
  668. #else
  669. # define _GPGRT__RESTRICT
  670. #endif
  671. /* The noreturn attribute. */
  672. #if _GPG_ERR_GCC_VERSION >= 20500
  673. # define GPGRT_ATTR_NORETURN __attribute__ ((noreturn))
  674. #else
  675. # define GPGRT_ATTR_NORETURN
  676. #endif
  677. /* The printf attributes. */
  678. #if _GPG_ERR_GCC_VERSION >= 40400
  679. # define GPGRT_ATTR_PRINTF(f, a) \
  680. __attribute__ ((format(__gnu_printf__,f,a)))
  681. # define GPGRT_ATTR_NR_PRINTF(f, a) \
  682. __attribute__ ((noreturn, format(__gnu_printf__,f,a)))
  683. #elif _GPG_ERR_GCC_VERSION >= 20500
  684. # define GPGRT_ATTR_PRINTF(f, a) \
  685. __attribute__ ((format(printf,f,a)))
  686. # define GPGRT_ATTR_NR_PRINTF(f, a) \
  687. __attribute__ ((noreturn, format(printf,f,a)))
  688. #else
  689. # define GPGRT_ATTR_PRINTF(f, a)
  690. # define GPGRT_ATTR_NR_PRINTF(f, a)
  691. #endif
  692. #if _GPG_ERR_GCC_VERSION >= 20800
  693. # define GPGRT_ATTR_FORMAT_ARG(a) __attribute__ ((__format_arg__ (a)))
  694. #else
  695. # define GPGRT_ATTR_FORMAT_ARG(a)
  696. #endif
  697. /* The sentinel attribute. */
  698. #if _GPG_ERR_GCC_VERSION >= 40000
  699. # define GPGRT_ATTR_SENTINEL(a) __attribute__ ((sentinel(a)))
  700. #else
  701. # define GPGRT_ATTR_SENTINEL(a)
  702. #endif
  703. /* The used and unused attributes.
  704. I am not sure since when the unused attribute is really supported.
  705. In any case it it only needed for gcc versions which print a
  706. warning. Thus let us require gcc >= 3.5. */
  707. #if _GPG_ERR_GCC_VERSION >= 40000
  708. # define GPGRT_ATTR_USED __attribute__ ((used))
  709. #else
  710. # define GPGRT_ATTR_USED
  711. #endif
  712. #if _GPG_ERR_GCC_VERSION >= 30500
  713. # define GPGRT_ATTR_UNUSED __attribute__ ((unused))
  714. #else
  715. # define GPGRT_ATTR_UNUSED
  716. #endif
  717. /* The deprecated attribute. */
  718. #if _GPG_ERR_GCC_VERSION >= 30100
  719. # define GPGRT_ATTR_DEPRECATED __attribute__ ((__deprecated__))
  720. #else
  721. # define GPGRT_ATTR_DEPRECATED
  722. #endif
  723. /* The pure attribute. */
  724. #if _GPG_ERR_GCC_VERSION >= 29600
  725. # define GPGRT_ATTR_PURE __attribute__ ((__pure__))
  726. #else
  727. # define GPGRT_ATTR_PURE
  728. #endif
  729. /* The malloc attribute. */
  730. #if _GPG_ERR_GCC_VERSION >= 30200
  731. # define GPGRT_ATTR_MALLOC __attribute__ ((__malloc__))
  732. #else
  733. # define GPGRT_ATTR_MALLOC
  734. #endif
  735. /* A macro defined if a GCC style __FUNCTION__ macro is available. */
  736. #undef GPGRT_HAVE_MACRO_FUNCTION
  737. #if _GPG_ERR_GCC_VERSION >= 20500
  738. # define GPGRT_HAVE_MACRO_FUNCTION 1
  739. #endif
  740. /* A macro defined if the pragma GCC push_options is available. */
  741. #undef GPGRT_HAVE_PRAGMA_GCC_PUSH
  742. #if _GPG_ERR_GCC_VERSION >= 40400
  743. # define GPGRT_HAVE_PRAGMA_GCC_PUSH 1
  744. #endif
  745. /* Detect LeakSanitizer (LSan) support for GCC and Clang based on
  746. * whether AddressSanitizer (ASAN) is enabled via -fsanitize=address).
  747. * Note that -fsanitize=leak just affect the linker options which
  748. * cannot be detected here. In that case you have to define the
  749. * GPGRT_HAVE_LEAK_SANITIZER macro manually. */
  750. #ifdef __GNUC__
  751. # ifdef __SANITIZE_ADDRESS__
  752. # define GPGRT_HAVE_LEAK_SANITIZER
  753. # elif defined(__has_feature)
  754. # if __has_feature(address_sanitizer)
  755. # define GPGRT_HAVE_LEAK_SANITIZER
  756. # endif
  757. # endif
  758. #endif
  759. /* The new name for the inline macro. */
  760. #define GPGRT_INLINE GPG_ERR_INLINE
  761. #ifdef GPGRT_HAVE_LEAK_SANITIZER
  762. # include <sanitizer/lsan_interface.h>
  763. #endif
  764. /* Mark heap objects as non-leaked memory. */
  765. static GPGRT_INLINE void
  766. gpgrt_annotate_leaked_object (const void *p)
  767. {
  768. #ifdef GPGRT_HAVE_LEAK_SANITIZER
  769. __lsan_ignore_object(p);
  770. #else
  771. (void)p;
  772. #endif
  773. }
  774. /* Initialization function. */
  775. /* Initialize the library. This function should be run early. */
  776. gpg_error_t gpg_err_init (void) _GPG_ERR_CONSTRUCTOR;
  777. /* If this is defined, the library is already initialized by the
  778. constructor and does not need to be initialized explicitely. */
  779. #undef GPG_ERR_INITIALIZED
  780. #ifdef _GPG_ERR_HAVE_CONSTRUCTOR
  781. # define GPG_ERR_INITIALIZED 1
  782. # define gpgrt_init() do { gpg_err_init (); } while (0)
  783. #else
  784. # define gpgrt_init() do { ; } while (0)
  785. #endif
  786. /* See the source on how to use the deinit function; it is usually not
  787. required. */
  788. void gpg_err_deinit (int mode);
  789. /* Register blocking system I/O clamping functions. */
  790. void gpgrt_set_syscall_clamp (void (*pre)(void), void (*post)(void));
  791. /* Register a custom malloc/realloc/free function. */
  792. void gpgrt_set_alloc_func (void *(*f)(void *a, size_t n));
  793. /* Constructor and accessor functions. */
  794. /* Construct an error value from an error code and source. Within a
  795. subsystem, use gpg_error. */
  796. static GPG_ERR_INLINE gpg_error_t
  797. gpg_err_make (gpg_err_source_t source, gpg_err_code_t code)
  798. {
  799. return code == GPG_ERR_NO_ERROR ? GPG_ERR_NO_ERROR
  800. : (((source & GPG_ERR_SOURCE_MASK) << GPG_ERR_SOURCE_SHIFT)
  801. | (code & GPG_ERR_CODE_MASK));
  802. }
  803. /* The user should define GPG_ERR_SOURCE_DEFAULT before including this
  804. file to specify a default source for gpg_error. */
  805. #ifndef GPG_ERR_SOURCE_DEFAULT
  806. #define GPG_ERR_SOURCE_DEFAULT GPG_ERR_SOURCE_UNKNOWN
  807. #endif
  808. static GPG_ERR_INLINE gpg_error_t
  809. gpg_error (gpg_err_code_t code)
  810. {
  811. return gpg_err_make (GPG_ERR_SOURCE_DEFAULT, code);
  812. }
  813. /* Retrieve the error code from an error value. */
  814. static GPG_ERR_INLINE gpg_err_code_t
  815. gpg_err_code (gpg_error_t err)
  816. {
  817. return (gpg_err_code_t) (err & GPG_ERR_CODE_MASK);
  818. }
  819. /* Retrieve the error source from an error value. */
  820. static GPG_ERR_INLINE gpg_err_source_t
  821. gpg_err_source (gpg_error_t err)
  822. {
  823. return (gpg_err_source_t) ((err >> GPG_ERR_SOURCE_SHIFT)
  824. & GPG_ERR_SOURCE_MASK);
  825. }
  826. /* String functions. */
  827. /* Return a pointer to a string containing a description of the error
  828. code in the error value ERR. This function is not thread-safe. */
  829. const char *gpg_strerror (gpg_error_t err);
  830. /* Return the error string for ERR in the user-supplied buffer BUF of
  831. size BUFLEN. This function is, in contrast to gpg_strerror,
  832. thread-safe if a thread-safe strerror_r() function is provided by
  833. the system. If the function succeeds, 0 is returned and BUF
  834. contains the string describing the error. If the buffer was not
  835. large enough, ERANGE is returned and BUF contains as much of the
  836. beginning of the error string as fits into the buffer. */
  837. int gpg_strerror_r (gpg_error_t err, char *buf, size_t buflen);
  838. /* Return a pointer to a string containing a description of the error
  839. source in the error value ERR. */
  840. const char *gpg_strsource (gpg_error_t err);
  841. /* Mapping of system errors (errno). */
  842. /* Retrieve the error code for the system error ERR. This returns
  843. GPG_ERR_UNKNOWN_ERRNO if the system error is not mapped (report
  844. this). */
  845. gpg_err_code_t gpg_err_code_from_errno (int err);
  846. /* Retrieve the system error for the error code CODE. This returns 0
  847. if CODE is not a system error code. */
  848. int gpg_err_code_to_errno (gpg_err_code_t code);
  849. /* Retrieve the error code directly from the ERRNO variable. This
  850. returns GPG_ERR_UNKNOWN_ERRNO if the system error is not mapped
  851. (report this) and GPG_ERR_MISSING_ERRNO if ERRNO has the value 0. */
  852. gpg_err_code_t gpg_err_code_from_syserror (void);
  853. /* Set the ERRNO variable. This function is the preferred way to set
  854. ERRNO due to peculiarities on WindowsCE. */
  855. void gpg_err_set_errno (int err);
  856. /* Return or check the version. Both functions are identical. */
  857. const char *gpgrt_check_version (const char *req_version);
  858. const char *gpg_error_check_version (const char *req_version);
  859. /* System specific type definitions. */
  860. #include <sys/types.h>
  861. typedef ssize_t gpgrt_ssize_t;
  862. #include <stdint.h>
  863. typedef int64_t gpgrt_off_t;
  864. /* Self-documenting convenience functions. */
  865. static GPG_ERR_INLINE gpg_error_t
  866. gpg_err_make_from_errno (gpg_err_source_t source, int err)
  867. {
  868. return gpg_err_make (source, gpg_err_code_from_errno (err));
  869. }
  870. static GPG_ERR_INLINE gpg_error_t
  871. gpg_error_from_errno (int err)
  872. {
  873. return gpg_error (gpg_err_code_from_errno (err));
  874. }
  875. static GPG_ERR_INLINE gpg_error_t
  876. gpg_error_from_syserror (void)
  877. {
  878. return gpg_error (gpg_err_code_from_syserror ());
  879. }
  880. /* Lock functions. */
  881. typedef struct
  882. {
  883. long _vers;
  884. union {
  885. volatile char _priv[24];
  886. long _x_align;
  887. long *_xp_align;
  888. } u;
  889. } gpgrt_lock_t;
  890. #define GPGRT_LOCK_INITIALIZER {1,{{0,0,0,0,0,0,0,0, \
  891. 0,0,0,0,0,0,0,0, \
  892. 0,0,0,0,0,0,0,0}}}
  893. #define GPGRT_LOCK_DEFINE(name) \
  894. static gpgrt_lock_t name = GPGRT_LOCK_INITIALIZER
  895. /* NB: If GPGRT_LOCK_DEFINE is not used, zero out the lock variable
  896. before passing it to gpgrt_lock_init. */
  897. gpg_err_code_t gpgrt_lock_init (gpgrt_lock_t *lockhd);
  898. gpg_err_code_t gpgrt_lock_lock (gpgrt_lock_t *lockhd);
  899. gpg_err_code_t gpgrt_lock_trylock (gpgrt_lock_t *lockhd);
  900. gpg_err_code_t gpgrt_lock_unlock (gpgrt_lock_t *lockhd);
  901. gpg_err_code_t gpgrt_lock_destroy (gpgrt_lock_t *lockhd);
  902. /* Thread functions. */
  903. gpg_err_code_t gpgrt_yield (void);
  904. /* Estream */
  905. /* The definition of this struct is entirely private. You must not
  906. use it for anything. It is only here so some functions can be
  907. implemented as macros. */
  908. struct _gpgrt_stream_internal;
  909. struct _gpgrt__stream
  910. {
  911. /* The layout of this struct must never change. It may be grown,
  912. but only if all functions which access the new members are
  913. versioned. */
  914. /* Various flags. */
  915. struct {
  916. unsigned int magic: 16;
  917. unsigned int writing: 1;
  918. unsigned int reserved: 15;
  919. } flags;
  920. /* A pointer to the stream buffer. */
  921. unsigned char *buffer;
  922. /* The size of the buffer in bytes. */
  923. size_t buffer_size;
  924. /* The length of the usable data in the buffer, only valid when in
  925. read mode (see flags). */
  926. size_t data_len;
  927. /* The current position of the offset pointer, valid in read and
  928. write mode. */
  929. size_t data_offset;
  930. size_t data_flushed;
  931. unsigned char *unread_buffer;
  932. size_t unread_buffer_size;
  933. /* The number of unread bytes. */
  934. size_t unread_data_len;
  935. /* A pointer to our internal data for this stream. */
  936. struct _gpgrt_stream_internal *intern;
  937. };
  938. /* The opaque type for an estream. */
  939. typedef struct _gpgrt__stream *gpgrt_stream_t;
  940. #ifdef GPGRT_ENABLE_ES_MACROS
  941. typedef struct _gpgrt__stream *estream_t;
  942. #endif
  943. typedef ssize_t (*gpgrt_cookie_read_function_t) (void *cookie,
  944. void *buffer, size_t size);
  945. typedef ssize_t (*gpgrt_cookie_write_function_t) (void *cookie,
  946. const void *buffer,
  947. size_t size);
  948. typedef int (*gpgrt_cookie_seek_function_t) (void *cookie,
  949. gpgrt_off_t *pos, int whence);
  950. typedef int (*gpgrt_cookie_close_function_t) (void *cookie);
  951. struct _gpgrt_cookie_io_functions
  952. {
  953. gpgrt_cookie_read_function_t func_read;
  954. gpgrt_cookie_write_function_t func_write;
  955. gpgrt_cookie_seek_function_t func_seek;
  956. gpgrt_cookie_close_function_t func_close;
  957. };
  958. typedef struct _gpgrt_cookie_io_functions gpgrt_cookie_io_functions_t;
  959. #ifdef GPGRT_ENABLE_ES_MACROS
  960. typedef struct _gpgrt_cookie_io_functions es_cookie_io_functions_t;
  961. #define es_cookie_read_function_t gpgrt_cookie_read_function_t
  962. #define es_cookie_write_function_t gpgrt_cookie_read_function_t
  963. #define es_cookie_seek_function_t gpgrt_cookie_read_function_t
  964. #define es_cookie_close_function_t gpgrt_cookie_read_function_t
  965. #endif
  966. enum gpgrt_syshd_types
  967. {
  968. GPGRT_SYSHD_NONE = 0, /* No system handle available. */
  969. GPGRT_SYSHD_FD = 1, /* A file descriptor as returned by open(). */
  970. GPGRT_SYSHD_SOCK = 2, /* A socket as returned by socket(). */
  971. GPGRT_SYSHD_RVID = 3, /* A rendezvous id (see libassuan's gpgcedev.c). */
  972. GPGRT_SYSHD_HANDLE = 4 /* A HANDLE object (Windows). */
  973. };
  974. struct _gpgrt_syshd
  975. {
  976. enum gpgrt_syshd_types type;
  977. union {
  978. int fd;
  979. int sock;
  980. int rvid;
  981. void *handle;
  982. } u;
  983. };
  984. typedef struct _gpgrt_syshd gpgrt_syshd_t;
  985. #ifdef GPGRT_ENABLE_ES_MACROS
  986. typedef struct _gpgrt_syshd es_syshd_t;
  987. #define ES_SYSHD_NONE GPGRT_SYSHD_NONE
  988. #define ES_SYSHD_FD GPGRT_SYSHD_FD
  989. #define ES_SYSHD_SOCK GPGRT_SYSHD_SOCK
  990. #define ES_SYSHD_RVID GPGRT_SYSHD_RVID
  991. #define ES_SYSHD_HANDLE GPGRT_SYSHD_HANDLE
  992. #endif
  993. /* The object used with gpgrt_poll. */
  994. struct _gpgrt_poll_s
  995. {
  996. gpgrt_stream_t stream;
  997. unsigned int want_read:1;
  998. unsigned int want_write:1;
  999. unsigned int want_oob:1;
  1000. unsigned int want_rdhup:1;
  1001. unsigned int _reserv1:4;
  1002. unsigned int got_read:1;
  1003. unsigned int got_write:1;
  1004. unsigned int got_oob:1;
  1005. unsigned int got_rdhup:1;
  1006. unsigned int _reserv2:4;
  1007. unsigned int got_err:1;
  1008. unsigned int got_hup:1;
  1009. unsigned int got_nval:1;
  1010. unsigned int _reserv3:4;
  1011. unsigned int ignore:1;
  1012. unsigned int user:8; /* For application use. */
  1013. };
  1014. typedef struct _gpgrt_poll_s gpgrt_poll_t;
  1015. #ifdef GPGRT_ENABLE_ES_MACROS
  1016. typedef struct _gpgrt_poll_s es_poll_t;
  1017. #endif
  1018. gpgrt_stream_t gpgrt_fopen (const char *_GPGRT__RESTRICT path,
  1019. const char *_GPGRT__RESTRICT mode);
  1020. gpgrt_stream_t gpgrt_mopen (void *_GPGRT__RESTRICT data,
  1021. size_t data_n, size_t data_len,
  1022. unsigned int grow,
  1023. void *(*func_realloc) (void *mem, size_t size),
  1024. void (*func_free) (void *mem),
  1025. const char *_GPGRT__RESTRICT mode);
  1026. gpgrt_stream_t gpgrt_fopenmem (size_t memlimit,
  1027. const char *_GPGRT__RESTRICT mode);
  1028. gpgrt_stream_t gpgrt_fopenmem_init (size_t memlimit,
  1029. const char *_GPGRT__RESTRICT mode,
  1030. const void *data, size_t datalen);
  1031. gpgrt_stream_t gpgrt_fdopen (int filedes, const char *mode);
  1032. gpgrt_stream_t gpgrt_fdopen_nc (int filedes, const char *mode);
  1033. gpgrt_stream_t gpgrt_sysopen (gpgrt_syshd_t *syshd, const char *mode);
  1034. gpgrt_stream_t gpgrt_sysopen_nc (gpgrt_syshd_t *syshd, const char *mode);
  1035. gpgrt_stream_t gpgrt_fpopen (FILE *fp, const char *mode);
  1036. gpgrt_stream_t gpgrt_fpopen_nc (FILE *fp, const char *mode);
  1037. gpgrt_stream_t gpgrt_freopen (const char *_GPGRT__RESTRICT path,
  1038. const char *_GPGRT__RESTRICT mode,
  1039. gpgrt_stream_t _GPGRT__RESTRICT stream);
  1040. gpgrt_stream_t gpgrt_fopencookie (void *_GPGRT__RESTRICT cookie,
  1041. const char *_GPGRT__RESTRICT mode,
  1042. gpgrt_cookie_io_functions_t functions);
  1043. int gpgrt_fclose (gpgrt_stream_t stream);
  1044. int gpgrt_fclose_snatch (gpgrt_stream_t stream,
  1045. void **r_buffer, size_t *r_buflen);
  1046. int gpgrt_onclose (gpgrt_stream_t stream, int mode,
  1047. void (*fnc) (gpgrt_stream_t, void*), void *fnc_value);
  1048. int gpgrt_fileno (gpgrt_stream_t stream);
  1049. int gpgrt_fileno_unlocked (gpgrt_stream_t stream);
  1050. int gpgrt_syshd (gpgrt_stream_t stream, gpgrt_syshd_t *syshd);
  1051. int gpgrt_syshd_unlocked (gpgrt_stream_t stream, gpgrt_syshd_t *syshd);
  1052. void _gpgrt_set_std_fd (int no, int fd);
  1053. gpgrt_stream_t _gpgrt_get_std_stream (int fd);
  1054. #define gpgrt_stdin _gpgrt_get_std_stream (0)
  1055. #define gpgrt_stdout _gpgrt_get_std_stream (1)
  1056. #define gpgrt_stderr _gpgrt_get_std_stream (2)
  1057. void gpgrt_flockfile (gpgrt_stream_t stream);
  1058. int gpgrt_ftrylockfile (gpgrt_stream_t stream);
  1059. void gpgrt_funlockfile (gpgrt_stream_t stream);
  1060. int gpgrt_feof (gpgrt_stream_t stream);
  1061. int gpgrt_feof_unlocked (gpgrt_stream_t stream);
  1062. int gpgrt_ferror (gpgrt_stream_t stream);
  1063. int gpgrt_ferror_unlocked (gpgrt_stream_t stream);
  1064. void gpgrt_clearerr (gpgrt_stream_t stream);
  1065. void gpgrt_clearerr_unlocked (gpgrt_stream_t stream);
  1066. int _gpgrt_pending (gpgrt_stream_t stream); /* (private) */
  1067. int _gpgrt_pending_unlocked (gpgrt_stream_t stream); /* (private) */
  1068. #define gpgrt_pending(stream) _gpgrt_pending (stream)
  1069. #define gpgrt_pending_unlocked(stream) \
  1070. (((!(stream)->flags.writing) \
  1071. && (((stream)->data_offset < (stream)->data_len) \
  1072. || ((stream)->unread_data_len))) \
  1073. ? 1 : _gpgrt_pending_unlocked ((stream)))
  1074. int gpgrt_fflush (gpgrt_stream_t stream);
  1075. int gpgrt_fseek (gpgrt_stream_t stream, long int offset, int whence);
  1076. int gpgrt_fseeko (gpgrt_stream_t stream, gpgrt_off_t offset, int whence);
  1077. long int gpgrt_ftell (gpgrt_stream_t stream);
  1078. gpgrt_off_t gpgrt_ftello (gpgrt_stream_t stream);
  1079. void gpgrt_rewind (gpgrt_stream_t stream);
  1080. int gpgrt_fgetc (gpgrt_stream_t stream);
  1081. int gpgrt_fputc (int c, gpgrt_stream_t stream);
  1082. int _gpgrt_getc_underflow (gpgrt_stream_t stream); /* (private) */
  1083. int _gpgrt_putc_overflow (int c, gpgrt_stream_t stream); /* (private) */
  1084. #define gpgrt_getc_unlocked(stream) \
  1085. (((!(stream)->flags.writing) \
  1086. && ((stream)->data_offset < (stream)->data_len) \
  1087. && (! (stream)->unread_data_len)) \
  1088. ? ((int) (stream)->buffer[((stream)->data_offset)++]) \
  1089. : _gpgrt_getc_underflow ((stream)))
  1090. #define gpgrt_putc_unlocked(c, stream) \
  1091. (((stream)->flags.writing \
  1092. && ((stream)->data_offset < (stream)->buffer_size) \
  1093. && (c != '\n')) \
  1094. ? ((int) ((stream)->buffer[((stream)->data_offset)++] = (c))) \
  1095. : _gpgrt_putc_overflow ((c), (stream)))
  1096. #define gpgrt_getc(stream) gpgrt_fgetc (stream)
  1097. #define gpgrt_putc(c, stream) gpgrt_fputc (c, stream)
  1098. int gpgrt_ungetc (int c, gpgrt_stream_t stream);
  1099. int gpgrt_read (gpgrt_stream_t _GPGRT__RESTRICT stream,
  1100. void *_GPGRT__RESTRICT buffer, size_t bytes_to_read,
  1101. size_t *_GPGRT__RESTRICT bytes_read);
  1102. int gpgrt_write (gpgrt_stream_t _GPGRT__RESTRICT stream,
  1103. const void *_GPGRT__RESTRICT buffer, size_t bytes_to_write,
  1104. size_t *_GPGRT__RESTRICT bytes_written);
  1105. int gpgrt_write_sanitized (gpgrt_stream_t _GPGRT__RESTRICT stream,
  1106. const void *_GPGRT__RESTRICT buffer, size_t length,
  1107. const char *delimiters,
  1108. size_t *_GPGRT__RESTRICT bytes_written);
  1109. int gpgrt_write_hexstring (gpgrt_stream_t _GPGRT__RESTRICT stream,
  1110. const void *_GPGRT__RESTRICT buffer, size_t length,
  1111. int reserved,
  1112. size_t *_GPGRT__RESTRICT bytes_written);
  1113. size_t gpgrt_fread (void *_GPGRT__RESTRICT ptr, size_t size, size_t nitems,
  1114. gpgrt_stream_t _GPGRT__RESTRICT stream);
  1115. size_t gpgrt_fwrite (const void *_GPGRT__RESTRICT ptr, size_t size, size_t memb,
  1116. gpgrt_stream_t _GPGRT__RESTRICT stream);
  1117. char *gpgrt_fgets (char *_GPGRT__RESTRICT s, int n,
  1118. gpgrt_stream_t _GPGRT__RESTRICT stream);
  1119. int gpgrt_fputs (const char *_GPGRT__RESTRICT s,
  1120. gpgrt_stream_t _GPGRT__RESTRICT stream);
  1121. int gpgrt_fputs_unlocked (const char *_GPGRT__RESTRICT s,
  1122. gpgrt_stream_t _GPGRT__RESTRICT stream);
  1123. ssize_t gpgrt_getline (char *_GPGRT__RESTRICT *_GPGRT__RESTRICT lineptr,
  1124. size_t *_GPGRT__RESTRICT n,
  1125. gpgrt_stream_t stream);
  1126. ssize_t gpgrt_read_line (gpgrt_stream_t stream,
  1127. char **addr_of_buffer, size_t *length_of_buffer,
  1128. size_t *max_length);
  1129. void gpgrt_free (void *a);
  1130. int gpgrt_fprintf (gpgrt_stream_t _GPGRT__RESTRICT stream,
  1131. const char *_GPGRT__RESTRICT format, ...)
  1132. GPGRT_ATTR_PRINTF(2,3);
  1133. int gpgrt_fprintf_unlocked (gpgrt_stream_t _GPGRT__RESTRICT stream,
  1134. const char *_GPGRT__RESTRICT format, ...)
  1135. GPGRT_ATTR_PRINTF(2,3);
  1136. int gpgrt_printf (const char *_GPGRT__RESTRICT format, ...)
  1137. GPGRT_ATTR_PRINTF(1,2);
  1138. int gpgrt_printf_unlocked (const char *_GPGRT__RESTRICT format, ...)
  1139. GPGRT_ATTR_PRINTF(1,2);
  1140. int gpgrt_vfprintf (gpgrt_stream_t _GPGRT__RESTRICT stream,
  1141. const char *_GPGRT__RESTRICT format, va_list ap)
  1142. GPGRT_ATTR_PRINTF(2,0);
  1143. int gpgrt_vfprintf_unlocked (gpgrt_stream_t _GPGRT__RESTRICT stream,
  1144. const char *_GPGRT__RESTRICT format, va_list ap)
  1145. GPGRT_ATTR_PRINTF(2,0);
  1146. int gpgrt_setvbuf (gpgrt_stream_t _GPGRT__RESTRICT stream,
  1147. char *_GPGRT__RESTRICT buf, int mode, size_t size);
  1148. void gpgrt_setbuf (gpgrt_stream_t _GPGRT__RESTRICT stream,
  1149. char *_GPGRT__RESTRICT buf);
  1150. void gpgrt_set_binary (gpgrt_stream_t stream);
  1151. int gpgrt_set_nonblock (gpgrt_stream_t stream, int onoff);
  1152. int gpgrt_get_nonblock (gpgrt_stream_t stream);
  1153. int gpgrt_poll (gpgrt_poll_t *fdlist, unsigned int nfds, int timeout);
  1154. gpgrt_stream_t gpgrt_tmpfile (void);
  1155. void gpgrt_opaque_set (gpgrt_stream_t _GPGRT__RESTRICT stream,
  1156. void *_GPGRT__RESTRICT opaque);
  1157. void *gpgrt_opaque_get (gpgrt_stream_t stream);
  1158. void gpgrt_fname_set (gpgrt_stream_t stream, const char *fname);
  1159. const char *gpgrt_fname_get (gpgrt_stream_t stream);
  1160. int gpgrt_asprintf (char **r_buf, const char * _GPGRT__RESTRICT format, ...)
  1161. GPGRT_ATTR_PRINTF(2,3);
  1162. int gpgrt_vasprintf (char **r_buf, const char * _GPGRT__RESTRICT format,
  1163. va_list ap)
  1164. GPGRT_ATTR_PRINTF(2,0);
  1165. char *gpgrt_bsprintf (const char * _GPGRT__RESTRICT format, ...)
  1166. GPGRT_ATTR_PRINTF(1,2);
  1167. char *gpgrt_vbsprintf (const char * _GPGRT__RESTRICT format, va_list ap)
  1168. GPGRT_ATTR_PRINTF(1,0);
  1169. int gpgrt_snprintf (char *buf, size_t bufsize,
  1170. const char * _GPGRT__RESTRICT format, ...)
  1171. GPGRT_ATTR_PRINTF(3,4);
  1172. int gpgrt_vsnprintf (char *buf,size_t bufsize,
  1173. const char * _GPGRT__RESTRICT format, va_list arg_ptr)
  1174. GPGRT_ATTR_PRINTF(3,0);
  1175. #ifdef GPGRT_ENABLE_ES_MACROS
  1176. # define es_fopen gpgrt_fopen
  1177. # define es_mopen gpgrt_mopen
  1178. # define es_fopenmem gpgrt_fopenmem
  1179. # define es_fopenmem_init gpgrt_fopenmem_init
  1180. # define es_fdopen gpgrt_fdopen
  1181. # define es_fdopen_nc gpgrt_fdopen_nc
  1182. # define es_sysopen gpgrt_sysopen
  1183. # define es_sysopen_nc gpgrt_sysopen_nc
  1184. # define es_fpopen gpgrt_fpopen
  1185. # define es_fpopen_nc gpgrt_fpopen_nc
  1186. # define es_freopen gpgrt_freopen
  1187. # define es_fopencookie gpgrt_fopencookie
  1188. # define es_fclose gpgrt_fclose
  1189. # define es_fclose_snatch gpgrt_fclose_snatch
  1190. # define es_onclose gpgrt_onclose
  1191. # define es_fileno gpgrt_fileno
  1192. # define es_fileno_unlocked gpgrt_fileno_unlocked
  1193. # define es_syshd gpgrt_syshd
  1194. # define es_syshd_unlocked gpgrt_syshd_unlocked
  1195. # define es_stdin _gpgrt_get_std_stream (0)
  1196. # define es_stdout _gpgrt_get_std_stream (1)
  1197. # define es_stderr _gpgrt_get_std_stream (2)
  1198. # define es_flockfile gpgrt_flockfile
  1199. # define es_ftrylockfile gpgrt_ftrylockfile
  1200. # define es_funlockfile gpgrt_funlockfile
  1201. # define es_feof gpgrt_feof
  1202. # define es_feof_unlocked gpgrt_feof_unlocked
  1203. # define es_ferror gpgrt_ferror
  1204. # define es_ferror_unlocked gpgrt_ferror_unlocked
  1205. # define es_clearerr gpgrt_clearerr
  1206. # define es_clearerr_unlocked gpgrt_clearerr_unlocked
  1207. # define es_pending gpgrt_pending
  1208. # define es_pending_unlocked gpgrt_pending_unlocked
  1209. # define es_fflush gpgrt_fflush
  1210. # define es_fseek gpgrt_fseek
  1211. # define es_fseeko gpgrt_fseeko
  1212. # define es_ftell gpgrt_ftell
  1213. # define es_ftello gpgrt_ftello
  1214. # define es_rewind gpgrt_rewind
  1215. # define es_fgetc gpgrt_fgetc
  1216. # define es_fputc gpgrt_fputc
  1217. # define es_getc_unlocked gpgrt_getc_unlocked
  1218. # define es_putc_unlocked gpgrt_putc_unlocked
  1219. # define es_getc gpgrt_getc
  1220. # define es_putc gpgrt_putc
  1221. # define es_ungetc gpgrt_ungetc
  1222. # define es_read gpgrt_read
  1223. # define es_write gpgrt_write
  1224. # define es_write_sanitized gpgrt_write_sanitized
  1225. # define es_write_hexstring gpgrt_write_hexstring
  1226. # define es_fread gpgrt_fread
  1227. # define es_fwrite gpgrt_fwrite
  1228. # define es_fgets gpgrt_fgets
  1229. # define es_fputs gpgrt_fputs
  1230. # define es_fputs_unlocked gpgrt_fputs_unlocked
  1231. # define es_getline gpgrt_getline
  1232. # define es_read_line gpgrt_read_line
  1233. # define es_free gpgrt_free
  1234. # define es_fprintf gpgrt_fprintf
  1235. # define es_fprintf_unlocked gpgrt_fprintf_unlocked
  1236. # define es_printf gpgrt_printf
  1237. # define es_printf_unlocked gpgrt_printf_unlocked
  1238. # define es_vfprintf gpgrt_vfprintf
  1239. # define es_vfprintf_unlocked gpgrt_vfprintf_unlocked
  1240. # define es_setvbuf gpgrt_setvbuf
  1241. # define es_setbuf gpgrt_setbuf
  1242. # define es_set_binary gpgrt_set_binary
  1243. # define es_set_nonblock gpgrt_set_nonblock
  1244. # define es_get_nonblock gpgrt_get_nonblock
  1245. # define es_poll gpgrt_poll
  1246. # define es_tmpfile gpgrt_tmpfile
  1247. # define es_opaque_set gpgrt_opaque_set
  1248. # define es_opaque_get gpgrt_opaque_get
  1249. # define es_fname_set gpgrt_fname_set
  1250. # define es_fname_get gpgrt_fname_get
  1251. # define es_asprintf gpgrt_asprintf
  1252. # define es_vasprintf gpgrt_vasprintf
  1253. # define es_bsprintf gpgrt_bsprintf
  1254. # define es_vbsprintf gpgrt_vbsprintf
  1255. #endif /*GPGRT_ENABLE_ES_MACROS*/
  1256. #ifdef __cplusplus
  1257. }
  1258. #endif
  1259. #endif /* GPG_ERROR_H */
  1260. /*
  1261. Local Variables:
  1262. buffer-read-only: t
  1263. End:
  1264. */