2013-06-27 46 views
5

據我所知,你應該保持簽名文件的祕密。那麼.net框架程序集的單聲道版本如何也具有相同的公鑰標記b77a5c561934e089Mono和Microsoft .Net程序集如何具有相同的公鑰令牌?

+3

那麼,當你試圖用關聯的公鑰驗證彙編位時會發生什麼?試圖這樣做會有啓發性。 –

+0

「signed」和「具有相同的公鑰」有點無關。 –

+0

所以你們說的是Mono程序集與Microsoft程序集有相同的公鑰,但它們實際上沒有簽名?或者他們實際上是用不同的公鑰簽名的? – logicnp

回答

4

單聲道有一個公鑰重新映射機制;看到http://www.mono-project.com/Assemblies_and_the_GAC#Public_Key_Token_Remapping

因此,當一個公共密鑰看出,在特別名單的認可,它被悄悄地重新映射到不同關鍵的實際驗證。這允許mono用他們的自己的密鑰簽名,但使用一些煙霧和鏡像來聲明常規.NET使用的公鑰(包括使用特殊ECMA頭「簽署」的程序集),以便程序集可以互換爲單聲道無需重建。

+0

那麼意味着Mono程序集與Microsoft程序集具有相同的公鑰,但它們實際上沒有簽名?或者他們實際上是用不同的公鑰簽名的?我的理解是否正確? – logicnp

相關問題