/* * * Copyright (c) 2020 Project CHIP Authors * Copyright (c) 2013-2017 Nest Labs, Inc. * All rights reserved. * * 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 * This file defines constants for the CHIP ASN1 subsystem. * * Error types, ranges, and mappings overrides may be made by * defining the appropriate ASN1_CONFIG_* or _ASN1_CONFIG_* * macros. * */ #pragma once #include "ASN1Config.h" #include #define CHIP_ASN1_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kASN1, (e)) namespace chip { namespace ASN1 { // clang-format off /** * @name Error Definitions * * @{ */ /** * @def ASN1_END * * @brief * An end of ASN1 container or stream condition occurred. * */ #define ASN1_END CHIP_ASN1_ERROR(0x00) /** * @def ASN1_ERROR_UNDERRUN * * @brief * The ASN.1 encoding ended prematurely. * */ #define ASN1_ERROR_UNDERRUN CHIP_ASN1_ERROR(0x01) /** * @def ASN1_ERROR_OVERFLOW * * @brief * The encoding exceeds the available space required to write it. * */ #define ASN1_ERROR_OVERFLOW CHIP_ASN1_ERROR(0x02) /** * @def ASN1_ERROR_INVALID_STATE * * @brief * An unexpected or invalid state was encountered. * */ #define ASN1_ERROR_INVALID_STATE CHIP_ASN1_ERROR(0x03) /** * @def ASN1_ERROR_MAX_DEPTH_EXCEEDED * * @brief * The maximum number of container reading contexts was exceeded. * */ #define ASN1_ERROR_MAX_DEPTH_EXCEEDED CHIP_ASN1_ERROR(0x04) /** * @def ASN1_ERROR_INVALID_ENCODING * * @brief * The ASN.1 encoding is invalid. * */ #define ASN1_ERROR_INVALID_ENCODING CHIP_ASN1_ERROR(0x05) /** * @def ASN1_ERROR_UNSUPPORTED_ENCODING * * @brief * An unsupported encoding was requested or encountered. * */ #define ASN1_ERROR_UNSUPPORTED_ENCODING CHIP_ASN1_ERROR(0x06) /** * @def ASN1_ERROR_TAG_OVERFLOW * * @brief * An encoded tag exceeds the available or allowed space required * for it. * */ #define ASN1_ERROR_TAG_OVERFLOW CHIP_ASN1_ERROR(0x07) /** * @def ASN1_ERROR_LENGTH_OVERFLOW * * @brief * An encoded length exceeds the available or allowed space * required for it. * */ #define ASN1_ERROR_LENGTH_OVERFLOW CHIP_ASN1_ERROR(0x08) /** * @def ASN1_ERROR_VALUE_OVERFLOW * * @brief * An encoded value exceeds the available or allowed space * required for it. * */ #define ASN1_ERROR_VALUE_OVERFLOW CHIP_ASN1_ERROR(0x09) /** * @def ASN1_ERROR_UNKNOWN_OBJECT_ID * * @brief * A requested object identifier does not match the list of * supported object identifiers. * */ #define ASN1_ERROR_UNKNOWN_OBJECT_ID CHIP_ASN1_ERROR(0x0a) // !!!!! IMPORTANT !!!!! // // If you add new ASN1 errors, please update the translation of error // codes to strings in ASN1Error.cpp, and add them to unittest // in test-apps/TestErrorStr.cpp /** * @} */ // clang-format on bool FormatASN1Error(char * buf, uint16_t bufSize, CHIP_ERROR err); } // namespace ASN1 } // namespace chip