Re: En visual net tengo problemas para generar mi sello
Publicado: Mar Oct 16, 2012 3:52 pm
Para aquellos que quieren generar su sello en .NET...
Aquí está la clase opensslkey modificada con lo único que necesitas para timbrar.
Y así la usas:
string strSello = string.Empty;
string strPathLlave = @"D:\AAAA010101.key";
string strLlavePwd = "AAAA010101";
string strCadenaOriginal = "||3.2|..." // Aquí ya debieron haber generado la cadena original
System.Security.SecureString passwordSeguro = new System.Security.SecureString();
passwordSeguro.Clear();
foreach (char c in strLlavePwd.ToCharArray())
passwordSeguro.AppendChar(c);
byte[] llavePrivadaBytes = System.IO.File.ReadAllBytes(strPathLlave);
RSACryptoServiceProvider rsa = opensslkey.DecodeEncryptedPrivateKeyInfo(llavePrivadaBytes, passwordSeguro);
SHA1CryptoServiceProvider hasher = new SHA1CryptoServiceProvider();
byte[] bytesFirmados = rsa.SignData(System.Text.Encoding.UTF8.GetBytes(strCadenaOriginal), hasher);
strSello = Convert.ToBase64String(bytesFirmados);
Aquí está la clase opensslkey modificada con lo único que necesitas para timbrar.
Y así la usas:
string strSello = string.Empty;
string strPathLlave = @"D:\AAAA010101.key";
string strLlavePwd = "AAAA010101";
string strCadenaOriginal = "||3.2|..." // Aquí ya debieron haber generado la cadena original
System.Security.SecureString passwordSeguro = new System.Security.SecureString();
passwordSeguro.Clear();
foreach (char c in strLlavePwd.ToCharArray())
passwordSeguro.AppendChar(c);
byte[] llavePrivadaBytes = System.IO.File.ReadAllBytes(strPathLlave);
RSACryptoServiceProvider rsa = opensslkey.DecodeEncryptedPrivateKeyInfo(llavePrivadaBytes, passwordSeguro);
SHA1CryptoServiceProvider hasher = new SHA1CryptoServiceProvider();
byte[] bytesFirmados = rsa.SignData(System.Text.Encoding.UTF8.GetBytes(strCadenaOriginal), hasher);
strSello = Convert.ToBase64String(bytesFirmados);