# find ~/s/{gnupg,libgpg-error,libksba,libgcrypt,gpgme,gpa} -type f \
#        -name '*.[ch]' -print0 | xargs -0 grep -n GPG_ERR_


GPG_ERR_UNKNOWN_PACKET (1)	Unknown packet

    GNUPG:  - Redefined to G10ERR_UNKNOWN_PACKET in gpg.

GPG_ERR_UNKNOWN_VERSION (2)	Unknown version in packet

    Used by GnuPG 2.1 to identify valid OpenPGP packets with an
    unknown version.

GPG_ERR_PUBKEY_ALGO		Invalid public key algorithm

    GNUPG:  - Redefined to G10ERR_PUBKEY_ALGO in gpg.
            - Public key algorithm is not allowed by OpenPGP.
    GCRYPT: - Public key algorithm is not defined or not available.
              Note that this is also the case if the algorithm has
              been disabled.
            - [version < 1.5] Checking of the RSA secret key failed
                              (consistency check).

GPG_ERR_DIGEST_ALGO		Invalid digest algorithm

    GNUPG:  - Digest algorithm is not supported.
            - Redefined to G10ERR_PUBKEY_ALGO in gpg.
            - Digest algorithm is not allowed by OpenPGP.
            - Unsupported algorithm given to "--hash=" option of
              certain Assuan server commands.
            - Signature creation or verification failed due to
              an unsupported hash algorithm.
    GCRYPT: - Digest key algorithm is not defined or not available.
              Note that this is also the case if the algorithm has
              been disabled.
            - Unsupported digest algorithm in a selftest.
            - Invalid digest algorithm used in FIPS mode.  Note that
              in enforced-FIPS mode there is no such error return.
            - Message digested or HMAC computation finished with no
              message algorithm enabled for the hash context.
            - Bad digest algorithm given to public key function.

GPG_ERR_BAD_PUBKEY		Bad public key

    GNUPG:  - Redefined to G10ERR_BAD_PUBKEY in gpg.
            - Missing public or domain parameter in an s-expression.
              If the curve name is mssing GPG_ERR_INV_CURVE may be
              used as well.

GPG_ERR_BAD_SECKEY		Bad secret key

    GNUPG:  - Invalid format of a S-expression encoded private key in
              gpg-agent.
            - Missing secret parameter in an s-expression.
            - A protected or shadowed private key was passed to the
              OpenPGP card application for storing it on the card.
            - A private key passed to the OpenPGP card application does
              not match the requirements of the card or misses required
              parameters.
            - Gpg'agents import key command is not able to convert
              the key to the internal format.
    GCRYPT: - Checking the secret key failed (consistency check).


GPG_ERR_BAD_SIGNATURE		Bad signature

    GNUPG:  - Redefined to G10ERR_BAD_SIGN in gpg.
            - The MDC check of an OpenPGP encrypted message failed.
            - A OpenPGP key signature did not verify.
            - A signature with a key flagged as "never trust" was made.
    GCRYPT: - A public key signature did not verify.

GPG_ERR_NO_PUBKEY		No public key

    GNUPG:  - Redefined to G10ERR_NO_PUBKEY in gpg.
            - A key was requested from an OpenPGP card but the key is
              not stored on the card.
            - The public key could not be retrieved from a corresponding
              certificate on a card (command READKEY in scd).
            - A requested certificate was not found or an unspecified
              error occured while selecting a X.509 certificate in
              gpgsm.
            - The specified certificate or key was not found.  This
              does not necessary mean that the certifciate is not
              available but the specification method may not be usable
              for the given certificate.  May also happen for
              certificates somewhere in the chain while validaiting a
              certificate chain.
            - The requested encryption certificate was not found.
            - A certificate specified in a CMS message is not
              available and thus the signature could not be verified
              or details of the certificate be shown.
    GPA:    - No key was given for encryption.
            - The selected encryption protocol is not available.

GPG_ERR_CHECKSUM		Checksum error

    GNUPG:  - The checksum of an unprotected OpenPGP secret key packet
              is wrong.
    GCRYPT: - Decryption in AESWRAP mode does not match the expected IV.
    [more to come]

