/*
 *
 *    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
 *      ASN.1 Object ID Definitions
 *
 *      !!! WARNING !!! WARNING !!! WARNING !!!
 *
 *      DO NOT EDIT THIS FILE! This file is generated by the
 *      gen-oid-table.py script.
 *
 *      To make changes, edit the script and re-run it to generate
 *      this file.
 *
 */

#ifndef ASN1OID_H_
#define ASN1OID_H_

enum OIDCategory
{
    kOIDCategory_PubKeyAlgo = 0x0100,
    kOIDCategory_SigAlgo = 0x0200,
    kOIDCategory_AttributeType = 0x0300,
    kOIDCategory_EllipticCurve = 0x0400,
    kOIDCategory_Extension = 0x0500,
    kOIDCategory_KeyPurpose = 0x0600,

    kOIDCategory_NotSpecified = 0,
    kOIDCategory_Unknown = 0x0F00,
    kOIDCategory_Mask = 0x0F00
};

typedef uint16_t OID;

enum
{
    kOID_PubKeyAlgo_RSAEncryption = 0x0101,
    kOID_PubKeyAlgo_ECPublicKey = 0x0102,
    kOID_PubKeyAlgo_ECDH = 0x0103,
    kOID_PubKeyAlgo_ECMQV = 0x0104,

    kOID_SigAlgo_MD2WithRSAEncryption = 0x0201,
    kOID_SigAlgo_MD5WithRSAEncryption = 0x0202,
    kOID_SigAlgo_SHA1WithRSAEncryption = 0x0203,
    kOID_SigAlgo_ECDSAWithSHA1 = 0x0204,
    kOID_SigAlgo_ECDSAWithSHA256 = 0x0205,
    kOID_SigAlgo_HMACWithSHA256 = 0x0206,

    kOID_AttributeType_CommonName = 0x0301,
    kOID_AttributeType_Surname = 0x0302,
    kOID_AttributeType_SerialNumber = 0x0303,
    kOID_AttributeType_CountryName = 0x0304,
    kOID_AttributeType_LocalityName = 0x0305,
    kOID_AttributeType_StateOrProvinceName = 0x0306,
    kOID_AttributeType_OrganizationName = 0x0307,
    kOID_AttributeType_OrganizationalUnitName = 0x0308,
    kOID_AttributeType_Title = 0x0309,
    kOID_AttributeType_Name = 0x030A,
    kOID_AttributeType_GivenName = 0x030B,
    kOID_AttributeType_Initials = 0x030C,
    kOID_AttributeType_GenerationQualifier = 0x030D,
    kOID_AttributeType_DNQualifier = 0x030E,
    kOID_AttributeType_Pseudonym = 0x030F,
    kOID_AttributeType_DomainComponent = 0x0310,
    kOID_AttributeType_WeaveDeviceId = 0x0311,
    kOID_AttributeType_WeaveServiceEndpointId = 0x0312,
    kOID_AttributeType_WeaveCAId = 0x0313,
    kOID_AttributeType_WeaveSoftwarePublisherId = 0x0314,

    kOID_EllipticCurve_c2pnb163v1 = 0x0401,
    kOID_EllipticCurve_c2pnb163v2 = 0x0402,
    kOID_EllipticCurve_c2pnb163v3 = 0x0403,
    kOID_EllipticCurve_c2pnb176w1 = 0x0404,
    kOID_EllipticCurve_c2tnb191v1 = 0x0405,
    kOID_EllipticCurve_c2tnb191v2 = 0x0406,
    kOID_EllipticCurve_c2tnb191v3 = 0x0407,
    kOID_EllipticCurve_c2onb191v4 = 0x0408,
    kOID_EllipticCurve_c2onb191v5 = 0x0409,
    kOID_EllipticCurve_c2pnb208w1 = 0x040A,
    kOID_EllipticCurve_c2tnb239v1 = 0x040B,
    kOID_EllipticCurve_c2tnb239v2 = 0x040C,
    kOID_EllipticCurve_c2tnb239v3 = 0x040D,
    kOID_EllipticCurve_c2onb239v4 = 0x040E,
    kOID_EllipticCurve_c2onb239v5 = 0x040F,
    kOID_EllipticCurve_c2pnb272w1 = 0x0410,
    kOID_EllipticCurve_c2pnb304w1 = 0x0411,
    kOID_EllipticCurve_c2tnb359v1 = 0x0412,
    kOID_EllipticCurve_c2pnb368w1 = 0x0413,
    kOID_EllipticCurve_c2tnb431r1 = 0x0414,
    kOID_EllipticCurve_prime192v1 = 0x0415,
    kOID_EllipticCurve_prime192v2 = 0x0416,
    kOID_EllipticCurve_prime192v3 = 0x0417,
    kOID_EllipticCurve_prime239v1 = 0x0418,
    kOID_EllipticCurve_prime239v2 = 0x0419,
    kOID_EllipticCurve_prime239v3 = 0x041A,
    kOID_EllipticCurve_prime256v1 = 0x041B,
    kOID_EllipticCurve_secp112r1 = 0x041C,
    kOID_EllipticCurve_secp112r2 = 0x041D,
    kOID_EllipticCurve_secp128r1 = 0x041E,
    kOID_EllipticCurve_secp128r2 = 0x041F,
    kOID_EllipticCurve_secp160k1 = 0x0420,
    kOID_EllipticCurve_secp160r1 = 0x0421,
    kOID_EllipticCurve_secp160r2 = 0x0422,
    kOID_EllipticCurve_secp192k1 = 0x0423,
    kOID_EllipticCurve_secp224k1 = 0x0424,
    kOID_EllipticCurve_secp224r1 = 0x0425,
    kOID_EllipticCurve_secp256k1 = 0x0426,
    kOID_EllipticCurve_secp384r1 = 0x0427,
    kOID_EllipticCurve_secp521r1 = 0x0428,
    kOID_EllipticCurve_sect113r1 = 0x0429,
    kOID_EllipticCurve_sect113r2 = 0x042A,
    kOID_EllipticCurve_sect131r1 = 0x042B,
    kOID_EllipticCurve_sect131r2 = 0x042C,
    kOID_EllipticCurve_sect163k1 = 0x042D,
    kOID_EllipticCurve_sect163r1 = 0x042E,
    kOID_EllipticCurve_sect163r2 = 0x042F,
    kOID_EllipticCurve_sect193r1 = 0x0430,
    kOID_EllipticCurve_sect193r2 = 0x0431,
    kOID_EllipticCurve_sect233k1 = 0x0432,
    kOID_EllipticCurve_sect233r1 = 0x0433,
    kOID_EllipticCurve_sect239k1 = 0x0434,
    kOID_EllipticCurve_sect283k1 = 0x0435,
    kOID_EllipticCurve_sect283r1 = 0x0436,
    kOID_EllipticCurve_sect409k1 = 0x0437,
    kOID_EllipticCurve_sect409r1 = 0x0438,
    kOID_EllipticCurve_sect571k1 = 0x0439,
    kOID_EllipticCurve_sect571r1 = 0x043A,

