2013-06-27 10 views
5

Per quanto ho capito, dovresti mantenere segreto il file di firma. Quindi, in che modo le versioni mono degli .net framework assembly hanno lo stesso token di chiave pubblica di b77a5c561934e089.In che modo mono e Microsoft .Net hanno lo stesso token a chiave pubblica?

+3

Bene, cosa succede quando si tenta di verificare i bit dell'assieme con la chiave pubblica associata? Tentare di farlo sarà illuminante. –

+0

"signed" e "avere la stessa chiave pubblica" è in qualche modo non correlato .. –

+0

Quindi, quello che state dicendo è che gli assemblati Mono hanno la stessa chiave pubblica degli assembly Microsoft, ma in realtà non sono firmati? O che sono effettivamente firmati con diverse chiavi pubbliche? – logicnp

risposta

4

Mono ha un meccanismo di remapping a chiave pubblica; vedi http://www.mono-project.com/Assemblies_and_the_GAC#Public_Key_Token_Remapping

Così, quando una chiave pubblica è visto che è riconosciuto nella speciale classifica, è silenziosamente rimappato a un diverso chiave per la validazione vera e propria. Ciò consente a mono di firmare con la chiave , ma utilizzare alcuni fumi e specchi per richiedere la chiave pubblica fornita come normali usi .NET (inclusi gli assembly "firmati" con l'intestazione ECMA speciale), in modo che gli assembly possano essere intercambiabili in mono senza bisogno di essere ricostruito.

+0

Quindi, ciò significa che gli assiemi mono hanno la stessa chiave pubblica degli assembly Microsoft, ma in realtà non sono firmati? O che sono effettivamente firmati con diverse chiavi pubbliche? La mia comprensione sopra è corretta? – logicnp

Problemi correlati