共用方式為


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 位元的 Rivest-Shamir-Adleman (RSA) 簽署金鑰。 目前不支援其他類型的金鑰。

pbKeyBlob
[in] 公開/私密金鑰組的指標。 此金鑰組的格式由 Win32 CryptExportKey 函式建立。 如果 pbKeyBlob 為 null,可假設 szKeyContainer 指定的金鑰容器包含金鑰組。

cbKeyBlob
[in] pbKeyBlob 的大小 (以位元組為單位)。

ppbPublicKeyBlob
[out] 所傳回的公開金鑰 BLOB。 ppbPublicKeyBlob 參數會由通用語言執行平台配置,並傳回給呼叫端。 呼叫端必須使用 ICLRStrongName::StrongNameFreeBuffer 方法來釋放記憶體。

pcbPublicKeyBlob
[out] 所傳回公開金鑰 BLOB 的大小。

uHashAlgId
[in] 組件雜湊演算法。 如需接受的值清單,請參閱「備註」一節。

uReserved
[in] 保留供日後使用;預設為 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 起可用

另請參閱