1 /******************************************************************************* 2 3 D bindings to GPG error functions, used by libgcrypt. 4 5 These are actually in the separate libgpg-error library, but libgcrypt is 6 linked with it. 7 8 Requires linking with libgcrypt: 9 10 -L-lgcrypt 11 12 Copyright: 13 Copyright (c) 2009-2016 dunnhumby Germany GmbH. 14 All rights reserved. 15 16 License: 17 Boost Software License Version 1.0. See LICENSE_BOOST.txt for details. 18 Alternatively, this file may be distributed under the terms of the Tango 19 3-Clause BSD License (see LICENSE_BSD.txt for details). 20 21 Bear in mind this module provides bindings to an external library that 22 has its own license, which might be more restrictive. Please check the 23 external library license to see which conditions apply for linking. 24 25 *******************************************************************************/ 26 27 module ocean.util.cipher.gcrypt.c.gpgerror; 28 29 public import ocean.util.cipher.gcrypt.c.libversion; 30 31 import ocean.transition; 32 import ocean.core.Verify; 33 34 extern (C): 35 36 /// See original's library documentation for details. 37 static immutable GPG_ERROR_VERSION_NUMBER = 0x011500; 38 static immutable GPGRT_VERSION_NUMBER = 0x011500; 39 40 /// See original's library documentation for details. 41 alias uint gpg_error_t; 42 43 44 /// See original's library documentation for details. 45 enum GPG_ERR_SOURCE 46 { 47 UNKNOWN = 0, 48 GCRYPT = 1, 49 GPG = 2, 50 GPGSM = 3, 51 GPGAGENT = 4, 52 PINENTRY = 5, 53 SCD = 6, 54 GPGME = 7, 55 KEYBOX = 8, 56 KSBA = 9, 57 DIRMNGR = 10, 58 GSTI = 11, 59 GPA = 12, 60 KLEO = 13, 61 G13 = 14, 62 ASSUAN = 15, 63 TLS = 17, 64 ANY = 31, 65 USER_1 = 32, 66 USER_2 = 33, 67 USER_3 = 34, 68 USER_4 = 35, 69 70 MASK = (1 << 7) - 1 71 } 72 73 /// See original's library documentation for details. 74 static immutable GPG_ERR_SOURCE_DIM = GPG_ERR_SOURCE.max + 1; 75 76 77 /// See original's library documentation for details. 78 enum GPG_ERR_CODE 79 { 80 NO_ERROR = 0, 81 GENERAL = 1, 82 UNKNOWN_PACKET = 2, 83 UNKNOWN_VERSION = 3, 84 PUBKEY_ALGO = 4, 85 DIGEST_ALGO = 5, 86 BAD_PUBKEY = 6, 87 BAD_SECKEY = 7, 88 BAD_SIGNATURE = 8, 89 NO_PUBKEY = 9, 90 CHECKSUM = 10, 91 BAD_PASSPHRASE = 11, 92 CIPHER_ALGO = 12, 93 KEYRING_OPEN = 13, 94 INV_PACKET = 14, 95 INV_ARMOR = 15, 96 NO_USER_ID = 16, 97 NO_SECKEY = 17, 98 WRONG_SECKEY = 18, 99 BAD_KEY = 19, 100 COMPR_ALGO = 20, 101 NO_PRIME = 21, 102 NO_ENCODING_METHOD = 22, 103 NO_ENCRYPTION_SCHEME = 23, 104 NO_SIGNATURE_SCHEME = 24, 105 INV_ATTR = 25, 106 NO_VALUE = 26, 107 NOT_FOUND = 27, 108 VALUE_NOT_FOUND = 28, 109 SYNTAX = 29, 110 BAD_MPI = 30, 111 INV_PASSPHRASE = 31, 112 SIG_CLASS = 32, 113 RESOURCE_LIMIT = 33, 114 INV_KEYRING = 34, 115 TRUSTDB = 35, 116 BAD_CERT = 36, 117 INV_USER_ID = 37, 118 UNEXPECTED = 38, 119 TIME_CONFLICT = 39, 120 KEYSERVER = 40, 121 WRONG_PUBKEY_ALGO = 41, 122 TRIBUTE_TO_D_A = 42, 123 WEAK_KEY = 43, 124 INV_KEYLEN = 44, 125 INV_ARG = 45, 126 BAD_URI = 46, 127 INV_URI = 47, 128 NETWORK = 48, 129 UNKNOWN_HOST = 49, 130 SELFTEST_FAILED = 50, 131 NOT_ENCRYPTED = 51, 132 NOT_PROCESSED = 52, 133 UNUSABLE_PUBKEY = 53, 134 UNUSABLE_SECKEY = 54, 135 INV_VALUE = 55, 136 BAD_CERT_CHAIN = 56, 137 MISSING_CERT = 57, 138 NO_DATA = 58, 139 BUG = 59, 140 NOT_SUPPORTED = 60, 141 INV_OP = 61, 142 TIMEOUT = 62, 143 INTERNAL = 63, 144 EOF_GCRYPT = 64, 145 INV_OBJ = 65, 146 TOO_SHORT = 66, 147 TOO_LARGE = 67, 148 NO_OBJ = 68, 149 NOT_IMPLEMENTED = 69, 150 CONFLICT = 70, 151 INV_CIPHER_MODE = 71, 152 INV_FLAG = 72, 153 INV_HANDLE = 73, 154 TRUNCATED = 74, 155 INCOMPLETE_LINE = 75, 156 INV_RESPONSE = 76, 157 NO_AGENT = 77, 158 AGENT = 78, 159 INV_DATA = 79, 160 ASSUAN_SERVER_FAULT = 80, 161 ASSUAN = 81, 162 INV_SESSION_KEY = 82, 163 INV_SEXP = 83, 164 UNSUPPORTED_ALGORITHM = 84, 165 NO_PIN_ENTRY = 85, 166 PIN_ENTRY = 86, 167 BAD_PIN = 87, 168 INV_NAME = 88, 169 BAD_DATA = 89, 170 INV_PARAMETER = 90, 171 WRONG_CARD = 91, 172 NO_DIRMNGR = 92, 173 DIRMNGR = 93, 174 CERT_REVOKED = 94, 175 NO_CRL_KNOWN = 95, 176 CRL_TOO_OLD = 96, 177 LINE_TOO_LONG = 97, 178 NOT_TRUSTED = 98, 179 CANCELED = 99, 180 BAD_CA_CERT = 100, 181 CERT_EXPIRED = 101, 182 CERT_TOO_YOUNG = 102, 183 UNSUPPORTED_CERT = 103, 184 UNKNOWN_SEXP = 104, 185 UNSUPPORTED_PROTECTION = 105, 186 CORRUPTED_PROTECTION = 106, 187 AMBIGUOUS_NAME = 107, 188 CARD = 108, 189 CARD_RESET = 109, 190 CARD_REMOVED = 110, 191 INV_CARD = 111, 192 CARD_NOT_PRESENT = 112, 193 NO_PKCS15_APP = 113, 194 NOT_CONFIRMED = 114, 195 CONFIGURATION = 115, 196 NO_POLICY_MATCH = 116, 197 INV_INDEX = 117, 198 INV_ID = 118, 199 NO_SCDAEMON = 119, 200 SCDAEMON = 120, 201 UNSUPPORTED_PROTOCOL = 121, 202 BAD_PIN_METHOD = 122, 203 CARD_NOT_INITIALIZED = 123, 204 UNSUPPORTED_OPERATION = 124, 205 WRONG_KEY_USAGE = 125, 206 NOTHING_FOUND = 126, 207 WRONG_BLOB_TYPE = 127, 208 MISSING_VALUE = 128, 209 HARDWARE = 129, 210 PIN_BLOCKED = 130, 211 USE_CONDITIONS = 131, 212 PIN_NOT_SYNCED = 132, 213 INV_CRL = 133, 214 BAD_BER = 134, 215 INV_BER = 135, 216 ELEMENT_NOT_FOUND = 136, 217 IDENTIFIER_NOT_FOUND = 137, 218 INV_TAG = 138, 219 INV_LENGTH = 139, 220 INV_KEYINFO = 140, 221 UNEXPECTED_TAG = 141, 222 NOT_DER_ENCODED = 142, 223 NO_CMS_OBJ = 143, 224 INV_CMS_OBJ = 144, 225 UNKNOWN_CMS_OBJ = 145, 226 UNSUPPORTED_CMS_OBJ = 146, 227 UNSUPPORTED_ENCODING = 147, 228 UNSUPPORTED_CMS_VERSION = 148, 229 UNKNOWN_ALGORITHM = 149, 230 INV_ENGINE = 150, 231 PUBKEY_NOT_TRUSTED = 151, 232 DECRYPT_FAILED = 152, 233 KEY_EXPIRED = 153, 234 SIG_EXPIRED = 154, 235 ENCODING_PROBLEM = 155, 236 INV_STATE = 156, 237 DUP_VALUE = 157, 238 MISSING_ACTION = 158, 239 MODULE_NOT_FOUND = 159, 240 INV_OID_STRING = 160, 241 INV_TIME = 161, 242 INV_CRL_OBJ = 162, 243 UNSUPPORTED_CRL_VERSION = 163, 244 INV_CERT_OBJ = 164, 245 UNKNOWN_NAME = 165, 246 LOCALE_PROBLEM = 166, 247 NOT_LOCKED = 167, 248 PROTOCOL_VIOLATION = 168, 249 INV_MAC = 169, 250 INV_REQUEST = 170, 251 UNKNOWN_EXTN = 171, 252 UNKNOWN_CRIT_EXTN = 172, 253 LOCKED = 173, 254 UNKNOWN_OPTION = 174, 255 UNKNOWN_COMMAND = 175, 256 NOT_OPERATIONAL = 176, 257 NO_PASSPHRASE = 177, 258 NO_PIN = 178, 259 NOT_ENABLED = 179, 260 NO_ENGINE = 180, 261 MISSING_KEY = 181, 262 TOO_MANY = 182, 263 LIMIT_REACHED = 183, 264 NOT_INITIALIZED = 184, 265 MISSING_ISSUER_CERT = 185, 266 NO_KEYSERVER = 186, 267 INV_CURVE = 187, 268 UNKNOWN_CURVE = 188, 269 DUP_KEY = 189, 270 AMBIGUOUS = 190, 271 NO_CRYPT_CTX = 191, 272 WRONG_CRYPT_CTX = 192, 273 BAD_CRYPT_CTX = 193, 274 CRYPT_CTX_CONFLICT = 194, 275 BROKEN_PUBKEY = 195, 276 BROKEN_SECKEY = 196, 277 MAC_ALGO = 197, 278 FULLY_CANCELED = 198, 279 UNFINISHED = 199, 280 BUFFER_TOO_SHORT = 200, 281 SEXP_INV_LEN_SPEC = 201, 282 SEXP_STRING_TOO_LONG = 202, 283 SEXP_UNMATCHED_PAREN = 203, 284 SEXP_NOT_CANONICAL = 204, 285 SEXP_BAD_CHARACTER = 205, 286 SEXP_BAD_QUOTATION = 206, 287 SEXP_ZERO_PREFIX = 207, 288 SEXP_NESTED_DH = 208, 289 SEXP_UNMATCHED_DH = 209, 290 SEXP_UNEXPECTED_PUNC = 210, 291 SEXP_BAD_HEX_CHAR = 211, 292 SEXP_ODD_HEX_NUMBERS = 212, 293 SEXP_BAD_OCT_CHAR = 213, 294 SERVER_FAILED = 219, 295 NO_NAME = 220, 296 NO_KEY = 221, 297 LEGACY_KEY = 222, 298 REQUEST_TOO_SHORT = 223, 299 REQUEST_TOO_LONG = 224, 300 OBJ_TERM_STATE = 225, 301 NO_CERT_CHAIN = 226, 302 CERT_TOO_LARGE = 227, 303 INV_RECORD = 228, 304 BAD_MAC = 229, 305 UNEXPECTED_MSG = 230, 306 COMPR_FAILED = 231, 307 WOULD_WRAP = 232, 308 FATAL_ALERT = 233, 309 NO_CIPHER = 234, 310 MISSING_CLIENT_CERT = 235, 311 CLOSE_NOTIFY = 236, 312 TICKET_EXPIRED = 237, 313 BAD_TICKET = 238, 314 UNKNOWN_IDENTITY = 239, 315 BAD_HS_CERT = 240, 316 BAD_HS_CERT_REQ = 241, 317 BAD_HS_CERT_VER = 242, 318 BAD_HS_CHANGE_CIPHER = 243, 319 BAD_HS_CLIENT_HELLO = 244, 320 BAD_HS_SERVER_HELLO = 245, 321 BAD_HS_SERVER_HELLO_DONE = 246, 322 BAD_HS_FINISHED = 247, 323 BAD_HS_SERVER_KEX = 248, 324 BAD_HS_CLIENT_KEX = 249, 325 BOGUS_STRING = 250, 326 FORBIDDEN = 251, 327 KEY_DISABLED = 252, 328 KEY_ON_CARD = 253, 329 INV_LOCK_OBJ = 254, 330 TRUE = 255, 331 FALSE = 256, 332 ASS_GENERAL = 257, 333 ASS_ACCEPT_FAILED = 258, 334 ASS_CONNECT_FAILED = 259, 335 ASS_INV_RESPONSE = 260, 336 ASS_INV_VALUE = 261, 337 ASS_INCOMPLETE_LINE = 262, 338 ASS_LINE_TOO_LONG = 263, 339 ASS_NESTED_COMMANDS = 264, 340 ASS_NO_DATA_CB = 265, 341 ASS_NO_INQUIRE_CB = 266, 342 ASS_NOT_A_SERVER = 267, 343 ASS_NOT_A_CLIENT = 268, 344 ASS_SERVER_START = 269, 345 ASS_READ_ERROR = 270, 346 ASS_WRITE_ERROR = 271, 347 ASS_TOO_MUCH_DATA = 273, 348 ASS_UNEXPECTED_CMD = 274, 349 ASS_UNKNOWN_CMD = 275, 350 ASS_SYNTAX = 276, 351 ASS_CANCELED = 277, 352 ASS_NO_INPUT = 278, 353 ASS_NO_OUTPUT = 279, 354 ASS_PARAMETER = 280, 355 ASS_UNKNOWN_INQUIRE = 281, 356 LDAP_GENERAL = 721, 357 LDAP_ATTR_GENERAL = 722, 358 LDAP_NAME_GENERAL = 723, 359 LDAP_SECURITY_GENERAL = 724, 360 LDAP_SERVICE_GENERAL = 725, 361 LDAP_UPDATE_GENERAL = 726, 362 LDAP_E_GENERAL = 727, 363 LDAP_X_GENERAL = 728, 364 LDAP_OTHER_GENERAL = 729, 365 LDAP_X_CONNECTING = 750, 366 LDAP_REFERRAL_LIMIT = 751, 367 LDAP_CLIENT_LOOP = 752, 368 LDAP_NO_RESULTS = 754, 369 LDAP_CONTROL_NOT_FOUND = 755, 370 LDAP_NOT_SUPPORTED = 756, 371 LDAP_CONNECT = 757, 372 LDAP_NO_MEMORY = 758, 373 LDAP_PARAM = 759, 374 LDAP_USER_CANCELLED = 760, 375 LDAP_FILTER = 761, 376 LDAP_AUTH_UNKNOWN = 762, 377 LDAP_TIMEOUT = 763, 378 LDAP_DECODING = 764, 379 LDAP_ENCODING = 765, 380 LDAP_LOCAL = 766, 381 LDAP_SERVER_DOWN = 767, 382 LDAP_SUCCESS = 768, 383 LDAP_OPERATIONS = 769, 384 LDAP_PROTOCOL = 770, 385 LDAP_TIMELIMIT = 771, 386 LDAP_SIZELIMIT = 772, 387 LDAP_COMPARE_FALSE = 773, 388 LDAP_COMPARE_TRUE = 774, 389 LDAP_UNSUPPORTED_AUTH = 775, 390 LDAP_STRONG_AUTH_RQRD = 776, 391 LDAP_PARTIAL_RESULTS = 777, 392 LDAP_REFERRAL = 778, 393 LDAP_ADMINLIMIT = 779, 394 LDAP_UNAVAIL_CRIT_EXTN = 780, 395 LDAP_CONFIDENT_RQRD = 781, 396 LDAP_SASL_BIND_INPROG = 782, 397 LDAP_NO_SUCH_ATTRIBUTE = 784, 398 LDAP_UNDEFINED_TYPE = 785, 399 LDAP_BAD_MATCHING = 786, 400 LDAP_CONST_VIOLATION = 787, 401 LDAP_TYPE_VALUE_EXISTS = 788, 402 LDAP_INV_SYNTAX = 789, 403 LDAP_NO_SUCH_OBJ = 800, 404 LDAP_ALIAS_PROBLEM = 801, 405 LDAP_INV_DN_SYNTAX = 802, 406 LDAP_IS_LEAF = 803, 407 LDAP_ALIAS_DEREF = 804, 408 LDAP_X_PROXY_AUTH_FAIL = 815, 409 LDAP_BAD_AUTH = 816, 410 LDAP_INV_CREDENTIALS = 817, 411 LDAP_INSUFFICIENT_ACC = 818, 412 LDAP_BUSY = 819, 413 LDAP_UNAVAILABLE = 820, 414 LDAP_UNWILL_TO_PERFORM = 821, 415 LDAP_LOOP_DETECT = 822, 416 LDAP_NAMING_VIOLATION = 832, 417 LDAP_OBJ_CLS_VIOLATION = 833, 418 LDAP_NOT_ALLOW_NONLEAF = 834, 419 LDAP_NOT_ALLOW_ON_RDN = 835, 420 LDAP_ALREADY_EXISTS = 836, 421 LDAP_NO_OBJ_CLASS_MODS = 837, 422 LDAP_RESULTS_TOO_LARGE = 838, 423 LDAP_AFFECTS_MULT_DSAS = 839, 424 LDAP_VLV = 844, 425 LDAP_OTHER = 848, 426 LDAP_CUP_RESOURCE_LIMIT = 881, 427 LDAP_CUP_SEC_VIOLATION = 882, 428 LDAP_CUP_INV_DATA = 883, 429 LDAP_CUP_UNSUP_SCHEME = 884, 430 LDAP_CUP_RELOAD = 885, 431 LDAP_CANCELLED = 886, 432 LDAP_NO_SUCH_OPERATION = 887, 433 LDAP_TOO_LATE = 888, 434 LDAP_CANNOT_CANCEL = 889, 435 LDAP_ASSERTION_FAILED = 890, 436 LDAP_PROX_AUTH_DENIED = 891, 437 USER_1 = (1 << 10), 438 USER_2, 439 USER_3, 440 USER_4, 441 USER_5, 442 USER_6, 443 USER_7, 444 USER_8, 445 USER_9, 446 USER_10, 447 USER_11, 448 USER_12, 449 USER_13, 450 USER_14, 451 USER_15, 452 USER_16, 453 MISSING_ERRNO = (1 << 14) - 3, 454 UNKNOWN_ERRNO = (1 << 14) - 2, 455 EOF = (1 << 14) - 1, 456 457 SYSTEM_ERROR = (1 << 15), 458 E2BIG = SYSTEM_ERROR | 0, 459 EACCES = SYSTEM_ERROR | 1, 460 EADDRINUSE = SYSTEM_ERROR | 2, 461 EADDRNOTAVAIL = SYSTEM_ERROR | 3, 462 EADV = SYSTEM_ERROR | 4, 463 EAFNOSUPPORT = SYSTEM_ERROR | 5, 464 EAGAIN = SYSTEM_ERROR | 6, 465 EALREADY = SYSTEM_ERROR | 7, 466 EAUTH = SYSTEM_ERROR | 8, 467 EBACKGROUND = SYSTEM_ERROR | 9, 468 EBADE = SYSTEM_ERROR | 10, 469 EBADF = SYSTEM_ERROR | 11, 470 EBADFD = SYSTEM_ERROR | 12, 471 EBADMSG = SYSTEM_ERROR | 13, 472 EBADR = SYSTEM_ERROR | 14, 473 EBADRPC = SYSTEM_ERROR | 15, 474 EBADRQC = SYSTEM_ERROR | 16, 475 EBADSLT = SYSTEM_ERROR | 17, 476 EBFONT = SYSTEM_ERROR | 18, 477 EBUSY = SYSTEM_ERROR | 19, 478 ECANCELED = SYSTEM_ERROR | 20, 479 ECHILD = SYSTEM_ERROR | 21, 480 ECHRNG = SYSTEM_ERROR | 22, 481 ECOMM = SYSTEM_ERROR | 23, 482 ECONNABORTED = SYSTEM_ERROR | 24, 483 ECONNREFUSED = SYSTEM_ERROR | 25, 484 ECONNRESET = SYSTEM_ERROR | 26, 485 ED = SYSTEM_ERROR | 27, 486 EDEADLK = SYSTEM_ERROR | 28, 487 EDEADLOCK = SYSTEM_ERROR | 29, 488 EDESTADDRREQ = SYSTEM_ERROR | 30, 489 EDIED = SYSTEM_ERROR | 31, 490 EDOM = SYSTEM_ERROR | 32, 491 EDOTDOT = SYSTEM_ERROR | 33, 492 EDQUOT = SYSTEM_ERROR | 34, 493 EEXIST = SYSTEM_ERROR | 35, 494 EFAULT = SYSTEM_ERROR | 36, 495 EFBIG = SYSTEM_ERROR | 37, 496 EFTYPE = SYSTEM_ERROR | 38, 497 EGRATUITOUS = SYSTEM_ERROR | 39, 498 EGREGIOUS = SYSTEM_ERROR | 40, 499 EHOSTDOWN = SYSTEM_ERROR | 41, 500 EHOSTUNREACH = SYSTEM_ERROR | 42, 501 EIDRM = SYSTEM_ERROR | 43, 502 EIEIO = SYSTEM_ERROR | 44, 503 EILSEQ = SYSTEM_ERROR | 45, 504 EINPROGRESS = SYSTEM_ERROR | 46, 505 EINTR = SYSTEM_ERROR | 47, 506 EINVAL = SYSTEM_ERROR | 48, 507 EIO = SYSTEM_ERROR | 49, 508 EISCONN = SYSTEM_ERROR | 50, 509 EISDIR = SYSTEM_ERROR | 51, 510 EISNAM = SYSTEM_ERROR | 52, 511 EL2HLT = SYSTEM_ERROR | 53, 512 EL2NSYNC = SYSTEM_ERROR | 54, 513 EL3HLT = SYSTEM_ERROR | 55, 514 EL3RST = SYSTEM_ERROR | 56, 515 ELIBACC = SYSTEM_ERROR | 57, 516 ELIBBAD = SYSTEM_ERROR | 58, 517 ELIBEXEC = SYSTEM_ERROR | 59, 518 ELIBMAX = SYSTEM_ERROR | 60, 519 ELIBSCN = SYSTEM_ERROR | 61, 520 ELNRNG = SYSTEM_ERROR | 62, 521 ELOOP = SYSTEM_ERROR | 63, 522 EMEDIUMTYPE = SYSTEM_ERROR | 64, 523 EMFILE = SYSTEM_ERROR | 65, 524 EMLINK = SYSTEM_ERROR | 66, 525 EMSGSIZE = SYSTEM_ERROR | 67, 526 EMULTIHOP = SYSTEM_ERROR | 68, 527 ENAMETOOLONG = SYSTEM_ERROR | 69, 528 ENAVAIL = SYSTEM_ERROR | 70, 529 ENEEDAUTH = SYSTEM_ERROR | 71, 530 ENETDOWN = SYSTEM_ERROR | 72, 531 ENETRESET = SYSTEM_ERROR | 73, 532 ENETUNREACH = SYSTEM_ERROR | 74, 533 ENFILE = SYSTEM_ERROR | 75, 534 ENOANO = SYSTEM_ERROR | 76, 535 ENOBUFS = SYSTEM_ERROR | 77, 536 ENOCSI = SYSTEM_ERROR | 78, 537 ENODATA = SYSTEM_ERROR | 79, 538 ENODEV = SYSTEM_ERROR | 80, 539 ENOENT = SYSTEM_ERROR | 81, 540 ENOEXEC = SYSTEM_ERROR | 82, 541 ENOLCK = SYSTEM_ERROR | 83, 542 ENOLINK = SYSTEM_ERROR | 84, 543 ENOMEDIUM = SYSTEM_ERROR | 85, 544 ENOMEM = SYSTEM_ERROR | 86, 545 ENOMSG = SYSTEM_ERROR | 87, 546 ENONET = SYSTEM_ERROR | 88, 547 ENOPKG = SYSTEM_ERROR | 89, 548 ENOPROTOOPT = SYSTEM_ERROR | 90, 549 ENOSPC = SYSTEM_ERROR | 91, 550 ENOSR = SYSTEM_ERROR | 92, 551 ENOSTR = SYSTEM_ERROR | 93, 552 ENOSYS = SYSTEM_ERROR | 94, 553 ENOTBLK = SYSTEM_ERROR | 95, 554 ENOTCONN = SYSTEM_ERROR | 96, 555 ENOTDIR = SYSTEM_ERROR | 97, 556 ENOTEMPTY = SYSTEM_ERROR | 98, 557 ENOTNAM = SYSTEM_ERROR | 99, 558 ENOTSOCK = SYSTEM_ERROR | 100, 559 ENOTSUP = SYSTEM_ERROR | 101, 560 ENOTTY = SYSTEM_ERROR | 102, 561 ENOTUNIQ = SYSTEM_ERROR | 103, 562 ENXIO = SYSTEM_ERROR | 104, 563 EOPNOTSUPP = SYSTEM_ERROR | 105, 564 EOVERFLOW = SYSTEM_ERROR | 106, 565 EPERM = SYSTEM_ERROR | 107, 566 EPFNOSUPPORT = SYSTEM_ERROR | 108, 567 EPIPE = SYSTEM_ERROR | 109, 568 EPROCLIM = SYSTEM_ERROR | 110, 569 EPROCUNAVAIL = SYSTEM_ERROR | 111, 570 EPROGMISMATCH = SYSTEM_ERROR | 112, 571 EPROGUNAVAIL = SYSTEM_ERROR | 113, 572 EPROTO = SYSTEM_ERROR | 114, 573 EPROTONOSUPPORT = SYSTEM_ERROR | 115, 574 EPROTOTYPE = SYSTEM_ERROR | 116, 575 ERANGE = SYSTEM_ERROR | 117, 576 EREMCHG = SYSTEM_ERROR | 118, 577 EREMOTE = SYSTEM_ERROR | 119, 578 EREMOTEIO = SYSTEM_ERROR | 120, 579 ERESTART = SYSTEM_ERROR | 121, 580 EROFS = SYSTEM_ERROR | 122, 581 ERPCMISMATCH = SYSTEM_ERROR | 123, 582 ESHUTDOWN = SYSTEM_ERROR | 124, 583 ESOCKTNOSUPPORT = SYSTEM_ERROR | 125, 584 ESPIPE = SYSTEM_ERROR | 126, 585 ESRCH = SYSTEM_ERROR | 127, 586 ESRMNT = SYSTEM_ERROR | 128, 587 ESTALE = SYSTEM_ERROR | 129, 588 ESTRPIPE = SYSTEM_ERROR | 130, 589 ETIME = SYSTEM_ERROR | 131, 590 ETIMEDOUT = SYSTEM_ERROR | 132, 591 ETOOMANYREFS = SYSTEM_ERROR | 133, 592 ETXTBSY = SYSTEM_ERROR | 134, 593 EUCLEAN = SYSTEM_ERROR | 135, 594 EUNATCH = SYSTEM_ERROR | 136, 595 EUSERS = SYSTEM_ERROR | 137, 596 EWOULDBLOCK = SYSTEM_ERROR | 138, 597 EXDEV = SYSTEM_ERROR | 139, 598 EXFULL = SYSTEM_ERROR | 140, 599 600 MASK = (1 << 16) - 1 601 } 602 603 /// See original's library documentation for details. 604 static immutable GPG_ERR_CODE_DIM = GPG_ERR_CODE.max + 1; 605 606 /// See original's library documentation for details. 607 static immutable GPG_ERR_SOURCE_SHIFT = 24; 608 609 /// See original's library documentation for details. 610 uint gpg_err_init(); 611 612 shared static this ( ) { gpg_err_init(); } 613 614 /// See original's library documentation for details. 615 void gpg_err_deinit (int mode); 616 617 /// See original's library documentation for details. 618 void gpgrt_set_syscall_clamp (void function() pre, void function() post); 619 620 /// See original's library documentation for details. 621 void gpgrt_set_alloc_func (void* function(void *a, size_t n) f); 622 623 624 /// See original's library documentation for details. 625 uint gpg_err_make(GPG_ERR_SOURCE source, GPG_ERR_CODE code) 626 { 627 return code? (((source & source.MASK) << GPG_ERR_SOURCE_SHIFT) | (code & code.MASK)) 628 : code; 629 } 630 631 632 /// See original's library documentation for details. 633 gpg_error_t gpg_error (GPG_ERR_CODE code) 634 { 635 return gpg_err_make(GPG_ERR_SOURCE.init, code); 636 } 637 638 639 /// See original's library documentation for details. 640 GPG_ERR_CODE gpg_err_code (gpg_error_t err) 641 { 642 return cast(GPG_ERR_CODE)(err & GPG_ERR_CODE.MASK); 643 } 644 645 646 /// See original's library documentation for details. 647 GPG_ERR_SOURCE gpg_err_source (gpg_error_t err) 648 { 649 return cast(GPG_ERR_SOURCE)((err >> GPG_ERR_SOURCE_SHIFT) & GPG_ERR_SOURCE.MASK); 650 } 651 652 /// See original's library documentation for details. 653 Const!(char)* gpg_strerror(gpg_error_t err); 654 655 /// See original's library documentation for details. 656 int gpg_strerror_r(gpg_error_t err, char* buf, size_t buflen); 657 658 import ocean.stdc.string; 659 660 extern (D) int gpg_strerror_r(uint err, ref char[] msg) 661 { 662 verify(msg.length != 0); 663 664 scope (exit) 665 msg = msg[0 .. strlen(msg.ptr)]; 666 667 return gpg_strerror_r(err, msg.ptr, msg.length); 668 } 669 670 /// See original's library documentation for details. 671 Const!(char)* gpg_strsource (uint err); 672 673 /// See original's library documentation for details. 674 GPG_ERR_CODE gpg_err_code_from_errno(int err); 675 676 677 /// See original's library documentation for details. 678 int gpg_err_code_to_errno(GPG_ERR_CODE code); 679 680 681 /// See original's library documentation for details. 682 GPG_ERR_CODE gpg_err_code_from_syserror(); 683 684 685 /// See original's library documentation for details. 686 void gpg_err_set_errno(int err); 687 688 /// See original's library documentation for details. 689 Const!(char)* gpgrt_check_version (Const!(char)* req_version); 690 Const!(char)* gpg_error_check_version(Const!(char)* req_version);