/*############################################################################
# Copyright 2016-2017 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
############################################################################*/
#ifndef EPID_COMMON_ERRORS_H_
#define EPID_COMMON_ERRORS_H_
/*!
* \file
* \brief Error reporting.
*/
/// Error reporting interface.
/*!
\defgroup ErrorCodes errors
This module defines the return status type. It also provides tools for
interactions with status values, such as converting them to a string.
\ingroup EpidCommon
@{
*/
/// Return status for SDK functions.
/*!
Convention for status values is as follows:
- Zero indicates "success"
- Any positive number indicates "success with status"
- Any negative number indicates "failure"
*/
typedef enum {
kEpidNoErr = 0, //!< no error
kEpidSigValid = 0, //!< Signature is valid
kEpidSigInvalid = 1, //!< Signature is invalid
kEpidSigRevokedInGroupRl = 2, //!< Signature revoked in GroupRl
kEpidSigRevokedInPrivRl = 3, //!< Signature revoked in PrivRl
kEpidSigRevokedInSigRl = 4, //!< Signature revoked in SigRl
kEpidSigRevokedInVerifierRl = 5, //!< Signature revoked in VerifierRl
kEpidErr = -999, //!< unspecified error
kEpidNotImpl, //!< not implemented error
kEpidBadArgErr, //!< incorrect arg to function
kEpidNoMemErr, //!< not enough memory for the operation
kEpidMemAllocErr, //!< insufficient memory allocated for operation
kEpidMathErr, //!< internal math error
kEpidDivByZeroErr, //!< an attempt to divide by zero
kEpidUnderflowErr, //!< a value became less than minimum supported level
kEpidHashAlgorithmNotSupported, //!< unsupported hash algorithm type
kEpidRandMaxIterErr, //!< reached max iteration for random number generation
kEpidDuplicateErr, //!< argument would add duplicate entry
kEpidInconsistentBasenameSetErr, //!< set basename conflicts with arguments
kEpidMathQuadraticNonResidueError, //!< quadratic Non-Residue Error
kEpidOutOfSequenceError, //!< operation was performed out of sequence
} EpidStatus;
/// Returns string representation of error code.
/*!
\param e
The status value.
\returns The string describing the status.
*/
char const* EpidStatusToString(EpidStatus e);
/*! @} */
#endif // EPID_COMMON_ERRORS_H_