Cita:
Iniciado por scorpionsdd HOLA MarkX, QUE TAL ESTOY COMENZANDO CON ESTO DE CFD Y LEYENDO EN VARIOS FOROS HE VISTO QUE TODOS TRABAJAN CON OPENSSL DIRECTO Y PUES HE ESTADO INVESTIGANDO LA FORMA DE HACERLO DIRECTO EN .NET, ACABO DE ENCONTRAR TU CODIGO QUE PONES Y LO TRATE DE IMPLEMENTAR, ENTONCES LO ADAPTE DE LA SIGUIENTE FORMA:
string strCadenaOriginal = "||A|1|2005-09-02T16:30:00|1|ISP900909Q88|Industrias del Sur Poniente, S.A. de C.V.|Alvaro Obregón|37|3|Col. Roma Norte|México|Cuauhtémoc|Distrito Federal|México|06700|Pino Suarez|23|Centro|Monterrey|Monterrey|Nuevo Léon|México|95460|CAUR390312S87|Rosa María Calderón Uriegas|Topochico|52|Jardines del Valle|Monterrey|Monterrey|Nuevo León|México|95465|10|Caja|Vasos decorados|20|200|1|pieza|Charola metálica|150|150|IVA|52.5||";
string key=@"C:\Documents and Settings\Administrador\Mis documentos\HIT SERVICES\VS.NET\FacturacionElectronica.Net\Docs\Ce r_Sellos\aaa010101aaa_CSD_01.key";
string lPassword = @"a0123456789";
SecureString lSecStr = new SecureString();
lSecStr.Clear();
foreach (char c in lPassword.ToCharArray())
lSecStr.AppendChar(c);
//AQUI ESTA LA DUDA.. COMO INICIALIZO pLlavePrivadaBytes?
RSACryptoServiceProvider lrsa=DecodeEncryptedPrivateKeyInfo(pLlavePrivadaBy tes, lSecStr);
MD5CryptoServiceProvider hasher = new MD5CryptoServiceProvider();
Byte[] bytesFirmados = lrsa.SignData(System.Text.Encoding.UTF8.GetBytes(s trCadenaOriginal), hasher);
string sellodigital = Convert.ToBase64String(bytesFirmados);
ESPERO PUEDAS ACLARAR MI DUDA Y PUES DE PASO PUEDAS CONFIRMARME POR FAVOR SI ADAPTE BIEN EL CODIGO, SALUDOS Y ESPERO ME PUEDAS AYUDAR.
Se INICIALIZA con un StreamReader.
Byte[] pLlavePrivadaenBytes = System.IO.File.ReadAllBytes("nombredelarchivodelal laveprivada");