Colegas les comparto el metodo con el cual obtengo el sello digital
Para eso el archivo que da Hacienda le aplique una serie de conversiones con openssl (manualmente) para convertirlo a p12 y eso es lo que lee con X509Certificate
Hasta hace unos meses me funcionaba pero de un tiempo para aca me dejo de validar. Me podria decir alguien si estoy haciendo algo mal?
/// <summary>
/// Este Metodo crea el sello digital para el CFD a partir de la cadena original
/// </summary>
private string GetSelloDigital(string cadenaOriginal)
{
string selloDigital = string.Empty;
try
{
X509Certificate2 certificate = new X509Certificate2(certificado.FileKeyCertificado, certificado.PasswordCertificado);
RSACryptoServiceProvider rsaProv = certificate.PrivateKey as RSACryptoServiceProvider;
SHA1CryptoServiceProvider shaHasher = new SHA1CryptoServiceProvider();
byte[] selloDigitalData = rsaProv.SignData(Encoding.UTF8.GetBytes(cadenaOriginal), shaHasher);
selloDigital = Convert.ToBase64String(selloDigitalData);
}
catch (Exception ex)
{
log.Error(string.Format("Ocurrio un error al crear El Sello Digital, {0}", ex.StackTrace));
throw ex;
}
return selloDigital;
}

DESCARGA SOFTWARE PARA FACTURA ELECTRONICA DE AQUI.
Facturacion, Validacion, Addendas, Librerias de programacion, etc.
CARTA PORTE V3.1
ECODEX TIENE ESTOS NUEVOS DATOS DE CONTACTO :
Comercializacion y Ventas - Evelia Vicke evicke@ecodex.com.mx 33-16-03-03-48
Soporte - Humberto Guerrero soporte@ecodex.com.mx 33-34-90-46-03
.
Sello Digital con C#.net
-
- Mensajes: 12
- Registrado: Dom Jun 05, 2011 9:38 pm
Re: Sello Digital con C#.net
Falsa alarma acabo de validar 50 CFDS todo válidos. El problema lo estoy teniendo con la cantidad de decimales 2 o 6... que recomendaciones me dan?
- DeeNeon
- Mensajes: 18
- Registrado: Lun Dic 27, 2010 10:46 am
- Ubicación: La Paz, BCS
Re: Sello Digital con C#.net
Yo tengo un codigo similar al tuyo, pero en mi caso de un tiempo para aca me arroja un error de System.Security.Cryptography.CryptographicException: Bad Data.
Tengo entendido que es causado por problemas de Impersonificacion de ASP.Net, ya he cambiado eso y aun asi persiste el mismo error.
Si sello con el codigo que muestras me muestra "Object not defined", se que diras que alguna variable quedo volando y no ha sido definida, creeme, no es asi.
Tu codigo lo ejecutas en un ambiente web en un webFarm?
Tengo entendido que es causado por problemas de Impersonificacion de ASP.Net, ya he cambiado eso y aun asi persiste el mismo error.
Si sello con el codigo que muestras me muestra "Object not defined", se que diras que alguna variable quedo volando y no ha sido definida, creeme, no es asi.
Tu codigo lo ejecutas en un ambiente web en un webFarm?
-
- Mensajes: 12
- Registrado: Dom Jun 05, 2011 9:38 pm
Re: Sello Digital con C#.net
No mi código es de una aplicación con WPF, no quise hacerla Web (apesar de que soy más programador web) para ahorrarme lo de ASP.NET session y dejar que mi cliente trabaje sin que se preocupara porque se la acabe la session. Utilizo ClickOnce para el deployment. Si decido pasarlo a Web mi arquitectura me dejaría hacer sin ningún problema.
-
- Mensajes: 12
- Registrado: Dom Jun 05, 2011 9:38 pm
Re: Sello Digital con C#.net
certificado.FileKeyCertificado, certificado.PasswordCertificadoDeeNeon escribió:Yo tengo un codigo similar al tuyo, pero en mi caso de un tiempo para aca me arroja un error de System.Security.Cryptography.CryptographicException: Bad Data.
Tengo entendido que es causado por problemas de Impersonificacion de ASP.Net, ya he cambiado eso y aun asi persiste el mismo error.
Si sello con el codigo que muestras me muestra "Object not defined", se que diras que alguna variable quedo volando y no ha sido definida, creeme, no es asi.
Tu codigo lo ejecutas en un ambiente web en un webFarm?
Esos valores que paso por parámetro son de un objeto que yo instancio con mi repositorio desde un Entity Framework (o sea de la Base de Datos) no sé si esos valores los estés tomando en cuenta
- DeeNeon
- Mensajes: 18
- Registrado: Lun Dic 27, 2010 10:46 am
- Ubicación: La Paz, BCS
Re: Sello Digital con C#.net
Si los tomo en cuenta, hasta hace un rato llegue al fondo del problema.
La contraseña de desencriptacion de la llave era incorrecta y por eso arrojaba "Bad Data". El problema con ese error es que es generico y no puedes saber cual es la verdadera razon, me pude dar cuenta hasta que probe con otros archivos y no los mismos de siempre.
Gracias por el tip.
La contraseña de desencriptacion de la llave era incorrecta y por eso arrojaba "Bad Data". El problema con ese error es que es generico y no puedes saber cual es la verdadera razon, me pude dar cuenta hasta que probe con otros archivos y no los mismos de siempre.
Gracias por el tip.