2012-05-11 14 views
8

Estoy escribiendo una aplicación información de ensamblado para ser utilizado en nuestro proceso de construcción de software y estoy tratando de leer la información de la firma digital de un ensamblado de .NET firmado.¿Cómo leo la información de firma digital de un ensamblado .Net firmado?

que quiero hacer en mi código C# lo que el Explorador de Windows puede hacer haciendo clic derecho en un montaje firmado y seleccionando la pestaña "firmas digitales" y luego haciendo clic en el botón Detalles. p.ej.

Windows 7 Explorer can do by right-clicking file properties

Digital signature details

Alguien tiene una idea de cómo hacer esto mediante programación en C#? Actualmente estoy usando el Mono Cecil library para obtener el resto de la información del ensamblado. Su ayuda será muy apreciada.

+1

Lo que muestran es 'Authenticode' firma, aplicable a todos los archivos PE. También existe el formato de firmas 'strongnaming', .NET-specific. Strongnaming se hace usando un par de llaves, no un certificado, por lo tanto, no se puede extraer ninguna información útil del conjunto con nombre seguro. Hacer la búsqueda de 'Authenticode' en StackOverflow le dará mucha información útil. –

+1

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

+1

posible duplicado de [¿Cómo se lee la clave pública de una firma de C# exe] (http://stackoverflow.com/questions/3722610/how-do-i-read-the-public-key-from-a-signed -c-agudo-exe) –

Respuesta

5

El proyecto Mono proporciona código fuente para signcode y chktrust que puede volver a usar dentro de su propia aplicación (de código abierto, con licencia MIT X11).

Ambos usan el ensamblaje Mono.Security.dll (que funciona bajo Windows, no solo Linux y OSX) e incluyen un bastante complete Authenticode support.

Cuestiones relacionadas