Ver Mensaje Individual
  #249 (permalink)  
Antiguo 21/10/2010, 15:55
antoniooo
 
Fecha de Ingreso: octubre-2010
Mensajes: 1
Antigüedad: 13 años, 6 meses
Puntos: 0
Duda

Cita:
Iniciado por thebman Ver Mensaje
Pues bien en el post anterior generamos nuestra digestion MD5 en un archivo md5.txt es imoprtante editar el archivo y borrar la parte de MD5(C:\cadena.txt)=
Para que nuestro archivo solo quede con la pura digestion la cual es:
8aa2b617944427353697e694a2e35a07

Bueno ahora tenemos que generar el sello digital apartir de la digestion pero antes de esto tenemos que convertir nuestros archivos .key y .cer a .pem para su correcto procesamiento.

Para hacer esto nos vamos a la aplicacion Openssl y dentro de los certificados que descargamos usaremos solo un archivo .key y la clave privada.

Archivo:
aaa010101aaa_CSD_01.key

Instruccion para generar nuestro archivo .pem:

openssl.exe pkcs8 -inform DER -in aaa010101aaa_CSD_01.key -passin pass:a0123456789 -out aaa010101aaa_CSD_01.key.pem

Una ves ejecutada esta instruccion tendremos nuestro nuevo archivo:

aaa010101aaa_CSD_01.key.pem

El cual usaremos para generar nuestro sello tambien dentro del Openssl

openssl dgst -sign aaa010101aaa_CSD_01.key.pem md5.txt | openssl enc -base64 -A > sello.txt

Y obtendremos el siguiente sello en su respectivo archivo sello.txt:

iIMz487EGyt6zCFjvcFNvHeOKgKMMc5y1py+QJrIvCmWbbxV43 k2xi6Q23p/Wee31vqUzYH0fbO0yBOvkDtiMejjdCOHPzmLvMkzfAzr919j6t bJOiODlgb7bisEdUkrjRrw+FfwQsPldsfHW6gq3K/fFGT6tTB7gqHP6a44ix0=
Disculpa, soy nuevo en el foro y estoy tratando de hacer lo de facturacion electronica, hago como dices para generar el sello en vb.net con el shell pero no me genera nada, estaba leyendo lo de Markx, Matias y de Vero que lo hacian en .net pero tampoco entendi, no sabes cual pudiera ser mi error, en linea de comandos si funciona. No se si me explique bien si alguien me pudiera dar un ejemplo en vb.net o en lo que sea tratare de entender. Gracias.

Mi codigo va asi
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
Dim cadenaoriginal As String = "||A|1|2005-09-02T16:30:00|1|ISP900909Q88|Industrias del Sur Poniente, S.A. de C.V.|Alvaro Obregón|37|3|Col. Roma Norte|México|Cuauhtémoc|Distrito Federal|México|06700|Pino Suarez|23|Centro|Monterrey|Monterrey|Nuevo Léon|México|95460|CAUR390312S87|Rosa María Calderón Uriegas|Topochico|52|Jardines del Valle|Monterrey|Monterrey|Nuevo León|México|95465|10|Caja|Vasos decorados|20|200|1|pieza|Charola metálica|150|150|IVA|52.5|| "
Label1.Text = cadenaoriginal
System.IO.File.WriteAllText("C:\fepruebas\cadena.t xt", cadenaoriginal)
Dim CadenaUTF8 As Byte()
Dim tmpHash() As Byte
Dim Digestion As String
'convierte en UTF8
CadenaUTF8 = System.Text.Encoding.UTF8.GetBytes(cadenaoriginal)
'crea el hash
tmpHash = New MD5CryptoServiceProvider().ComputeHash(CadenaUTF8)
' lo pasa a una variable string mediante la funcion ByteArrayToString
Digestion = ByteArrayToString(tmpHash)
System.IO.File.WriteAllText("C:\fepruebas\MD5.txt" , Digestion, Encoding.UTF8)
Shell("C:\OpenSSL-Win32\bin\openssl.exe pkcs8 -inform DER -in C:\fepruebas\aaa010101aaa_csd_01.key -passin pass:a0123456789 -out C:\fepruebas\aaa010101aaa_csd_01.key.pem")
Shell("c:\OpenSSL-Win32\bin\openssl dgst -sign c:\fepruebas\aaa010101aaa_CSD_01.key.pem c:\fepruebas\md5.txt | c:\OpenSSL-Win32\bin\openssl enc -base64 -A > c:\fepruebas\sello.txt")
End Sub