SOL9 2.0 Class: OIDNames

 SOL9 C++ Class Library  SOL9 Samples  SOL9 Tutorial  SOL9 FAQ  SOL9 ClassTree  SOL9 ClassList 

Source code

/******************************************************************************
 *
 * Copyright (c) 2009 Antillia.com TOSHIYUKI ARAI. ALL RIGHTS RESERVED.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions, and the following disclaimer.
 *  
 * 2. The name of the author may not be used to endorse or promote products
 *    derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 *
 *  OIDNames.h
 *
 *****************************************************************************/

// SOL9
// 2009/10/04

#pragma once


#include <sol/Object.h>

namespace SOL {

class OIDNames :public Object {

public:
  OIDNames()
  {
  }

public:
  const char* getName(const char* oid)
  {
    typedef struct {
      const char* name;
      const char* id;
    } NamePair;

    static const NamePair names[] =
    { 
      {"RSA",  "1.2.840.113549"},
      {"PKCS",  "1.2.840.113549.1"},
      {"RSA_HASH",  "1.2.840.113549.2"},
      {"RSA_ENCRYPT",  "1.2.840.113549.3"},
      {"PKCS_1",  "1.2.840.113549.1.1"},
      {"PKCS_2",  "1.2.840.113549.1.2"},
      {"PKCS_3",  "1.2.840.113549.1.3"},
      {"PKCS_4",  "1.2.840.113549.1.4"},
      {"PKCS_5",  "1.2.840.113549.1.5"},
      {"PKCS_6",  "1.2.840.113549.1.6"},
      {"PKCS_7",  "1.2.840.113549.1.7"},
      {"PKCS_8",  "1.2.840.113549.1.8"},
      {"PKCS_9",  "1.2.840.113549.1.9"},
      {"PKCS_10",  "1.2.840.113549.1.10"},
      {"PKCS_11",  "1.2.840.113549.1.12"},
      {"RSA_RSA",  "1.2.840.113549.1.1.1"},
      {"RSA_MD2RSA",  "1.2.840.113549.1.1.2"},
      {"RSA_MD4RSA",  "1.2.840.113549.1.1.3"},
      {"RSA_MD5RSA",  "1.2.840.113549.1.1.4"},
      {"RSA_SHA1RSA",  "1.2.840.113549.1.1.5"},
      {"RSA_SET0AEP_RSA",  "1.2.840.113549.1.1.6"},
      {"RSA_DH",  "1.2.840.113549.1.3.1"},
      {"RSA_data",  "1.2.840.113549.1.7.1"},
      {"RSA_signedData",  "1.2.840.113549.1.7.2"},
      {"RSA_envelopedData",  "1.2.840.113549.1.7.3"},
      {"RSA_signEnvData",  "1.2.840.113549.1.7.4"},
      {"RSA_digestedData",  "1.2.840.113549.1.7.5"},
      {"RSA_hashedData",  "1.2.840.113549.1.7.5"},
      {"RSA_encryptedData",  "1.2.840.113549.1.7.6"},
      {"RSA_emailAddr",  "1.2.840.113549.1.9.1"},
      {"RSA_unstructName",  "1.2.840.113549.1.9.2"},
      {"RSA_contentType",  "1.2.840.113549.1.9.3"},
      {"RSA_messageDigest",  "1.2.840.113549.1.9.4"},
      {"RSA_signingTime",  "1.2.840.113549.1.9.5"},
      {"RSA_counterSign",  "1.2.840.113549.1.9.6"},
      {"RSA_challengePwd",  "1.2.840.113549.1.9.7"},
      {"RSA_unstructAddr",  "1.2.840.113549.1.9.9"},
      {"RSA_extCertAttrs",  "1.2.840.113549.1.9.9"},
      {"RSA_certExtensions",  "1.2.840.113549.1.9.14"},
      {"RSA_SMIMECapabilities",  "1.2.840.113549.1.9.15"},
      {"RSA_preferSignedData",  "1.2.840.113549.1.9.15.1"},
      {"RSA_SMIMEalg",  "1.2.840.113549.1.9.16.3"},
      {"RSA_SMIMEalgESDH",  "1.2.840.113549.1.9.16.3.5"},
      {"RSA_SMIMEalgCMS3DESwrap",  "1.2.840.113549.1.9.16.3.6"},
      {"RSA_SMIMEalgCMSRC2wrap",  "1.2.840.113549.1.9.16.3.7"},
      {"RSA_MD2",  "1.2.840.113549.2.2"},
      {"RSA_MD4",  "1.2.840.113549.2.4"},
      {"RSA_MD5",  "1.2.840.113549.2.5"},
      {"RSA_RC2CBC",  "1.2.840.113549.3.2"},
      {"RSA_RC4",  "1.2.840.113549.3.4"},
      {"RSA_DES_EDE3_CBC",  "1.2.840.113549.3.7"},
      {"RSA_RC5_CBCPad",  "1.2.840.113549.3.9"},
      {"ANSI_X942",  "1.2.840.10046"},
      {"ANSI_X942_DH",  "1.2.840.10046.2.1"},
      {"X957",  "1.2.840.10040"},
      {"X957_DSA",  "1.2.840.10040.4.1"},
      {"X957_SHA1DSA",  "1.2.840.10040.4.3"},
      {"DS",  "2.5"},
      {"DSALG",  "2.5.8"},
      {"DSALG_CRPT",  "2.5.8.1"},
      {"DSALG_HASH",  "2.5.8.2"},
      {"DSALG_SIGN",  "2.5.8.3"},
      {"DSALG_RSA",  "2.5.8.1.1"},
      {"OIW",  "1.3.14"},
      {"OIWSEC",  "1.3.14.3.2"},
      {"OIWSEC_md4RSA",  "1.3.14.3.2.2"},
      {"OIWSEC_md5RSA",  "1.3.14.3.2.3"},
      {"OIWSEC_md4RSA2",  "1.3.14.3.2.4"},
      {"OIWSEC_desECB",  "1.3.14.3.2.6"},
      {"OIWSEC_desCBC",  "1.3.14.3.2.7"},
      {"OIWSEC_desOFB",  "1.3.14.3.2.8"},
      {"OIWSEC_desCFB",  "1.3.14.3.2.9"},
      {"OIWSEC_desMAC",  "1.3.14.3.2.10"},
      {"OIWSEC_rsaSign",  "1.3.14.3.2.11"},
      {"OIWSEC_dsa",  "1.3.14.3.2.12"},
      {"OIWSEC_shaDSA",  "1.3.14.3.2.13"},
      {"OIWSEC_mdc2RSA",  "1.3.14.3.2.14"},
      {"OIWSEC_shaRSA",  "1.3.14.3.2.15"},
      {"OIWSEC_dhCommMod",  "1.3.14.3.2.16"},
      {"OIWSEC_desEDE",  "1.3.14.3.2.17"},
      {"OIWSEC_sha",  "1.3.14.3.2.18"},
      {"OIWSEC_mdc2",  "1.3.14.3.2.19"},
      {"OIWSEC_dsaComm",  "1.3.14.3.2.20"},
      {"OIWSEC_dsaCommSHA",  "1.3.14.3.2.21"},
      {"OIWSEC_rsaXchg",  "1.3.14.3.2.22"},
      {"OIWSEC_keyHashSeal",  "1.3.14.3.2.23"},
      {"OIWSEC_md2RSASign",  "1.3.14.3.2.24"},
      {"OIWSEC_md5RSASign",  "1.3.14.3.2.25"},
      {"OIWSEC_sha1",  "1.3.14.3.2.26"},
      {"OIWSEC_dsaSHA1",  "1.3.14.3.2.27"},
      {"OIWSEC_dsaCommSHA1",  "1.3.14.3.2.28"},
      {"OIWSEC_sha1RSASign",  "1.3.14.3.2.29"},
      {"OIWDIR",  "1.3.14.7.2"},
      {"OIWDIR_CRPT",  "1.3.14.7.2.1"},
      {"OIWDIR_HASH",  "1.3.14.7.2.2"},
      {"OIWDIR_SIGN",  "1.3.14.7.2.3"},
      {"OIWDIR_md2",  "1.3.14.7.2.2.1"},
      {"OIWDIR_md2RSA",  "1.3.14.7.2.3.1"},
      {"INFOSEC",  "2.16.840.1.101.2.1"},
      {"INFOSEC_sdnsSignature",  "2.16.840.1.101.2.1.1.1"},
      {"INFOSEC_mosaicSignature",  "2.16.840.1.101.2.1.1.2"},
      {"INFOSEC_sdnsConfidentiality",  "2.16.840.1.101.2.1.1.3"},
      {"INFOSEC_mosaicConfidentiality",  "2.16.840.1.101.2.1.1.4"},
      {"INFOSEC_sdnsIntegrity",  "2.16.840.1.101.2.1.1.5"},
      {"INFOSEC_mosaicIntegrity",  "2.16.840.1.101.2.1.1.6"},
      {"INFOSEC_sdnsTokenProtection",  "2.16.840.1.101.2.1.1.7"},
      {"INFOSEC_mosaicTokenProtection",  "2.16.840.1.101.2.1.1.8"},
      {"INFOSEC_sdnsKeyManagement",  "2.16.840.1.101.2.1.1.9"},
      {"INFOSEC_mosaicKeyManagement",  "2.16.840.1.101.2.1.1.10"},
      {"INFOSEC_sdnsKMandSig",  "2.16.840.1.101.2.1.1.11"},
      {"INFOSEC_mosaicKMandSig",  "2.16.840.1.101.2.1.1.12"},
      {"INFOSEC_SuiteASignature",  "2.16.840.1.101.2.1.1.13"},
      {"INFOSEC_SuiteAConfidentiality",  "2.16.840.1.101.2.1.1.14"},
      {"INFOSEC_SuiteAIntegrity",  "2.16.840.1.101.2.1.1.15"},
      {"INFOSEC_SuiteATokenProtection",  "2.16.840.1.101.2.1.1.16"},
      {"INFOSEC_SuiteAKeyManagement",  "2.16.840.1.101.2.1.1.17"},
      {"INFOSEC_SuiteAKMandSig",  "2.16.840.1.101.2.1.1.18"},
      {"INFOSEC_mosaicUpdatedSig",  "2.16.840.1.101.2.1.1.19"},
      {"INFOSEC_mosaicKMandUpdSig",  "2.16.840.1.101.2.1.1.20"},
      {"INFOSEC_mosaicUpdateInteg",  "2.16.840.1.101.2.1.1.21"},
      {"COMMON_NAME",  "2.5.4.3"},
      {"SUR_NAME",  "2.5.4.4"},
      {"DEVICE_SERIAL_NUMBER",  "2.5.4.5"},
      {"COUNTRY_NAME",  "2.5.4.6"},
      {"LOCALITY_NAME",  "2.5.4.7"},
      {"STATE_OR_PROVINCE_NAME",  "2.5.4.8"},
      {"STREET_ADDRESS",  "2.5.4.9"},
      {"ORGANIZATION_NAME",  "2.5.4.10"},
      {"ORGANIZATIONAL_UNIT_NAME",  "2.5.4.11"},
      {"TITLE",  "2.5.4.12"},
      {"DESCRIPTION",  "2.5.4.13"},
      {"SEARCH_GUIDE",  "2.5.4.14"},
      {"BUSINESS_CATEGORY",  "2.5.4.15"},
      {"POSTAL_ADDRESS",  "2.5.4.16"},
      {"POSTAL_CODE",  "2.5.4.17"},
      {"POST_OFFICE_BOX",  "2.5.4.18"},
      {"PHYSICAL_DELIVERY_OFFICE_NAME",  "2.5.4.19"},
      {"TELEPHONE_NUMBER",  "2.5.4.20"},
      {"TELEX_NUMBER",  "2.5.4.21"},
      {"TELETEXT_TERMINAL_IDENTIFIER",  "2.5.4.22"},
      {"FACSIMILE_TELEPHONE_NUMBER",  "2.5.4.23"},
      {"X21_ADDRESS",  "2.5.4.24"},
      {"INTERNATIONAL_ISDN_NUMBER",  "2.5.4.25"},
      {"REGISTERED_ADDRESS",  "2.5.4.26"},
      {"DESTINATION_INDICATOR",  "2.5.4.27"},
      {"PREFERRED_DELIVERY_METHOD",  "2.5.4.28"},
      {"PRESENTATION_ADDRESS",  "2.5.4.29"},
      {"SUPPORTED_APPLICATION_CONTEXT",  "2.5.4.30"},
      {"MEMBER",  "2.5.4.31"},
      {"OWNER",  "2.5.4.32"},
      {"ROLE_OCCUPANT",  "2.5.4.33"},
      {"SEE_ALSO",  "2.5.4.34"},
      {"USER_PASSWORD",  "2.5.4.35"},
      {"USER_CERTIFICATE",  "2.5.4.36"},
      {"CA_CERTIFICATE",  "2.5.4.37"},
      {"AUTHORITY_REVOCATION_LIST",  "2.5.4.38"},
      {"CERTIFICATE_REVOCATION_LIST",  "2.5.4.39"},
      {"CROSS_CERTIFICATE_PAIR",  "2.5.4.40"},
      {"GIVEN_NAME",  "2.5.4.42"},
      {"INITIALS",  "2.5.4.43"},
      {"DN_QUALIFIER",  "2.5.4.46"},
      {"AUTHORITY_KEY_IDENTIFIER",  "2.5.29.1"},
      {"KEY_ATTRIBUTES",  "2.5.29.2"},
      {"CERT_POLICIES_95",  "2.5.29.3"},
      {"KEY_USAGE_RESTRICTION",  "2.5.29.4"},
      {"LEGACY_POLICY_MAPPINGS",  "2.5.29.5"},
      {"SUBJECT_ALT_NAME",  "2.5.29.7"},
      {"ISSUER_ALT_NAME",  "2.5.29.8"},
      {"SUBJECT_DIR_ATTRS",  "2.5.29.9"},
      {"BASIC_CONSTRAINTS",  "2.5.29.10"},
      {"SUBJECT_KEY_IDENTIFIER",  "2.5.29.14"},
      {"KEY_USAGE",  "2.5.29.15"},
      {"PRIVATEKEY_USAGE_PERIOD",  "2.5.29.16"},
      {"SUBJECT_ALT_NAME2",  "2.5.29.17"},
      {"ISSUER_ALT_NAME2",  "2.5.29.18"},
      {"BASIC_CONSTRAINTS2",  "2.5.29.19"},
      {"CRL_NUMBER",  "2.5.29.20"},
      {"CRL_REASON_CODE",  "2.5.29.21"},
      {"REASON_CODE_HOLD",  "2.5.29.23"},
      {"DELTA_CRL_INDICATOR",  "2.5.29.27"},
      {"ISSUING_DIST_POINT",  "2.5.29.28"},
      {"NAME_CONSTRAINTS",  "2.5.29.30"},
      {"CRL_DIST_POINTS",  "2.5.29.31"},
      {"CERT_POLICIES",  "2.5.29.32"},
      {"ANY_CERT_POLICY",  "2.5.29.32.0"},
      {"POLICY_MAPPINGS",  "2.5.29.33"},
      {"AUTHORITY_KEY_IDENTIFIER2",  "2.5.29.35"},
      {"POLICY_CONSTRAINTS",  "2.5.29.36"},
      {"ENHANCED_KEY_USAGE",  "2.5.29.37"},
      {"FRESHEST_CRL",  "2.5.29.46"},
      {"DOMAIN_COMPONENT",  "0.9.2342.19200300.100.1.25"},
      {"PKCS_12_FRIENDLY_NAME_ATTR",  "1.2.840.113549.1.9.20"},
      {"PKCS_12_LOCAL_KEY_ID",  "1.2.840.113549.1.9.21"},
      {"CERT_EXTENSIONS",  "1.3.6.1.4.1.311.2.1.14"},
      {"NEXT_UPDATE_LOCATION",  "1.3.6.1.4.1.311.10.2"},
      {"REMOVE_CERTIFICATE",  "1.3.6.1.4.1.311.10.8.1"},
      {"CROSS_CERT_DIST_POINTS",  "1.3.6.1.4.1.311.10.9.1"},
      {"CTL",  "1.3.6.1.4.1.311.10.10.1"},
      {"SORTED_CTL",  "1.3.6.1.4.1.311.10.10.1.1"},
      {"ANY_APPLICATION_POLICY",  "1.3.6.1.4.1.311.10.12.1"},
      {"RENEWAL_CERTIFICATE",  "1.3.6.1.4.1.311.13.1"},
      {"ENROLLMENT_NAME_VALUE_PAIR",  "1.3.6.1.4.1.311.13.2.1"},
      {"ENROLLMENT_CSP_PROVIDER",  "1.3.6.1.4.1.311.13.2.2"},
      {"OS_VERSION",  "1.3.6.1.4.1.311.13.2.3"},
      {"PKCS_12_KEY_PROVIDER_NAME_ATTR",  "1.3.6.1.4.1.311.17.1"},
      {"LOCAL_MACHINE_KEYSET",  "1.3.6.1.4.1.311.17.2"},
      {"AUTO_ENROLL_CTL_USAGE",  "1.3.6.1.4.1.311.20.1"},
      {"ENROLL_CERTTYPE_EXTENSION",  "1.3.6.1.4.1.311.20.2"},
      {"ENROLLMENT_AGENT",  "1.3.6.1.4.1.311.20.2.1"},
      {"CERT_MANIFOLD",  "1.3.6.1.4.1.311.20.3"},
      {"CERTSRV_PREVIOUS_CERT_HASH",  "1.3.6.1.4.1.311.21.2"},
      {"CRL_VIRTUAL_BASE",  "1.3.6.1.4.1.311.21.3"},
      {"CRL_NEXT_PUBLISH",  "1.3.6.1.4.1.311.21.4"},
      {"KP_CA_EXCHANGE",  "1.3.6.1.4.1.311.21.5"},
      {"KP_KEY_RECOVERY_AGENT",  "1.3.6.1.4.1.311.21.6"},
      {"CERTIFICATE_TEMPLATE",  "1.3.6.1.4.1.311.21.7"},
      {"ENTERPRISE_OID_ROOT",  "1.3.6.1.4.1.311.21.8"},
      {"RDN_DUMMY_SIGNER",  "1.3.6.1.4.1.311.21.9"},
      {"APPLICATION_CERT_POLICIES",  "1.3.6.1.4.1.311.21.10"},
      {"APPLICATION_POLICY_MAPPINGS",  "1.3.6.1.4.1.311.21.11"},
      {"APPLICATION_POLICY_CONSTRAINTS",  "1.3.6.1.4.1.311.21.12"},
      {"ARCHIVED_KEY_ATTR",  "1.3.6.1.4.1.311.21.13"},
      {"CRL_SELF_CDP",  "1.3.6.1.4.1.311.21.14"},
      {"REQUIRE_CERT_CHAIN_POLICY",  "1.3.6.1.4.1.311.21.15"},
      {"ARCHIVED_KEY_CERT_HASH",  "1.3.6.1.4.1.311.21.16"},
      {"ISSUED_CERT_HASH",  "1.3.6.1.4.1.311.21.17"},
      {"DS_EMAIL_REPLICATION",  "1.3.6.1.4.1.311.21.19"},
      {"REQUEST_CLIENT_INFO",  "1.3.6.1.4.1.311.21.20"},
      {"ENCRYPTED_KEY_HASH",  "1.3.6.1.4.1.311.21.21"},
      {"CERTSRV_CROSSCA_VERSION",  "1.3.6.1.4.1.311.21.22"},
      {"KEYID_RDN",  "1.3.6.1.4.1.311.10.7.1"},
      {"PKIX",  "1.3.6.1.5.5.7"},
      {"PKIX_PE",  "1.3.6.1.5.5.7.1"},
      {"AUTHORITY_INFO_ACCESS",  "1.3.6.1.5.5.7.1.1"},
      {"PKIX_POLICY_QUALIFIER_CPS",  "1.3.6.1.5.5.7.2.1"},
      {"PKIX_POLICY_QUALIFIER_USERNOTICE",  "1.3.6.1.5.5.7.2.2"},
      {"PKIX_KP",  "1.3.6.1.5.5.7.3"},
      {"PKIX_KP_SERVER_AUTH",  "1.3.6.1.5.5.7.3.1"},
      {"PKIX_KP_CLIENT_AUTH",  "1.3.6.1.5.5.7.3.2"},
      {"PKIX_KP_CODE_SIGNING",  "1.3.6.1.5.5.7.3.3"},
      {"PKIX_KP_EMAIL_PROTECTION",  "1.3.6.1.5.5.7.3.4"},
      {"PKIX_KP_IPSEC_END_SYSTEM",  "1.3.6.1.5.5.7.3.5"},
      {"PKIX_KP_IPSEC_TUNNEL",  "1.3.6.1.5.5.7.3.6"},
      {"PKIX_KP_IPSEC_USER",  "1.3.6.1.5.5.7.3.7"},
      {"PKIX_KP_TIMESTAMP_SIGNING",  "1.3.6.1.5.5.7.3.8"},
      {"IPSEC_KP_IKE_INTERMEDIATE",  "1.3.6.1.5.5.8.2.2"},
      {"SERIALIZED",  "1.3.6.1.4.1.311.10.3.3.1"},
      {"NT_PRINCIPAL_NAME",  "1.3.6.1.4.1.311.20.2.3"},
      {"CERTSRV_CA_VERSION",  "1.3.6.1.4.1.311.21.1"},
      {"PRODUCT_UPDATE",  "1.3.6.1.4.1.311.31.1"},

    };

    int count = sizeof(names)/sizeof(names[0]);

    const char* name = "";
    for (int i = 0; i<count; i++) {

      if (strcmp(names[i].id, oid) == 0) {
        name = names[i].name;
        break;
      }
    }
    return name;
  }

};

}

Last modified: 5 May 2019

Copyright (c) 2009-2019 Antillia.com ALL RIGHTS RESERVED.