共用方式為


CryptEncodeObject 和 CryptDecodeObject 的常數

CryptEncodeObjectCryptEncodeObjectExCryptSignAndEncodeCertificateCryptDecodeObjectCryptDecodeObjectEx函式是一般化編碼和解碼函式,能夠編碼和解碼抽象語法標記法一 (ASN.1) 編碼憑證、憑證撤銷清單 (CRL) 、憑證信任清單 (CTL) 和憑證要求。

下表列出用於編碼和解碼作業的預先定義常數、延伸模組和屬性,以及 pvStructInfo 參數所指向的資料結構。

注意

某些預先定義的常數和 OID 字串具有相同的意義。 當它們執行時,這兩者都可以當做 lpszStuctType 參數使用。

 

常數/值 Description
CMC_ADD_ATTRIBUTES
(LPCSTR) 63
pvStructInfo參數是CMC_ADD_ATTRIBUTES_INFO結構的指標。
CMC_ADD_EXTENSIONS
(LPCSTR) 62
pvStructInfo參數是CMC_ADD_EXTENSIONS_INFO結構的指標。
X509_ALGORITHM_IDENTIFIER
(LPCSTR) 74
pvStructInfo參數是CRYPT_ALGORITHM_IDENTIFIER結構的指標。
X509_ALTERNATE_NAME
(LPCSTR) 12
pvStructInfo參數是CERT_ALT_NAME_INFO結構的指標。 如需詳細資料,請參閱<備註>。
X509_ANY_STRING
X509_NAME_VALUE
pvStructInfo參數是CERT_NAME_VALUE結構的指標。
szOID_APPLICATION_CERT_POLICIES
"1.3.6.1.4.1.311.21.10"
pvStructInfo參數是CERT_POLICY_QUALIFIER_INFO結構的指標。
szOID_APPLICATION_POLICY_CONSTRAINTS
"1.3.6.1.4.1.311.21.12"
pvStructInfo參數是CERT_POLICY_CONSTRAINTS_INFO結構的指標。
szOID_APPLICATION_POLICY_MAPPINGS
"1.3.6.1.4.1.311.21.11"
pvStructInfo參數是CERT_POLICY_MAPPINGS_INFO結構的指標。
PKCS_ATTRIBUTE
(LPCSTR) 22
pvStructInfo參數是CRYPT_ATTRIBUTE結構的指標。
X509_AUTHORITY_INFO_ACCESS
(LPCSTR) 32
pvStructInfo參數是CERT_AUTHORITY_INFO_ACCESS結構的指標。 如需詳細資料,請參閱<備註>。
szOID_AUTHORITY_INFO_ACCESS
"1.3.6.1.5.5.7.1.1"
pvStructInfo參數是CERT_AUTHORITY_INFO_ACCESS結構的指標。 如需詳細資料,請參閱<備註>。
X509_SUBJECT_INFO_ACCESS
X509_AUTHORITY_INFO_ACCESS
pvStructInfo參數是CERT_AUTHORITY_INFO_ACCESS結構的指標。
szOID_SUBJECT_INFO_ACCESS
"1.3.6.1.5.5.7.1.11"
pvStructInfo參數是CERT_AUTHORITY_INFO_ACCESS結構的指標。
X509_AUTHORITY_KEY_ID
(LPCSTR) 9
pvStructInfo參數是CERT_AUTHORITY_KEY_ID_INFO結構的指標。 如需詳細資料,請參閱<備註>。
X509_AUTHORITY_KEY_ID2
(LPCSTR) 31
pvStructInfo參數是CERT_AUTHORITY_KEY_ID2_INFO結構的指標。 如需詳細資料,請參閱<備註>。
szOID_AUTHORITY_KEY_IDENTIFIER
"2.5.29.1"
pvStructInfo參數是CERT_AUTHORITY_KEY_ID_INFO結構的指標。 如需詳細資料,請參閱<備註>。
szOID_AUTHORITY_KEY_IDENTIFIER2
"2.5.29.35"
pvStructInfo參數是CERT_AUTHORITY_KEY_ID2_INFO結構的指標。 如需詳細資料,請參閱<備註>。
X509_BASIC_CONSTRAINTS
(LPCSTR) 13
pvStructInfo參數是CERT_BASIC_CONSTRAINTS_INFO結構的指標。 如需詳細資料,請參閱<備註>。
szOID_BASIC_CONSTRAINTS
"2.5.29.10"
pvStructInfo參數是CERT_BASIC_CONSTRAINTS_INFO結構的指標。 如需詳細資料,請參閱<備註>。
X509_BASIC_CONSTRAINTS2
(LPCSTR) 15
pvStructInfo參數是CERT_BASIC_CONSTRAINTS2_INFO結構的指標。
szOID_BASIC_CONSTRAINTS2
"2.5.29.19"
pvStructInfo參數是CERT_BASIC_CONSTRAINTS2_INFO結構的指標。
X509_BIOMETRIC_EXT
(LPCSTR) 71
pvStructInfo參數是CERT_BIOMETRIC_EXT_INFO結構的指標。
Windows Server 2003 和 Windows XP: 不支援這個值。
szOID_BIOMETRIC_EXT
"1.3.6.1.5.5.7.1.2"
pvStructInfo參數是CERT_BIOMETRIC_EXT_INFO結構的指標。
Windows Server 2003 和 Windows XP: 不支援這個值。
X509_BITS
(LPCSTR) 26
pvStructInfo參數是CRYPT_BIT_BLOB結構的指標。
X509_CERT
(LPCSTR) 1
pvStructInfo參數是CERT_SIGNED_CONTENT_INFO結構的指標。 如需詳細資料,請參閱<備註>。
X509_CERT_CRL_TO_BE_SIGNED
(LPCSTR) 3
pvStructInfo參數是CRL_INFO結構的指標。
szOID_CERT_EXTENSIONS
"1.3.6.1.4.1.311.2.1.14"
pvStructInfo參數是CERT_EXTENSIONS結構的指標。
X509_CERT_PAIR
(LPCSTR) 53
pvStructInfo參數是CERT_PAIR結構的指標。
X509_CERT_POLICIES
(LPCSTR) 16
pvStructInfo參數是CERT_POLICIES_INFO結構的指標。
szOID_CERT_POLICIES
"2.5.29.32"
pvStructInfo參數是CERT_POLICIES_INFO結構的指標。
X509_CERT_REQUEST_TO_BE_SIGNED
(LPCSTR) 4
pvStructInfo參數是CERT_REQUEST_INFO結構的指標。
X509_CERT_TO_BE_SIGNED
(LPCSTR) 2
pvStructInfo參數是CERT_INFO結構的指標。
X509_CERTIFICATE_TEMPLATE
(LPCSTR) 64
pvStructInfo參數是CERT_TEMPLATE_EXT結構的指標。
szOID_CERTIFICATE_TEMPLATE
"1.3.6.1.4.1.311.21.7"
pvStructInfo參數是CERT_TEMPLATE_EXT結構的指標。
X509_CHOICE_OF_TIME
(LPCSTR) 30
pvStructInfo參數是FILETIME變數的指標。 如需詳細資料,請參閱<備註>。
PKCS_CONTENT_INFO
(LPCSTR) 33
pvStructInfo參數是CRYPT_CONTENT_INFO結構的指標。 如需詳細資料,請參閱<備註>。
PKCS_CONTENT_INFO_SEQUENCE_OF_ANY
(LPCSTR) 23
pvStructInfo參數是CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY結構的指標。 如需詳細資料,請參閱<備註>。
X509_CRL_DIST_POINTS
(LPCSTR) 35
pvStructInfo參數是CRL_DIST_POINTS_INFO結構的指標。 如需詳細資料,請參閱<備註>。
szOID_CRL_DIST_POINTS
2.5.29.31
pvStructInfo參數是CRL_DIST_POINTS_INFO結構的指標。 如需詳細資料,請參閱<備註>。
szOID_CRL_NUMBER
"2.5.29.20"
pvStructInfo參數是int變數的指標。
X509_CRL_REASON_CODE
X509_ENUMERATED
pvStructInfo參數是包含列舉值的整數指標。 如需詳細資料,請參閱<備註>。
szOID_CRL_REASON_CODE
"2.5.29.21"
pvStructInfo參數是包含列舉值的整數指標。 如需詳細資料,請參閱<備註>。
szOID_CRL_VIRTUAL_BASE
"1.3.6.1.4.1.311.21.3"
pvStructInfo參數是int變數的指標。
X509_CROSS_CERT_DIST_POINTS
(LPCSTR) 58
pvStructInfo參數是CROSS_CERT_DIST_POINTS_INFO結構的指標。
szOID_CROSS_CERT_DIST_POINTS
"1.3.6.1.4.1.311.10.9.1"
pvStructInfo參數是CROSS_CERT_DIST_POINTS_INFO結構的指標。
RSA_CSP_PUBLICKEYBLOB
(LPCSTR) 19
pvStructInfo參數是Diffie-Hellman 第 3 版公開金鑰 BLOBDSS 第 3 版公開金鑰 BLOB結構的指標。 如需詳細資料,請參閱<備註>。
PKCS_CTL
(LPCSTR) 37
pvStructInfo參數是CTL_INFO結構的指標。
CMC_DATA
(LPCSTR) 59
pvStructInfo參數是CMC_DATA_INFO結構的指標。
szOID_DELTA_CRL_INDICATOR
"2.5.29.27"
pvStructInfo參數是int變數的指標。
X509_DSS_PARAMETERS
(LPCSTR) 39
pvStructInfo參數是CERT_DSS_PARAMETERS結構的指標。
X509_DSS_PUBLICKEY
X509_MULTI_BYTE_UINT
pvStructInfo參數是CRYPT_UINT_BLOB結構的指標。
X509_DSS_SIGNATURE
(LPCSTR) 40
pvStructInfo參數是 40 個位元組陣列的指標。 如需詳細資料,請參閱<備註>。
szOID_ECC_PUBLIC_KEY
"1.2.840.10045.2.1"
pvStructInfo參數是物件識別碼點標記法之 LPSTR的指標。
X509_ECC_SIGNATURE
(LPCSTR) 47
pvStructInfo參數是CERT_ECC_SIGNATURE結構的指標。 如需詳細資料,請參閱<備註>。
X509_ECC_PRI加值稅E_KEY
(LPCSTR) 82
pvStructInfo參數是CRYPT_ECC_PRI加值稅E_KEY_INFO結構的指標。
Windows Server 2003、Windows XP、Windows 2000 和 Windows Vista: 不支援此值。
szOID_ECDSA_SPECIFIED
"1.2.840.10045.4.3"
pvStructInfo參數是CRYPT_ALGORITHM_IDENTIFIER結構的指標。
X509_ENHANCED_KEY_USAGE
(LPCSTR) 36
pvStructInfo參數是CERT_ENHKEY_USAGECTL_USAGE結構的指標。 (這些結構相同,但由不同的名稱已知。)
szOID_ENHANCED_KEY_USAGE
"2.5.29.37"
pvStructInfo參數是CERT_ENHKEY_USAGECTL_USAGE結構的指標。 (這些結構相同,但由不同的名稱已知。)
szOID_ENROLLMENT_NAME_VALUE_PAIR
"1.3.6.1.4.1.311.13.2.1"
pvStructInfo參數是CRYPT_ENROLLMENT_NAME_VALUE_PAIR結構的指標。
X509_ENUMERATED
(LPCSTR) 29
pvStructInfo參數是包含列舉值的整數指標。 如需詳細資料,請參閱<備註>。
X509_EXTENSIONS
(LPCSTR) 5
pvStructInfo參數是CERT_EXTENSIONS結構的指標。
szOID_FRESHEST_CRL
"2.5.29.46"
pvStructInfo參數是CRL_DIST_POINTS_INFO結構的指標。
X509_INTEGER
(LPCSTR) 27
pvStructInfo參數是 32 位或更少帶正負號整數的指標。
szOID_ISSUER_ALT_NAME
"2.5.29.8"
pvStructInfo參數是CERT_ALT_NAME_INFO結構的指標。 如需詳細資料,請參閱<備註>。
szOID_ISSUER_ALT_NAME2
"2.5.29.18"
pvStructInfo參數是CERT_ALT_NAME_INFO結構的指標。
X509_ISSUING_DIST_POINT
(LPCSTR) 54
pvStructInfo參數是CRL_ISSUING_DIST_POINT結構的指標。
szOID_ISSUING_DIST_POINT
"2.5.29.28"
pvStructInfo參數是CRL_ISSUING_DIST_POINT結構的指標。
X509_KEY_ATTRIBUTES
(LPCSTR) 10
pvStructInfo參數是CERT_KEY_ATTRIBUTES_INFO結構的指標。
szOID_KEY_ATTRIBUTES
"2.5.29.2"
pvStructInfo參數是CERT_KEY_ATTRIBUTES_INFO結構的指標。
X509_KEY_USAGE
(LPCSTR) 14
pvStructInfo參數是CRYPT_BIT_BLOB結構的指標。 如需詳細資料,請參閱<備註>。
szOID_KEY_USAGE
"2.5.29.15"
pvStructInfo參數是CRYPT_BIT_BLOB結構的指標。 如需詳細資料,請參閱<備註>。
X509_KEY_USAGE_RESTRICTION
(LPCSTR) 11
pvStructInfo參數是CERT_KEY_USAGE_RESTRICTION_INFO結構的指標。
szOID_KEY_USAGE_RESTRICTION
"2.5.29.4"
pvStructInfo參數是CERT_KEY_USAGE_RESTRICTION_INFO結構的指標。
X509_KEYGEN_REQUEST_TO_BE_SIGNED
(LPCSTR) 21
pvStructInfo參數是CERT_KEYGEN_REQUEST_INFO結構的指標。 如需詳細資料,請參閱<備註>。
X509_LOGOTYPE_EXT
(LPCSTR) 70
pvStructInfo參數是CERT_LOGOTYPE_EXT_INFO結構的指標。
szOID_LOGOTYPE_EXT
"1.3.6.1.5.5.7.1.12"
pvStructInfo參數是CERT_LOGOTYPE_EXT_INFO結構的指標。
Windows Server 2003 和 Windows XP: 不支援此值。
X509_MULTI_BYTE_INTEGER
(LPCSTR) 28
pvStructInfo參數是CRYPT_INTEGER_BLOB結構的指標。 BLOB小到大的順序。
X509_MULTI_BYTE_UINT
(LPCSTR) 38
pvStructInfo參數是CRYPT_UINT_BLOB結構的指標。 如需詳細資料,請參閱<備註>。
X509_NAME
(LPCSTR) 7
pvStructInfo參數是CERT_NAME_INFO結構的指標。 如需詳細資料,請參閱<備註>。
X509_NAME_CONSTRAINTS
(LPCSTR) 55
pvStructInfo參數是CERT_NAME_CONSTRAINTS_INFO結構的指標。
szOID_NAME_CONSTRAINTS
"2.5.29.30"
pvStructInfo參數是CERT_NAME_CONSTRAINTS_INFO結構的指標。
X509_NAME_VALUE
(LPCSTR) 6
pvStructInfo參數是CERT_NAME_VALUE結構的指標。 如需詳細資料,請參閱<備註>。
szOID_NEXT_UPDATE_LOCATION
pvStructInfo參數是CERT_ALT_NAME_INFO結構的指標。 如需詳細資料,請參閱<備註>。
X509_OBJECT_IDENTIFIER
(LPCSTR) 73
pvStructInfo參數是物件識別碼點標記法之 LPSTR的指標。
Windows Server 2003 和 Windows XP: 不支援此值。
X509_OCTET_STRING
(LPCSTR) 25
pvStructInfo參數是CRYPT_DATA_BLOB結構的指標。 如需詳細資料,請參閱<備註>。
szOID_OIWSEC_dsa
"1.3.14.3.2.12"
pvStructInfo參數是CERT_DSS_PARAMETERS結構的指標。
X509_POLICY_CONSTRAINTS
(LPCSTR) 57
pvStructInfo參數是CERT_POLICY_CONSTRAINTS_INFO結構的指標。
szOID_POLICY_CONSTRAINTS
"2.5.29.36"
pvStructInfo參數是CERT_POLICY_CONSTRAINTS_INFO結構的指標。
X509_POLICY_MAPPINGS
(LPCSTR) 56
pvStructInfo參數是CERT_POLICY_MAPPINGS_INFO結構的指標。
szOID_POLICY_MAPPINGS
"2.5.29.33"
pvStructInfo參數是CERT_POLICY_MAPPINGS_INFO結構的指標。
X509_PUBLIC_KEY_INFO
(LPCSTR) 8
pvStructInfo參數是CERT_PUBLIC_KEY_INFO結構的指標。
PKCS_RC2_CBC_PARAMETERS
(LPCSTR) 41
pvStructInfo參數是CRYPT_RC2_CBC_PARAMETERS結構的指標。
CMC_RESPONSE
(LPCSTR) 60
pvStructInfo參數是CMC_RESPONSE_INFO結構的指標。
CNG_RSA_PUBLIC_KEY_BLOB
(LPCSTR) 72
pvStructInfo參數是BCRYPT_RSAKEY_BLOB的指標,緊接著指數和模數位節。 如需詳細資料,請參閱<備註>。
CNG_RSA_PRI加值稅E_KEY_BLOB
LPCSTR) 83
pvStructInfo參數是私人BCRYPT_RSAKEY_BLOB結構的指標。
Windows Server 2003、Windows XP、Windows 2000 和 Windows Vista: 不支援這個值。
szOID_RSA_signingTime
"1.2.840.113549.1.9.5"
pvStructInfo參數是FILETIME變數的指標。 如需詳細資料,請參閱<備註>。
szOID_RSA_SMIMECapabilities
"1.2.840.113549.1.9.15"
pvStructInfo參數是CRYPT_SMIME_CAPABILITIES結構的指標。 如需詳細資料,請參閱<備註>。
PKCS_RSA_SSA_PSS_PARAMETERS
(LPCSTR) 75
pvStructInfo參數是CRYPT_RSA_SSA_PSS_PARAMETERS結構的指標。 如需詳細資料,請參閱<備註>。
Windows Server 2003 和 Windows XP: 不支援這個值。
szOID_RSA_SSA_PSS
"1.2.840.113549.1.1.10"
pvStructInfo參數是CRYPT_RSA_SSA_PSS_PARAMETERS結構的指標。 如需詳細資料,請參閱<備註>。
Windows Server 2003 和 Windows XP: 不支援這個值。
PKCS_RSAES_OAEP_PARAMETERS
(LPCSTR) 76
pvStructInfo參數是CRYPT_RSAES_OAEP_PARAMETERS結構的指標。 如需詳細資料,請參閱<備註>。
Windows Server 2003 和 Windows XP: 不支援這個值。
ECC_CMS_SHARED_INFO
(LPCSTR) 77
pvStructInfo參數是CRYPT_ECC_CMS_SHARED_INFO結構的指標。
Windows Server 2003 和 Windows XP: 不支援這個值。
szOID_RSAES_OAEP
"1.2.840.113549.1.1.7"
pvStructInfo參數是CRYPT_RSAES_OAEP_PARAMETERS結構的指標。 如需詳細資料,請參閱<備註>。
Windows Server 2003 和 Windows XP: 不支援這個值。
X509_SEQUENCE_OF_ANY
(LPCSTR) 34
pvStructInfo參數是CRYPT_SEQUENCE_OF_ANY結構的指標。 如需詳細資料,請參閱<備註>。
PKCS7_SIGNER_INFO
(LPCSTR) 500
pvStructInfo參數是CMSG_SIGNER_INFO結構的指標。
CMS_SIGNER_INFO
(LPCSTR) 501
pvStructInfo參數是CMSG_CMS_SIGNER_INFO結構的指標。
PKCS_SMIME_CAPABILITIES
(LPCSTR) 42
pvStructInfo參數是CRYPT_SMIME_CAPABILITIES結構的指標。 如需詳細資料,請參閱<備註>。
CMC_STATUS
(LPCSTR) 61
pvStructInfo參數是CMC_STATUS_INFO結構的指標。
szOID_SUBJECT_ALT_NAME
"2.5.29.7"
pvStructInfo參數是CERT_ALT_NAME_INFO結構的指標。 如需詳細資料,請參閱<備註>。
szOID_SUBJECT_ALT_NAME2
"2.5.29.17"
pvStructInfo參數是CERT_ALT_NAME_INFO結構的指標。
szOID_SUBJECT_KEY_IDENTIFIER
"2.5.29.14"
pvStructInfo參數是CRYPT_DATA_BLOB結構的指標。 如需詳細資料,請參閱<備註>。
PKCS_TIME_REQUEST
(LPCSTR) 18
pvStructInfo參數是CRYPT_TIME_STAMP_REQUEST_INFO結構的指標。
X509_UNICODE_ANY_STRING
X509_UNICODE_NAME_VALUE
pvStructInfo參數是CERT_NAME_VALUE結構的指標。 如需詳細資料,請參閱<備註>。
X509_UNICODE_NAME
(LPCSTR) 20
pvStructInfo參數是CERT_NAME_INFO結構的指標。 如需詳細資料,請參閱<備註>。
X509_UNICODE_NAME_VALUE
(LPCSTR) 24
pvStructInfo參數是CERT_NAME_VALUE結構的指標。 如需詳細資料,請參閱<備註>。
PKCS_UTC_TIME
(LPCSTR) 17
pvStructInfo參數是FILETIME變數的指標。 如需詳細資料,請參閱<備註>。
OCSP_SIGNED_REQUEST
(LPCSTR) 65
pvStructInfo參數是OCSP_SIGNED_REQUEST_INFO變數的指標。
Windows Server 2003 和 Windows XP: 不支援這個值。
OCSP_REQUEST
(LPCSTR) 66
pvStructInfo參數是OCSP_REQUEST_INFO變數的指標。
Windows Server 2003 和 Windows XP: 不支援這個值。
OCSP_RESPONSE
(LPCSTR) 67
pvStructInfo參數是OCSP_RESPONSE_INFO變數的指標。
Windows Server 2003 和 Windows XP: 不支援這個值。
OCSP_BASIC_SIGNED_RESPONSE
(LPCSTR) 68
pvStructInfo參數是OCSP_BASIC_SIGNED_RESPONSE_INFO變數的指標。
Windows Server 2003 和 Windows XP: 不支援這個值。
OCSP_BASIC_RESPONSE
(LPCSTR) 69
pvStructInfo參數是OCSP_BASIC_RESPONSE_INFO變數的指標。
Windows Server 2003 和 Windows XP: 不支援這個值。
PKCS_RSA_PRI加值稅E_KEY
(LPCSTR) 43
pvStructInfo參數是 RSA 私密金鑰 BLOB 的指標。 如需詳細資訊,請參閱 Diffie-Hellman 第 3 版私密金鑰 BLOBDSS 第 3 版私密金鑰 BLOB
PKCS_PRI加值稅E_KEY_INFO
(LPCSTR) 44
pvStructInfo參數是CRYPT_PRI加值稅E_KEY_INFO結構的指標。
PKCS_ENCRYPTED_PRI加值稅E_KEY_INFO
(LPCSTR) 45
pvStructInfo參數是CRYPT_ENCRYPTED_PRI加值稅E_KEY_INFO結構的指標。

