ICertServerExit::GetCertificateProperty メソッド (certif.h)

GetCertificateProperty メソッドは、証明書から名前付きプロパティを返します。

構文

HRESULT GetCertificateProperty(
  [in]  const BSTR strPropertyName,
  [in]  LONG       PropertyType,
  [out] VARIANT    *pvarPropertyValue
);

パラメーター

[in] strPropertyName

取得する名前付きプロパティを指定します。 証明書プロパティのストック セット ( 名前プロパティと呼ばれます) は常に有効であり、このメソッドを呼び出すことによって取得できます。 これらのプロパティの詳細については、「 名前のプロパティ」を参照してください。 取得できるその他のプロパティには、証明書のプロパティが含まれます。

次のプロパティは証明書に固有であり、 GetCertificateProperty で読み取ることができます。

意味
NotBefore
日付/時刻
証明書の開始日
NotAfter
日付/時刻
証明書の有効期限
PublicKeyAlgorithm
String
サブジェクト キー アルゴリズム オブジェクト識別子 (OID)
RawCertificate
Binary
生証明書のバイト数
RawPublicKey
Binary
サブジェクト キー
RawPublicKeyAlgorithmParameters
Binary
サブジェクト キー アルゴリズム のパラメーター
RequestID
Signed Long
内部要求 ID
SerialNumber
String
証明書のシリアル番号
 

証明書の DistinguishedName、RawName、および SerialNumber プロパティは、ポリシー モジュールが要求の処理を完了し、証明書が発行された後にのみ 、GetCertificateProperty からアクセスできます。

証明機関には、次のプロパティが適用 されます。 これらのプロパティのいずれかを読み取る場合、コンテキストは 0 である必要があります。 ICertServerExit オブジェクトが最初に作成されると、コンテキストは 0 に設定されます。 SetContext メソッドを呼び出すことで、0 に設定することもできます。

意味
CAType
Long
証明機関の種類。 これには、次のいずれかの値を指定できます (Certsrv.h で定義されています)。

ENUM_ENTERPRISE_ROOTCA

ENUM_ENTERPRISE_SUBCA

ENUM_STANDALONE_ROOTCA

ENUM_STANDALONE_SUBCA

CertCount
Long
CA 証明書の数。 この値は、1 に CA が更新された回数を加算した値になります。 更新の詳細については、「 証明機関の更新」を参照してください。
CertState
Long
CA 証明書 の状態。 次のいずれかの値を指定できます。
CA_DISP_ERROR: CA 証明書が発行されませんでした。
CA_DISP_REVOKED: CA 証明書が取り消されました。
CA_DISP_VALID: CA 証明書は引き続き有効です。
CA_DISP_INVALID: CA 証明書の有効期限が切れています。
このプロパティ名には '.#' を追加できます。ここで、 # は CA 証明書インデックス (CRLSuffix プロパティの場合は CRL インデックス) を表します。 証明書と CRL インデックスの詳細については、「証明機関の 更新」を参照してください。
CertSuffix
String
CA 証明書のサフィックス。 サフィックスは、インデックスが 0 の CA 証明書の空の文字列です。それ以外の場合は、ファイルまたはディレクトリ サービス オブジェクトに格納されている CA 証明書を指すすべての URL にサフィックス ("(nn)"、 ここで nn は証明書インデックスの形式) が適用されます。 LDAP 以外の URL の場合、通常、サフィックスは ".crt" テキストの前に表示されます。 LDAP URL の場合、サフィックスは通常、完全な識別名の最初の 'CN=' に追加されます。

このプロパティ名には '.#' を追加できます。ここで、 # は CA 証明書インデックス (CRLSuffix プロパティの場合は CRL インデックス) を表します。 証明書と CRL インデックスの詳細については、「証明機関の 更新」を参照してください。

CRLIndex
Long
証明書失効リスト (CRL) インデックス。 このプロパティ名に証明書インデックスを追加すると、CRL インデックスを取得できます。 CRL インデックスは、必ずしも証明書インデックスと一致するとは限りません。 詳細については、「 認定」を参照してください。

このプロパティ名には '.#' を追加できます。ここで、 # は CA 証明書インデックス (CRLSuffix プロパティの場合は CRL インデックス) を表します。 証明書と CRL インデックスの詳細については、「証明機関の 更新」を参照してください。

