ICLRStrongName::StrongNameGetPublicKey 方法

更新:2011 年 4 月

从私钥/公钥对中获取公钥。 密钥对既可以作为加密服务提供程序 (CSP) 中的密钥容器名称提供,也可以作为原始的字节集合提供。

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

参数

  • szKeyContainer
    [in] 包含公钥/私钥对的密钥容器的名称。 如果 pbKeyBlob 为 Null,则 szKeyContainer 必须在 CSP 内指定一个有效的容器。 在这种情况下,ICLRStrongName::StrongNameGetPublicKey 方法会从容器中存储的密钥对中提取密钥。

    如果 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 的大小。

返回值

如果方法成功完成,则为 S_OK;否则为指示失败的 HRESULT 值(请参见列表的 Common HRESULT Values(共同 HRESULT 值))。

备注

公钥包含在 PublicKeyBlob 结构中。

要求

**平台:**请参见 .NET Framework 系统要求

头文件: MetaHost.h

**库:**作为一项资源包含在 MSCorEE.dll 中

**.NET Framework 版本:**4

请参见

参考

PublicKeyBlob 结构

ICLRStrongName 接口

其他资源

ICLRStrongName::StrongNameTokenFromPublicKey 方法

修订记录

Date

修订记录

原因

2011 年 4 月

纠正返回值。

内容 Bug 修复

2010 年 7 月

新增主题。

信息补充。