ICertAdmin2::GetCAProperty メソッド (certadm.h)

GetCAProperty メソッドは、証明機関 (CA) のプロパティ値を取得します。 このメソッドは、最初に ICertAdmin インターフェイスで定義されました。

構文

HRESULT GetCAProperty(
  [in]  const BSTR strConfig,
  [in]  LONG       PropId,
  [in]  LONG       PropIndex,
  [in]  LONG       PropType,
  [in]  LONG       Flags,
  [out] VARIANT    *pvarPropertyValue
);

パラメーター

[in] strConfig

COMPUTERNAME\CANAME 形式の CA の有効な構成文字列を表します。COMPUTERNAME は証明書サービス サーバーのネットワーク名、CANAME は証明書サービスのセットアップ時に入力された CA の共通名です。 構成文字列名の詳細については、「 ICertConfig」を参照してください。

重要GetCAProperty は、構成文字列が変更されたときに内部キャッシュをクリアしません。 CA の構成文字列を変更する場合は、新しい ICertAdmin オブジェクトをインスタンス化し、このメソッドを新しい構成文字列で再度呼び出す必要があります。
 

[in] PropId

次のいずれかのプロパティ識別子を指定します。

意味
CR_PROP_ADVANCEDSERVER
プロパティのデータ型: Long

CA が Advanced Server を実行しているかどうかを指定します。

CR_PROP_BASECRL
プロパティのデータ型: Binary、indexed

CA の完全な証明書 失効リスト (CRL)。

CR_PROP_BASECRLPUBLISHSTATUS
プロパティのデータ型: Long、インデックス付き

ベース CRL の発行状態。 詳しくは、「注釈」をご覧ください。

CR_PROP_CABACKWARDCROSSCERT
プロパティのデータ型: Binary、indexed

下位クロス証明書。 下位クロス証明書とは、CA から CA の新しいキーで署名された証明書自体への更新時に発行される証明書です。 下位クロス証明書には、新しい CA 証明書の機関キー識別子と、古い CA 証明書のサブジェクト キー識別子があります。

ルート CA にのみ適用されます。

CR_PROP_CABACKWARDCROSSCERTSTATE
プロパティのデータ型: Long、インデックス付き

下位クロス証明書が有効かどうか。 ルート CA に対してのみ有効です。

CR_PROP_CACERTSTATE
プロパティのデータ型: Long

CA 証明書の状態。 指定できる値は次のとおりです。

  • CA_DISP_REVOKED
  • CA_DISP_VALID
  • CA_DISP_INVALID
CR_PROP_CACERTSTATUSCODE
プロパティのデータ型: Long、インデックス付き

HRESULT としての CA 証明書の状態。

CR_PROP_CACERTVERSION
プロパティのデータ型: Long、インデックス付き

DWORD としての CA 証明書のバージョン。 上位ワードはキー インデックス、下位ワードは CA 証明書インデックスです。

CR_PROP_CAFORWARDCROSSCERT
プロパティのデータ型: Binary、indexed

前方クロス証明書。 前方クロス証明書は、CA から CA の以前のキーで署名された証明書への更新時に発行される証明書です。 前方クロス証明書には、以前の CA 証明書の機関キー識別子と、新しい CA 証明書のサブジェクト キー識別子があります。

ルート CA にのみ適用されます。

CR_PROP_CAFORWARDCROSSCERTSTATE
プロパティのデータ型: Long、インデックス付き

前方クロス証明書が有効かどうか。 ルート CA に対してのみ有効です。

CR_PROP_CANAME
プロパティのデータ型: String

CA の名前。

CR_PROP_CASIGCERT
プロパティのデータ型: Binary、indexed

CA 署名証明書。

CR_PROP_CASIGCERTCHAIN
プロパティのデータ型: Binary、indexed

CA 署名証明書チェーン。

CR_PROP_CASIGCERTCOUNT
プロパティのデータ型: Long

CA の署名証明書の数。

CR_PROP_CASIGCERTCRLCHAIN
プロパティのデータ型: Binary、indexed

CA の署名証明書 CRL チェーン。

CR_PROP_CATYPE
プロパティのデータ型: Long

