CertIsRDNAttrsInCertificateName 関数 (wincrypt.h)
CertIsRDNAttrsInCertificateName 関数は、証明書名の属性を指定したCERT_RDNと比較して、すべての属性がそこに含まれているかどうかを判断します。 比較では 、CERT_RDN を反復処理し、証明書名のいずれかの CERT_RDNで属性の一致を検索します。
構文
BOOL CertIsRDNAttrsInCertificateName(
[in] DWORD dwCertEncodingType,
[in] DWORD dwFlags,
[in] PCERT_NAME_BLOB pCertName,
[in] PCERT_RDN pRDN
);
パラメーター
[in] dwCertEncodingType
使用するエンコードの種類を指定します。 次の例に示すように、証明書と メッセージエンコードの両方の種類 をビットごとの OR 操作と組み合わせて指定することは、常に許容されます。
X509_ASN_ENCODING |PKCS_7_ASN_ENCODING
現在定義されているエンコードの種類は次のとおりです。
- X509_ASN_ENCODING
- PKCS_7_ASN_ENCODING
[in] dwFlags
pRDN が CryptEncodeObject のように Unicode 文字列で初期化され、lpszStructType がX509_UNICODE_NAMEに設定されている場合は、CERT_UNICODE_IS_RDN_ATTRS_FLAGを設定する必要があります。
CERT_CASE_INSENSITIVE_IS_RDN_ATTRS_FLAGは、大文字と小文字を区別しない一致を行うために設定されます。 それ以外の場合は、大文字と小文字を区別した正確な一致が行われます。
[in] pCertName
エンコードされたサブジェクト名または発行者名を含む CRYPT_INTEGER_BLOB へのポインター。
[in] pRDN
名前 に 含まれる属性を含むCERT_RDN構造体の配列。 CERT_RDN構造体のCERT_RDN_ATTR メンバーは、次の規則に従って動作します。
- pszObjId が NULL の場合、属性オブジェクト識別子 (OID) は無視されます。
- dwValueType がCERT_RDN_ANY_TYPE場合、値の型は無視されます。
- Value の pbData メンバーが NULL の場合、任意の値を一致させることができます。
戻り値
関数が成功し、指定した CERT_RDN 内のすべての RDN 値が証明書名内にある場合、戻り値は 0 以外 (TRUE) になります。
関数が失敗した場合、または指定した CERT_RDN に証明書名にない RDN 値がある場合、戻り値は 0 (FALSE) になります。 拡張エラー情報については、 GetLastError を呼び出します。
次の表に、考えられるエラー コードをいくつか示します。
リターン コード | 説明 |
---|---|
|
すべての属性が見つかり、一致したわけではありません。 |
|
証明書のエンコードの種類が無効です。 現在、X509_ASN_ENCODINGのみがサポートされています。 |
関数が失敗した場合、GetLastError は抽象構文表記 1 (ASN.1) エンコード/デコード エラーを返す可能性があります。 これらのエラーの詳細については、「 ASN.1 エンコード/デコードの戻り値」を参照してください。
解説
現時点では、大文字と小文字を区別する正確な一致のみがサポートされています。
要件
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | wincrypt.h |
Library | Crypt32.lib |
[DLL] | Crypt32.dll |