備註

下表提供特定 lpszStructType 值的進一步詳細資料。

Description
X509_ALTERNATE_NAMEszOID_ISSUER_ALT_NAME
szOID_SUBJECT_ALT_NAME
編碼之前, LPWSTR 名稱選項會轉換成 IA5 字串。 如果字串包含不正確 IA5 字串, GetLastError 會傳回CRYPT_E_INVALID_IA5_STRING,而 *azureEncoded 會更新為無效字元的錯誤位置。 錯誤位置索引會以 *azureEncoded 傳回,如下所示:
位 0 是 DWORD最小有效位。
錯誤的VALUE_INDEX位於位 0 到 15。 這是 Unicode 字元索引。
錯誤的ENTRY_INDEX位於位 16 到 23。
定義宏GET_CERT_ALT_NAME_VALUE_ERR_INDEX (X) 和GET_CERT_ALT_NAME_ENTRY_ERR_INDEX (X) ,以便從包含這些欄位的 DWORD 輕鬆讀取點陣圖欄位VALUE_INDEX和ENTRY_INDEX:
szOID_SUBJECT_ALT_NAME2已取代szOID_SUBJECT_ALT_NAME。 新的憑證服務器正在實作後者。
X509_AUTHORITY_INFO_ACCESS szOID_AUTHORITY_INFO_ACCESS
szOID_AUTHORITY_KEY_IDENTIFIER2
X509_AUTHORITY_KEY_ID2
如果編碼函式以 GetLastError傳回CRYPT_E_INVALID_IA5_STRING,則 *ENTRY_INDEX – 8 位< 16 中傳回的錯誤位置包含: ENTRY_INDEX – 8 位 << 16
VALUE_INDEX – 16 位 (Unicode 字元索引)
錯誤位置索引會以 *azureEncoded 傳回,如下所示:
位 0 是 DWORD最小有效位。
錯誤的VALUE_INDEX位於位 0 到 15。 這是 Unicode 字元索引。
錯誤的ENTRY_INDEX位於位 16 到 23。
系統會定義GET_CERT_ALT_NAME_VALUE_ERR_INDEX (X) 和GET_CERT_ALT_NAME_ENTRY_ERR_INDEX (X) 宏,以便輕鬆地從包含這些欄位的 DWORD 讀取VALUE_INDEX和ENTRY_INDEX點陣圖欄位。
X509_AUTHORITY_KEY_IDszOID_AUTHORITY_KEY_IDENTIFIER
X509_AUTHORITY_KEY_ID2已取代X509_AUTHORITY_KEY_ID。 新的憑證服務器正在實作後者。
X509_BASIC_CONSTRAINTSszOID_BASIC_CONSTRAINTS
X509_BASIC_CONSTRAINTS2已取代X509_BASIC_CONSTRAINTS。 新的憑證服務器正在實作後者。
X509_CERT CERT_SIGNED_CONTENT_INFO結構包含要簽署的編碼內容、其簽章和簽章演算法。 ToBeSigned成員是先前對CryptEncodeObject呼叫的編碼CERT_INFO、CRL_INFO、CERT_REQUEST_INFO或CERT_KEYGEN_REQUEST_INFO輸出,適用于下列其中一個lpszStructType值:
  • X509_CERT_CRL_TO_BE_SIGNED
  • X509_CERT_REQUEST_TO_BE_SIGNED
  • X509_CERT_TO_BE_SIGNED
  • X509_KEYGEN_REQUEST_TO_BE_SIGNED
