更新:2007 年 11 月
从私钥/公钥对中获取公钥。密钥对既可以作为加密服务提供程序 (CSP) 中的密钥容器名称提供,也可以作为原始的字节集合提供。
BOOLEAN StrongNameGetPublicKey (
[in] LPCWSTR szKeyContainer,
[in] BYTE *pbKeyBlob,
[in] ULONG cbKeyBlob,
[out] BYTE **ppbPublicKeyBlob,
[out] ULONG *pcbPublicKeyBlob
);
参数
szKeyContainer
[in] 包含公钥/私钥对的密钥容器的名称。如果 pbKeyBlob 为 Null,则 szKeyContainer 必须在 CSP 内指定一个有效的容器。在这种情况下,StrongNameGetPublicKey 将从存储在容器中的密钥对中提取公钥。如果 pbKeyBlob 不是 Null,则假定密钥二进制大对象 (BLOB) 中包含密钥对。
密钥必须是 1024 位的 Rivest-Shamir-Adleman (RSA) 签名密钥。目前不支持其他类型的密钥。
pbKeyBlob
[in] 指向公钥/私钥对的指针。此密钥对采用的是 Win32 CryptExportKey 函数创建的格式。如果 pbKeyBlob 为 Null,则假定 szKeyContainer 指定的密钥容器包含密钥对。cbKeyBlob
[in] pbKeyBlob 的大小(以字节为单位)。ppbPublicKeyBlob
[out] 返回的公钥 BLOB。ppbPublicKeyBlob 参数由公共语言运行库分配,并返回到调用方。调用方必须使用 StrongNameFreeBuffer 函数释放内存。pcbPublicKeyBlob
[out] 返回的公钥 BLOB 的大小。
返回值
如果成功完成,则为 true;否则为 false。
备注
公钥包含在 PublicKeyBlob 结构中。
如果 StrongNameGetPublicKey 函数未成功完成,请调用 StrongNameErrorInfo 函数以检索上一个生成的错误。
要求
**平台:**请参见 .NET Framework 系统要求。
**头文件:**StrongName.h
**库:**作为一项资源包含在 MsCorEE.dll 中
**.NET Framework 版本:**3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0、1.1、1.0
请参见
参考
StrongNameTokenFromPublicKey 函数