CryptEncodeObject および CryptDecodeObject の定数
CryptEncodeObject、CryptEncodeObjectEx、CryptSignAndEncodeCertificate、CryptDecodeObject、および CryptDecodeObjectEx 関数は、抽象構文表記 1 (ASN.1) でエンコードされた証明書、証明書失効リスト (CRL)、証明書信頼リスト (CCTL)、および証明書要求をエンコードおよびデコードできる一般化されたエンコードおよびデコード関数です。
次の表に、エンコードおよびデコード操作で使用される定義済みの定数、拡張機能、および属性と、 pvStructInfo パラメーターが指すデータ構造を示します。
注意
定義済みの定数と OID 文字列の中には、同じ意味を持つものもあります。 その場合は、 lpszStuctType パラメーターとしてどちらかを使用できます。
定数/値 | 説明 |
---|---|
|
pvStructInfo パラメーターは、CMC_ADD_ATTRIBUTES_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CMC_ADD_EXTENSIONS_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CRYPT_ALGORITHM_IDENTIFIER構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_ALT_NAME_INFO構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CERT_NAME_VALUE構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_POLICY_QUALIFIER_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_POLICY_CONSTRAINTS_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_POLICY_MAPPINGS_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CRYPT_ATTRIBUTE構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_AUTHORITY_INFO_ACCESS構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CERT_AUTHORITY_INFO_ACCESS構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CERT_AUTHORITY_INFO_ACCESS構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_AUTHORITY_INFO_ACCESS構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_AUTHORITY_KEY_ID_INFO構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CERT_AUTHORITY_KEY_ID2_INFO構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CERT_AUTHORITY_KEY_ID_INFO構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CERT_AUTHORITY_KEY_ID2_INFO構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CERT_BASIC_CONSTRAINTS_INFO構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CERT_BASIC_CONSTRAINTS_INFO構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CERT_BASIC_CONSTRAINTS2_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_BASIC_CONSTRAINTS2_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_BIOMETRIC_EXT_INFO構造体へのポインターです。 Windows Server 2003 および Windows XP: この値はサポートされていません。 |
|
pvStructInfo パラメーターは、CERT_BIOMETRIC_EXT_INFO構造体へのポインターです。 Windows Server 2003 および Windows XP: この値はサポートされていません。 |
|
pvStructInfo パラメーターは、CRYPT_BIT_BLOB構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_SIGNED_CONTENT_INFO構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CRL_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_EXTENSIONS構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_PAIR構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_POLICIES_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_POLICIES_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_REQUEST_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_TEMPLATE_EXT構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_TEMPLATE_EXT構造体へのポインターです。 |
|
pvStructInfo パラメーターは、FILETIME 変数へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CRYPT_CONTENT_INFO構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CRL_DIST_POINTS_INFO構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CRL_DIST_POINTS_INFO構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、int 変数へのポインターです。 |
|
pvStructInfo パラメーターは、列挙値を含む整数へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、列挙値を含む整数へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、int 変数へのポインターです。 |
|
pvStructInfo パラメーターは、CROSS_CERT_DIST_POINTS_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CROSS_CERT_DIST_POINTS_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、Diffie-Hellman バージョン 3 公開キー BLOB または DSS バージョン 3 公開キー BLOB 構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CTL_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CMC_DATA_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、int 変数へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_DSS_PARAMETERS構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CRYPT_UINT_BLOB構造体へのポインターです。 |
|
pvStructInfo パラメーターは、40 バイトの配列へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、オブジェクト識別子のドット表現の LPSTR へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_ECC_SIGNATURE構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CRYPT_ECC_PRIVATE_KEY_INFO構造体へのポインターです。 Windows Server 2003、Windows XP、Windows 2000、Windows Vista: この値はサポートされていません。 |
|
pvStructInfo パラメーターは、CRYPT_ALGORITHM_IDENTIFIER構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_ENHKEY_USAGEまたはCTL_USAGE構造体へのポインターです。 (これらの構造体は同じですが、異なる名前で知られています)。 |
|
pvStructInfo パラメーターは、CERT_ENHKEY_USAGEまたはCTL_USAGE構造体へのポインターです。 (これらの構造体は同じですが、異なる名前で知られています)。 |
|
pvStructInfo パラメーターは、CRYPT_ENROLLMENT_NAME_VALUE_PAIR構造体へのポインターです。 |
|
pvStructInfo パラメーターは、列挙値を含む整数へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CERT_EXTENSIONS構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CRL_DIST_POINTS_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、32 ビット以下の符号付き整数へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_ALT_NAME_INFO構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CERT_ALT_NAME_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CRL_ISSUING_DIST_POINT構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CRL_ISSUING_DIST_POINT構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_KEY_ATTRIBUTES_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_KEY_ATTRIBUTES_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CRYPT_BIT_BLOB構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CRYPT_BIT_BLOB構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CERT_KEY_USAGE_RESTRICTION_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_KEY_USAGE_RESTRICTION_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_KEYGEN_REQUEST_INFO構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CERT_LOGOTYPE_EXT_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_LOGOTYPE_EXT_INFO構造体へのポインターです。 Windows Server 2003 および Windows XP: この値はサポートされていません。 |
|
pvStructInfo パラメーターは、CRYPT_INTEGER_BLOB構造体へのポインターです。
BLOB はリトル エンディアン順です。 |
|
pvStructInfo パラメーターは、CRYPT_UINT_BLOB構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CERT_NAME_INFO構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CERT_NAME_CONSTRAINTS_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_NAME_CONSTRAINTS_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_NAME_VALUE構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CERT_ALT_NAME_INFO構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、オブジェクト識別子のドット表現の LPSTR へのポインターです。 Windows Server 2003 および Windows XP: この値はサポートされていません。 |
|
pvStructInfo パラメーターは、CRYPT_DATA_BLOB構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CERT_DSS_PARAMETERS構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_POLICY_CONSTRAINTS_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_POLICY_CONSTRAINTS_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_POLICY_MAPPINGS_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_POLICY_MAPPINGS_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_PUBLIC_KEY_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CRYPT_RC2_CBC_PARAMETERS構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CMC_RESPONSE_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、指数と剰余バイトの直後に続くBCRYPT_RSAKEY_BLOBへのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、プライベート BCRYPT_RSAKEY_BLOB構造体へのポインターです。 Windows Server 2003、Windows XP、Windows 2000、Windows Vista: この値はサポートされていません。 |
|
pvStructInfo パラメーターは、FILETIME 変数へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CRYPT_SMIME_CAPABILITIES構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CRYPT_RSA_SSA_PSS_PARAMETERS構造体へのポインターです。 詳細については、「解説」を参照してください。 Windows Server 2003 および Windows XP: この値はサポートされていません。 |
|
pvStructInfo パラメーターは、CRYPT_RSA_SSA_PSS_PARAMETERS構造体へのポインターです。 詳細については、「解説」を参照してください。 Windows Server 2003 および Windows XP: この値はサポートされていません。 |
|
pvStructInfo パラメーターは、CRYPT_RSAES_OAEP_PARAMETERS構造体へのポインターです。 詳細については、「解説」を参照してください。 Windows Server 2003 および Windows XP: この値はサポートされていません。 |
|
pvStructInfo パラメーターは、CRYPT_ECC_CMS_SHARED_INFO構造体へのポインターです。 Windows Server 2003 および Windows XP: この値はサポートされていません。 |
|
pvStructInfo パラメーターは、CRYPT_RSAES_OAEP_PARAMETERS構造体へのポインターです。 詳細については、「解説」を参照してください。 Windows Server 2003 および Windows XP: この値はサポートされていません。 |
|
pvStructInfo パラメーターは、CRYPT_SEQUENCE_OF_ANY構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CMSG_SIGNER_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CMSG_CMS_SIGNER_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CRYPT_SMIME_CAPABILITIES構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CMC_STATUS_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_ALT_NAME_INFO構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CERT_ALT_NAME_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CRYPT_DATA_BLOB構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CRYPT_TIME_STAMP_REQUEST_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CERT_NAME_VALUE構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CERT_NAME_INFO構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、CERT_NAME_VALUE構造体へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、FILETIME 変数へのポインターです。 詳細については、「解説」を参照してください。 |
|
pvStructInfo パラメーターは、OCSP_SIGNED_REQUEST_INFO変数へのポインターです。 Windows Server 2003 および Windows XP: この値はサポートされていません。 |
|
pvStructInfo パラメーターは、OCSP_REQUEST_INFO変数へのポインターです。 Windows Server 2003 および Windows XP: この値はサポートされていません。 |
|
pvStructInfo パラメーターは、OCSP_RESPONSE_INFO変数へのポインターです。 Windows Server 2003 および Windows XP: この値はサポートされていません。 |
|
pvStructInfo パラメーターは、OCSP_BASIC_SIGNED_RESPONSE_INFO変数へのポインターです。 Windows Server 2003 および Windows XP: この値はサポートされていません。 |
|
pvStructInfo パラメーターは、OCSP_BASIC_RESPONSE_INFO変数へのポインターです。 Windows Server 2003 および Windows XP: この値はサポートされていません。 |
|
pvStructInfo パラメーターは、RSA 秘密キー BLOB へのポインターです。 詳細については、「 Diffie-Hellman バージョン 3 の秘密キー BLOB」 および 「DSS バージョン 3 の秘密キー BLOB」を参照してください。 |
|
pvStructInfo パラメーターは、CRYPT_PRIVATE_KEY_INFO構造体へのポインターです。 |
|
pvStructInfo パラメーターは、CRYPT_ENCRYPTED_PRIVATE_KEY_INFO構造体へのポインターです。 |
注釈
次の表では、特定 の lpszStructType 値の詳細を示します。
値 | 説明 |
---|---|
X509_ALTERNATE_NAMEszOID_ISSUER_ALT_NAME szOID_SUBJECT_ALT_NAME |
エンコードする前に、 LPWSTR 名の選択肢は IA5 文字列に変換されます。 文字列に無効な IA5 文字列が含まれている場合、 GetLastError はCRYPT_E_INVALID_IA5_STRINGを返し、*pcbEncoded は無効な文字のエラー位置で更新されます。 エラー位置のインデックスは、次のように *pcbEncoded で返されます。 ビット 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_NAMEは、szOID_SUBJECT_ALT_NAME2によって置き換えられます。 新しい証明書サーバーは、後者を実装しています。 |
X509_AUTHORITY_INFO_ACCESS szOID_AUTHORITY_INFO_ACCESS szOID_AUTHORITY_KEY_IDENTIFIER2 X509_AUTHORITY_KEY_ID2 |
エンコード関数が GetLastError としてCRYPT_E_INVALID_IA5_STRINGを返す場合、*pcbEncoded で返されるエラーの場所は、ENTRY_INDEX - 8 ビット << 16 で構成されます VALUE_INDEX – 16 ビット (Unicode 文字インデックス) エラー位置のインデックスは、次のように *pcbEncoded で返されます。 ビット 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_IDは、X509_AUTHORITY_KEY_ID2によって置き換えられます。 新しい証明書サーバーは、後者を実装しています。 |
X509_BASIC_CONSTRAINTSszOID_BASIC_CONSTRAINTS |
X509_BASIC_CONSTRAINTSは、X509_BASIC_CONSTRAINTS2によって置き換えられます。 新しい証明書サーバーは、後者を実装しています。 |
X509_CERT |
CERT_SIGNED_CONTENT_INFO構造体には、署名するエンコードされたコンテンツ、その署名、署名アルゴリズムが含まれます。
ToBeSigned メンバーは、次のいずれかの lpszStructType 値に対する CryptEncodeObject の前回の呼び出しからエンコードされたCERT_INFO、CRL_INFO、CERT_REQUEST_INFO、またはCERT_KEYGEN_REQUEST_INFO出力です。
|
szOID_CERT_EXTENSIONS | 証明書要求の属性の種類の 1 つに使用できます。 |
X509_CHOICE_OF_TIME | X509_ASN_ENCODINGの場合、時刻が 1950 年より後で 2050 より前の場合、UTC 時刻は 2 桁の年でエンコードされます。 それ以外の場合は、4 桁の年でエンコードされた一般化された時刻になります。日付は秒に正確です。 |
PKCS_CONTENT_INFO | X509_ASN_ENCODINGの場合は、PKCS #7 ContentInfo 構造体としてエンコードされます。 CRYPT_DER_BLOBは、既にエンコードされている ANY コンテンツを指します。 |
PKCS_CONTENT_INFO_SEQUENCE_OF_ANY | X509_ASN_ENCODINGの場合、一連の ANY をラップする PKCS #7 ContentInfo 構造体としてエンコードされます。
contentType メンバーの値は pszObjId ですが、コンテンツ フィールドは次の構造です。 SequenceOfAny ::= SEQUENCE OF ANY CRYPT_DER_BLOBは、既にエンコードされている ANY コンテンツを指します。 |
X509_CRL_DIST_POINTSszOID_CRL_DIST_POINTS |
getLastError がCRYPT_E_INVALID_IA5_STRINGを返してエンコード関数が失敗した場合、*pcbEncoded は無効な文字のエラー位置で更新されます: CRL_ISSUER_BIT – 1 ビット << 31 (FullName の場合は 0、CRLIssuer の場合は 1) POINT_INDEX – 7 ビット << 24 ENTRY_INDEX – 8 ビット << 16 VALUE_INDEX – 16 ビット (Unicode 文字インデックス) エラーの場所のインデックスは、次のように *pcbEncoded で返されます。 ビット 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) は、VALUE_INDEXおよびENTRY_INDEXに含まれる DWORD のビットマップ フィールドを簡単に読み取るように定義されています。 |
szOID_CRL_NUMBER | 基本 証明書失効リスト (CRL) でのみ使用されます。 これは、証明機関によって発行された各 CRL の単調に増加するシーケンス番号 です。 |
X509_CRL_REASON_CODEszOID_CRL_REASON_CODE X509_ENUMERATED |
Integer は、次のいずれかの列挙値に設定できます。
|
szOID_CRL_VIRTUAL_BASE | Delta CRL でのみ使用されます。 それには、対応するベース CRL のベース CRL 番号が含まれます。 |
X509_CROSS_CERT_DIST_POINTSszOID_CROSS_CERT_DIST_POINTS |
CRYPT_E_INVALID_IA5_STRINGの場合、エラーの場所は *pcbEncoded by CryptEncodeObject(X509_CRL_DIST_POINTS) エラーの場所で返されます。
|
RSA_CSP_PUBLICKEYBLOB |
CryptExportKey 関数は、PUBLICKEYBLOB の dwBlobType に対して、上記の pvStructInfo 値を出力します。
CryptImportKey 関数では、公開キーをインポートするときに、上記の pvStructInfo 値が必要です。
dwCertEncodingType がX509_ASN_ENCODING場合、RSA_CSP_PUBLICKEYBLOBは、剰余 INTEGER と publicExponent INTEGER の SEQUENCE で構成される PKCS #1 RSAPublicKey としてエンコードされます。 剰余は符号なし整数としてエンコードされます。 デコード関数の場合、 pvStructInfo は 公開キー BLOB の直後に RSAPUBKEY と剰余バイトを指します。 (公開キー BLOB の詳細については、「CRYPT_INTEGER_BLOB」を参照してください)。CryptExportKey は、PUBLICKEYBLOB の dwBlobType の pvStructInfo 値を出力します。 CryptImportKey 関数は、公開キーをインポートするときに pvStructInfo 値を使用します。 dwCertEncodingType がX509_ASN_ENCODING場合、RSA_CSP_PUBLICKEYBLOBは、剰余 INTEGER と publicExponent INTEGER の SEQUENCE で構成される PKCS #1 RSAPublicKey としてエンコードされます。 デコード時に、剰余が先頭に 0 バイトの符号なし整数としてエンコードされた場合、CSP の剰余バイトに変換する前に 0 バイトが削除されます。 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 でのみ使用されます。 これは、デルタ CRL をフェッチするための URL を保持する CDP 拡張機能と同じように書式設定されます。 |
X509_ISSUING_DIST_POINTszOID_ISSUING_DIST_POINT |
CRYPT_E_INVALID_IA5_STRINGの場合、エラーの場所は *pcbEncoded by CryptEncodeObject(X509_ISSUING_DIST_POINT) エラーの場所で返されます。
|
X509_KEY_USAGEszOID_KEY_USAGE |
CERT_KEY_ATTRIBUTES_INFO構造体の IntendedKeyUsage メンバーに使用されるビット定義が使用されます。 |
X509_KEYGEN_REQUEST_TO_BE_SIGNED | デコード関数の場合、 pbEncoded メンバーは、X509_CERT lpszStructType を使用したエンコード関数の 1 つの出力です。 この出力には、"署名する" データとその署名が含まれます。 エンコード関数の場合、 pbEncoded メンバーは "署名する" データのみです。 |
X509_MULTI_BYTE_UINT | エンコードする前に、先頭の0x00が挿入されます。 デコード後、先頭の0x00が削除されます。 |
X509_NAME | CERT_INFO構造体の Issuer メンバーと Subject メンバーをデコード/エンコードするために使用されます。 |
X509_NAME_CONSTRAINTSszOID_NAME_CONSTRAINTS |
CRYPT_E_INVALID_IA5_STRINGの場合、エラーの場所は *pcbEncoded by CryptEncodeObject(X509_NAME_CONSTRAINTS) で返されます。エラーの場所は次で構成されます。
|
X509_UNICODE_ANY_STRING X509_UNICODE_NAME_VALUE |
エンコード関数の場合、構造体の pbData メンバーが Unicode 文字列を指しています。
cbData メンバーが 0 の場合、Unicode 文字列には終端の null 文字が含まれます。それ以外の場合、cbData は Unicode 文字列バイト数です。 バイト数は文字数の 2 倍です。 指定した dwValueType に対して無効な文字が Unicode 文字列に含まれている場合、*pcbEncoded は無効な最初の文字の Unicode 文字インデックスで更新されます。
GetLastError は次 を返します。 CRYPT_E_INVALID_NUMERIC_STRING CRYPT_E_INVALID_PRINTABLE_STRING CRYPT_E_INVALID_IA5_STRING Unicode 文字列は、指定された dwValueType に従ってエンコードされる前に変換されます。 dwValueType が 0 に設定されている場合、GetLastError はE_INVALIDARGを返します。 dwValueType が文字列を示さない場合、CryptEncodeObject は FALSE を返し、GetLastError はCRYPT_E_NOT_CHAR_STRINGを返します。 デコード関数の場合、 pbData メンバーは null で終わる Unicode 文字列を指し、 cbData メンバーには終了 する null 文字を除く Unicode 文字列のバイト数が含まれます。 dwValueType には、オブジェクトのエンコードに使用される型が含まれます。 CERT_RDN_UNICODE_STRINGを強制されません。 エンコードされた値は、 dwValueType に従って Unicode 文字列に変換されます。 エンコードされたオブジェクトが文字列型の 1 つでない場合、デコード関数は FALSE を 返し、 GetLastError は CRYPT_E_NOT_CHAR_STRINGを返します。 X509_ANY_STRINGの lpszStructType を使用して、文字以外の文字列をデコードします。 |
szOID_NEXT_UPDATE_LOCATION | 証明書信頼リスト (CCTL) と共に使用して、最新の有効な時間有効な CTL の場所を取得します。 通常、CERT_ALT_NAME_INFOで使用される選択肢は、場所を示す URL です。 |
X509_OCTET_STRING | 構造体にはバイトシーケンスが含まれています。 オクテット文字列の形式で 初期化ベクトル を必要とする一部の暗号化アルゴリズムで使用されます。 |
CNG_RSA_PUBLIC_KEY_BLOB | 対応する pvStructInfo は、直ちに指数と剰余バイトが続くBCRYPT_RSAKEY_BLOBを指します。 指数と剰余の両方がビッグ エンディアン形式です。
cbPrime1 と cbPrime2 で構成される秘密キー フィールドは 0 に設定されます。 dwCertEncodingType パラメーターがX509_ASN_ENCODINGと等しい場合、CNG_RSA_PUBLIC_KEY_BLOBは、剰余と publicExponent のシーケンスで構成される PKCS #1 RSA 公開キーとしてエンコードされます。 |
PKCS_RSA_SSA_PSS_PARAMETERSszOID_RSA_SSA_PSS |
エンコードの場合、 CRYPT_RSA_SSA_PSS_PARAMETERS 構造体フィールドが NULL またはゼロ に設定されている場合は、次の既定値を使用します。
|
PKCS_RSAES_OAEP_PARAMETERSszOID_RSAES_OAEP |
エンコードの場合、 CRYPT_RSAES_OAEP_PARAMETERS 構造体フィールドが NULL またはゼロ に設定されている場合は、次の既定値を使用します。
|
X509_SEQUENCE_OF_ANY | CRYPT_DER_BLOBは、既にエンコードされている ANY コンテンツを指します。 |
PKCS_SMIME_CAPABILITIESszOID_RSA_SMIMECapabilities |
これらの lpszStructType 値は、エンコード関数の動作が異なります。 Secure/Multipurpose Internet Mail Extensions (S/MIME) の仕様により、Parameters.cbData が 0 の場合、エンコードされたパラメーターは省略され、NULL (05 00) としてエンコードされません。 |
szOID_SUBJECT_KEY_IDENTIFIER | CRYPT_INTEGER_BLOB構造体には、任意のバイト シーケンスであるオクテット文字列が含まれています。 |
X509_UNICODE_NAME | デコード関数の場合、相対識別名 (RDN) 属性値は、CERT_RDN_ENCODED_BLOBまたはCERT_RDN_OCTET_STRINGの dwValueTypeを除く Unicode 文字列です。 これらの dwValueTypeは、X509_NAMEの 場合と同じです。 これらの値は Unicode に変換されません。 RDN 属性値の pbData メンバーは 、null で終わる Unicode 文字列を指します。 RDN 属性値の cbData メンバーには、終端の null 文字を除く Unicode 文字列のバイト数が含まれています。 RDN 属性値の dwValueType メンバーには、エンコードされたオブジェクトで使用される型が含まれています。 CERT_RDN_UNICODE_STRINGを強制されません。 エンコードされた値は、 dwValueType に従って Unicode 文字列に変換されます。 エンコード関数の場合、RDN 属性値は、CERT_RDN_ENCODED_BLOBまたはCERT_RDN_OCTET_STRINGの dwValueTypeを除く Unicode 文字列です。 これらの dwValueTypeは、X509_NAMEの 場合と同じです。 これらの値は Unicode とは見なされません。 残りの文字列 dwValueTypeの場合、 相対識別名 (RDN) 属性値の pbData メンバーは Unicode 文字列を指します。 RDN 属性値の cbData メンバーが 0 の場合、Unicode 文字列の終端は null 文字になります。 それ以外の場合、RDN 属性値の cbData メンバーは Unicode 文字列バイト数です。 バイト数は文字数の 2 倍であり、終端の null 文字は除外されます。 RDN 属性値の dwValueType メンバーがCERT_RDN_ANY_TYPE場合、 pszObjId を 使用して許容される dwValueType が検索されます。 見つかった、または指定された dwValueType に対して無効な文字が Unicode 文字列に含まれている場合、*pcbEncoded は無効な文字のエラー位置で更新されます。 無効な文字の場合、 GetLastError は 次を返します。 CRYPT_E_INVALID_NUMERIC_STRING CRYPT_E_INVALID_PRINTABLE_STRING CRYPT_E_INVALID_IA5_STRING Unicode 文字列は、指定された dwValueType またはオブジェクト識別子の dwValueType に従ってエンコードされる前に変換されます。 エンコード関数のエラー位置インデックスは、次のように *pcbEncoded で返されます。 エラーの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) 定義のマクロは、それらを含む DWORD からVALUE_INDEX、ATTR_INDEX、およびRDN_INDEXのビットマップ フィールドを簡単に読み取ります。 |
PKCS_UTC_TIMEszOID_RSA_signingTime |
X509_ASN_ENCODINGの場合、UTC 時刻は正確に秒にエンコードされ、2 桁の年を使用します。 |
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows XP [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー |
Windows Server 2003 [デスクトップ アプリ |UWP アプリ] |
Header |
|
こちらもご覧ください