次の方法で共有


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

pRDNCryptEncodeObject のように 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 メンバーは、次の規則に従って動作します。

  • pszObjIdNULL の場合、属性オブジェクト識別子 (OID) は無視されます。
  • dwValueType がCERT_RDN_ANY_TYPE場合、値の型は無視されます。
  • ValuepbData メンバーが NULL の場合、任意の値を一致させることができます。

戻り値

関数が成功し、指定した CERT_RDN 内のすべての RDN 値が証明書名内にある場合、戻り値は 0 以外 (TRUE) になります

関数が失敗した場合、または指定した CERT_RDN に証明書名にない RDN 値がある場合、戻り値は 0 (FALSE) になります。 拡張エラー情報については、 GetLastError を呼び出します。

次の表に、考えられるエラー コードをいくつか示します。

リターン コード 説明
CRYPT_E_NO_MATCH
すべての属性が見つかり、一致したわけではありません。
ERROR_FILE_NOT_FOUND
証明書のエンコードの種類が無効です。 現在、X509_ASN_ENCODINGのみがサポートされています。
 

関数が失敗した場合、GetLastError は抽象構文表記 1 (ASN.1) エンコード/デコード エラーを返す可能性があります。 これらのエラーの詳細については、「 ASN.1 エンコード/デコードの戻り値」を参照してください。

解説

現時点では、大文字と小文字を区別する正確な一致のみがサポートされています。

要件

   
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー wincrypt.h
Library Crypt32.lib
[DLL] Crypt32.dll

関連項目

CertFindCertificateInStore

データ管理関数