szOID_CERT_EXTENSIONS 可用於 憑證要求中的其中一個屬性類型。
X509_CHOICE_OF_TIME 針對X509_ASN_ENCODING,如果時間是在 1950 年和 2050 之前,則會使用兩位數年份編碼的 UTC 時間。 否則,它是以四位數年份編碼的一般化時間,日期精確到秒數。
PKCS_CONTENT_INFO 針對 X509_ASN_ENCODING,編碼為 PKCS #7 ContentInfo 結構。 CRYPT_DER_BLOB指向已編碼的 ANY 內容。
PKCS_CONTENT_INFO_SEQUENCE_OF_ANY 針對 X509_ASN_ENCODING,編碼為 PKCS #7 ContentInfo 結構包裝 ANY 序列。 contentType成員的值是pszObjId,而內容欄位是下列結構:SequenceOfAny ::= SEQUENCE OF ANY
CRYPT_DER_BLOB指向已編碼的 ANY 內容。
X509_CRL_DIST_POINTSszOID_CRL_DIST_POINTS
如果編碼函式因傳回 CRYPT_E_INVALID_IA5_STRING 的 GetLastError 而失敗,則會以無效字元的錯誤位置更新 *CRL_ISSUER_BIT – 1 位 << 31 (0 表示 FullName,1 則為 CRLIssuer)
POINT_INDEX – 7 位 << 24
ENTRY_INDEX – 8 位 << 16
VALUE_INDEX – 16 位 (Unicode 字元索引)
錯誤位置索引會以 *azureEncoded 傳回,如下所示:
位 0 是 DWORD最小有效位。
錯誤的VALUE_INDEX位於位 0 到 15。 這是 Unicode 字元索引。
錯誤的ENTRY_INDEX位於位 16 到 23。
系統會定義GET_CERT_ALT_NAME_VALUE_ERR_INDEX (X) 和GET_CERT_ALT_NAME_ENTRY_ERR_INDEX (X) 宏,以便輕鬆地從包含這些欄位的 DWORD 讀取VALUE_INDEX和ENTRY_INDEX點陣圖欄位。
szOID_CRL_NUMBER 僅 (CRL) 搭配基底 憑證撤銷清單 使用。 這是憑證授權單位 單位所發行之每個 CRL 的單一遞增序號。
X509_CRL_REASON_CODEszOID_CRL_REASON_CODE
X509_ENUMERATED
Integer 可以設定為下列其中一個列舉值。
原因代碼:CRL_REASON_UNSPECIFIED
值:0
原因代碼:CRL_REASON_KEY_COMPROMISE
值:1
原因代碼:CRL_REASON_CA_COMPROMISE
值:2
原因代碼:CRL_REASON_AFFILIATION_CHANGED
值:3
原因代碼:CRL_REASON_SUPERSEDED
值:4
原因代碼:CRL_REASON_CESSATION_OF_OPERATION
值:5
原因代碼:CRL_REASON_CERTIFICATE_HOLD
值:6
原因代碼:CRL_REASON_REMOVE_FROM_CRL
值:8
szOID_CRL_VIRTUAL_BASE 僅與 Delta CRL 搭配使用。 它包含對應基底 CRL 的基底 CRL 編號。
X509_CROSS_CERT_DIST_POINTSszOID_CROSS_CERT_DIST_POINTS
針對CRYPT_E_INVALID_IA5_STRING,錯誤位置會由CryptEncodeObject (X509_CRL_DIST_POINTS) 錯誤位置所傳回的 * (X509_CRL_DIST_POINTS) 錯誤位置包含:
  • POINT_INDEX – 8 位 << 24
  • ENTRY_INDEX – 8 位 << 16
  • VALUE_INDEX – 16 位 (Unicode 字元索引)
