Imagen

DESCARGA SOFTWARE PARA FACTURA ELECTRONICA DE AQUI.
Facturacion, Validacion, Addendas, Librerias de programacion, etc.


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

Es tan comun este tema que he decidido abrir un foro especial para este caso. Se trata de programadores que tienen problemas para crear el Sello Digital y que no pasan la validacion
dacanetdev
Mensajes: 12
Registrado: Dom Jun 05, 2011 9:38 pm

Re: Sello Digital con C#.net

Mensajepor dacanetdev » Dom Jun 05, 2011 10:17 pm

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;
}

dacanetdev
Mensajes: 12
Registrado: Dom Jun 05, 2011 9:38 pm

Re: Sello Digital con C#.net

Mensajepor dacanetdev » Lun Jun 06, 2011 1:31 am

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?

Avatar de Usuario
DeeNeon
Mensajes: 18
Registrado: Lun Dic 27, 2010 10:46 am
Ubicación: La Paz, BCS
Contactar:

Re: Sello Digital con C#.net

Mensajepor DeeNeon » Mar Jun 07, 2011 10:37 am

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?

dacanetdev
Mensajes: 12
Registrado: Dom Jun 05, 2011 9:38 pm

Re: Sello Digital con C#.net

Mensajepor dacanetdev » Mar Jun 07, 2011 9:11 pm

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.

dacanetdev
Mensajes: 12
Registrado: Dom Jun 05, 2011 9:38 pm

Re: Sello Digital con C#.net

Mensajepor dacanetdev » Mar Jun 07, 2011 9:14 pm

DeeNeon 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?


certificado.FileKeyCertificado, certificado.PasswordCertificado

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

Avatar de Usuario
DeeNeon
Mensajes: 18
Registrado: Lun Dic 27, 2010 10:46 am
Ubicación: La Paz, BCS
Contactar:

Re: Sello Digital con C#.net

Mensajepor DeeNeon » Jue Jun 09, 2011 11:30 am

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.


Volver a “SELLO DIGITAL INVALIDO”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados