如何从C#中的.Net DLL中提取公钥?

罗希特

我想从Autenticode签名的.Net DLL中提取C#中的公钥而不是公钥令牌吗?

Yoh Deadfall

要从Autenticode签名的.Net库获取公共密钥,请使用以下代码:

Assembly assembly = Assembly.LoadFrom("dll_file_name");
X509Certificate certificate = assembly.ManifestModule.GetSignerCertificate();

byte[] publicKey = certificate.GetPublicKey();

但这仅在证书已安装到“受信任的根证书颁发机构”中时才有效。否则,GetSignerCertificate()返回null。

第二种方法允许获得证书,即使该证书不在“受信任的根证书颁发机构”中也是如此。

X509Certificate executingCert = X509Certificate.CreateFromSignedFile("dll_file_name");
byte[] publicKey = certificate.GetPublicKey();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章