GPG_ERR_BAD_PASSPHRASE		Bad passphrase

    GNUPG: - The entered passphrase does not verify


12	GPG_ERR_CIPHER_ALGO		Invalid cipher algorithm
13	GPG_ERR_KEYRING_OPEN		Keyring open
14	GPG_ERR_INV_PACKET		Invalid packet
15	GPG_ERR_INV_ARMOR		Invalid armor
16	GPG_ERR_NO_USER_ID		No user ID

GPG_ERR_NO_SECKEY		No secret key

   NTBTLS: - No private key or pre-shared key available.

18	GPG_ERR_WRONG_SECKEY		Wrong secret key used

GPG_ERR_BAD_KEY			Bad session key

    GNUPG: - gpg-agent's command IMPORT_KEY or EXPORT_KEY is used
             without a prior KEYWRAP_KEY command.

    [more to come]


20	GPG_ERR_COMPR_ALGO		Unknown compression algorithm
21	GPG_ERR_NO_PRIME		Number is not prime
22	GPG_ERR_NO_ENCODING_METHOD	Invalid encoding method
23	GPG_ERR_NO_ENCRYPTION_SCHEME	Invalid encryption scheme
24	GPG_ERR_NO_SIGNATURE_SCHEME	Invalid signature scheme
25	GPG_ERR_INV_ATTR		Invalid attribute


GPG_ERR_NO_VALUE		No value

    GNUPG:  - A timestamp value is expect but there is none.
    KSBA:   - A timestamp value is expect but there is none.
            - A certificate is missing a required property.
            - A CMS object is missing a required property.
            - Converting a Distinguised Name to an RFC2253 string failed.


GPG_ERR_NOT_FOUND		Not found

    A search operation did not return a matching value.


GPG_ERR_VALUE_NOT_FOUND		Value not found

    GNUPG:  - A keyblock or a cert object was requested but not
              found.  This might indicate an internal error here.


29	GPG_ERR_SYNTAX			Syntax error
30	GPG_ERR_BAD_MPI			Bad MPI value

GPG_ERR_INV_PASSPHRASE		Invalid passphrase

    GNUPG:  - Required constraints of the passphrase are not met.

32	GPG_ERR_SIG_CLASS		Invalid signature class
33	GPG_ERR_RESOURCE_LIMIT		Resources exhausted
34	GPG_ERR_INV_KEYRING		Invalid keyring
35	GPG_ERR_TRUSTDB			Trust DB error


GPG_ERR_BAD_CERT		Bad certificate


GPG_ERR_INV_USER_ID		Invalid user ID

    GNUPG:  - Used to indicate a bad specification of a user id.
    [more to come]


38	GPG_ERR_UNEXPECTED		Unexpected error
39	GPG_ERR_TIME_CONFLICT		Time conflict
40	GPG_ERR_KEYSERVER		Keyserver error


GPG_ERR_WRONG_PUBKEY_ALGO	Wrong public key algorithm

    GNUPG: - The algorithm is not expected.  For example a DSA
             algorithm is used where a non-DSA algorithm is expected
             or vice versa.  May indicate an internal error.
    NTBTLS: - Public key type mismatch.  The peer presented a
              different key type than requested.


42	GPG_ERR_TRIBUTE_TO_D_A		Tribute to D. A.
43	GPG_ERR_WEAK_KEY		Weak encryption key
44	GPG_ERR_INV_KEYLEN		Invalid key length

GPG_ERR_INV_ARG			Invalid argument

    GCRYPT:  - Unsupported length of input data in encrypt or decrypt
               cipher functions.  For example not matching the block
               lengths of the algorithm.
             - Incompatible args given; e.g. two or none if exactly one
               is required.
    [more to come]


46	GPG_ERR_BAD_URI			Syntax error in URI
47	GPG_ERR_INV_URI			Invalid URI
48	GPG_ERR_NETWORK			Network error
49	GPG_ERR_UNKNOWN_HOST		Unknown host

        Used instead of the non-portbale EHOSTNOTFOUND which is
        returned by some systems as a mapping of h_errno's
        HOST_NOT_FOUND


