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 |