如需ENTRY_INDEX和VALUE_INDEX錯誤位置定義常數的詳細資訊,請參閱 X509_ALTERNATE_NAME。
RSA_CSP_PUBLICKEYBLOB CryptExportKey函式會針對PUBLICKEYBLOB 的 dwBlobType輸出上述pvStructInfo值。 CryptImportKey函式在匯入公開金鑰時,預期會有上述pvStructInfo值。 如果 dwCertEncodingType X509_ASN_ENCODING,則RSA_CSP_PUBLICKEYBLOB會編碼為 PKCS #1 RSAPublicKey,其中包含模數 INTEGER 和 publicExponent INTEGER 的 SEQUENCE。 模數會編碼為不帶正負號的整數。
針對解碼函式, pvStructInfo 會立即指向 公開金鑰 BLOB ,後面接著 RSAPUBKEY 和模數位節。 (如需公開金鑰 BLOB 的相關資訊,請參閱CRYPT_INTEGER_BLOB.) CryptExportKey會輸出dwBlobType of PUBLICKEYBLOBpvStructInfo值。 CryptImportKey函式會在匯入公開金鑰時預期pvStructInfo值。
如果 dwCertEncodingType X509_ASN_ENCODING,則RSA_CSP_PUBLICKEYBLOB會編碼為 PKCS #1 RSAPublicKey,其中包含模數 INTEGER 和 publicExponent INTEGER 的 SEQUENCE。 解碼時,如果模數編碼為具有前置 0 位元組的不帶正負號整數,則會先移除 0 位元組,然後再轉換為 CSP 模數位節。 因為 PKCS ) 結構一律設定為 CALG_RSA_KEYX。
szOID_DELTA_CRL_INDICATOR 僅與 Delta CRL 搭配使用。 這標示為重要,且包含可搭配差異 CRL 使用的最小基底 CRL 數位。
X509_DSS_SIGNATURE 位元組會依 DSS CSP 的 CryptSignHash 排序為輸出,其中較低的 20 個位元組是 R 值,而較高的 20 個位元組是 S 值。 R 和 S 值會被視為不帶正負號的整數,並編碼為序列。
X509_ECC_SIGNATURE 使用與X509_DH_PARAMETERS相同的編碼和解碼函式。 CERT_ECC_SIGNATURE結構與CERT_DH_PARAMETERS結構相同,但功能變數名稱除外。
X509_ENUMERATED 在編碼任何任意列舉時使用,例如X509_CRL_REASON_CODE。
szOID_FRESHEST_CRL 僅搭配基底 CRL 使用。 這的格式與保存 URL 的 CDP 延伸模組相同,以擷取差異 CRL。
X509_ISSUING_DIST_POINTszOID_ISSUING_DIST_POINT
針對CRYPT_E_INVALID_IA5_STRING,錯誤位置會由CryptEncodeObject (X509_ISSUING_DIST_POINT) 錯誤位置所傳回的 * (X509_ISSUING_DIST_POINT) 錯誤位置包含:
  • ENTRY_INDEX – 8 位 << 16
  • VALUE_INDEX – 16 位 (Unicode 字元索引)
