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

Como sellar una digestion SHa1 en Visual Basic

Para quienes programan Visual Basic aqui esta la solucion
[[ FORO CERRADO DEBIDO A QUE YA LA INFORMACION YA NO ES VIGENTE ]]
Orus2
Mensajes: 2
Registrado: Mié May 18, 2011 3:24 pm

Como sellar una digestion SHa1 en Visual Basic

Mensajepor Orus2 » Mié May 18, 2011 3:58 pm

Hola Buenas tardes

en una variable ya tengo la digestion SHA1 solamente me falta el sello digital de acuerdo a la llave que proporciona el SAT y eso encriptarlo en base 64 la pregunta seria como leer ya llave privada para despues poder sellar la digestion que ya tengo en una variable

Este es el codigo que tengo la variable digest es la que tiene la digestion SHA1 de mi cadena original que ya viene codificada en UTF-8 solo me falta el sellado, espero puedan ayudarme
resulta = UTF8_Encode(cadena)
MsgBox resulta
digest = oSHA1.SHA1(resulta)
MsgBox digest

Saludos!!

Yaotl
Mensajes: 1
Registrado: Mié Jun 01, 2011 2:03 pm
Ubicación: EDOMEX
Contactar:

Re: Como sellar una digestion SHa1 en Visual Basic

Mensajepor Yaotl » Mié Jun 01, 2011 4:17 pm

Saludos Orus2.

Antes que nada déjame decirte que, al igual que muchos por este foro, una de mis principales fuentes fue la página de Fernando Ortiz.

En cuanto al código te diré que me quité de problemas con VB y decidí hacerlo todo desde el shell con comandos del OpenSSL-WIN32.

No es una solución muy elegante pero funciona. :D

Por lo que veo estás desarrollando en VB .Net.

Este código del mismo modo está desarrollado en VB .Net 2010 dirigido a la NetFramework 4.0.

Ojalá te sea útil.

Código: Seleccionar todo

    Private Function generarSelloDigital(ByVal strCadenaOriginal As String) As String

        'Declara las variables que indicarán las rutas de los archivos
        'que contendran temporalmente la cadena original, la llave
        'privada en formato PEM, y el sello digital respectivamente.
        'Así como la ruta de la llave privada en formato KEY.

        Dim pathCadenaOriginal As String = "c:\cadena.original"
        Dim pathLlaveFormatoPem As String = "c:\llave.pem"
        Dim pathSelloDigital As String = "c:\sello.digital"

        Dim pathLlaveFormatoKey As String = "c:\llave.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:KEYPA55W0RD", 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)



        'Se devuelve el sello digital

        Return resultado



    End Function 'generarSelloDigital

Orus2
Mensajes: 2
Registrado: Mié May 18, 2011 3:24 pm

Re: Como sellar una digestion SHa1 en Visual Basic

Mensajepor Orus2 » Jue Jul 28, 2011 8:28 am

aaa perdon no habia colocado respuesta pero muchisimas gracias claro que me sirvio :D ahora si ya pude generar mis CFD
en VB.net
Saludos!!


Volver a “Visual Basic”

¿Quién está conectado?

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