    kOID_Extension_AuthorityKeyIdentifier = 0x0501,
    kOID_Extension_SubjectKeyIdentifier = 0x0502,
    kOID_Extension_KeyUsage = 0x0503,
    kOID_Extension_BasicConstraints = 0x0504,
    kOID_Extension_ExtendedKeyUsage = 0x0505,

    kOID_KeyPurpose_ServerAuth = 0x0601,
    kOID_KeyPurpose_ClientAuth = 0x0602,
    kOID_KeyPurpose_CodeSigning = 0x0603,
    kOID_KeyPurpose_EmailProtection = 0x0604,
    kOID_KeyPurpose_TimeStamping = 0x0605,
    kOID_KeyPurpose_OCSPSigning = 0x0606,

    kOID_NotSpecified = 0,
    kOID_Unknown = 0xFFFF,
    kOID_Mask = 0x00FF
};

struct OIDTableEntry
{
    OID EnumVal;
    const uint8_t *EncodedOID;
    uint16_t EncodedOIDLen;
};

struct OIDNameTableEntry
{
    OID EnumVal;
    const char *Name;
};

extern const OIDTableEntry sOIDTable[];
extern const OIDNameTableEntry sOIDNameTable[];
extern const size_t sOIDTableSize;

#ifdef ASN1_DEFINE_OID_TABLE