CA の種類。 次のいずれかの値を指定できます (Certsrv.h で定義)。

  • ENUM_ENTERPRISE_ROOTCA
  • ENUM_ENTERPRISE_SUBCA
  • ENUM_STANDALONE_ROOTCA
  • ENUM_STANDALONE_SUBCA
CR_PROP_CAXCHGCERT
プロパティのデータ型: Binary、indexed

CA 交換証明書。

CR_PROP_CAXCHGCERTCHAIN
プロパティのデータ型: Binary、indexed

CA 交換証明書チェーン。

CR_PROP_CAXCHGCERTCOUNT
プロパティのデータ型: Long

CA の交換証明書の数。

CR_PROP_CAXCHGCERTCRLCHAIN
プロパティのデータ型: Binary、indexed

CA の交換証明書 CRL チェーン。

CR_PROP_CERTAIAURLS
プロパティのデータ型: 文字列、インデックス付き

クライアントが要求する URL の種類として、機関情報アクセス URL を指定します。

Windows Server 2003: このフラグはサポートされていません。

CR_PROP_CERTCDPURLS
プロパティのデータ型: 文字列、インデックス付き

クライアントが要求する URL の種類として CRL 配布ポイント URL を指定します。

Windows Server 2003: このフラグはサポートされていません。

CR_PROP_CRLSTATE
プロパティのデータ型: Long

CA の CRL の状態。 指定できる値は次のとおりです。

  • CA_DISP_REVOKED
  • CA_DISP_VALID
  • CA_DISP_INVALID
  • CA_DISP_ERROR
CR_PROP_DELTACRL
プロパティのデータ型: Binary、indexed

CA のデルタ CRL。

CR_PROP_DELTACRLPUBLISHSTATUS
プロパティのデータ型: Long、インデックス付き

デルタ CRL の発行状態。 詳しくは、「注釈」をご覧ください。

CR_PROP_DNSNAME
プロパティのデータ型: String

CA の DNS 名。

CR_PROP_EXITCOUNT
プロパティのデータ型: Long

CA で使用されている終了モジュールの数。

CR_PROP_EXITDESCRIPTION
プロパティのデータ型: String

終了モジュールの説明。

CR_PROP_FILEVERSION
プロパティのデータ型: String

Certificate Services ファイルのバージョン。

CR_PROP_KRACERT
プロパティのデータ型: Binary、indexed

CA のキー回復エージェント (KRA) 証明書。

CR_PROP_KRACERTCOUNT
プロパティのデータ型: Long

CA の KRA 証明書の数。

CR_PROP_KRACERTSTATE
プロパティのデータ型: Long、インデックス付き

KRA の証明書の状態。 戻り値は次のいずれかになります。

  • KRA_DISP_EXPIRED
  • KRA_DISP_NOTFOUND
  • KRA_DISP_REVOKED
  • KRA_DISP_VALID
  • KRA_DISP_UNTRUSTED
  • KRA_DISP_NOTLOADED
  • KRA_DISP_INVALID
CR_PROP_KRACERTUSEDCOUNT
プロパティのデータ型: Long

CA によって使用される KRA 証明書の数。

CR_PROP_PARENTCA
プロパティのデータ型: String

CA の親 CA の名前。

CR_PROP_POLICYDESCRIPTION
プロパティのデータ型: String

ポリシー モジュールの説明。

CR_PROP_PRODUCTVERSION
プロパティのデータ型: String

ファイルが出荷された製品バージョン。

CR_PROP_ROLESEPARATIONENABLED
プロパティのデータ型: Long

ロールの分離を有効にするかどうかを指定する値。

CR_PROP_SANITIZEDCANAME
プロパティのデータ型: String

CA のサニタイズされた名前。 サニタイズされた CA 名の定義については、「 ICertConfig2::GetConfig」を参照してください。

CR_PROP_SANITIZEDCASHORTNAME
プロパティのデータ型: String

CA のサニタイズされた短い名前。 サニタイズされた CA の短い名前の定義については、「 ICertConfig2::GetConfig」を参照してください。

CR_PROP_SHAREDFOLDER
プロパティのデータ型: String

共有フォルダー ディレクトリの名前。

CR_PROP_TEMPLATES
プロパティのデータ型: String

CA でサポートされているテンプレートの一覧。

[in] PropIndex