如需ENTRY_INDEX和VALUE_INDEX錯誤位置定義常數的詳細資訊,請參閱 X509_ALTERNATE_NAME。
X509_KEY_USAGEszOID_KEY_USAGE
會使用用於CERT_KEY_ATTRIBUTES_INFO結構之 IntendedKeyUsage成員的位定義。
X509_KEYGEN_REQUEST_TO_BE_SIGNED 針對解碼函式, pbEncoded 成員是使用 X509_CERT lpszStructType之一編碼函式的輸出。 此輸出包含「要簽署」的資料及其簽章。 針對編碼函式, pbEncoded 成員只是「要簽署」的資料。
X509_MULTI_BYTE_UINT 在編碼之前,會插入前置0x00。 解碼之後,會移除前置0x00。
X509_NAME 用來解碼/編碼CERT_INFO結構中的簽發者和主體成員。
X509_NAME_CONSTRAINTSszOID_NAME_CONSTRAINTS
針對CRYPT_E_INVALID_IA5_STRING,CryptEncodeObject所傳回的錯誤位置會由CryptEncodeObject (X509_NAME_CONSTRAINTS) 錯誤位置包含:
  • EXCLUDED_SUBTREE_BIT – 1 位 << 31 (0 表示允許,1 表示排除)
  • ENTRY_INDEX – 8 位 << 16
  • VALUE_INDEX – 16 位 (Unicode 字元索引)