static const uint8_t sOID_PubKeyAlgo_RSAEncryption[] = { 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01 };
static const uint8_t sOID_PubKeyAlgo_ECPublicKey[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x02, 0x01 };
static const uint8_t sOID_PubKeyAlgo_ECDH[] = { 0x2B, 0x81, 0x04, 0x01, 0x0C };
static const uint8_t sOID_PubKeyAlgo_ECMQV[] = { 0x2B, 0x81, 0x04, 0x01, 0x0D };
static const uint8_t sOID_SigAlgo_MD2WithRSAEncryption[] = { 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x02 };
static const uint8_t sOID_SigAlgo_MD5WithRSAEncryption[] = { 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x04 };
static const uint8_t sOID_SigAlgo_SHA1WithRSAEncryption[] = { 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x05 };
static const uint8_t sOID_SigAlgo_ECDSAWithSHA1[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x04, 0x01 };
static const uint8_t sOID_SigAlgo_ECDSAWithSHA256[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x04, 0x03, 0x02 };
static const uint8_t sOID_SigAlgo_HMACWithSHA256[] = { 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x02, 0x09 };
static const uint8_t sOID_AttributeType_CommonName[] = { 0x55, 0x04, 0x03 };
static const uint8_t sOID_AttributeType_Surname[] = { 0x55, 0x04, 0x04 };
static const uint8_t sOID_AttributeType_SerialNumber[] = { 0x55, 0x04, 0x05 };
static const uint8_t sOID_AttributeType_CountryName[] = { 0x55, 0x04, 0x06 };
static const uint8_t sOID_AttributeType_LocalityName[] = { 0x55, 0x04, 0x07 };
static const uint8_t sOID_AttributeType_StateOrProvinceName[] = { 0x55, 0x04, 0x08 };
static const uint8_t sOID_AttributeType_OrganizationName[] = { 0x55, 0x04, 0x0A };
static const uint8_t sOID_AttributeType_OrganizationalUnitName[] = { 0x55, 0x04, 0x0B };
static const uint8_t sOID_AttributeType_Title[] = { 0x55, 0x04, 0x0C };
static const uint8_t sOID_AttributeType_Name[] = { 0x55, 0x04, 0x29 };
static const uint8_t sOID_AttributeType_GivenName[] = { 0x55, 0x04, 0x2A };
static const uint8_t sOID_AttributeType_Initials[] = { 0x55, 0x04, 0x2B };
static const uint8_t sOID_AttributeType_GenerationQualifier[] = { 0x55, 0x04, 0x2C };
static const uint8_t sOID_AttributeType_DNQualifier[] = { 0x55, 0x04, 0x2E };
static const uint8_t sOID_AttributeType_Pseudonym[] = { 0x55, 0x04, 0x41 };
static const uint8_t sOID_AttributeType_DomainComponent[] = { 0x09, 0x92, 0x26, 0x89, 0x93, 0xF2, 0x2C, 0x64, 0x01, 0x19 };
static const uint8_t sOID_AttributeType_WeaveDeviceId[] = { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x82, 0xC3, 0x2B, 0x01, 0x01 };
static const uint8_t sOID_AttributeType_WeaveServiceEndpointId[] = { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x82, 0xC3, 0x2B, 0x01, 0x02 };
static const uint8_t sOID_AttributeType_WeaveCAId[] = { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x82, 0xC3, 0x2B, 0x01, 0x03 };
static const uint8_t sOID_AttributeType_WeaveSoftwarePublisherId[] = { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x82, 0xC3, 0x2B, 0x01, 0x04 };
static const uint8_t sOID_EllipticCurve_c2pnb163v1[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x01 };
static const uint8_t sOID_EllipticCurve_c2pnb163v2[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x02 };
static const uint8_t sOID_EllipticCurve_c2pnb163v3[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x03 };
static const uint8_t sOID_EllipticCurve_c2pnb176w1[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x04 };
static const uint8_t sOID_EllipticCurve_c2tnb191v1[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x05 };
static const uint8_t sOID_EllipticCurve_c2tnb191v2[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x06 };
static const uint8_t sOID_EllipticCurve_c2tnb191v3[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x07 };
static const uint8_t sOID_EllipticCurve_c2onb191v4[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x08 };
static const uint8_t sOID_EllipticCurve_c2onb191v5[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x09 };
static const uint8_t sOID_EllipticCurve_c2pnb208w1[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x0A };
static const uint8_t sOID_EllipticCurve_c2tnb239v1[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x0B };
static const uint8_t sOID_EllipticCurve_c2tnb239v2[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x0C };
static const uint8_t sOID_EllipticCurve_c2tnb239v3[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x0D };
static const uint8_t sOID_EllipticCurve_c2onb239v4[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x0E };
static const uint8_t sOID_EllipticCurve_c2onb239v5[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x0F };
static const uint8_t sOID_EllipticCurve_c2pnb272w1[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x10 };
static const uint8_t sOID_EllipticCurve_c2pnb304w1[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x11 };
static const uint8_t sOID_EllipticCurve_c2tnb359v1[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x12 };
static const uint8_t sOID_EllipticCurve_c2pnb368w1[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x13 };
static const uint8_t sOID_EllipticCurve_c2tnb431r1[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x14 };
static const uint8_t sOID_EllipticCurve_prime192v1[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x01 };
static const uint8_t sOID_EllipticCurve_prime192v2[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x02 };
static const uint8_t sOID_EllipticCurve_prime192v3[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x03 };
static const uint8_t sOID_EllipticCurve_prime239v1[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x04 };
static const uint8_t sOID_EllipticCurve_prime239v2[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x05 };
static const uint8_t sOID_EllipticCurve_prime239v3[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x06 };
static const uint8_t sOID_EllipticCurve_prime256v1[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07 };
static const uint8_t sOID_EllipticCurve_secp112r1[] = { 0x2B, 0x81, 0x04, 0x00, 0x06 };
static const uint8_t sOID_EllipticCurve_secp112r2[] = { 0x2B, 0x81, 0x04, 0x00, 0x07 };
static const uint8_t sOID_EllipticCurve_secp128r1[] = { 0x2B, 0x81, 0x04, 0x00, 0x1C };
static const uint8_t sOID_EllipticCurve_secp128r2[] = { 0x2B, 0x81, 0x04, 0x00, 0x1D };
static const uint8_t sOID_EllipticCurve_secp160k1[] = { 0x2B, 0x81, 0x04, 0x00, 0x09 };
static const uint8_t sOID_EllipticCurve_secp160r1[] = { 0x2B, 0x81, 0x04, 0x00, 0x08 };
static const uint8_t sOID_EllipticCurve_secp160r2[] = { 0x2B, 0x81, 0x04, 0x00, 0x1E };
static const uint8_t sOID_EllipticCurve_secp192k1[] = { 0x2B, 0x81, 0x04, 0x00, 0x1F };
static const uint8_t sOID_EllipticCurve_secp224k1[] = { 0x2B, 0x81, 0x04, 0x00, 0x20 };
static const uint8_t sOID_EllipticCurve_secp224r1[] = { 0x2B, 0x81, 0x04, 0x00, 0x21 };
static const uint8_t sOID_EllipticCurve_secp256k1[] = { 0x2B, 0x81, 0x04, 0x00, 0x0A };
static const uint8_t sOID_EllipticCurve_secp384r1[] = { 0x2B, 0x81, 0x04, 0x00, 0x22 };
static const uint8_t sOID_EllipticCurve_secp521r1[] = { 0x2B, 0x81, 0x04, 0x00, 0x23 };
static const uint8_t sOID_EllipticCurve_sect113r1[] = { 0x2B, 0x81, 0x04, 0x00, 0x04 };
static const uint8_t sOID_EllipticCurve_sect113r2[] = { 0x2B, 0x81, 0x04, 0x00, 0x05 };
static const uint8_t sOID_EllipticCurve_sect131r1[] = { 0x2B, 0x81, 0x04, 0x00, 0x16 };
static const uint8_t sOID_EllipticCurve_sect131r2[] = { 0x2B, 0x81, 0x04, 0x00, 0x17 };
static const uint8_t sOID_EllipticCurve_sect163k1[] = { 0x2B, 0x81, 0x04, 0x00, 0x01 };
static const uint8_t sOID_EllipticCurve_sect163r1[] = { 0x2B, 0x81, 0x04, 0x00, 0x02 };
static const uint8_t sOID_EllipticCurve_sect163r2[] = { 0x2B, 0x81, 0x04, 0x00, 0x0F };
static const uint8_t sOID_EllipticCurve_sect193r1[] = { 0x2B, 0x81, 0x04, 0x00, 0x18 };
static const uint8_t sOID_EllipticCurve_sect193r2[] = { 0x2B, 0x81, 0x04, 0x00, 0x19 };
static const uint8_t sOID_EllipticCurve_sect233k1[] = { 0x2B, 0x81, 0x04, 0x00, 0x1A };
static const uint8_t sOID_EllipticCurve_sect233r1[] = { 0x2B, 0x81, 0x04, 0x00, 0x1B };
static const uint8_t sOID_EllipticCurve_sect239k1[] = { 0x2B, 0x81, 0x04, 0x00, 0x03 };
static const uint8_t sOID_EllipticCurve_sect283k1[] = { 0x2B, 0x81, 0x04, 0x00, 0x10 };
static const uint8_t sOID_EllipticCurve_sect283r1[] = { 0x2B, 0x81, 0x04, 0x00, 0x11 };
static const uint8_t sOID_EllipticCurve_sect409k1[] = { 0x2B, 0x81, 0x04, 0x00, 0x24 };
static const uint8_t sOID_EllipticCurve_sect409r1[] = { 0x2B, 0x81, 0x04, 0x00, 0x25 };
static const uint8_t sOID_EllipticCurve_sect571k1[] = { 0x2B, 0x81, 0x04, 0x00, 0x26 };
static const uint8_t sOID_EllipticCurve_sect571r1[] = { 0x2B, 0x81, 0x04, 0x00, 0x27 };
static const uint8_t sOID_Extension_AuthorityKeyIdentifier[] = { 0x55, 0x1D, 0x23 };
static const uint8_t sOID_Extension_SubjectKeyIdentifier[] = { 0x55, 0x1D, 0x0E };
static const uint8_t sOID_Extension_KeyUsage[] = { 0x55, 0x1D, 0x0F };
static const uint8_t sOID_Extension_BasicConstraints[] = { 0x55, 0x1D, 0x13 };
static const uint8_t sOID_Extension_ExtendedKeyUsage[] = { 0x55, 0x1D, 0x25 };
static const uint8_t sOID_KeyPurpose_ServerAuth[] = { 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x01 };
static const uint8_t sOID_KeyPurpose_ClientAuth[] = { 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02 };
static const uint8_t sOID_KeyPurpose_CodeSigning[] = { 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x03 };
static const uint8_t sOID_KeyPurpose_EmailProtection[] = { 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x04 };
static const uint8_t sOID_KeyPurpose_TimeStamping[] = { 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x08 };
static const uint8_t sOID_KeyPurpose_OCSPSigning[] = { 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x09 };