PropId パラメーターにインデックスが付いている場合、プロパティ値を取得するときに使用する 0 から始まるインデックス。 PropId がインデックス付けされていない場合、この値は無視されます。

[in] PropType

PropId テーブルの [意味] 列に示されているプロパティの種類を指定します。 型には、次のいずれかの型を指定できます。

意味
PROPTYPE_LONG
署名された長いデータ
PROPTYPE_DATE
日付/時刻 (将来の使用のために予約)
PROPTYPE_BINARY
Binary Data
PROPTYPE_STRING
Unicode 文字列データ

[in] Flags

次のフラグを使用して、返されるプロパティ値の形式を指定できます。これらのフラグは、バイナリ データ (証明書、証明書チェーン、証明書 失効リストなど) に対してのみ意味を持ち、それ以外の場合は無視されます。

意味
CV_OUT_BASE64
BEGIN/END なしの BASE64
CV_OUT_BASE64HEADER
BASE64 と BEGIN CERTIFICATE と END CERTIFICATE
CV_OUT_BASE64REQUESTHEADER
BASE64 で新しい証明書要求を開始し、新しい証明書要求を終了する
CV_OUT_BASE64X509CRLHEADER
BASE64 と BEGIN X509 CRL と END X509 CRL
CV_OUT_BINARY
Binary
CV_OUT_HEX
16 進数文字列
CV_OUT_HEXADDR
アドレス/オフセットを含む 16 進文字列
CV_OUT_HEXASCII
ASCII を含む 16 進数の文字列
CV_OUT_HEXASCIIADDR
ASCII とアドレス/オフセットを含む 16 進文字列

[out] pvarPropertyValue

要求されたプロパティ値を受け取るバッファーへのポインター。 VariantClear を呼び出して完了したら、このリソースを解放するのは呼び出し元の責任です。

戻り値

C++

戻り値は HRESULT です。 S_OK の値は、メソッドが成功したことを示します。

VB

要求されたプロパティ値。

注釈

プロパティ識別子がCR_PROP_BASECRLPUBLISHSTATUSまたはCR_PROP_DELTACRLPUBLISHSTATUSされると、次の値が返されます。 これらの値は結合できます。

説明
CPF_BADURL_ERROR URL が無効です。
CPF_BASE ベース CRL が発行されました。
CPF_CASTORE_ERROR CA ストア エラーによりパブリケーションが禁止されました。
CPF_COMPLETE 完全な CRL が発行されました。
CPF_DELTA デルタ CRL が発行されました。
CPF_FILE_ERROR ファイル エラーが発生して、パブリケーションが失敗しました。
CPF_FTP_ERROR FTP エラーによりパブリケーションが禁止されました。
CPF_HTTP_ERROR HTTP エラーによりパブリケーションが禁止されました。
CPF_LDAP_ERROR LDAP エラーによりパブリケーションが禁止されました。
CPF_MANUAL CRL が手動で発行されました。
CPF_SHADOW 空のデルタ CRL が、新しい BASE CRL と共に発行されました。
CPF_SIGNATURE_ERROR 署名エラーによりパブリケーションが禁止されました。
 

CRL の取得例については、「 証明書失効リストの取得」を参照してください。

次の例は、CA の署名証明書の取得を示しています。 この例では、 ICertAdmin2 インターフェイス ポインターが有効であることを前提としています。

BSTR bstrCA = NULL;
VARIANT var1;
HRESULT hr;

bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
if (NULL == bstrCA)
{
    printf("Failed to allocate memory for bstrCA\n");
    exit(1);
}

VariantInit(&var1);
// Retrieve the CA signature certificate at index 0.
hr = pAdmin2->GetCAProperty(bstrCA,
                                CR_PROP_CASIGCERT,
                                0,
                                PROPTYPE_BINARY,
                                CV_OUT_BASE64HEADER,
                                &var1);
if (FAILED(hr))
{
    printf("Failed GetCAProperty\n");
    SysFreeString(bstrCA);
    exit(1);  // Or other error action.
}

// Use the property as needed.
// ...

// Clear the variant when finished.
VariantClear(&var1);
SysFreeString(bstrCA);

要件

要件
サポートされている最小のクライアント サポートなし
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー certadm.h (Certsrv.h を含む)
Library Certidl.lib
[DLL] Certadm.dll