CRYPT_EXT_OR_ATTR_OID_GROUP_ID

For the CRYPT_EXT_OR_ATTR_OID_GROUP_ID, the following predefined entries exist. Note that the varying members of the CRYPT_OID_INFO structure for this group are shown in the table. These correspond to the find criteria that should be used for this group when making calls to CryptFindOIDInfo. The values for members that do not vary for entries in this group are typically set to zero, or NULL, except that cbSize which always is set to the size of CRYPT_OID_INFO, and the dwGroupId always is set to this group.

pszOID pwszName
szOID_AUTHORITY_KEY_IDENTIFIER2 L"Authority Key Identifier"
szOID_AUTHORITY_KEY_IDENTIFIER L"Authority Key Identifier"
szOID_KEY_ATTRIBUTES L"Key Attributes"
szOID_KEY_USAGE_RESTRICTION L"Key Usage Restriction"
szOID_SUBJECT_ALT_NAME2 L"Subject Alternative Name"
szOID_SUBJECT_ALT_NAME L"Subject Alternative Name"
szOID_ISSUER_ALT_NAME2 L"Issuer Alternative Name"
szOID_ISSUER_ALT_NAME L"Issuer Alternative Name"
szOID_BASIC_CONSTRAINTS2 L"Basic Constraints"
szOID_BASIC_CONSTRAINTS L"Basic Constraints"
szOID_KEY_USAGE L"Key Usage"
szOID_CERT_POLICIES L"Certificate Policies"
szOID_SUBJECT_KEY_IDENTIFIER L"Subject Key Identifier"
szOID_CRL_REASON_CODE L"CRL Reason Code"
szOID_CRL_DIST_POINTS L"CRL Distribution Points"
szOID_ENHANCED_KEY_USAGE L"Enhanced Key Usage"
szOID_CERT_EXTENSIONS L"Certificate Extensions"
szOID_NEXT_UPDATE_LOCATION L"Next Update Location"
szOID_YESNO_TRUST_ATTR L"Yes or No Trust"
szOID_RSA_emailAddr L"Email Address"
szOID_RSA_unstructName L"Unstructured Name"
szOID_RSA_contentType L"Content Type"
szOID_RSA_messageDigest L"Message Digest"
szOID_RSA_signingTime L"Signing Time"
szOID_RSA_counterSign L"Counter Sign"
szOID_RSA_challengePwd L"Challenge Password"
szOID_RSA_unstructAddr L"Unstructured Addresss"
szOID_RSA_extCertAttrs L""
szOID_RSA_S/MIMECapabilities L"S/MIME Capabilities"
szOID_RSA_preferSignedData L"Prefer Signed Data"

The C code used to populate the table (an array of CCRYPT_OID_INFO structures) is shown below.

C code specifying table.

//+-------------------------------------------------------------------------
//  Extension or Attribute Table
//--------------------------------------------------------------------------
#define EXT_ATTR_ENTRY(pszOID, pwszName) \
    OID_INFO_LEN, pszOID, pwszName, CRYPT_EXT_OR_ATTR_OID_GROUP_ID, 0, 0, NULL

static CCRYPT_OID_INFO ExtAttrTable[] = {
    EXT_ATTR_ENTRY(szOID_AUTHORITY_KEY_IDENTIFIER2,
        L"Authority Key Identifier"),
    EXT_ATTR_ENTRY(szOID_AUTHORITY_KEY_IDENTIFIER, L"Authority Key Identifier"),
    EXT_ATTR_ENTRY(szOID_KEY_ATTRIBUTES, L"Key Attributes"),
    EXT_ATTR_ENTRY(szOID_KEY_USAGE_RESTRICTION, L"Key Usage Restriction"),
    EXT_ATTR_ENTRY(szOID_SUBJECT_ALT_NAME2, L"Subject Alternative Name"),
    EXT_ATTR_ENTRY(szOID_SUBJECT_ALT_NAME, L"Subject Alternative Name"),
    EXT_ATTR_ENTRY(szOID_ISSUER_ALT_NAME2, L"Issuer Alternative Name"),
    EXT_ATTR_ENTRY(szOID_ISSUER_ALT_NAME, L"Issuer Alternative Name"),
    EXT_ATTR_ENTRY(szOID_BASIC_CONSTRAINTS2, L"Basic Constraints"),
    EXT_ATTR_ENTRY(szOID_BASIC_CONSTRAINTS, L"Basic Constraints"),
    EXT_ATTR_ENTRY(szOID_KEY_USAGE, L"Key Usage"),
    EXT_ATTR_ENTRY(szOID_CERT_POLICIES, L"Certificate Policies"),
    EXT_ATTR_ENTRY(szOID_SUBJECT_KEY_IDENTIFIER, L"Subject Key Identifier"),
    EXT_ATTR_ENTRY(szOID_CRL_REASON_CODE, L"CRL Reason Code"),
    EXT_ATTR_ENTRY(szOID_CRL_DIST_POINTS, L"CRL Distribution Points"),
    EXT_ATTR_ENTRY(szOID_ENHANCED_KEY_USAGE, L"Enhanced Key Usage"),
    EXT_ATTR_ENTRY(szOID_CERT_EXTENSIONS, L"Certificate Extensions"),
    EXT_ATTR_ENTRY(szOID_NEXT_UPDATE_LOCATION, L"Next Update Location"),
    EXT_ATTR_ENTRY(szOID_YESNO_TRUST_ATTR, L"Yes or No Trust"),
    EXT_ATTR_ENTRY(szOID_RSA_emailAddr, L"Email Address"),
    EXT_ATTR_ENTRY(szOID_RSA_unstructName, L"Unstructured Name"),
    EXT_ATTR_ENTRY(szOID_RSA_contentType, L"Content Type"),
    EXT_ATTR_ENTRY(szOID_RSA_messageDigest, L"Message Digest"),
    EXT_ATTR_ENTRY(szOID_RSA_signingTime, L"Signing Time"),
    EXT_ATTR_ENTRY(szOID_RSA_counterSign, L"Counter Sign"),
    EXT_ATTR_ENTRY(szOID_RSA_challengePwd, L"Challenge Password"),
    EXT_ATTR_ENTRY(szOID_RSA_unstructAddr, L"Unstructured Addresss"),
    EXT_ATTR_ENTRY(szOID_RSA_extCertAttrs, L""),
    EXT_ATTR_ENTRY(szOID_RSA_SMIMECapabilities, L"SMIME Capabilities"),
    EXT_ATTR_ENTRY(szOID_RSA_preferSignedData, L"Prefer Signed Data")
};
#define EXT_ATTR_CNT (sizeof(ExtAttrTable) / sizeof(ExtAttrTable[0]))