ICEnroll::get_HashAlgorithm メソッド (xenroll.h)

[このプロパティは、Windows Server 2008 および Windows Vista では使用できなくなりました。

HashAlgorithm プロパティは、PKCS #10 認定要求の署名に使用される署名ハッシュ アルゴリズムのみを設定または取得します。

このプロパティは、 ICEnroll インターフェイスで最初に定義されました。

このプロパティは読み取り/書き込み可能です。

構文

HRESULT get_HashAlgorithm(
  BSTR *pbstr
);

パラメーター

pbstr

戻り値

なし

解説

この署名 ハッシュ アルゴリズム は、証明書の署名に使用される ハッシュ アルゴリズム と混同しないでください。 登録コントロールでは現在、ハッシュ アルゴリズムOID に加えて、SHA1 (既定値)、MD2、および MD5 の表示名の値がサポートされています。 このプロパティを取得すると、取得された値は OID 形式になります (つまり、SHA1 は 1.3.14.3.2.29 として表示されます)。 このプロパティを設定する場合、定義されたフレンドリ値に表示されるテキストの代わりに、対応する OID 形式を使用できます。

証明書登録コントロールは、 HashAlgorithm プロパティの値を、PKCS #10 認定要求の署名に使用する ハッシュ アルゴリズム のヒントと見なします。 暗号化サービス プロバイダー (CSP) が HashAlgorithm プロパティで指定されたアルゴリズムをサポートしている場合は、アルゴリズムが使用されます。 それ以外の場合、証明書登録コントロールは SHA1 の使用を試みます。 CSP で SHA1 がサポートされていない場合は、MD5 が試行されます。 SHA1 も MD5 もサポートされていない場合、証明書登録制御は CSP から返される最初の ハッシュ アルゴリズムの使用を 試みます。

HashAlgorithm プロパティは、次のメソッドの動作に影響します。

HashAlgID プロパティと HashAlgorithm プロパティの両方が設定されている場合は、最後に更新された方が PKCS #10 認定要求の署名に使用するハッシュ アルゴリズムを指定します。

BSTR     bstrHashAlg = NULL;
HRESULT  hr;

// get the hash algorithm
hr = pEnroll->get_HashAlgorithm( &bstrHashAlg );
if ( FAILED ( hr ) )
    printf("Failed get_HashAlgorithm - %x\n", hr );
else
    printf( "HashAlgorithm: %ws\n", bstrHashAlg );
// free BSTR
if ( NULL != bstrHashAlg )
    SysFreeString( bstrHashAlg);

BSTR    bstrMyHashAlg = SysAllocString(TEXT("MD5"));
// alternatively, ... = SysAllocString(TEXT("1.2.840.113549.1.1.4"));

// set the hash algorithm
hr = pEnroll->put_HashAlgorithm( bstrMyHashAlg );
if ( FAILED ( hr ) )
    printf("Failed put_HashAlgorithm - %x\n", hr );
else
    printf( "HashAlgorithm was set to %ws\n", bstrMyHashAlg );
// free BSTR
if ( NULL != bstrMyHashAlg )
    SysFreeString( bstrMyHashAlg);

要件

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