Imagen

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


.

No genera nada SignStringENC

Cualquier asunto relacionado con Certificados Digitales, Rango de Folios Autorizados, Addendas Comerciales y Complementos se cubren aqui
Cerrado
MiguelC
Mensajes: 9
Registrado: Sab Nov 02, 2013 2:03 pm

No genera nada SignStringENC

Mensaje por MiguelC »

buenas Tardes
Alguien me puede orientar sobre este problema que tengo, resulta que quiere generar el sello pero viendo con ustedes todos los ejemplos lo hice con chilkat y este es mi codigo
Dim privKey As New Chilkat.PrivateKey
If privKey.LoadPkcs8EncryptedFile(keycve, "1234567") = False Then
MsgBox(privKey.LastErrorText)
Exit Function
End If
Dim privkeyxml As String = privKey.GetXml()

Dim rsa As New Chilkat.Rsa
If rsa.ImportPrivateKey(privkeyxml) = False Then
MsgBox(rsa.LastErrorText)
Exit Function
End If
rsa.Charset = "utf-8"
rsa.EncodingMode = "base64"
rsa.LittleEndian = 0

Dim cert As New Chilkat.Cert
If cert.LoadFromFile(certfile) = False Then
MsgBox(cert.LastErrorText)
Exit Function
End If
Dim sellobase64 As String
sellobase64 = rsa.SignStringENC(strCadenaOriginal, "sha1")

pero el RSA.SIGNSTRINGENC no genera nada me da NOTHING, aque se debe, ya hice de todo, cambie sha-1, y algunas otraas cosas y nada , como que no se ejecuta ese metodo..

saludos
gracias por la ayuda
mauricio
Mensajes: 372
Registrado: Mié Ago 11, 2010 1:55 am
Ubicación: México, D.F.
Contactar:

Re: No genera nada SignStringENC

Mensaje por mauricio »

Para que puedas comparar, te recomiendo ampliamente aprender a obtener el sello con OpenSSL, ya al final puedes usar la librería que mencionas...

Si publicas el XML con el que estas trabajando, te podemos ayudar paso a paso a verificar tu sello...

Saludos
Todo lo que no es dado es perdido
MiguelC
Mensajes: 9
Registrado: Sab Nov 02, 2013 2:03 pm

Re: No genera nada SignStringENC

Mensaje por MiguelC »

Que tal Mauricio
te mando el xml del que estoy trabajando y la cadena ya la cheque y la genera bien, parece como que la funcion no hace nada bien extraño, ya quita la referencia y la volvi agregar...

gracias
Adjuntos
Fact_1__500.xml
(3.64 KiB) Descargado 195 veces
mauricio
Mensajes: 372
Registrado: Mié Ago 11, 2010 1:55 am
Ubicación: México, D.F.
Contactar:

Re: No genera nada SignStringENC

Mensaje por mauricio »

El primer paso es obtener tu cadena original:

Código: Seleccionar todo

xsltproc cadena32.xslt fac_foro.xml
Mira si tienes "exactamente" la misma:

Código: Seleccionar todo

||3.2|2013-11-30T09:13:57|ingreso|PAGO EN UNA SOLA EXHIBICION|727.74|844.17|TARJETA DE CREDITO/DEBITO|HERMOSILLO|DCR1102231X6|DERMATOLOGICOS CR SA DE CV|BENITO JUAREZ #349 LOCAL 12 PLAZA DILA|BUGAMBILIAS|HERMOSILLO|SONORA|MEXICO|83140|BENITO JUAREZ 349|BUGAMBILIAS|SONORA|SONORA|MEXICO|83140|Régimen General de Ley Personas Morales|MEMJ590318MA0|JORGE ALBERTO MENDEZ MORENO|AV. TERRAZAS 20|SANTA LUCIA|HERMOSILLO|SONORA|MEXICO|83148|1.0000|PZA|ANSOLAR LOCION SPORT 65FPS 90ML|297.7700|297.7700|1.0000|PZA|URIAGE HYSEAC GEL 150ML|196.1200|196.1200|1.0000|PZA|HYSEAC A.I CMA 40ML|233.8400|233.8400|IVA|116.43|IVA|16.00|116.43||
Saludos
Todo lo que no es dado es perdido
MiguelC
Mensajes: 9
Registrado: Sab Nov 02, 2013 2:03 pm

Re: No genera nada SignStringENC