50	GPG_ERR_SELFTEST_FAILED		Selftest failed
51	GPG_ERR_NOT_ENCRYPTED		Data not encrypted
52	GPG_ERR_NOT_PROCESSED		Data not processed
53	GPG_ERR_UNUSABLE_PUBKEY		Unusable public key
54	GPG_ERR_UNUSABLE_SECKEY		Unusable secret key

GPG_ERR_INV_VALUE		Invalid value

    NTBTLS: - A DH parameter is out of range


56	GPG_ERR_BAD_CERT_CHAIN		Bad certificate chain

GPG_ERR_MISSING_CERT		Missing certificate

    NTBTLS: - The server needs to send a certifciate but none has been
              set.  See also GPG_ERR_MISSING_ISSUER_CERT and
              GPG_ERR_MISSING_CLIENT_CERT.



58	GPG_ERR_NO_DATA			No data
59	GPG_ERR_BUG			Bug

60	GPG_ERR_NOT_SUPPORTED		Not supported

        Used if a feature is currently not supported but may be
        enabled for example using a program option.  Commonly used if
        a feature has been disabled by an administrator.  See also
        GPG_ERR_NOT_ENABLED.  Sometimes also used for features which
        are not yet supported.


61	GPG_ERR_INV_OP			Invalid operation code
62	GPG_ERR_TIMEOUT			Timeout
63	GPG_ERR_INTERNAL		Internal error
64	GPG_ERR_EOF_GCRYPT		EOF (gcrypt)
65	GPG_ERR_INV_OBJ			Invalid object
66	GPG_ERR_TOO_SHORT		Provided object is too short
67	GPG_ERR_TOO_LARGE		Provided object is too large
68	GPG_ERR_NO_OBJ			Missing item in object

GPG_ERR_NOT_IMPLEMENTED		Not implemented

    NTBTLS: - The requested feature is not implemented.

GPG_ERR_CONFLICT		Conflicting use

    NTBTLS: - Function has already been called and may not be called
              again at this protocol state.
    GNUPG:  - Returned by g13 when creating a new container on a device
              which seems to be in use.


71	GPG_ERR_INV_CIPHER_MODE		Invalid cipher mode
72	GPG_ERR_INV_FLAG		Invalid flag

   GPGME: Used to indicate an invalid combination of flags.


73	GPG_ERR_INV_HANDLE		Invalid handle
74	GPG_ERR_TRUNCATED		Result truncated
75	GPG_ERR_INCOMPLETE_LINE		Incomplete line
76	GPG_ERR_INV_RESPONSE		Invalid response
77	GPG_ERR_NO_AGENT		No agent running
78	GPG_ERR_AGENT			agent error

GPG_ERR_INV_DATA		Invalid data

    GNUPG:  - Used in app-openpgp.c for a badly formatted request.
    GCRYPT: - No passphrase given for gcry_kdf_derive.
            - An opaque MPI is given to a public key function but not
              expected.

80	GPG_ERR_ASSUAN_SERVER_FAULT	Unspecific Assuan server fault

GPG_ERR_ASSUAN			General Assuan error

    GNUPG: - Used by Assuan command handler if they fail to do basic
             things like an es_fdopen or es_fopencookie.


82	GPG_ERR_INV_SESSION_KEY		Invalid session key
83	GPG_ERR_INV_SEXP		Invalid S-expression
84	GPG_ERR_UNSUPPORTED_ALGORITHM	Unsupported algorithm
85	GPG_ERR_NO_PIN_ENTRY		No pinentry
86	GPG_ERR_PIN_ENTRY		pinentry error
87	GPG_ERR_BAD_PIN			Bad PIN

