123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- /*############################################################################
- # Copyright 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 Implementation of Intel(R) EPID specific predicates for gtest
- */
- #include "epid/common-testhelper/epid_gtest-testhelper.h"
- #include <string>
- /// Record mapping status code to string
- struct EpidStatusTextEntry {
- /// error code
- EpidStatus value;
- /// name of error code
- const char* value_name;
- };
- #define EPID_STATUS_TEXT_ENTRY_VALUE(sts) \
- { sts, #sts }
- /// Mapping of status codes to strings
- static const struct EpidStatusTextEntry kEnumToText[] = {
- EPID_STATUS_TEXT_ENTRY_VALUE(kEpidNoErr),
- EPID_STATUS_TEXT_ENTRY_VALUE(kEpidErr),
- EPID_STATUS_TEXT_ENTRY_VALUE(kEpidSigInvalid),
- EPID_STATUS_TEXT_ENTRY_VALUE(kEpidSigRevokedInGroupRl),
- EPID_STATUS_TEXT_ENTRY_VALUE(kEpidSigRevokedInPrivRl),
- EPID_STATUS_TEXT_ENTRY_VALUE(kEpidSigRevokedInSigRl),
- EPID_STATUS_TEXT_ENTRY_VALUE(kEpidSigRevokedInVerifierRl),
- EPID_STATUS_TEXT_ENTRY_VALUE(kEpidNotImpl),
- EPID_STATUS_TEXT_ENTRY_VALUE(kEpidBadArgErr),
- EPID_STATUS_TEXT_ENTRY_VALUE(kEpidNoMemErr),
- EPID_STATUS_TEXT_ENTRY_VALUE(kEpidMemAllocErr),
- EPID_STATUS_TEXT_ENTRY_VALUE(kEpidMathErr),
- EPID_STATUS_TEXT_ENTRY_VALUE(kEpidDivByZeroErr),
- EPID_STATUS_TEXT_ENTRY_VALUE(kEpidUnderflowErr),
- EPID_STATUS_TEXT_ENTRY_VALUE(kEpidHashAlgorithmNotSupported),
- EPID_STATUS_TEXT_ENTRY_VALUE(kEpidRandMaxIterErr),
- EPID_STATUS_TEXT_ENTRY_VALUE(kEpidDuplicateErr),
- EPID_STATUS_TEXT_ENTRY_VALUE(kEpidInconsistentBasenameSetErr),
- EPID_STATUS_TEXT_ENTRY_VALUE(kEpidMathQuadraticNonResidueError),
- EPID_STATUS_TEXT_ENTRY_VALUE(kEpidOutOfSequenceError)};
- const char* EpidStatusToName(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].value_name;
- }
- }
- return "unknown";
- }
- std::ostream& operator<<(std::ostream& os, EpidStatus e) {
- const char* enum_name = EpidStatusToName(e);
- return os << enum_name << " (" << std::to_string(e) << ")";
- }
|