2012-05-11 25 views
8

Sto scrivendo un'applicazione di informazioni di assemblaggio da utilizzare nel nostro processo di creazione del software e sto cercando di leggere le informazioni sulla firma digitale da un assembly .Net firmato.Come posso leggere le informazioni sulla firma digitale da un assembly .Net firmato?

Voglio fare nel mio codice C# ciò che può fare Esplora risorse di Windows facendo clic con il pulsante destro del mouse su un assembly firmato e selezionando la scheda "Firme digitali" e quindi facendo clic sul pulsante Dettagli. per esempio.

Windows 7 Explorer can do by right-clicking file properties

Digital signature details

Chiunque ha ottenuto un idea di come fare questo a livello di codice in C#? Attualmente sto usando il Mono Cecil library per ottenere il resto delle informazioni dall'assieme. Il tuo aiuto sarà più apprezzato.

+1

Quello che viene visualizzato è la firma 'Authenticode', applicabile a tutti i file PE. Esiste anche 'strongnaming', formato di firma specifico per .NET. Lo strongnaming viene eseguito utilizzando una coppia di chiavi, non un certificato, di conseguenza non è possibile estrarre alcuna informazione utile dall'assembly con nome. La ricerca di 'Authenticode' su StackOverflow ti darà molte informazioni utili. –

+1

[Possibilmente] (http://stackoverflow.com/questions/301024/validate-authenticode-signature-on-exe-c-without-capicom) [related] (http://stackoverflow.com/questions/3281057/get -timestamp-from-authenticode-signed-files-in-net) domande. – shambulator

+1

possibile duplicato di [Come faccio a leggere la chiave pubblica da un C# exe firmato] (http://stackoverflow.com/questions/3722610/how-do-i-read-the-public-key-from-a-igned -c-sharp-exe) –

risposta

5

Il progetto Mono fornisce il codice sorgente sia per signcode che per chktrust che è possibile riutilizzare all'interno della propria applicazione (open source, licenza MIT X11).

Entrambi utilizzano l'assembly Mono.Security.dll (che funziona in Windows, non solo Linux e OSX) e include un valore piuttosto complete Authenticode support.

Problemi correlati