如需ENTRY_INDEX和VALUE_INDEX錯誤位置定義常數的詳細資訊,請參閱 X509_ALTERNATE_NAME。
X509_UNICODE_ANY_STRING
X509_UNICODE_NAME_VALUE
針對編碼函式,指向 Unicode 字串之 結構的 pbData 成員。 如果 cbData 成員為零,Unicode 字串就會有終止 的 Null 字元;否則, cbData 是 Unicode 字串位元組計數。 位元組計數是字元計數的兩倍。 如果 Unicode 字串包含對指定 dwValueType不正確字元,則會使用無效之第一個字元的 Unicode 字元索引來更新 *azureEncodedGetLastError 會傳回:
CRYPT_E_INVALID_NUMERIC_STRING
CRYPT_E_INVALID_PRINTABLE_STRING
CRYPT_E_INVALID_IA5_STRING
Unicode 字串會先轉換,再根據指定的 dwValueType進行編碼。 如果 dwValueType 設定為 0, GetLastError 會傳回E_INVALIDARG。
如果dwValueType未指出字元字串,CryptEncodeObject會以傳回CRYPT_E_NOT_CHAR_STRING的 GetLastError傳回FALSE
針對解碼函式, pbData 成員會指向 Null終止的 Unicode 字串, 而 cbData 成員包含 Unicode 字串的位元組計數,但不包括終止 Null 字元。 dwValueType 包含用來編碼物件的類型。 它不會強制CERT_RDN_UNICODE_STRING。 編碼的值會根據 dwValueType轉換成 Unicode 字串。
如果編碼的物件不是其中一個字元字串類型,解碼函式會傳回 FALSE ,並傳回CRYPT_E_NOT_CHAR_STRING的 GetLastError
使用 X509_ANY_STRING 的 lpszStructType 來解碼非字元字串。
szOID_NEXT_UPDATE_LOCATION 憑證信任清單 搭配使用 (CTL) ,以取得最近一次有效 CTL 的位置。 通常,CERT_ALT_NAME_INFO中使用的選擇是指出位置的 URL。
X509_OCTET_STRING 結構包含位元組序列。 它與某些加密演算法搭配使用,這些演算法需要八位字串形式的 初始化向量
CNG_RSA_PUBLIC_KEY_BLOB 對應的 pvStructInfo 會指向緊接著指數和模數位節的BCRYPT_RSAKEY_BLOB。 指數和模數都是以大到小的格式。 由 cbPrime1cbPrime2組成的私密金鑰欄位會設定為零。
如果 dwCertEncodingType 參數等於 X509_ASN_ENCODING則CNG_RSA_PUBLIC_KEY_BLOB 會編碼為 PKCS #1 RSA 公開金鑰,其中包含一連串的模數和 publicExponent。
PKCS_RSA_SSA_PSS_PARAMETERSszOID_RSA_SSA_PSS
針對編碼,如果 CRYPT_RSA_SSA_PSS_PARAMETERS 結構欄位設定為 Null 或零,請使用下列預設值。
欄位:HashAlgorithm.pszObjId
預設值:szOID_OIWSEC_sha1
欄位:MaskGenAlgorithm.pszObjId
預設值:szOID_RSA_MGF1
欄位:MaskGenAlgorithm.HashAlgorithm.pszObjId
預設值:HashAlgorithm.pszObjId
欄位:dwSaltLength
預設值:cbHash
欄位:dwTrailerField
預設值:PKCS_RSA_SSA_PSS_TRAILER_FIELD_BC
若要進行編碼,只需要設定 HashAlgorithm.pszObjId 欄位。 針對解碼,會明確設定所有欄位。
PKCS_RSAES_OAEP_PARAMETERSszOID_RSAES_OAEP
針對編碼,如果 CRYPT_RSAES_OAEP_PARAMETERS 結構欄位設定為 Null 或零,請使用下列預設值。
欄位:HashAlgorithm.pszObjId
預設值:szOID_OIWSEC_sha1
欄位:MaskGenAlgorithm.pszObjId
預設值:szOID_RSA_MGF1
欄位:MaskGenAlgorithm.HashAlgorithm.pszObjId
預設值:HashAlgorithm.pszObjId
欄位:PSourceAlgorithm.pszObjId
預設值:szOID_RSA_PSPECIFIED
欄位:PSourceAlgorithm.EncodingParameters.cbData
預設值:0
欄位:PSourceAlgorithm.EncodingParameters.pbData
預設值: Null
若要進行編碼,只需要設定 HashAlgorithm.pszObjId 欄位。 針對解碼,會明確設定所有欄位。
X509_SEQUENCE_OF_ANY CRYPT_DER_BLOB指向已編碼的 ANY 內容。
PKCS_SMIME_CAPABILITIESszOID_RSA_SMIMECapabilities
這些 lpszStructType 值對於編碼函式的運作方式不同。 由於 Secure/Multipurpose Internet Mail Extensions (S/MIME) 規格,如果 Parameters.cbData 為零,則會省略編碼參數,而不會編碼為 Null (05 00) 。
szOID_SUBJECT_KEY_IDENTIFIER CRYPT_INTEGER_BLOB結構包含八位字串,這是任意的位元組序列。
X509_UNICODE_NAME 對於解碼函式, (RDN) 屬性值的 相對辨別名稱Unicode 字串,除了 CERT_RDN_ENCODED_BLOB 或 CERT_RDN_OCTET_STRING 的 dwValueTypes 之外。 這些 dwValueTypes 與 X509_NAME 相同。 這些值不會轉換成 Unicode。 RDN 屬性值的 pbData 成員會指向 Null終止的 Unicode 字串。 RDN 屬性值的 cbData 成員包含 Unicode 字串的位元組計數,不包括終止 Null 字元。 RDN 屬性值的 dwValueType 成員包含編碼物件中使用的類型。 它不會強制CERT_RDN_UNICODE_STRING。 編碼的值會根據 dwValueType轉換成 Unicode 字串。
針對編碼函式,RDN 屬性值是 Unicode 字串,除了 CERT_RDN_ENCODED_BLOB 或 CERT_RDN_OCTET_STRING 的 dwValueTypes 之外。 這些 dwValueTypes 與 X509_NAME 相同。 這些值不預期為 Unicode。
對於其餘字串 dwValueTypes, 相對辨別名稱 (RDN) 屬性值的 pbData 成員指向 Unicode 字串。 如果 RDN 屬性值的 cbData 成員為零,Unicode 字串就會有終止 的 Null 字元。 否則,RDN 屬性值的 cbData 成員是 Unicode 字串位元組計數。 位元組計數是字元計數的兩倍,而且會排除終止 的 Null 字元。
如果 RDN 屬性值的 dwValueType 成員是CERT_RDN_ANY_TYPE, 則會使用 pszObjId 來尋找可接受的 dwValueType。 如果 Unicode 字串包含對找到或指定的 dwValueType不正確字元,則會以無效字元的錯誤位置來更新 *textEncoded 。 對於不正確字元, GetLastError 會傳回:
CRYPT_E_INVALID_NUMERIC_STRING
CRYPT_E_INVALID_PRINTABLE_STRING
CRYPT_E_INVALID_IA5_STRING
Unicode 字串會先轉換,再根據指定的 dwValueType 或物件識別碼的 dwValueType進行編碼。
編碼函式錯誤位置索引會以 *HTTPEncoded 傳回,如下所示:
錯誤的VALUE_INDEX位於位 0 到 15。
錯誤的ATTR_INDEX位於位 16 到 21。
錯誤的RDN_INDEX位於位 22 到 31。
位 0 是 DWORD最小有效位。
GET_CERT_UNICODE_RDN_ERR_INDEX (X) 、GET_CERT_UNICODE_ATTR_ERR_INDEX (X) 和GET_CERT_UNICODE_VALUE_ERR_INDEX (X) 定義的宏,可讓您從包含這些VALUE_INDEX、ATTR_INDEX和 RDN_INDEX的 DWORD 輕鬆讀取點陣圖欄位。
PKCS_UTC_TIMEszOID_RSA_signingTime
針對X509_ASN_ENCODING,UTC 時間會精確編碼為秒,並使用兩位數年份。

 

規格需求

需求
最低支援的用戶端
Windows XP [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器
Windows Server 2003 [傳統型應用程式 |UWP 應用程式]
標頭
Wincrypt.h

另請參閱

CRYPT_INTEGER_BLOB