次の方法で共有


StrongNameSignatureGenerationEx 関数

指定したフラグに従って、指定したアセンブリに対する厳密な名前の署名が作成されます。

この関数は非推奨とされています。 代わりに、ICLRStrongName::StrongNameSignatureGenerationEx メソッドを使用してください。

構文

BOOLEAN StrongNameSignatureGenerationEx (  
    [in]  LPCWSTR   wszFilePath,  
    [in]  LPCWSTR   wszKeyContainer,  
    [in]  BYTE      *pbKeyBlob,  
    [in]  ULONG     cbKeyBlob,  
    [out] BYTE      **ppbSignatureBlob,  
    [out] ULONG     *pcbSignatureBlob,  
    [in]  DWORD     dwFlags  
);  

パラメーター

wszFilePath
[in] 厳密な名前の署名が生成されるアセンブリのマニフェストを格納するファイルへのパス。

wszKeyContainer
[in] 公開キーと秘密キーの組を格納するキー コンテナーの名前。

pbKeyBlob が null の場合は、wszKeyContainer で暗号化サービス プロバイダー (CSP) 内の有効なコンテナーを指定する必要があります。 この場合、コンテナーに格納されているキーの組がファイルの署名に使用されます。

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

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

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

ppbSignatureBlob
[out] 共通言語ランタイムから署名が返される場所へのポインター。 ppbSignatureBlob が null の場合は、wszFilePath で指定されたファイルに署名が格納されます。

ppbSignatureBlob が null でない場合は、共通言語ランタイムで署名が返される領域が割り当てられます。 呼び出し元では、StrongNameFreeBuffer 関数を使用して、この領域を解放する必要があります。

pcbSignatureBlob
[out] 返された署名のサイズ (バイト単位)。

dwFlags
[in] 次の 1 つ以上の値:

  • SN_SIGN_ALL_FILES (0x00000001) - リンクされたモジュールのハッシュをすべて再計算します。

  • SN_TEST_SIGN (0x00000002) - アセンブリへの署名をテストします。

戻り値

正常に完了した場合は true。それ以外の場合は false

解説

署名を作成せずに署名のサイズを計算するには、wszFilePath に null を指定します。

署名はファイルに直接格納するか、呼び出し元に返すことができます。

SN_SIGN_ALL_FILES が指定されていても、公開キーが含まれていない (pbKeyBlobwszFilePath の両方が null である) 場合は、リンクされたモジュールのハッシュが再計算されますが、アセンブリは再署名されません。

SN_TEST_SIGN が指定されている場合は、アセンブリが厳密な名前で署名されていることを示すように、共通言語ランタイム ヘッダーが変更されません。

StrongNameSignatureGenerationEx 関数が正常に完了しない場合、StrongNameErrorInfo 関数を呼び出し、最後に生成されたエラーを取得します。

必要条件

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

ヘッダー: StrongName.h

ライブラリ: リソースとして MsCorEE.dll に含まれている

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

関連項目