const OIDTableEntry sOIDTable[] =
{
    { kOID_PubKeyAlgo_RSAEncryption, sOID_PubKeyAlgo_RSAEncryption, sizeof(sOID_PubKeyAlgo_RSAEncryption) },
    { kOID_PubKeyAlgo_ECPublicKey, sOID_PubKeyAlgo_ECPublicKey, sizeof(sOID_PubKeyAlgo_ECPublicKey) },
    { kOID_PubKeyAlgo_ECDH, sOID_PubKeyAlgo_ECDH, sizeof(sOID_PubKeyAlgo_ECDH) },
    { kOID_PubKeyAlgo_ECMQV, sOID_PubKeyAlgo_ECMQV, sizeof(sOID_PubKeyAlgo_ECMQV) },
    { kOID_SigAlgo_MD2WithRSAEncryption, sOID_SigAlgo_MD2WithRSAEncryption, sizeof(sOID_SigAlgo_MD2WithRSAEncryption) },
    { kOID_SigAlgo_MD5WithRSAEncryption, sOID_SigAlgo_MD5WithRSAEncryption, sizeof(sOID_SigAlgo_MD5WithRSAEncryption) },
    { kOID_SigAlgo_SHA1WithRSAEncryption, sOID_SigAlgo_SHA1WithRSAEncryption, sizeof(sOID_SigAlgo_SHA1WithRSAEncryption) },
    { kOID_SigAlgo_ECDSAWithSHA1, sOID_SigAlgo_ECDSAWithSHA1, sizeof(sOID_SigAlgo_ECDSAWithSHA1) },
    { kOID_SigAlgo_ECDSAWithSHA256, sOID_SigAlgo_ECDSAWithSHA256, sizeof(sOID_SigAlgo_ECDSAWithSHA256) },
    { kOID_SigAlgo_HMACWithSHA256, sOID_SigAlgo_HMACWithSHA256, sizeof(sOID_SigAlgo_HMACWithSHA256) },
    { kOID_AttributeType_CommonName, sOID_AttributeType_CommonName, sizeof(sOID_AttributeType_CommonName) },
    { kOID_AttributeType_Surname, sOID_AttributeType_Surname, sizeof(sOID_AttributeType_Surname) },
    { kOID_AttributeType_SerialNumber, sOID_AttributeType_SerialNumber, sizeof(sOID_AttributeType_SerialNumber) },
    { kOID_AttributeType_CountryName, sOID_AttributeType_CountryName, sizeof(sOID_AttributeType_CountryName) },
    { kOID_AttributeType_LocalityName, sOID_AttributeType_LocalityName, sizeof(sOID_AttributeType_LocalityName) },
    { kOID_AttributeType_StateOrProvinceName, sOID_AttributeType_StateOrProvinceName, sizeof(sOID_AttributeType_StateOrProvinceName) },
    { kOID_AttributeType_OrganizationName, sOID_AttributeType_OrganizationName, sizeof(sOID_AttributeType_OrganizationName) },
    { kOID_AttributeType_OrganizationalUnitName, sOID_AttributeType_OrganizationalUnitName, sizeof(sOID_AttributeType_OrganizationalUnitName) },
    { kOID_AttributeType_Title, sOID_AttributeType_Title, sizeof(sOID_AttributeType_Title) },
    { kOID_AttributeType_Name, sOID_AttributeType_Name, sizeof(sOID_AttributeType_Name) },
    { kOID_AttributeType_GivenName, sOID_AttributeType_GivenName, sizeof(sOID_AttributeType_GivenName) },
    { kOID_AttributeType_Initials, sOID_AttributeType_Initials, sizeof(sOID_AttributeType_Initials) },
    { kOID_AttributeType_GenerationQualifier, sOID_AttributeType_GenerationQualifier, sizeof(sOID_AttributeType_GenerationQualifier) },
    { kOID_AttributeType_DNQualifier, sOID_AttributeType_DNQualifier, sizeof(sOID_AttributeType_DNQualifier) },
    { kOID_AttributeType_Pseudonym, sOID_AttributeType_Pseudonym, sizeof(sOID_AttributeType_Pseudonym) },
    { kOID_AttributeType_DomainComponent, sOID_AttributeType_DomainComponent, sizeof(sOID_AttributeType_DomainComponent) },
    { kOID_AttributeType_WeaveDeviceId, sOID_AttributeType_WeaveDeviceId, sizeof(sOID_AttributeType_WeaveDeviceId) },
    { kOID_AttributeType_WeaveServiceEndpointId, sOID_AttributeType_WeaveServiceEndpointId, sizeof(sOID_AttributeType_WeaveServiceEndpointId) },
    { kOID_AttributeType_WeaveCAId, sOID_AttributeType_WeaveCAId, sizeof(sOID_AttributeType_WeaveCAId) },
    { kOID_AttributeType_WeaveSoftwarePublisherId, sOID_AttributeType_WeaveSoftwarePublisherId, sizeof(sOID_AttributeType_WeaveSoftwarePublisherId) },
    { kOID_EllipticCurve_c2pnb163v1, sOID_EllipticCurve_c2pnb163v1, sizeof(sOID_EllipticCurve_c2pnb163v1) },
    { kOID_EllipticCurve_c2pnb163v2, sOID_EllipticCurve_c2pnb163v2, sizeof(sOID_EllipticCurve_c2pnb163v2) },
    { kOID_EllipticCurve_c2pnb163v3, sOID_EllipticCurve_c2pnb163v3, sizeof(sOID_EllipticCurve_c2pnb163v3) },
    { kOID_EllipticCurve_c2pnb176w1, sOID_EllipticCurve_c2pnb176w1, sizeof(sOID_EllipticCurve_c2pnb176w1) },
    { kOID_EllipticCurve_c2tnb191v1, sOID_EllipticCurve_c2tnb191v1, sizeof(sOID_EllipticCurve_c2tnb191v1) },
    { kOID_EllipticCurve_c2tnb191v2, sOID_EllipticCurve_c2tnb191v2, sizeof(sOID_EllipticCurve_c2tnb191v2) },
    { kOID_EllipticCurve_c2tnb191v3, sOID_EllipticCurve_c2tnb191v3, sizeof(sOID_EllipticCurve_c2tnb191v3) },
    { kOID_EllipticCurve_c2onb191v4, sOID_EllipticCurve_c2onb191v4, sizeof(sOID_EllipticCurve_c2onb191v4) },
    { kOID_EllipticCurve_c2onb191v5, sOID_EllipticCurve_c2onb191v5, sizeof(sOID_EllipticCurve_c2onb191v5) },
    { kOID_EllipticCurve_c2pnb208w1, sOID_EllipticCurve_c2pnb208w1, sizeof(sOID_EllipticCurve_c2pnb208w1) },
    { kOID_EllipticCurve_c2tnb239v1, sOID_EllipticCurve_c2tnb239v1, sizeof(sOID_EllipticCurve_c2tnb239v1) },
    { kOID_EllipticCurve_c2tnb239v2, sOID_EllipticCurve_c2tnb239v2, sizeof(sOID_EllipticCurve_c2tnb239v2) },
    { kOID_EllipticCurve_c2tnb239v3, sOID_EllipticCurve_c2tnb239v3, sizeof(sOID_EllipticCurve_c2tnb239v3) },
    { kOID_EllipticCurve_c2onb239v4, sOID_EllipticCurve_c2onb239v4, sizeof(sOID_EllipticCurve_c2onb239v4) },
    { kOID_EllipticCurve_c2onb239v5, sOID_EllipticCurve_c2onb239v5, sizeof(sOID_EllipticCurve_c2onb239v5) },
    { kOID_EllipticCurve_c2pnb272w1, sOID_EllipticCurve_c2pnb272w1, sizeof(sOID_EllipticCurve_c2pnb272w1) },
    { kOID_EllipticCurve_c2pnb304w1, sOID_EllipticCurve_c2pnb304w1, sizeof(sOID_EllipticCurve_c2pnb304w1) },
    { kOID_EllipticCurve_c2tnb359v1, sOID_EllipticCurve_c2tnb359v1, sizeof(sOID_EllipticCurve_c2tnb359v1) },
    { kOID_EllipticCurve_c2pnb368w1, sOID_EllipticCurve_c2pnb368w1, sizeof(sOID_EllipticCurve_c2pnb368w1) },
    { kOID_EllipticCurve_c2tnb431r1, sOID_EllipticCurve_c2tnb431r1, sizeof(sOID_EllipticCurve_c2tnb431r1) },
    { kOID_EllipticCurve_prime192v1, sOID_EllipticCurve_prime192v1, sizeof(sOID_EllipticCurve_prime192v1) },
    { kOID_EllipticCurve_prime192v2, sOID_EllipticCurve_prime192v2, sizeof(sOID_EllipticCurve_prime192v2) },
    { kOID_EllipticCurve_prime192v3, sOID_EllipticCurve_prime192v3, sizeof(sOID_EllipticCurve_prime192v3) },
    { kOID_EllipticCurve_prime239v1, sOID_EllipticCurve_prime239v1, sizeof(sOID_EllipticCurve_prime239v1) },
    { kOID_EllipticCurve_prime239v2, sOID_EllipticCurve_prime239v2, sizeof(sOID_EllipticCurve_prime239v2) },
    { kOID_EllipticCurve_prime239v3, sOID_EllipticCurve_prime239v3, sizeof(sOID_EllipticCurve_prime239v3) },
    { kOID_EllipticCurve_prime256v1, sOID_EllipticCurve_prime256v1, sizeof(sOID_EllipticCurve_prime256v1) },
    { kOID_EllipticCurve_secp112r1, sOID_EllipticCurve_secp112r1, sizeof(sOID_EllipticCurve_secp112r1) },
    { kOID_EllipticCurve_secp112r2, sOID_EllipticCurve_secp112r2, sizeof(sOID_EllipticCurve_secp112r2) },
    { kOID_EllipticCurve_secp128r1, sOID_EllipticCurve_secp128r1, sizeof(sOID_EllipticCurve_secp128r1) },
    { kOID_EllipticCurve_secp128r2, sOID_EllipticCurve_secp128r2, sizeof(sOID_EllipticCurve_secp128r2) },
    { kOID_EllipticCurve_secp160k1, sOID_EllipticCurve_secp160k1, sizeof(sOID_EllipticCurve_secp160k1) },
    { kOID_EllipticCurve_secp160r1, sOID_EllipticCurve_secp160r1, sizeof(sOID_EllipticCurve_secp160r1) },
    { kOID_EllipticCurve_secp160r2, sOID_EllipticCurve_secp160r2, sizeof(sOID_EllipticCurve_secp160r2) },
    { kOID_EllipticCurve_secp192k1, sOID_EllipticCurve_secp192k1, sizeof(sOID_EllipticCurve_secp192k1) },
    { kOID_EllipticCurve_secp224k1, sOID_EllipticCurve_secp224k1, sizeof(sOID_EllipticCurve_secp224k1) },
    { kOID_EllipticCurve_secp224r1, sOID_EllipticCurve_secp224r1, sizeof(sOID_EllipticCurve_secp224r1) },
    { kOID_EllipticCurve_secp256k1, sOID_EllipticCurve_secp256k1, sizeof(sOID_EllipticCurve_secp256k1) },
    { kOID_EllipticCurve_secp384r1, sOID_EllipticCurve_secp384r1, sizeof(sOID_EllipticCurve_secp384r1) },
    { kOID_EllipticCurve_secp521r1, sOID_EllipticCurve_secp521r1, sizeof(sOID_EllipticCurve_secp521r1) },
    { kOID_EllipticCurve_sect113r1, sOID_EllipticCurve_sect113r1, sizeof(sOID_EllipticCurve_sect113r1) },
    { kOID_EllipticCurve_sect113r2, sOID_EllipticCurve_sect113r2, sizeof(sOID_EllipticCurve_sect113r2) },
    { kOID_EllipticCurve_sect131r1, sOID_EllipticCurve_sect131r1, sizeof(sOID_EllipticCurve_sect131r1) },
    { kOID_EllipticCurve_sect131r2, sOID_EllipticCurve_sect131r2, sizeof(sOID_EllipticCurve_sect131r2) },
    { kOID_EllipticCurve_sect163k1, sOID_EllipticCurve_sect163k1, sizeof(sOID_EllipticCurve_sect163k1) },
    { kOID_EllipticCurve_sect163r1, sOID_EllipticCurve_sect163r1, sizeof(sOID_EllipticCurve_sect163r1) },
    { kOID_EllipticCurve_sect163r2, sOID_EllipticCurve_sect163r2, sizeof(sOID_EllipticCurve_sect163r2) },
    { kOID_EllipticCurve_sect193r1, sOID_EllipticCurve_sect193r1, sizeof(sOID_EllipticCurve_sect193r1) },
    { kOID_EllipticCurve_sect193r2, sOID_EllipticCurve_sect193r2, sizeof(sOID_EllipticCurve_sect193r2) },
    { kOID_EllipticCurve_sect233k1, sOID_EllipticCurve_sect233k1, sizeof(sOID_EllipticCurve_sect233k1) },
    { kOID_EllipticCurve_sect233r1, sOID_EllipticCurve_sect233r1, sizeof(sOID_EllipticCurve_sect233r1) },
    { kOID_EllipticCurve_sect239k1, sOID_EllipticCurve_sect239k1, sizeof(sOID_EllipticCurve_sect239k1) },
    { kOID_EllipticCurve_sect283k1, sOID_EllipticCurve_sect283k1, sizeof(sOID_EllipticCurve_sect283k1) },
    { kOID_EllipticCurve_sect283r1, sOID_EllipticCurve_sect283r1, sizeof(sOID_EllipticCurve_sect283r1) },
    { kOID_EllipticCurve_sect409k1, sOID_EllipticCurve_sect409k1, sizeof(sOID_EllipticCurve_sect409k1) },
    { kOID_EllipticCurve_sect409r1, sOID_EllipticCurve_sect409r1, sizeof(sOID_EllipticCurve_sect409r1) },
    { kOID_EllipticCurve_sect571k1, sOID_EllipticCurve_sect571k1, sizeof(sOID_EllipticCurve_sect571k1) },
    { kOID_EllipticCurve_sect571r1, sOID_EllipticCurve_sect571r1, sizeof(sOID_EllipticCurve_sect571r1) },
    { kOID_Extension_AuthorityKeyIdentifier, sOID_Extension_AuthorityKeyIdentifier, sizeof(sOID_Extension_AuthorityKeyIdentifier) },
    { kOID_Extension_SubjectKeyIdentifier, sOID_Extension_SubjectKeyIdentifier, sizeof(sOID_Extension_SubjectKeyIdentifier) },
    { kOID_Extension_KeyUsage, sOID_Extension_KeyUsage, sizeof(sOID_Extension_KeyUsage) },
    { kOID_Extension_BasicConstraints, sOID_Extension_BasicConstraints, sizeof(sOID_Extension_BasicConstraints) },
    { kOID_Extension_ExtendedKeyUsage, sOID_Extension_ExtendedKeyUsage, sizeof(sOID_Extension_ExtendedKeyUsage) },
    { kOID_KeyPurpose_ServerAuth, sOID_KeyPurpose_ServerAuth, sizeof(sOID_KeyPurpose_ServerAuth) },
    { kOID_KeyPurpose_ClientAuth, sOID_KeyPurpose_ClientAuth, sizeof(sOID_KeyPurpose_ClientAuth) },
    { kOID_KeyPurpose_CodeSigning, sOID_KeyPurpose_CodeSigning, sizeof(sOID_KeyPurpose_CodeSigning) },
    { kOID_KeyPurpose_EmailProtection, sOID_KeyPurpose_EmailProtection, sizeof(sOID_KeyPurpose_EmailProtection) },
    { kOID_KeyPurpose_TimeStamping, sOID_KeyPurpose_TimeStamping, sizeof(sOID_KeyPurpose_TimeStamping) },
    { kOID_KeyPurpose_OCSPSigning, sOID_KeyPurpose_OCSPSigning, sizeof(sOID_KeyPurpose_OCSPSigning) },
    { kOID_NotSpecified, NULL, 0 }
};

