Cómo leer una firma digital con C#:



1. Abra un nuevo proyecto en C#.

2 Cree un método que lea la firma digital:


private bool verificarFirma(string text, byte[] signature, string certPath){

3 Cargue el certificado para verificar la firma:

X509Certificate2 cert = new X509Certificate2(certPath);
4 Obtenga la llave pública para abrir el archivo:
RSACryptoServiceProvider csp = (RSACryptoServiceProvider)cert.PublicKey.Key;
5 Haga el Hash del texto:
SHA1Managed sha1 = new SHA1Managed();
UnicodeEncoding encoding = new UnicodeEncoding();
byte[] data = encoding.GetBytes(text);
byte[] hash = sha1.ComputeHash(data);
6 Verificar la firma con el hash y cierre el método:
return csp.VerifyHash(hash, CryptoConfig.MapNameToOID("SHA1"), signature); }
7 Asegúrese que el certificado de seguridad ya esté instalado en el servidor, para poder obtener la llave pública de la firma digital. SINO es así, agréguelo a "C:". Esto se ocupará en el siguiente paso. 8 Agregue el código para llamar a verificarFirma:
if (verificarFirma("POST TRANSACTION", signature, @"C:\mycert.cer")){
 MessageBox.Show("Comando POST recibido desde el cliente.");}
else if (verificarFirma("CANCEL TRANSACTION", signature, @"C:\mycert.cer")){
 MessageBox.Show("Comando CANCEL recibido desde el cliente.");}
else if (verificarFirma("RETRIEVE TRANSACTION", signature, @"C:\mycert.cer")){
 MessageBox.Show("Transacción RETRIEVE recibida desde el cliente.");}else{ MessageBox.Show("La firma no es válida.");}
9 Salve el proyecto, presione F5 para ejecutar el código.

Entradas populares de este blog

Enviar Tweets A Través De La Consola, Usando Python.