08/02/2010, 22:00
|
| | Fecha de Ingreso: febrero-2010
Mensajes: 4
Antigüedad: 14 años, 9 meses Puntos: 0 | |
Respuesta: Facturacion electronica en México Buena noches,
Antes que nada gracias a todos los colaboradores por aportar sus conocimientos y buena disposición a la comunidad.
Empiezo con mi pregunta, esto de la facturación electrónica es un rollo. En base a los post de este sección he construido algo pero tengo algunas dudas:
Ya obtuve mis claves a través de
C:\OpenSSL\bin\openssl.exe pkcs8 -inform DER -in C:\OpenSSL\Keys\aaa010101aaa_CSD_01.key -passin pass:a0123456789 -out C:\OpenSSL\Keys\aaa010101aaa.key.pem
C:\OpenSSL\bin\openssl.exe x509 -inform DER -outform PEM -in C:\OpenSSL\Keys\aaa010101aaa_CSD_01.cer -pubkey -out C:\OpenSSL\Keys\aaa010101aaa.cer.pem
Ya aplique el algoritmo MD5 a la cadena original que presenta el SAT .
Genere el sello digital con mis claves obtenidas en el punto uno
StreamReader readFile = new StreamReader(@"H:\Proyectos\Facturacion_electronic a\sello_digital\aaa010101aaa.key.pem");
//StreamReader readFile = new StreamReader(PublicKey);
PemReader Ocert = new PemReader(readFile);
//Dim o As AsymmetricCipherKeyPair = TryCast(Ocert.ReadObject(), AsymmetricCipherKeyPair)
AsymmetricCipherKeyPair o = Ocert.ReadObject() as AsymmetricCipherKeyPair;
ISigner sig = SignerUtilities.GetSigner("MD5WithRSAEncryption");
//sig.Init(True, o.[Private])
sig.Init(true, o.Private);
byte[] signature = sig.GenerateSignature();
string signatureHeader = Convert.ToBase64String(signature);
readFile.Close();
readFile = null;
El certificado
//*****************************certificado
//Read Public Key
TextReader trCer = new StreamReader(PublicKey);
PemReader rdCer = new PemReader(trCer);
X509Certificate Cert = (X509Certificate)rdCer.ReadObject();
Org.BouncyCastle.Crypto.AsymmetricKeyParameter pk = Cert.GetPublicKey();
//AsymmetricKeyParameter pk = Cert.GetPublicKey();
byte[] nSerie = Cert.SerialNumber.ToByteArray();
string nCertificado = Encoding.ASCII.GetString(nSerie);
Mi duda es, cómo relaciono la cadena obtenida de la aplicación del algoritmo MD5, el certificado o el sello.
En los requirimientos de hacienda dice que a la cadena obbtenida aplico el algoritmo RSA, con el sello y la clave privada, como junto estos procesos y luego convertirlo a base 64.
Por su ayuda muchas gracias! |