123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- /*############################################################################
- # 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.
- ############################################################################*/
- /*!
- * \file
- * \brief Error reporting implementation.
- */
- #include <stddef.h>
- #include "epid/common/errors.h"
- #include "epid/common/stdtypes.h"
- /// Record mapping status code to string
- struct ErrorTextEntry {
- /// error code
- EpidStatus value;
- /// string associated with error code
- char const* text;
- };
- /// Mapping of status codes to strings
- static const struct ErrorTextEntry kEnumToText[] = {
- {kEpidNoErr, "no error"},
- {kEpidErr, "unspecified error"},
- {kEpidSigInvalid, "invalid signature"},
- {kEpidSigRevokedInGroupRl, "signature revoked in GroupRl"},
- {kEpidSigRevokedInPrivRl, "signature revoked in PrivRl"},
- {kEpidSigRevokedInSigRl, "signature revoked in SigRl"},
- {kEpidSigRevokedInVerifierRl, "signature revoked in VerifierRl"},
- {kEpidNotImpl, "not implemented"},
- {kEpidBadArgErr, "bad arguments"},
- {kEpidNoMemErr, "could not allocate memory"},
- {kEpidMemAllocErr, "insufficient memory provided"},
- {kEpidMathErr, "internal math error"},
- {kEpidDivByZeroErr, "attempt to divide by zero"},
- {kEpidUnderflowErr, "underflow"},
- {kEpidHashAlgorithmNotSupported, "unsupported hash algorithm type"},
- {kEpidRandMaxIterErr, "reached max iteration for random number generation"},
- {kEpidDuplicateErr, "argument would add duplicate entry"},
- {kEpidInconsistentBasenameSetErr,
- "the set basename is inconsistent with supplied parameters"}};
- char const* EpidStatusToString(EpidStatus e) {
- size_t i = 0;
- const size_t num_entries = sizeof(kEnumToText) / sizeof(kEnumToText[0]);
- for (i = 0; i < num_entries; i++) {
- if (e == kEnumToText[i].value) {
- return kEnumToText[i].text;
- }
- }
- return "unknown error";
- }
|