StrongNameGetPublicKeyEx メソッド

公開キーと秘密キーのペアから公開キーを取得し、ハッシュアルゴリズムと署名アルゴリズムを指定します。

構文

HRESULT StrongNameGetPublicKey (
    [in]  LPCWSTR   pwzKeyContainer,  
    [in]  BYTE      *pbKeyBlob,  
    [in]  ULONG     cbKeyBlob,  
    [out] BYTE      **ppbPublicKeyBlob,  
    [out] ULONG     *pcbPublicKeyBlob  
    [in]  ULONG     uHashAlgId,  
    [in]  ULONG     uReserved,  
);  

パラメーター

pwzKeyContainer
[in] 公開キーと秘密キーの組を格納するキー コンテナーの名前。 pbKeyBlob が null の場合は、szKeyContainer で暗号化サービスプロバイダー (CSP) 内の有効なコンテナーを指定する必要があります。 この場合、StrongNameGetPublicKeyEx メソッドにより、コンテナーに格納されているキーの組から公開キーが抽出されます。

pbKeyBlob が null でない場合は、キーの組がバイナリ ラージ オブジェクト (BLOB) に格納されていると見なされます。

キーは 1024 ビットの RSA (Rivest-Shamir-Adleman) 署名キーである必要があります。 現時点では、他の種類のキーはサポートされていません。

pbKeyBlob
[in] 公開キーと秘密キーの組へのポインター。 この組は、Win32 CryptExportKey 関数で作成される形式です。 pbKeyBlob が null の場合は、szKeyContainer で指定されたキー コンテナーにキーの組が格納されていると見なされます。

cbKeyBlob
[in] pbKeyBlob のサイズ (バイト単位)。

ppbPublicKeyBlob
[out] 返された公開キー BLOB。 ppbPublicKeyBlob パラメーターは、共通言語ランタイムで割り当てられ、呼び出し元に返されます。 呼び出し元では、ICLRStrongName::StrongNameFreeBuffer メソッドを使用してメモリを解放する必要があります。

pcbPublicKeyBlob
[出力] 返された公開キー BLOB のサイズ。

uHashAlgId
[入力] アセンブリ ハッシュ アルゴリズム。 受け取られる値の一覧については、「解説」セクションを参照してください。

uReserved
[入力] 将来使用するために予約されています。既定値は null です。

戻り値

メソッドが正常に完了した場合は S_OK、それ以外の場合は失敗を示す HRESULT 値 (リストについては、一般的な HRESULT 値に関するページを参照)。

解説

公開キーは PublicKeyBlob 構造体に格納されています。

次の表に、uHashAlgId パラメーターに指定できる値のセットを示しています。

名前 [値]
なし 0
SHA-1 0x8004
SHA-256 0x800c
SHA-384 0x800d
SHA-512 0x800e

必要条件

:システム要件」を参照してください。

ヘッダー: MetaHost.h

ライブラリ: MSCorEE.dll にリソースとして含まれます

.NET Framework のバージョン: 4.5 以降で使用可能

関連項目