const size_t sOIDTableSize = 99;

#endif // ASN1_DEFINE_OID_TABLE

#ifdef ASN1_DEFINE_OID_NAME_TABLE

const OIDNameTableEntry sOIDNameTable[] =
{
    { kOID_PubKeyAlgo_RSAEncryption, "RSAEncryption" },
    { kOID_PubKeyAlgo_ECPublicKey, "ECPublicKey" },
    { kOID_PubKeyAlgo_ECDH, "ECDH" },
    { kOID_PubKeyAlgo_ECMQV, "ECMQV" },
    { kOID_SigAlgo_MD2WithRSAEncryption, "MD2WithRSAEncryption" },
    { kOID_SigAlgo_MD5WithRSAEncryption, "MD5WithRSAEncryption" },
    { kOID_SigAlgo_SHA1WithRSAEncryption, "SHA1WithRSAEncryption" },
    { kOID_SigAlgo_ECDSAWithSHA1, "ECDSAWithSHA1" },
    { kOID_SigAlgo_ECDSAWithSHA256, "ECDSAWithSHA256" },
    { kOID_SigAlgo_HMACWithSHA256, "HMACWithSHA256" },
    { kOID_AttributeType_CommonName, "CommonName" },
    { kOID_AttributeType_Surname, "Surname" },
    { kOID_AttributeType_SerialNumber, "SerialNumber" },
    { kOID_AttributeType_CountryName, "CountryName" },
    { kOID_AttributeType_LocalityName, "LocalityName" },
    { kOID_AttributeType_StateOrProvinceName, "StateOrProvinceName" },
    { kOID_AttributeType_OrganizationName, "OrganizationName" },
    { kOID_AttributeType_OrganizationalUnitName, "OrganizationalUnitName" },
    { kOID_AttributeType_Title, "Title" },
    { kOID_AttributeType_Name, "Name" },
    { kOID_AttributeType_GivenName, "GivenName" },
    { kOID_AttributeType_Initials, "Initials" },
    { kOID_AttributeType_GenerationQualifier, "GenerationQualifier" },
    { kOID_AttributeType_DNQualifier, "DNQualifier" },
    { kOID_AttributeType_Pseudonym, "Pseudonym" },
    { kOID_AttributeType_DomainComponent, "DomainComponent" },
    { kOID_AttributeType_WeaveDeviceId, "WeaveDeviceId" },
    { kOID_AttributeType_WeaveServiceEndpointId, "WeaveServiceEndpointId" },
    { kOID_AttributeType_WeaveCAId, "WeaveCAId" },
    { kOID_AttributeType_WeaveSoftwarePublisherId, "WeaveSoftwarePublisherId" },
    { kOID_EllipticCurve_c2pnb163v1, "c2pnb163v1" },
    { kOID_EllipticCurve_c2pnb163v2, "c2pnb163v2" },
    { kOID_EllipticCurve_c2pnb163v3, "c2pnb163v3" },
    { kOID_EllipticCurve_c2pnb176w1, "c2pnb176w1" },
    { kOID_EllipticCurve_c2tnb191v1, "c2tnb191v1" },
    { kOID_EllipticCurve_c2tnb191v2, "c2tnb191v2" },
    { kOID_EllipticCurve_c2tnb191v3, "c2tnb191v3" },
    { kOID_EllipticCurve_c2onb191v4, "c2onb191v4" },
    { kOID_EllipticCurve_c2onb191v5, "c2onb191v5" },
    { kOID_EllipticCurve_c2pnb208w1, "c2pnb208w1" },
    { kOID_EllipticCurve_c2tnb239v1, "c2tnb239v1" },
    { kOID_EllipticCurve_c2tnb239v2, "c2tnb239v2" },
    { kOID_EllipticCurve_c2tnb239v3, "c2tnb239v3" },
    { kOID_EllipticCurve_c2onb239v4, "c2onb239v4" },
    { kOID_EllipticCurve_c2onb239v5, "c2onb239v5" },
    { kOID_EllipticCurve_c2pnb272w1, "c2pnb272w1" },
    { kOID_EllipticCurve_c2pnb304w1, "c2pnb304w1" },
    { kOID_EllipticCurve_c2tnb359v1, "c2tnb359v1" },
    { kOID_EllipticCurve_c2pnb368w1, "c2pnb368w1" },
    { kOID_EllipticCurve_c2tnb431r1, "c2tnb431r1" },
    { kOID_EllipticCurve_prime192v1, "prime192v1" },
    { kOID_EllipticCurve_prime192v2, "prime192v2" },
    { kOID_EllipticCurve_prime192v3, "prime192v3" },
    { kOID_EllipticCurve_prime239v1, "prime239v1" },
    { kOID_EllipticCurve_prime239v2, "prime239v2" },
    { kOID_EllipticCurve_prime239v3, "prime239v3" },
    { kOID_EllipticCurve_prime256v1, "prime256v1" },
    { kOID_EllipticCurve_secp112r1, "secp112r1" },
    { kOID_EllipticCurve_secp112r2, "secp112r2" },
    { kOID_EllipticCurve_secp128r1, "secp128r1" },
    { kOID_EllipticCurve_secp128r2, "secp128r2" },
    { kOID_EllipticCurve_secp160k1, "secp160k1" },
    { kOID_EllipticCurve_secp160r1, "secp160r1" },
    { kOID_EllipticCurve_secp160r2, "secp160r2" },
    { kOID_EllipticCurve_secp192k1, "secp192k1" },
    { kOID_EllipticCurve_secp224k1, "secp224k1" },
    { kOID_EllipticCurve_secp224r1, "secp224r1" },
    { kOID_EllipticCurve_secp256k1, "secp256k1" },
    { kOID_EllipticCurve_secp384r1, "secp384r1" },
    { kOID_EllipticCurve_secp521r1, "secp521r1" },
    { kOID_EllipticCurve_sect113r1, "sect113r1" },
    { kOID_EllipticCurve_sect113r2, "sect113r2" },
    { kOID_EllipticCurve_sect131r1, "sect131r1" },
    { kOID_EllipticCurve_sect131r2, "sect131r2" },
    { kOID_EllipticCurve_sect163k1, "sect163k1" },
    { kOID_EllipticCurve_sect163r1, "sect163r1" },
    { kOID_EllipticCurve_sect163r2, "sect163r2" },
    { kOID_EllipticCurve_sect193r1, "sect193r1" },
    { kOID_EllipticCurve_sect193r2, "sect193r2" },
    { kOID_EllipticCurve_sect233k1, "sect233k1" },
    { kOID_EllipticCurve_sect233r1, "sect233r1" },
    { kOID_EllipticCurve_sect239k1, "sect239k1" },
    { kOID_EllipticCurve_sect283k1, "sect283k1" },
    { kOID_EllipticCurve_sect283r1, "sect283r1" },
    { kOID_EllipticCurve_sect409k1, "sect409k1" },
    { kOID_EllipticCurve_sect409r1, "sect409r1" },
    { kOID_EllipticCurve_sect571k1, "sect571k1" },
    { kOID_EllipticCurve_sect571r1, "sect571r1" },
    { kOID_Extension_AuthorityKeyIdentifier, "AuthorityKeyIdentifier" },
    { kOID_Extension_SubjectKeyIdentifier, "SubjectKeyIdentifier" },
    { kOID_Extension_KeyUsage, "KeyUsage" },
    { kOID_Extension_BasicConstraints, "BasicConstraints" },
    { kOID_Extension_ExtendedKeyUsage, "ExtendedKeyUsage" },
    { kOID_KeyPurpose_ServerAuth, "ServerAuth" },
    { kOID_KeyPurpose_ClientAuth, "ClientAuth" },
    { kOID_KeyPurpose_CodeSigning, "CodeSigning" },
    { kOID_KeyPurpose_EmailProtection, "EmailProtection" },
    { kOID_KeyPurpose_TimeStamping, "TimeStamping" },
    { kOID_KeyPurpose_OCSPSigning, "OCSPSigning" },
    { kOID_NotSpecified, NULL }
};

#endif // ASN1_DEFINE_OID_NAME_TABLE


#endif // ASN1OID_H_
