CertGetNameStringA 関数 (wincrypt.h)
CertGetNameString 関数は、証明書 CERT_CONTEXT 構造体からサブジェクトまたは発行者の名前を取得し、null-terminated 文字列に変換します。
構文
DWORD CertGetNameStringA(
[in] PCCERT_CONTEXT pCertContext,
[in] DWORD dwType,
[in] DWORD dwFlags,
[in] void *pvTypePara,
[out] LPSTR pszNameString,
[in] DWORD cchNameString
);
パラメーター
[in] pCertContext
変換するサブジェクト名と発行者名を含む CERT_CONTEXT 証明書コンテキストへのポインター。
[in] dwType
DWORD 名前の検出方法と出力の書式設定方法を示します。
価値 | 意味 |
---|---|
|
証明書にサブジェクトの別名の拡張子または発行者の別名がある場合は、最初の rfc822Name の選択肢を使用します。 拡張機能で rfc822Name の選択肢が見つからない場合は、電子メール OID の [サブジェクト名] フィールドを使用します。 rfc822Name または電子メール OID が見つかった場合は、文字列を使用します。 それ以外の場合は、空の文字列を返します (返される文字数は 1 です)。 |
|
CertNameToStr |
|
pvTypePara は、返される name 属性を指定する オブジェクト識別子 (OID) を指します。 たとえば、pvTypePara |
|
次の名前属性の一覧を反復処理し、最初に出現するサブジェクト名またはサブジェクトの別名の拡張子を使用します:szOID_COMMON_NAME、szOID_ORGANIZATIONAL_UNIT_NAME、szOID_ORGANIZATION_NAME、またはszOID_RSA_emailAddr。
これらの属性のいずれかが見つからない場合は、rfc822Name の選択肢にサブジェクトの別名拡張子を使用します。 一致するものがまだない場合は、最初の属性を使用します。 |
|
CERT_FRIENDLY_NAME_PROP_ID プロパティの証明書を確認します。 証明書にこのプロパティがある場合は、返されます。 証明書にプロパティがない場合は、CERT_NAME_SIMPLE_DISPLAY_TYPEが返されます。 |
|
証明書に発行者のサブジェクトの別名拡張子 、発行者の別名がある場合は、最初の DNSName の選択肢を検索します。
拡張機能で DNSName の選択肢が見つからない場合は、[サブジェクト名] フィールドで CN OID "2.5.4.3" を検索します。 DNSName または CN OID が見つかった場合は、文字列を返します。 それ以外の場合は、空の文字列を返します。 |
|
証明書に発行者のサブジェクトの別名拡張子 、発行者の別名がある場合は、最初の URL の選択を検索します。 URL の選択が見つかった場合は、文字列を返します。 それ以外の場合は、空の文字列を返します。 |
|
証明書にサブジェクトの別名拡張子がある場合は、pszObjId == szOID_NT_PRINCIPAL_NAME ("1.3.6.1.4.1.311.20.2.3") を探して OtherName の選択肢を検索します。
UPN OID が見つかった場合は、BLOB をX509_UNICODE_ANY_STRINGとしてデコードし、デコードされた文字列を返します。 それ以外の場合は、空の文字列を返します。 |
[in] dwFlags
必要な処理の種類を示します。
価値 | 意味 |
---|---|
|
発行者の名前を取得します。 設定されていない場合は、サブジェクトの名前を取得します。 |
|
値を UTF8 としてデコードする既定の最初の試行をスキップし、8 ビット文字としてデコードします。 |
|
dwType パラメーターが CERT_NAME_DNS_TYPEに設定されている場合は、指定された DNS 値に該当するすべての名前が返されます。 DNS 名がなく、サブジェクトに CN コンポーネントがある場合は、代わりに CN が返されます。 CN と DNS 名がある場合は、DNS 名のみが返されます。 これは、SSL チェーン構築ポリシーを模倣します。
CERT_NAME_DNS_TYPE以外の名前の型に対してこのフラグを設定すると、この関数は null で終わる空の文字列を返します。
Windows 8 および Windows Server 2012: このフラグの サポートが開始されます。 |
|
このフラグを使用すると、IA5String 文字列を、以下に定義されている dwType パラメーター値に基づいて Unicode 文字列値にデコードできます。
|
[in] pvTypePara
dwStrType を含む DWORD、または名前属性を指定する オブジェクト識別子 (OID) へのポインター。 ポイントされる型は、dwType
[out] pszNameString
返された文字列を受け取る割り当てられたバッファーへのポインター。
CERT_NAME_SEARCH_ALL_NAMES_FLAG が dwFlags パラメーターで指定され、CERT_NAME_DNS_TYPE が dwType パラメーターに設定されている場合、返される文字列には、適用されるすべての DNS 名が含まれます。 出力文字列内の各文字列は null で終わるので、最後の文字列は 2 つの null で終わることになります。 DNS 名が見つからない場合は、null で終わる 1 つの空の文字列が返されます。
[in] cchNameString
返される文字列に割り当てられたサイズ (文字単位)。 サイズには、終端 NULL 文字を含める必要があります。
戻り値
変換された文字数 (終端の 0 文字を含む) を返します。 pszNameString
備考
手記
wincrypt.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして CertGetNameString を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP [デスクトップ アプリ |UWP アプリ] |
サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリ |UWP アプリ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | wincrypt.h |
ライブラリ | Crypt32.lib |
DLL | Crypt32.dll |