Mono和Microsoft .Net程序集如何具有相同的公钥令牌?

6
据我所知,您应该保密签名文件。但是,.net框架程序集的Mono版本也具有相同的公钥令牌。

3
当您尝试使用相应的公钥验证组装位时,会发生什么?尝试这样做将很有启发性。 - Eric Lippert
"signed"和"具有相同的公钥"有点不相关。 - Alexei Levenkov
那么你们的意思是Mono程序集与Microsoft程序集具有相同的公钥,但实际上它们并没有签名?还是说它们实际上使用不同的公钥进行了签名? - logicnp
1个回答

4
Mono拥有一个公钥重新映射机制,请参见http://www.mono-project.com/Assemblies_and_the_GAC#Public_Key_Token_Remapping。当识别出一个在特殊列表中的公钥时,它会被静默重新映射到一个不同的密钥进行实际验证。这允许Mono使用他们自己的密钥进行签名,但使用一些花招来声称是常规.NET使用的相同的公钥(包括使用特殊ECMA头部“签名”的程序集),因此可以将程序集插入Mono而无需重新构建。请保留HTML标记。

所以这意味着Mono程序集具有与Microsoft程序集相同的公钥,但它们实际上并没有签名?还是说它们实际上使用不同的公钥签名?我的理解是否正确? - logicnp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接