GPG_ERR_INV_NAME		Invalid name

    GNUPG:  - Formerly used in GPGSM to indicate an error in
              the specification of a user id.  Later replaced by
              GPG_ERR_INV_USER_ID.
            - In G13 to indicate a bad file name (e.g. one with
              an embedded Nul byte when given as escaped string.
            - In SCDAEMON for an unknown attribute name.

    Also used for URLs which have non-acceptable characters for the
    specific application.

    [more to come]

GPG_ERR_BAD_DATA		Bad data

GPG_ERR_INV_PARAMETER		Invalid parameter

    GNUPG:  - Returned if gpg-agent sends a new generated key with
              unknown parameter names.
            - Invalid parameter in the parameter file for key
              generation by gpgsm.

91	GPG_ERR_WRONG_CARD		Wrong card
92	GPG_ERR_NO_DIRMNGR		No dirmngr
93	GPG_ERR_DIRMNGR			dirmngr error
94	GPG_ERR_CERT_REVOKED		Certificate revoked
95	GPG_ERR_NO_CRL_KNOWN		No CRL known
96	GPG_ERR_CRL_TOO_OLD		CRL too old
97	GPG_ERR_LINE_TOO_LONG		Line too long
98	GPG_ERR_NOT_TRUSTED		Not trusted
99	GPG_ERR_CANCELED		Operation cancelled
100	GPG_ERR_BAD_CA_CERT		Bad CA certificate
101	GPG_ERR_CERT_EXPIRED		Certificate expired
102	GPG_ERR_CERT_TOO_YOUNG		Certificate too young
103	GPG_ERR_UNSUPPORTED_CERT	Unsupported certificate
104	GPG_ERR_UNKNOWN_SEXP		Unknown S-expression
105	GPG_ERR_UNSUPPORTED_PROTECTION	Unsupported protection
106	GPG_ERR_CORRUPTED_PROTECTION	Corrupted protection
107	GPG_ERR_AMBIGUOUS_NAME		Ambiguous name
108	GPG_ERR_CARD			Card error
109	GPG_ERR_CARD_RESET		Card reset required
110	GPG_ERR_CARD_REMOVED		Card removed
111	GPG_ERR_INV_CARD		Invalid card
112	GPG_ERR_CARD_NOT_PRESENT	Card not present
113	GPG_ERR_NO_PKCS15_APP		No PKCS15 application
114	GPG_ERR_NOT_CONFIRMED		Not confirmed
115	GPG_ERR_CONFIGURATION		Configuration error
116	GPG_ERR_NO_POLICY_MATCH		No policy match
117	GPG_ERR_INV_INDEX		Invalid index
118	GPG_ERR_INV_ID			Invalid ID
119	GPG_ERR_NO_SCDAEMON		No SmartCard daemon
120	GPG_ERR_SCDAEMON		SmartCard daemon error

GPG_ERR_UNSUPPORTED_PROTOCOL	Unsupported protocol

    GPG:        - An unsupported keyserver protocol.
    GPG_AGENT:  - Invalid shadow_info protocol (not "t1-v1")
    LIBKSBA:    - Unknown OID of the OCSP response bytes
    GPGME:      - GPGME_PROTOCOL_xxx not supported.
    NTBTLS:     - Handshake protocol version not supported.

122	GPG_ERR_BAD_PIN_METHOD		Bad PIN method

GPG_ERR_CARD_NOT_INITIALIZED	Card not initialized

    SCDAEMON: - A card function is called but the card has not yet
                been initialized.  This may be due to a conflict with
                another card using connection or due to a bug.

124	GPG_ERR_UNSUPPORTED_OPERATION	Unsupported operation
125	GPG_ERR_WRONG_KEY_USAGE		Wrong key usage

    GNUPG: - Key usage not possible with selected algorithm.

GPG_ERR_NOTHING_FOUND		Nothing found

  Indicates that the operation was not possible because nothing has
  been found.  For example an update request for non existent data.


127	GPG_ERR_WRONG_BLOB_TYPE		Wrong blob type

GPG_ERR_MISSING_VALUE		Missing value

    GNUPG: - Not enough parameters for a secret key send to gpg-agent.

    GCRYPT: - A required parameter has not been given.


129	GPG_ERR_HARDWARE		Hardware problem
130	GPG_ERR_PIN_BLOCKED		PIN blocked
131	GPG_ERR_USE_CONDITIONS		Conditions of use not satisfied
132	GPG_ERR_PIN_NOT_SYNCED		PINs are not synced
133	GPG_ERR_INV_CRL			Invalid CRL
134	GPG_ERR_BAD_BER			BER error
135	GPG_ERR_INV_BER			Invalid BER
136	GPG_ERR_ELEMENT_NOT_FOUND	Element not found
137	GPG_ERR_IDENTIFIER_NOT_FOUND	Identifier not found
138	GPG_ERR_INV_TAG			Invalid tag

GPG_ERR_INV_LENGTH		Invalid length

    GCRYPT: - Bad block length for certain cipher algorithms and
              modes.
            - Bad length of input data; e.g. not a multiple of the
              block length.
            - A length does not match the size of the digest
              algorithm.
            - Length of signature or public key is not as expected
              (e.g. in EdDSA).
    [more to come]
    GNUPG:  - Invalid hash length for a pubkey
    [more to come]

GPG_ERR_INV_KEYINFO		Invalid key info

    KSBA: - Returned if the ASN.1 Keyinfo structure is not valid

141	GPG_ERR_UNEXPECTED_TAG		Unexpected tag
142	GPG_ERR_NOT_DER_ENCODED		Not DER encoded
143	GPG_ERR_NO_CMS_OBJ		No CMS object
144	GPG_ERR_INV_CMS_OBJ		Invalid CMS object
145	GPG_ERR_UNKNOWN_CMS_OBJ		Unknown CMS object
146	GPG_ERR_UNSUPPORTED_CMS_OBJ	Unsupported CMS object

GPG_ERR_UNSUPPORTED_ENCODING	Unsupported encoding

    GNUPG: - Returned by Dirmngr if a keyserver returns a HTML document.


148	GPG_ERR_UNSUPPORTED_CMS_VERSION	Unsupported CMS version


149	GPG_ERR_UNKNOWN_ALGORITHM	Unknown algorithm

    GCRYPT:  gcry_kdf_proc for an unknown kdf algorithm

150	GPG_ERR_INV_ENGINE		Invalid crypto engine

    GPGME: Several uses use cases.  For example:
           - Unexpected format of a status line.

151	GPG_ERR_PUBKEY_NOT_TRUSTED	Public key not trusted
152	GPG_ERR_DECRYPT_FAILED		Decryption failed
153	GPG_ERR_KEY_EXPIRED		Key expired
154	GPG_ERR_SIG_EXPIRED		Signature expired
155	GPG_ERR_ENCODING_PROBLEM	Encoding problem

GPG_ERR_INV_STATE		Invalid state

    The state (of a protocol) is not possible or not defined at all.

    NTBTLS: - Data received in an unexpected state.



157	GPG_ERR_DUP_VALUE		Duplicated value

GPG_ERR_MISSING_ACTION		Missing action

    GNUPG: - In G13 the server command "MOUNT" is used without prior
             use of the command "OPEN".

    others: - The libassuan ce-server test program uses this to
              indicate that the client did not conncted to the server
              as requested.

159	GPG_ERR_MODULE_NOT_FOUND	ASN.1 module not found
160	GPG_ERR_INV_OID_STRING		Invalid OID string
161	GPG_ERR_INV_TIME		Invalid time
162	GPG_ERR_INV_CRL_OBJ		Invalid CRL object
163	GPG_ERR_UNSUPPORTED_CRL_VERSION	Unsupported CRL version


GPG_ERR_INV_CERT_OBJ		Invalid certificate object

    GPGME: - A bad certificate (gpgme_key_t) has been passed to a
             function.  For example it might be incomplete due to a
             missing fingerprint.


165	GPG_ERR_UNKNOWN_NAME		Unknown name

        Used by GPG to indicate an unknown ECC curve name (may also
        indicate missing ECC support).  It is also used to indicate an
        unsuported parameter name in functions which take a name and
        value to update state.  Note that GPG_ERR_UNKNOWN_CURVE is
        used instead by newer code.

166	GPG_ERR_LOCALE_PROBLEM		A locale function failed
167	GPG_ERR_NOT_LOCKED		Not locked

GPG_ERR_PROTOCOL_VIOLATION	Protocol violation

    GNUPG: - Used for invalid HTTP responses.


GPG_ERR_INV_MAC			Invalid MAC

        The length, algo, or other properties of a MAC are not met.
        See also GPG_ERR_BAD_MAC.


170	GPG_ERR_INV_REQUEST		Invalid request
171	GPG_ERR_UNKNOWN_EXTN		Unknown extension
172	GPG_ERR_UNKNOWN_CRIT_EXTN	Unknown critical extension
173	GPG_ERR_LOCKED			Locked
174	GPG_ERR_UNKNOWN_OPTION		Unknown option
175	GPG_ERR_UNKNOWN_COMMAND		Unknown command
176	GPG_ERR_NOT_OPERATIONAL		Not operational
177	GPG_ERR_NO_PASSPHRASE		No passphrase given
178	GPG_ERR_NO_PIN			No PIN given

GPG_ERR_NOT_ENABLED		Not enabled

        Similar to GPG_ERR_NOT_SUPPORTED.  In general this error is
        used for disabled features which can be expected to be enabled
        by the user.


180	GPG_ERR_NO_ENGINE		No crypto engine
181	GPG_ERR_MISSING_KEY		Missing key

GPG_ERR_TOO_MANY                Too many objects

    GPG: - Dirmngr KS_GET called with too many pattern so that the
           maximum Assuan line length would overflow.
         - gpgsm's command export --secret called with too man keys.
    GPGME: - To many patterns in gpgme-tools's KEYLIST command.

GPG_ERR_LIMIT_REACHED           Limit reached

        A programmed limit has been reached.

        GnuPG: gpgtar: Extract directory can't be created because too
        many of directories with a similar name are already existing.

GPG_ERR_NOT_INITIALIZED		Not initialized

    An operation can't be performed because something has not been
    initialized.  This might be a missing initialization of an entire
    subsystems or a prerequisite for using a function is not
    fulfilled.

185	GPG_ERR_MISSING_ISSUER_CERT	Missing issuer certificate

GPG_ERR_NO_KEYSERVER		No keyserver available

        No keyserver configured or no keyserver available due to
        missing support for the requested protocol.  Found in Dirmngr.

GPG_ERR_INV_CURVE		Invalid elliptic curve

        The curve parameter is missing or the curve is invalid; for
        example it is not possible to get affine coordinates for the
        public key.

GPG_ERR_UNKNOWN_CURVE		Unknown elliptic curve

        The curve is not known or not supported by the protocol.


GPG_ERR_DUP_KEY                 Duplicated key

        A duplicated key was detected.  For example a unique key in a
        database occurred more than once.  Also used if in a protocol
        an expected key was returned more than once.

GPG_ERR_AMBIGUOUS		Ambiguous search

        A search etc returned an ambigious result.  This usually means
        that the search string was not specific enough.

GPG_ERR_NO_CRYPT_CTX		No crypto context

        A crypto context was expected but not given.  Commonly used by
        Libgcrypt.

GPG_ERR_WRONG_CRYPT_CTX		Wrong crypto context

        The given crypto context does not match the requirements.  For
        example in Libgcrypt a crypto context has private data
        pertaining to certain algorithms.  This error is for example
        returned if a crypto context initialized for a different
        algorithm is used.

GPG_ERR_BAD_CRYPT_CTX		Bad crypto context

        The is a problem with the crypto context.  For example it has
        not been properly initialized.

GPG_ERR_CRYPT_CTX_CONFLICT	Conflict in the crypto context

        Conflicting use of a crypto context.  For example if a context
        is used with objects that don't match the state of the
        context.

GPG_ERR_BROKEN_PUBKEY		Broken public key

        The public key was mathematically not correctly generated.
        (It would have been nicer if we would have used BAD_PUBKEY for
        this, but that error code is in long time use to describe for
        example policy and encoding problems with a key.  Using
        INV_PUBKEY would have been better for these purposes)

GPG_ERR_BROKEN_SECKEY		Broken secret key

        The secret key was mathematically not correctly generated.

GPG_ERR_MAC_ALGO

    GCRYPT: - MAC key algorithm is not defined or not available.


198     GPG_ERR_FULLY_CANCELED          Operation fully cancelled
199	GPG_ERR_UNFINISHED		Operation not yet finished
200	GPG_ERR_BUFFER_TOO_SHORT	Buffer too short

201	GPG_ERR_SEXP_INV_LEN_SPEC	Invalid length specifier in S-expression
202	GPG_ERR_SEXP_STRING_TOO_LONG	String too long in S-expression
203	GPG_ERR_SEXP_UNMATCHED_PAREN	Unmatched parentheses in S-expression
204	GPG_ERR_SEXP_NOT_CANONICAL	S-expression not canonical
205	GPG_ERR_SEXP_BAD_CHARACTER	Bad character in S-expression
206	GPG_ERR_SEXP_BAD_QUOTATION	Bad quotation in S-expression
207	GPG_ERR_SEXP_ZERO_PREFIX	Zero prefix in S-expression
208	GPG_ERR_SEXP_NESTED_DH		Nested display hints in S-expression
209	GPG_ERR_SEXP_UNMATCHED_DH	Unmatched display hints
210	GPG_ERR_SEXP_UNEXPECTED_PUNC	Unexpected reserved punctuation in S-expression
211	GPG_ERR_SEXP_BAD_HEX_CHAR	Bad hexadecimal character in S-expression
212	GPG_ERR_SEXP_ODD_HEX_NUMBERS	Odd hexadecimal numbers in S-expression
213	GPG_ERR_SEXP_BAD_OCT_CHAR	Bad octal character in S-expression


GPG_ERR_SUBKEYS_EXP_REV (217)           All subkeys are expired or revoked

GPG_ERR_DB_CORRUPTED (218)		Database is corrupted

GPG_ERR_SERVER_FAILED (219)		Server indicated a failure

GPG_ERR_NO_NAME	(220)		No name

    EAI_NONAME may be mapped to this code.

GPG_ERR_NO_KEY (221)		No key

    Some kind of key was not found.

GPG_ERR_LEGACY_KEY (222)        Legacy key

    Used by GnuPG to identify version 2 and 3 OpenPGP key packets.

GPG_ERR_REQUEST_TOO_SHORT       Request too short

    A received request is too short to continue processing.

GPG_ERR_REQUEST_TOO_LONG        Request too long

    A received request is too long to continue processing.  This may
    be due to an internal limitation, a protocol violation, or due to
    the use of a newer version of a protocol.

GPG_ERR_OBJ_TERM_STATE		Object is in termination state

    For cards this is the ISO status word 0x6285 (file is in
    termnation state).

GPG_ERR_NO_CERT_CHAIN		No certificate chain

    NTBTLS: - A CA chain has not been set but is required.

GPG_ERR_CERT_TOO_LARGE		Certificate is too large

    NTBTLS: - A certificate is too large to be used by the protocol.

GPG_ERR_INV_RECORD              Invalid record

    NTBTLS: - An invalid record was received

GPG_ERR_BAD_MAC			The MAC does not verify

    NTBTLS: - MAC verification of the message failed.

GPG_ERR_UNEXPECTED_MSG         Unexpected message

    GNUPG:  - An unexpected WKS message was received.
    NTBTLS: - Unexpected message received.

GPG_ERR_COMPR_FAILED           Compression or decompression failed

    NTBTLS: - As the description says.

GPG_ERR_WOULD_WRAP             A counter would wrap

    NTBTLS: - Too many messages exchanged
    Other:  - A counter would wrap.

GPG_ERR_FATAL_ALERT            Fatal alert message received

    NTBTLS: - Fatal alert message received from the peer.

GPG_ERR_NO_CIPHER              No cipher algorithm

    NTBTLS: - Server and client have no algo in common

GPG_ERR_MISSING_CLIENT_CERT     Missing client certificate

    NTBTLS: - No certificate received from client.

GPG_ERR_CLOSE_NOTIFY            Close notification received

    NTBTLS: - Alert with a close notification received

GPG_ERR_TICKET_EXPIRED          Ticket expired

    NTBTLS: - Session ticket has expired.

GPG_ERR_BAD_TICKET              Bad ticket

    NTBTLS: - Bad new session ticket message.

GPG_ERR_UNKNOWN_IDENTITY        Unknown identity

    NTBTLS: - Unknown PSK identify received

GPG_ERR_BAD_HS_CERT             Bad certificate message in handshake

    NTBTLS: - As the description says.

GPG_ERR_BAD_HS_CERT_REQ         Bad certificate request message in handshake

    NTBTLS: - As the description says.

GPG_ERR_BAD_HS_CERT_VER         Bad certificate verify message in handshake

    NTBTLS: - As the description says.

GPG_ERR_BAD_HS_CHANGE_CIPHER    Bad change cipher messsage in handshake

    NTBTLS: - As the description says.

GPG_ERR_BAD_HS_CLIENT_HELLO     Bad client hello message in handshake

    NTBTLS: - As the description says.

GPG_ERR_BAD_HS_SERVER_HELLO     Bad server hello message in handshake

    NTBTLS: - As the description says.

GPG_ERR_BAD_HS_SERVER_HELLO_DONE  Bad server hello done message in handshake

    NTBTLS: - As the description says.

GPG_ERR_BAD_HS_FINISHED         Bad finished message in handshake

    NTBTLS: - As the description says.

GPG_ERR_BAD_HS_SERVER_KEX       Bad server key exchange message in handshake

    NTBTLS: - As the description says.

GPG_ERR_BAD_HS_CLIENT_KEX       Bad client key exchange message in handshake

    NTBTLS: - As the description says.


GPG_ERR_BOGUS_STRING            Bogus string

    Used if a protocol sends length prefixed strings which contain a
    Nul byte and further processing would discard the rest of the
    string.  May also be used if a string contains unexpected and
    possible dangerous characters (e.g. control characters in a domain
    name).

GPG_ERR_FORBIDDEN		Forbidden

    The use of a features is not allowed due to insufficient rights.
    Use by gpg-agent as an error codes for restricted commands.

GPG_ERR_KEY_DISABLED            Key disabled

    GNUPG: - The key has been disabled by the user.

GPG_ERR_KEY_ON_CARD		Not possible with a card based key

    GNUPG: - The gpg-agent returns this if a DELETE_KEY commands is
             used for a smartcard based key.

GPG_ERR_INV_LOCK_OBJ		Invalid lock object

    GPGRT: - The provided lock object is not valid.  This indicates an
             internal problem in libgpg-error or more likely a
             programming error.

GPG_ERR_TRUE			True

    Used to retrun the boolena value True.  Note that GPG_ERR_NO_ERROR
    (with the value 0) is also often used to indicate the value true.

GPG_ERR_FALSE			False

    Used to return the boolean value False.

GPG_ERR_LDAP_GENERAL		LDAP General error

   Catch all error for LDAP.  Use if if can't map an erro rocde to an
   gpg-error code.

GPG_ERR_LDAP_ATTR_GENERAL	LDAP General attribute error
GPG_ERR_LDAP_NAME_GENERAL	LDAP General name error
GPG_ERR_LDAP_SECURITY_GENERAL	LDAP General security error
GPG_ERR_LDAP_SERVICE_GENERAL	LDAP General service error
GPG_ERR_LDAP_UPDATE_GENERAL	LDAP General update error
GPG_ERR_LDAP_E_GENERAL		LDAP Experimental error code
GPG_ERR_LDAP_X_GENERAL	        LDAP Private error code
GPG_ERR_LDAP_OTHER_GENERAL	LDAP Other general error

  All above may be used to map ranges of LDAP errors to one specific
  code. OpenLDAP uses LDAP_xxx_RANGE(n) macros for tha mapping.
  "Other general error" may be used similar to "General error" for
  mapping of ranges.  Here are macros from OpenLDAP for reference

  #define LDAP_ATTR_ERROR(n)	 LDAP_RANGE((n),0x10,0x15) /* 16-21 */
  #define LDAP_NAME_ERROR(n)	 LDAP_RANGE((n),0x20,0x24) /* 32-34,36 */
  #define LDAP_SECURITY_ERROR(n) LDAP_RANGE((n),0x2F,0x32) /* 47-50 */
  #define LDAP_SERVICE_ERROR(n)	 LDAP_RANGE((n),0x33,0x36) /* 51-54 */
  #define LDAP_UPDATE_ERROR(n)	 LDAP_RANGE((n),0x40,0x47) /* 64-69,71 */
  #define LDAP_E_ERROR(n)	 LDAP_RANGE((n),0x1000,0x3FFF)
  #define LDAP_X_ERROR(n)	 LDAP_RANGE((n),0x4000,0xFFFF)