Mensaje por MiguelC »

Mauricio.
asi es, la tengo igualita, de hecho uso tambien la cadenaoriginal_3_2.xslt, yo creo que por ahi no va el error, la cadena ya la habia checado y si me habia quedado bien, como te comente, de hecho ya cambie la funcion puse esta ahora, que tome de aqui del foro pero no pasa la validacion con el validacfd.. tambien hice el sello con el openssl y si me da diferente ha este que genera con la funcion que te doy, estaba pensando si los decimales tienen que ver, yo pongo 4 decimales...

muchas gracias

Dim keyfile As String = "Claveprivada_DCR1102231X6.key"
Dim strSello As String = String.Empty
Dim passwordSeguro As System.Security.SecureString = New System.Security.SecureString
passwordSeguro.Clear()
For Each c As Char In pass.ToCharArray
passwordSeguro.AppendChar(c)
Next
Dim llavePrivadaBytes() As Byte = System.IO.File.ReadAllBytes(keyfile)
Dim rsaO As RSACryptoServiceProvider = opensslkey.DecodeEncryptedPrivateKeyInfo(llavePrivadaBytes, passwordSeguro)
Dim hasher As SHA1CryptoServiceProvider = New SHA1CryptoServiceProvider
Dim bytesFirmados() As Byte = rsaO.SignData(System.Text.Encoding.UTF8.GetBytes(strCadenaOriginal), hasher)
strSello = Convert.ToBase64String(bytesFirmados)
Dim Root As XElement = XDocument.Load(nombredearchivo).Root
Root.@sello = strSello
Root.Save(nombredearchivo)
MiguelC
Mensajes: 9
Registrado: Sab Nov 02, 2013 2:03 pm

Re: No genera nada SignStringENC

Mensaje por MiguelC »

Mauricio
Encontre este codigo:
y hice dos xml, y me dan diferente sello, a que se debe, me imagino que a la cadena, pero segun yo deben de estar identicas de hecho les mando la misma variable... no entiendo que esta pasando....
gracias, seguire buscandole...



Dim pathCadenaOriginal As String = "c:\OpenSSL-Win32\certificados\cadena.txt"
Dim pathLlaveFormatoPem As String = "c:\OpenSSL-Win32\certificados\llave.pem"
Dim pathSelloDigital As String = "C:\OpenSSL-Win32\certificados\00001000000301268365.cer"

Dim pathLlaveFormatoKey As String = "C:\OpenSSL-Win32\certificados\Claveprivada_DCR1102231X6.key"
'Escribe la cadena original en 'c:\cadena.original'.

File.WriteAllText(pathCadenaOriginal, strCadenaOriginal)
'Convierte la llave privada ('c:\llave.key') a formato PEM ('c:\llave.pem')
'con la cual es posible sellar la cadena digitalmente. Se requiere la
'contraseña de la llave privada la cual puede ser contenida en una variable o
'leída desde una base de datos etc.

Shell("c:\OpenSSL-Win32\bin\openssl pkcs8 -inform DER -in " & _
pathLlaveFormatoKey & " -out " & pathLlaveFormatoPem & _
" -passin pass:benito349", vbHide)
'Contando con la llave en formato PEM ('c:\llave.pem') se procede a generar
'el sello con la sigiente sentencia. Dicho sello quedará contenido en 'c:\sello.digital'.

Shell("cmd /c type " & pathCadenaOriginal &
" | c:\OpenSSL-Win32\bin\openssl dgst -sha1 -sign " & pathLlaveFormatoPem &
" | c:\OpenSSL-Win32\bin\openssl enc -base64 -A -out " & pathSelloDigital, vbHide)
'Se coloca el sello digital en una variable.
Dim resultado As String = File.ReadAllText(pathSelloDigital)
'Se eliminan archivos temporales.

Kill(pathCadenaOriginal)
Kill(pathLlaveFormatoPem)
'Kill(pathSelloDigital)

Dim Root As XElement = XDocument.Load(nombredearchivo).Root
Root.@sello = resultado
Root.Save(nombredearchivo)
MiguelC
Mensajes: 9
Registrado: Sab Nov 02, 2013 2:03 pm

Re: No genera nada SignStringENC

Mensaje por MiguelC »

Mauricio
Ya lo solucione, con las dos rutinas quedo bien, resulta que me confunde con las llaves una de fiel y otra del certificado...

muchas gracias
Cerrado