CRLState
Long
CRL の状態。 次のいずれかの値を指定できます。
CA_DISP_ERROR: CRL は別の CA 証明書によって管理されます。
CA_DISP_REVOKED: この CA 証明書の CRL を使用する期限切れでない CA 証明書はすべて失効しています。
CA_DISP_VALID: CA 証明書は、必要に応じて CRL を発行するために引き続き使用されています。
CA_DISP_INVALID: この CA 証明書の CRL を使用するすべての CA 証明書の有効期限が切れています。
このプロパティ名には '.#' を追加できます。ここで、 # は CA 証明書インデックス (CRLSuffix プロパティの場合は CRL インデックス) を表します。 証明書と CRL インデックスの詳細については、「証明機関の 更新」を参照してください。
CRLSuffix
String
CA CRL のサフィックス。 サフィックスは、インデックスが 0 の CRL の空の文字列です。それ以外の場合は、ファイルまたはディレクトリ サービス オブジェクトに格納されている CRL を指すすべての URL にサフィックス ("(nn)"、 nn は CRL インデックスの形式) が適用されます。 LDAP 以外の URL の場合、通常、サフィックスは ".crl" テキストの前に表示されます。 LDAP URL の場合、サフィックスは通常、完全な識別名の最初の 'CN=' に追加されます。

このプロパティ名には '.#' を追加できます。ここで、 # は CA 証明書インデックス (CRLSuffix プロパティの場合は CRL インデックス) を表します。 証明書と CRL インデックスの詳細については、「証明機関の 更新」を参照してください。

fUseDS
Long
CA がディレクトリ サービスを使用するかどうかを示します。 これには、次のいずれかの値を指定できます。
  • 0=no
  • 1= はい
MachineDNSName
String
CA をホストしているサーバーの DNS 名。
ModuleRegistryLocation
String
モジュールで使用できるレジストリの場所。
RawCACertificate
Binary
CA 証明書。

このプロパティ名には '.#' を追加できます。ここで、 # は CA 証明書インデックス (CRLSuffix プロパティの場合は CRL インデックス) を表します。 証明書と CRL インデックスの詳細については、「証明機関の 更新」を参照してください。

RawCRL
Binary
CA の 証明書失効リスト (CRL)。

このプロパティ名には '.#' を追加できます。ここで、 # は CA 証明書インデックス (CRLSuffix プロパティの場合は CRL インデックス) を表します。 証明書と CRL インデックスの詳細については、「証明機関の 更新」を参照してください。

RequesterCAAccess
Long
要求元が証明書の要求を承認されているかどうかを示します。 これには、次のいずれかの値を指定できます。
  • 0=no
  • 1= はい
(証明機関 MMC スナップインを使用して 、証明書要求 のアクセス許可を制御できます)。
SanitizedCAName
String
CA のサニタイズされた名前。 サニタイズされた CA 名の詳細については、「 ICertConfig::GetConfig」を参照してください。
SanitizedShortName
String
CA のサニタイズされた名前。一意性を確保するために、短縮され、ハッシュ値が含まれています。

[in] PropertyType

プロパティの種類を指定します。 型は、次のいずれかになります。

意味
PROPTYPE_LONG
署名された長いデータ
PROPTYPE_DATE
日付/時刻
PROPTYPE_BINARY
Binary Data
PROPTYPE_STRING
Unicode 文字列データ

[out] pvarPropertyValue

プロパティ値を格納する VARIANT へのポインター。 戻り値は BSTR としてエンコードされます。 SysStringByteLen 関数を使用して、BSTR の長さを取得します。 バイナリ BLOB は、Distinguished Encoding Rulesエンコードされた X.509 証明書として格納されます。

戻り値

C++

メソッドが成功した場合、メソッドは S_OKを返します。

メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。 一般的なエラー コードの一覧については、「 共通の HRESULT 値」を参照してください。

VB

戻り値は、要求されたプロパティ値です。

解説

このメソッドを使用する前に 、ICertServerExit::SetContext を呼び出す必要があります。

BSTR    bstrPropName = NULL;
VARIANT varProp;

VariantInit(&varProp);

// Set the property name to RequestID.
bstrPropName = SysAllocString(L"RequestID");

// Retrieve the certificate property.
// pCertServerExit has been used to call SetContext previously.
hr = pCertServerExit->GetCertificateProperty(bstrPropName,
                                             PROPTYPE_LONG,
                                             &varProp );
if (FAILED(hr))
{
    printf("Failed GetCertificateProperty [%x]\n", hr);
    goto error;
}
else
{
    // Successfully retrieved property; use varProp as needed.
    // ...
}

// Done processing.
if (NULL != bstrPropName)
    SysFreeString(bstrPropName);
VariantClear(&varProp);

要件

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

関連項目

ICertServerExit

ICertServerExit::SetContext

Name プロパティ