Revision control
Copy as Markdown
Other Tools
/*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef RNP_ERR_H_
#define RNP_ERR_H_
/*
* Error code definitions
*/
enum {
RNP_SUCCESS = 0x00000000,
/* Common error codes */
RNP_ERROR_GENERIC = 0x10000000,
RNP_ERROR_BAD_FORMAT,
RNP_ERROR_BAD_PARAMETERS,
RNP_ERROR_NOT_IMPLEMENTED,
RNP_ERROR_NOT_SUPPORTED,
RNP_ERROR_OUT_OF_MEMORY,
RNP_ERROR_SHORT_BUFFER,
RNP_ERROR_NULL_POINTER,
RNP_ERROR_NOT_FOUND,
/* Storage */
RNP_ERROR_ACCESS = 0x11000000,
RNP_ERROR_READ,
RNP_ERROR_WRITE,
/* Crypto */
RNP_ERROR_BAD_STATE = 0x12000000,
RNP_ERROR_MAC_INVALID,
RNP_ERROR_SIGNATURE_INVALID,
RNP_ERROR_KEY_GENERATION,
RNP_ERROR_BAD_PASSWORD,
RNP_ERROR_KEY_NOT_FOUND,
RNP_ERROR_NO_SUITABLE_KEY,
RNP_ERROR_DECRYPT_FAILED,
RNP_ERROR_ENCRYPT_FAILED,
RNP_ERROR_RNG,
RNP_ERROR_SIGNING_FAILED,
RNP_ERROR_NO_SIGNATURES_FOUND,
RNP_ERROR_SIGNATURE_EXPIRED,
RNP_ERROR_VERIFICATION_FAILED,
RNP_ERROR_SIGNATURE_UNKNOWN,
/* Parsing */
RNP_ERROR_NOT_ENOUGH_DATA = 0x13000000,
RNP_ERROR_UNKNOWN_TAG,
RNP_ERROR_PACKET_NOT_CONSUMED,
RNP_ERROR_NO_USERID,
RNP_ERROR_EOF,
/* Signature validation */
RNP_ERROR_SIG_ERROR = 0x14000000,
RNP_ERROR_SIG_PARSE_ERROR,
RNP_ERROR_SIG_SIGNER_UNTRUSTED,
RNP_ERROR_SIG_PUB_ALG_MISMATCH,
RNP_ERROR_SIG_WEAK_HASH,
RNP_ERROR_SIG_HASH_ALG_MISMATCH,
RNP_ERROR_SIG_LBITS_MISMATCH,
RNP_ERROR_SIG_FROM_FUTURE,
RNP_ERROR_SIG_EXPIRED,
RNP_ERROR_SIG_OLDER_KEY,
RNP_ERROR_SIG_EXPIRED_KEY,
RNP_ERROR_SIG_FP_MISMATCH,
RNP_ERROR_SIG_UNKNOWN_NOTATION,
RNP_ERROR_SIG_NOT_DOCUMENT,
RNP_ERROR_SIG_NO_SIGNER_ID,
RNP_ERROR_SIG_NO_SIGNER_KEY,
RNP_ERROR_SIG_NO_HASH_CTX,
RNP_ERROR_SIG_WRONG_KEY_SIG,
RNP_ERROR_SIG_UID_MISSING,
RNP_ERROR_SIG_WRONG_BINDING,
RNP_ERROR_SIG_WRONG_DIRECT,
RNP_ERROR_SIG_WRONG_REV,
RNP_ERROR_SIG_UNSUPPORTED,
RNP_ERROR_SIG_NO_PRIMARY_BINDING,
RNP_ERROR_SIG_BINDING_PARSE,
RNP_ERROR_SIG_WRONG_BIND_TYPE,
RNP_ERROR_SIG_INVALID_BINDING,
RNP_ERROR_SIG_UNUSABLE_KEY
};
#endif