1251876Speter/* Licensed to the Apache Software Foundation (ASF) under one or more 2251876Speter * contributor license agreements. See the NOTICE file distributed with 3251876Speter * this work for additional information regarding copyright ownership. 4251876Speter * The ASF licenses this file to You under the Apache License, Version 2.0 5251876Speter * (the "License"); you may not use this file except in compliance with 6251876Speter * the License. You may obtain a copy of the License at 7251876Speter * 8251876Speter * http://www.apache.org/licenses/LICENSE-2.0 9251876Speter * 10251876Speter * Unless required by applicable law or agreed to in writing, software 11251876Speter * distributed under the License is distributed on an "AS IS" BASIS, 12251876Speter * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13251876Speter * See the License for the specific language governing permissions and 14251876Speter * limitations under the License. 15251876Speter */ 16251876Speter 17251876Speter#ifndef APU_ERRNO_H 18251876Speter#define APU_ERRNO_H 19251876Speter 20251876Speter/** 21251876Speter * @file apu_errno.h 22251876Speter * @brief APR-Util Error Codes 23251876Speter */ 24251876Speter 25251876Speter#include "apr.h" 26251876Speter#include "apr_errno.h" 27251876Speter 28251876Speter#ifdef __cplusplus 29251876Speterextern "C" { 30251876Speter#endif /* __cplusplus */ 31251876Speter 32251876Speter/** 33251876Speter * @defgroup apu_errno Error Codes 34251876Speter * @ingroup APR_Util 35251876Speter * @{ 36251876Speter */ 37251876Speter 38251876Speter/** 39251876Speter * @defgroup APR_Util_Error APR_Util Error Values 40251876Speter * <PRE> 41251876Speter * <b>APU ERROR VALUES</b> 42251876Speter * APR_ENOKEY The key provided was empty or NULL 43251876Speter * APR_ENOIV The initialisation vector provided was NULL 44251876Speter * APR_EKEYTYPE The key type was not recognised 45251876Speter * APR_ENOSPACE The buffer supplied was not big enough 46251876Speter * APR_ECRYPT An error occurred while encrypting or decrypting 47251876Speter * APR_EPADDING Padding was not supported 48251876Speter * APR_EKEYLENGTH The key length was incorrect 49251876Speter * APR_ENOCIPHER The cipher provided was not recognised 50251876Speter * APR_ENODIGEST The digest provided was not recognised 51251876Speter * APR_ENOENGINE The engine provided was not recognised 52251876Speter * APR_EINITENGINE The engine could not be initialised 53251876Speter * APR_EREINIT Underlying crypto has already been initialised 54251876Speter * </PRE> 55251876Speter * 56251876Speter * <PRE> 57251876Speter * <b>APR STATUS VALUES</b> 58251876Speter * APR_INCHILD Program is currently executing in the child 59251876Speter * </PRE> 60251876Speter * @{ 61251876Speter */ 62251876Speter/** @see APR_STATUS_IS_ENOKEY */ 63251876Speter#define APR_ENOKEY (APR_UTIL_START_STATUS + 1) 64251876Speter/** @see APR_STATUS_IS_ENOIV */ 65251876Speter#define APR_ENOIV (APR_UTIL_START_STATUS + 2) 66251876Speter/** @see APR_STATUS_IS_EKEYTYPE */ 67251876Speter#define APR_EKEYTYPE (APR_UTIL_START_STATUS + 3) 68251876Speter/** @see APR_STATUS_IS_ENOSPACE */ 69251876Speter#define APR_ENOSPACE (APR_UTIL_START_STATUS + 4) 70251876Speter/** @see APR_STATUS_IS_ECRYPT */ 71251876Speter#define APR_ECRYPT (APR_UTIL_START_STATUS + 5) 72251876Speter/** @see APR_STATUS_IS_EPADDING */ 73251876Speter#define APR_EPADDING (APR_UTIL_START_STATUS + 6) 74251876Speter/** @see APR_STATUS_IS_EKEYLENGTH */ 75251876Speter#define APR_EKEYLENGTH (APR_UTIL_START_STATUS + 7) 76251876Speter/** @see APR_STATUS_IS_ENOCIPHER */ 77251876Speter#define APR_ENOCIPHER (APR_UTIL_START_STATUS + 8) 78251876Speter/** @see APR_STATUS_IS_ENODIGEST */ 79251876Speter#define APR_ENODIGEST (APR_UTIL_START_STATUS + 9) 80251876Speter/** @see APR_STATUS_IS_ENOENGINE */ 81251876Speter#define APR_ENOENGINE (APR_UTIL_START_STATUS + 10) 82251876Speter/** @see APR_STATUS_IS_EINITENGINE */ 83251876Speter#define APR_EINITENGINE (APR_UTIL_START_STATUS + 11) 84251876Speter/** @see APR_STATUS_IS_EREINIT */ 85251876Speter#define APR_EREINIT (APR_UTIL_START_STATUS + 12) 86251876Speter/** @} */ 87251876Speter 88251876Speter/** 89251876Speter * @defgroup APU_STATUS_IS Status Value Tests 90251876Speter * @warning For any particular error condition, more than one of these tests 91251876Speter * may match. This is because platform-specific error codes may not 92251876Speter * always match the semantics of the POSIX codes these tests (and the 93251876Speter * corresponding APR error codes) are named after. A notable example 94251876Speter * are the APR_STATUS_IS_ENOENT and APR_STATUS_IS_ENOTDIR tests on 95251876Speter * Win32 platforms. The programmer should always be aware of this and 96251876Speter * adjust the order of the tests accordingly. 97251876Speter * @{ 98251876Speter */ 99251876Speter 100251876Speter/** @} */ 101251876Speter 102251876Speter/** 103251876Speter * @addtogroup APR_Util_Error 104251876Speter * @{ 105251876Speter */ 106251876Speter/** 107251876Speter * The key was empty or not provided 108251876Speter */ 109251876Speter#define APR_STATUS_IS_ENOKEY(s) ((s) == APR_ENOKEY) 110251876Speter/** 111251876Speter * The initialisation vector was not provided 112251876Speter */ 113251876Speter#define APR_STATUS_IS_ENOIV(s) ((s) == APR_ENOIV) 114251876Speter/** 115251876Speter * The key type was not recognised 116251876Speter */ 117251876Speter#define APR_STATUS_IS_EKEYTYPE(s) ((s) == APR_EKEYTYPE) 118251876Speter/** 119251876Speter * The buffer provided was not big enough 120251876Speter */ 121251876Speter#define APR_STATUS_IS_ENOSPACE(s) ((s) == APR_ENOSPACE) 122251876Speter/** 123251876Speter * An error occurred while encrypting or decrypting 124251876Speter */ 125251876Speter#define APR_STATUS_IS_ECRYPT(s) ((s) == APR_ECRYPT) 126251876Speter/** 127251876Speter * An error occurred while padding 128251876Speter */ 129251876Speter#define APR_STATUS_IS_EPADDING(s) ((s) == APR_EPADDING) 130251876Speter/** 131251876Speter * An error occurred with the key length 132251876Speter */ 133251876Speter#define APR_STATUS_IS_EKEYLENGTH(s) ((s) == APR_EKEYLENGTH) 134251876Speter/** 135251876Speter * The cipher provided was not recognised 136251876Speter */ 137251876Speter#define APR_STATUS_IS_ENOCIPHER(s) ((s) == APR_ENOCIPHER) 138251876Speter/** 139251876Speter * The digest provided was not recognised 140251876Speter */ 141251876Speter#define APR_STATUS_IS_ENODIGEST(s) ((s) == APR_ENODIGEST) 142251876Speter/** 143251876Speter * The engine provided was not recognised 144251876Speter */ 145251876Speter#define APR_STATUS_IS_ENOENGINE(s) ((s) == APR_ENOENGINE) 146251876Speter/** 147251876Speter * The engine could not be initialised 148251876Speter */ 149251876Speter#define APR_STATUS_IS_EINITENGINE(s) ((s) == APR_EINITENGINE) 150251876Speter/** 151251876Speter * Crypto has already been initialised 152251876Speter */ 153251876Speter#define APR_STATUS_IS_EREINIT(s) ((s) == APR_EREINIT) 154251876Speter/** @} */ 155251876Speter 156251876Speter/** 157251876Speter * This structure allows the underlying API error codes to be returned 158251876Speter * along with plain text error messages that explain to us mere mortals 159251876Speter * what really happened. 160251876Speter */ 161251876Spetertypedef struct apu_err_t { 162251876Speter const char *reason; 163251876Speter const char *msg; 164251876Speter int rc; 165251876Speter} apu_err_t; 166251876Speter 167251876Speter/** @} */ 168251876Speter 169251876Speter#ifdef __cplusplus 170251876Speter} 171251876Speter#endif 172251876Speter 173251876Speter#endif /* ! APU_ERRNO_H */ 174