Ecma公钥如何映射到真实公钥?

时间:2019-05-22 20:39:41

标签: c# .net visual-studio .net-assembly public-key

基本上,所有被视为标准库(例如mscorlib.dll)的Microsoft程序集都包含伪造的16字节公共密钥

 00000000000000000400000000000000

由ECMA-335(CLI规范)定义为Ecma /标准公钥。它用于计算公钥令牌b77a5c561934e089。但是,为了创建然后在以后验证程序集签名(强名称),您需要真实密钥。真实的RSA公钥始终至少为128个字节。那在哪呢

许多这样的程序集包括带有文件EcmaPublicKey.snk的AssemblyKeyFileAttribute。但是此文件仅包含Ecma公钥本身的16个字节,这意味着该文件仅用于构建程序集而不用于加载。同样,此类程序集同时使用128字节和256字节强名称签名,这意味着Ecma公钥必须映射到至少两个不同大小的RSA密钥对中。

我注意到Mono项目使用配置文件,其中b77a5c561934e089被映射为真实的公钥,但是Windows可能以不同的方式处理它。我发现了一些与此问题相关的旧帖子,但是都没有提供任何合法答案。

0 个答案:

没有答案