En visual net tengo problemas para generar mi sello

Para quienes programan Visual Basic aqui esta la solucion
[[ FORO CERRADO DEBIDO A QUE YA LA INFORMACION YA NO ES VIGENTE ]]
dankamui
Mensajes: 6
Registrado: Mié Jul 04, 2012 12:15 pm

En visual net tengo problemas para generar mi sello

Mensajepor dankamui » Mié Jul 04, 2012 12:26 pm

hola buen dia,,, ojala me puedas decir o llevar o sacarme de la duda cual es mi error, estoy checando varios codigos, pero no se si lo estoy haciendo de la manera correcta, bueno sigo con la pregunta,

genero mis archivos y demas los pruebo con el VALIDA CFD y el unico error que me manda es sello invalido lo demas me dice que esta bien


en fin pongo el codigo para que si alguien sigue atorado en este tema pueda apoyarse y demas
es algo largho pero me a servido, lo unico que no se es en que me equivoco

'CREAMOS EL SHA1 (asi le puse yo jeje)
Dim process As New Process

process.StartInfo.WindowStyle = ProcessWindowStyle.Minimized
process.StartInfo.FileName = "C:\OpenSSL\bin\openssl.exe" 'le ponemos el nombre del archivo q hara la encriptacion (la ruta del openssl.exe)
process.StartInfo.Arguments = "dgst -sha1 C:\Facturacion\cadena.txt" 'le madamos solo un parametro. (el nombre del archivo .txt q contiene la cadena original)
process.StartInfo.WorkingDirectory = "C:\OpenSSL\bin" 'esto es para poner el direcctorio inicial en el q iniciara el proceso
process.StartInfo.UseShellExecute = False 'esto es para decirle q no usaremos el shell del sistema operativo
process.StartInfo.ErrorDialog = False 'esto es para omitir cualquier mensaje de error del proceso a ejecutar
process.StartInfo.RedirectStandardOutput = True 'esto es para decirle q vamos a escribir (o utiliar) el resultado de la secuencia (o sea el resultado encriptado)
process.Start() 'iniciamos el proceso

'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dim codificado As String 'creamos una varaible q almacenara el resultado encriptado
codificado = process.StandardOutput.ReadToEnd 'el resultado del parametro "dgst -SHA1 d:\cadena.txt" se almacena en esta variable
process.WaitForExit() 'le decimos q se espere el proceso
'ahora, al resultado lo pasamos en un ciclo for para quitarle la
'parte del sha1 y q solo nos quede el resultado
Dim codificado2 As String = ""
For i = 0 To codificado.Length - 1
If codificado.Chars(i) = "=" Then
codificado2 = Mid(codificado, i + 3) 'seleccionamos desde la psicion en la q se quedo hasta al final de la cadena y eso se lo pasamos a codigificado2
End If
Next
System.IO.File.WriteAllText("C:\Facturacion\codificado.txt", UCase(codificado2)) 'escribimos el resultado en otro archivo de texto


'CREAMOS EL ARCHIVO .KEY.PEM
Dim process2 As New Process
process2.StartInfo.WindowStyle = ProcessWindowStyle.Minimized
process2.StartInfo.FileName = "C:\OpenSSL\bin\openssl.exe" 'le ponemos el nombre del archivo q hara la encriptacion (la ruta del openssl.exe)
process2.StartInfo.Arguments = "pkcs8 -inform DER -in C:\Facturacion\CMO900226824_1012281011S.key -out C:\Facturacion\CMO900226824_1012281011S.key.pem -passin pass:paswoord" 'le madamos solo un parametro para que me de el resultado
process2.StartInfo.WorkingDirectory = Application.StartupPath 'esto es para poner el direcctorio inicial en el q iniciara el proceso
process2.StartInfo.UseShellExecute = False 'esto es para decirle q no usaremos el shell del sistema operativo
process2.StartInfo.ErrorDialog = False 'esto es para omitir cualquier mensaje de error del proceso a ejecutar
process2.StartInfo.RedirectStandardOutput = True 'esto es para decirle q vamos a escribir (o utiliar) el resultado de la secuencia (o sea el resultado encriptado)
process2.Start() 'iniciamos el proceso
process2.WaitForExit() 'le decimos q se espere el proceso

'CREAMOS EL SELLO
Dim process3 As New Process
process3.StartInfo.WindowStyle = ProcessWindowStyle.Minimized
process3.StartInfo.FileName = "C:\OpenSSL\bin\openssl.exe" 'le ponemos el nombre del archivo q hara la encriptacion (la ruta del openssl.exe)
--->>>> process3.StartInfo.Arguments = "dgst -sha1 -sign C:\Facturacion\CMO900226824_1012281011S.key.pem C:\Facturacion\codificado.txt " 'le madamos solo un parametro.
process3.StartInfo.WorkingDirectory = "C:\OpenSSL\bin" 'esto es para poner el direcctorio inicial en el q iniciara el proceso
process3.StartInfo.UseShellExecute = False 'esto es para decirle q no usaremos el shell del sistema operativo
process3.StartInfo.ErrorDialog = False 'esto es para omitir cualquier mensaje de error del proceso a ejecutar
process3.StartInfo.RedirectStandardOutput = True 'esto es para decirle q vamos a escribir (o utiliar) el resultado de la secuencia (o sea el resultado encriptado)
process3.Start() 'iniciamos el proceso

Dim SelloTxt As String 'creamos una varaible q almacenara el resultado encriptado
SelloTxt = process3.StandardOutput.ReadToEnd
Dim b64 As String = Convert.ToBase64String(Encoding.Default.GetBytes(SelloTxt)) 'decodificamos el resultado en base 64

process3.WaitForExit() 'le decimos q se espere el proceso
System.IO.File.WriteAllText("C:\Facturacion\sello.txt", b64) 'escribimos el resultado en otro archivo de texto

'CREAMOS EL CERTIFICADO .PEM (nombre.CER.PEM) O EL NOMBNRE QUE LE QUERAMOS PONER
Dim process4 As New Process
process4.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
process4.StartInfo.FileName = "C:\OpenSSL\bin\openssl.exe" 'le ponemos el nombre del archivo q hara la encriptacion (la ruta del openssl.exe)
process4.StartInfo.Arguments = " x509 -inform DER -in C:\Facturacion\CMO900226824_1012281011S.cer -outform PEM -out C:\Facturacion\CMO900226824_1012281011S.cer.pem " 'le madamos solo un parametro.
process4.StartInfo.WorkingDirectory = "C:\OpenSSL\bin" 'esto es para poner el direcctorio inicial en el q iniciara el proceso
process4.StartInfo.UseShellExecute = False 'esto es para decirle q no usaremos el shell del sistema operativo
process4.StartInfo.ErrorDialog = False 'esto es para omitir cualquier mensaje de error del proceso a ejecutar
process4.StartInfo.RedirectStandardOutput = True 'esto es para decirle q vamos a escribir (o utiliar) el resultado de la secuencia (o sea el resultado encriptado)
process4.Start() 'iniciamos el proceso
process4.WaitForExit() 'le decimos q se espere el proceso

'EXTRAEMOS LA CADENA DEL CERTIFICADO MIIE/TCCA+WgAwIBAgIUMzAwMDEwMDAwMDAxMDAwMDA4MDAwDQYJKoZ Ih ......
Dim process5 As New Process
process5.StartInfo.WindowStyle = ProcessWindowStyle.Minimized
process5.StartInfo.FileName = "C:\OpenSSL\bin\openssl.exe" 'le ponemos el nombre del archivo q hara la encriptacion (la ruta del openssl.exe)
process5.StartInfo.Arguments = "x509 -inform DER -outform PEM -in C:\Facturacion\CMO900226824_1012281011S.cer" 'le madamos solo un parametro.
process5.StartInfo.WorkingDirectory = "C:\OpenSSL\bin" 'esto es para poner el direcctorio inicial en el q iniciara el proceso
process5.StartInfo.UseShellExecute = False 'esto es para decirle q no usaremos el shell del sistema operativo
process5.StartInfo.ErrorDialog = False 'esto es para omitir cualquier mensaje de error del proceso a ejecutar
process5.StartInfo.RedirectStandardOutput = True 'esto es para decirle q vamos a escribir (o utiliar) el resultado de la secuencia (o sea el resultado encriptado)
process5.Start() 'iniciamos el proceso
process5.WaitForExit() 'le decimos q se espere el proceso

'hasta aqui son los datos "complicados"

Dim CertificadoCadena As String 'creamos una varaible q almacenara el resultado encriptado
CertificadoCadena = process5.StandardOutput.ReadToEnd
CertificadoCadena = Mid(CertificadoCadena, 28)
'quitamos los guiones
Dim RespCertificadoCadena As String = ""
For i = 0 To CertificadoCadena.Length - 1
If CertificadoCadena.Chars(i) <> "-" Then
RespCertificadoCadena = RespCertificadoCadena & CertificadoCadena.Chars(i)
RespCertificadoCadena = Replace(RespCertificadoCadena, vbLf, "")

Else
Exit For
End If
Next


'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'OBTENEMOS EL NUMERO DE NO. DE CERTIFICADO
Dim process6 As New Process
process6.StartInfo.WindowStyle = ProcessWindowStyle.Minimized
process6.StartInfo.FileName = "C:\OpenSSL\bin\openssl.exe" 'le ponemos el nombre del archivo q hara la encriptacion (la ruta del openssl.exe)
process6.StartInfo.Arguments = " x509 -in D:\facturacion\CMO900226824_1012281011S.cer.pem -serial " 'le madamos solo un parametro.
process6.StartInfo.WorkingDirectory = "C:\OpenSSL\bin" 'esto es para poner el direcctorio inicial en el q iniciara el proceso
process6.StartInfo.UseShellExecute = False 'esto es para decirle q no usaremos el shell del sistema operativo
process6.StartInfo.ErrorDialog = False 'esto es para omitir cualquier mensaje de error del proceso a ejecutar
process6.StartInfo.RedirectStandardOutput = True 'esto es para decirle q vamos a escribir (o utiliar) el resultado de la secuencia (o sea el resultado encriptado)
process6.Start() 'iniciamos el proceso
process6.WaitForExit() 'le decimos q se espere el proceso

Dim NoCertificado As String 'creamos una varaible q almacenara el resultado NoCertificado (el string completo)
NoCertificado = Mid(process6.StandardOutput.ReadToEnd, 8)

Dim NoCertificadoR As String = ""
'le aplicamos el ciclo estraemos solo las pociciones pares esto paras que nos deja la cadena original nadamas
For i = 0 To NoCertificado.Length - 1
If NoCertificado(i) <> "-" Then
If ((i + 1) Mod 2) = 0 Then
NoCertificadoR = NoCertificadoR & NoCertificado(i)
End If
Else
Exit For
End If
Next


bueno hasta aca los preocesos que hago para sacar los datos y formar mi xml de ahi pues ya saco de la bd lo que me falta para formarlo bueno ya con esto donde tengo el error es en sello es lo que me marca error no se si le estoy enviando bien mi linea de comandos

bueno a espera de tu ayuda gracias de antemano+

y coomo dicen mas vale un codigo que haga superar a este mundo que 10000 lineas ocualtas baja la avaricia y el poder

RickAlanis
Mensajes: 288
Registrado: Jue Ago 04, 2011 9:41 pm

Re: En visual net tengo problemas para generar mi sello

Mensajepor RickAlanis » Mié Jul 04, 2012 2:28 pm

Voy a hacer un algoritmo de lo que estás haciendo y verás dónde puedes tener el error:

1). Aplicas el hash SHA-1 a tu cadena
2). Le quitas no sé qué al hash de la cadena y lo guardas como "codificado.txt" pero en mayúsculas
3). Obtienes la llave privada de tu certificado
4). Al resultado de 2) le aplicas el hash SHA-1 (¿de nuevo?) pero esta vez, firmado con la llave privada (-sign, o sea "signed", firmado)
5). AL resultado de 4) lo codificas en Base64 y lo guardas como "sello.txt"
6). Cambias el certificado de formato DER a formato PEM (que es Base64)
7). Obtienes el número del certificado

Primero: Supongo que sabes esto pero para recordarlo:
SHA-1 es un método de hash. Tomas un archivo cualquiera (de 1 a 2^61 bytes, no más) y te genera una secuencia única de 160 bites (20 bytes). Cualquier cambio en el archivo original hace que el resultado del SHA-1 sea completamente diferente.
Tú le aplicas SHA-1 y luego uppercase a la cadena y luego le vuelves a aplicar el SHA-1 a ese resultado y lo firmas (openssl dgst -SHA1 -sign quiere decir hacer las dos cosas al mismo tiempo). Entonces, estas aplicando doble SHA-1.

Por otro lado ¿Por qué la generación de la llave privada, el cambiar a PEM el certificado y luego extraer el número no lo haces una sóla vez, cuando se te indica cuál es el certificado, y los guardas en campos en tu base de datos? Te ahorra mucho tiempo. Al menos, eso creo yo.

Espero que eso te sirva.

¡Saludos!

dankamui
Mensajes: 6
Registrado: Mié Jul 04, 2012 12:15 pm

Re: En visual net tengo problemas para generar mi sello

Mensajepor dankamui » Mié Jul 04, 2012 2:35 pm

gracias gracias, estaba esperando la vdd la respuesta, si ya vi que me revolvi despues de varias cosas jajaja ok, voy a empezar a coreregir y espero si me equivoco me eches una mano ya que la neta es la 1a vez que me meto en esto de la facturacion se programar pero no sabia como se hace el encriptado y demas y se me fueron las cabras, y otra sves mil ghracias, necesitaba alguien ams dos cabezas piensan mas que una gracias gracias :D 8-)

ok sobre la pregunta que dices no se que le quito al hacer el has -sha1
es que la cadena que me devuelve es esta
SHA1(C:\Facturacion\cadena.txt)= b9d0f755e77614f7ff9d8397f578d48cb21cf73e
a la cual pues busco el signo = y empiezo a guardar los demas caracteres, peor como dices, si le cambio algo a la cadena me sale un resultyado diferente
no se si haya una forma para quitarle eso o no se jep :D
Última edición por dankamui el Mié Jul 04, 2012 3:01 pm, editado 1 vez en total.

dankamui
Mensajes: 6
Registrado: Mié Jul 04, 2012 12:15 pm

Re: En visual net tengo problemas para generar mi sello

Mensajepor dankamui » Mié Jul 04, 2012 2:40 pm

y sobre la pregunta lo hago asi porque como es la primera vez que muevo los hilos a esto, pues quiero saber su origen ya despues de ahi hago modificaciones para adaptarlo a lo que me guste jejeje por eso ves ligas y no campos y demas, es un boton en el que hago las pruebas...... pero en fin mil mil ghracias me iluminaste voy hacer cambios y espero que me funciones, si njo seguire molestando jojojoj,,,,

y si me sale, pondre el codigo aca para que a otros se les haga mas facil ya que a mi se me a complicado una semana jejeje :P

RickAlanis
Mensajes: 288
Registrado: Jue Ago 04, 2011 9:41 pm

Re: En visual net tengo problemas para generar mi sello

Mensajepor RickAlanis » Mié Jul 04, 2012 4:40 pm

Te recomiendo:

Quita el primer proceso donde haces SHA-1 solo.

Luego, en el proceso donde haces el SHA-1 con firma (-sign) agrégale como tercer archivo el del sello.bin (queda en binario, no es un texto). La llamada original es:

Código: Seleccionar todo

openSSL dgst -sha1 -sign llaveprivada.pem sello.bin cadenaoriginal.txt

(el archivo que va a crear queda en medio de la llave y la fuente que se va a firmar)

quita este código, porque agarra el StdOut que a lo mejor contiene lo del "=" que dices:

Código: Seleccionar todo

SelloTxt = process3.StandardOutput.ReadToEnd

(si usas la llamada anterior como te dije, no lo necesitas)

Y cuando conviertas a base64, usa sello.bin como la fuente y ya lo guardas en sello.txt.

Cuando usas el hash firmado, insisto, no es un texto. Se convierte a base64 para que sólo sean caracteres legibles y lo puedas incluir en el XML.

¡Saludos!

dankamui
Mensajes: 6
Registrado: Mié Jul 04, 2012 12:15 pm

Re: En visual net tengo problemas para generar mi sello

Mensajepor dankamui » Mié Jul 04, 2012 6:58 pm

te entendi maso menos la vdd, si se me hace tambien algo logico, pero lo que no llegue a saber es de donde se obtiene "sello.bin" para poderlo incluir, es ya una llamada a un procedimiento de el openssl?? o como es eso no lo entendi la vdd :D gracias si me lo pudieras explicar algo mejor :D

dankamui
Mensajes: 6
Registrado: Mié Jul 04, 2012 12:15 pm

Re: En visual net tengo problemas para generar mi sello

Mensajepor dankamui » Mié Jul 04, 2012 7:30 pm

amigo muchas gracias por tus respuestas cambie varias cosas para generarlas, borre todo lo que habia echoi y lo empece desde 0 y porfin me salio mi cfd, mañana ya quitando todo lo que no me gusto, pondre el codigo, para que las personas que aun sigan atoradas en lo mismo como estaba yo lo utilicen y se les haga mas facil...... muchas muchas gracias amigo.................

dankamui
Mensajes: 6
Registrado: Mié Jul 04, 2012 12:15 pm

Re: En visual net tengo problemas para generar mi sello

Mensajepor dankamui » Jue Jul 05, 2012 3:01 pm

'CREAMOS EL ARCHIVO .KEY.PEM
Dim process2 As New Process
process2.StartInfo.WindowStyle = ProcessWindowStyle.Minimized
process2.StartInfo.FileName = "C:\OpenSSL\bin\openssl.exe" 'le ponemos el nombre del archivo q hara la encriptacion (la ruta del openssl.exe)
process2.StartInfo.Arguments = "pkcs8 -inform DER -in " & PathArchivos & "\1012281011S.key -out " & PathArchivos & "\1012281011S.key.pem -passin pass:" & pasw & "" 'le madamos solo un parametro para que me de el resultado
process2.StartInfo.WorkingDirectory = Application.StartupPath 'esto es para poner el direcctorio inicial en el q iniciara el proceso
process2.StartInfo.UseShellExecute = False 'esto es para decirle q no usaremos el shell del sistema operativo
process2.StartInfo.ErrorDialog = False 'esto es para omitir cualquier mensaje de error del proceso a ejecutar
process2.StartInfo.RedirectStandardOutput = True 'esto es para decirle q vamos a escribir (o utiliar) el resultado de la secuencia (o sea el resultado encriptado)
process2.Start() 'iniciamos el proceso
process2.WaitForExit() 'le decimos q se espere el proceso


Dim pathCadenaOriginal As String = (PathArchivos & "\" & Ventasmenudeo.IDCENTRO & "_F" & nFactura & SERIE & ".txt")
Dim pathLlaveFormatoPem As String = PathArchivos & "\1012281011S.key.pem"
Dim pathSelloDigital As String = PathArchivos & "\sello.txt"
Dim pathLlaveFormatoKey As String = PathArchivos & "\1012281011S.key"

'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\BIN\openssl pkcs8 -inform DER -in " & _
pathLlaveFormatoKey & " -out " & pathLlaveFormatoPem & _
" -passin pass:" & pasw & "", 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\BIN\openssl dgst -sha1 -sign " & pathLlaveFormatoPem &
" | c:\OPENSSL\BIN\openssl enc -base64 -A -out " & pathSelloDigital, vbHide)

'Se coloca el sello digital en una variable.
Dim b64 As String = File.ReadAllText(pathSelloDigital)

'Se eliminan archivos temporales.

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

'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

'CREAMOS EL CERTIFICADO .PEM (XXXXXXXX.CER.PEM) O EL NOMBNRE QUE LE QUERAMOS PONER
Dim process4 As New Process
process4.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
process4.StartInfo.FileName = "C:\OpenSSL\bin\openssl.exe" 'le ponemos el nombre del archivo q hara la encriptacion (la ruta del openssl.exe)
process4.StartInfo.Arguments = " x509 -inform DER -in " & PathArchivos & "\1012281011S.cer -outform PEM -out " & PathArchivos & "\1012281011S.cer.pem " 'le madamos solo un parametro.
process4.StartInfo.WorkingDirectory = "C:\OpenSSL\bin" 'esto es para poner el direcctorio inicial en el q iniciara el proceso
process4.StartInfo.UseShellExecute = False 'esto es para decirle q no usaremos el shell del sistema operativo
process4.StartInfo.ErrorDialog = False 'esto es para omitir cualquier mensaje de error del proceso a ejecutar
process4.StartInfo.RedirectStandardOutput = True 'esto es para decirle q vamos a escribir (o utiliar) el resultado de la secuencia (o sea el resultado encriptado)
process4.Start() 'iniciamos el proceso
process4.WaitForExit() 'le decimos q se espere el proceso
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

'EXTRAEMOS LA CADENA DEL CERTIFICADO MIIE/TCCA+WgAwIBAgIUMzAwMDEwMDAwMDAxMDAwMDA4MDAwDQYJKoZ Ih ......
Dim process5 As New Process
process5.StartInfo.WindowStyle = ProcessWindowStyle.Minimized
process5.StartInfo.FileName = "C:\OpenSSL\bin\openssl.exe" 'le ponemos el nombre del archivo q hara la encriptacion (la ruta del openssl.exe)
process5.StartInfo.Arguments = "x509 -inform DER -outform PEM -in " & PathArchivos & "\1012281011S.cer" 'le madamos solo un parametro.
process5.StartInfo.WorkingDirectory = "C:\OpenSSL\bin" 'esto es para poner el direcctorio inicial en el q iniciara el proceso
process5.StartInfo.UseShellExecute = False 'esto es para decirle q no usaremos el shell del sistema operativo
process5.StartInfo.ErrorDialog = False 'esto es para omitir cualquier mensaje de error del proceso a ejecutar
process5.StartInfo.RedirectStandardOutput = True 'esto es para decirle q vamos a escribir (o utiliar) el resultado de la secuencia (o sea el resultado encriptado)
process5.Start() 'iniciamos el proceso
process5.WaitForExit() 'le decimos q se espere el proceso

'hasta aqui son los datos "complicados" sigue el codigo ...

Dim CertificadoCadena As String 'creamos una varaible q almacenara el resultado encriptado
CertificadoCadena = process5.StandardOutput.ReadToEnd
CertificadoCadena = Mid(CertificadoCadena, 28)
'quitamos los guiones
Dim RespCertificadoCadena As String = ""
For i = 0 To CertificadoCadena.Length - 1
If CertificadoCadena.Chars(i) <> "-" Then
RespCertificadoCadena = RespCertificadoCadena & CertificadoCadena.Chars(i)
RespCertificadoCadena = Replace(RespCertificadoCadena, vbLf, "")
Else
Exit For
End If
Next

'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'OBTENEMOS EL NUMERO DE NO. DE CERTIFICADO
Dim process6 As New Process
process6.StartInfo.WindowStyle = ProcessWindowStyle.Minimized
process6.StartInfo.FileName = "C:\OpenSSL\bin\openssl.exe" 'le ponemos el nombre del archivo q hara la encriptacion (la ruta del openssl.exe)
process6.StartInfo.Arguments = " x509 -in " & PathArchivos & "\1012281011S.cer.pem -serial " 'le madamos solo un parametro.
process6.StartInfo.WorkingDirectory = "C:\OpenSSL\bin" 'esto es para poner el direcctorio inicial en el q iniciara el proceso
process6.StartInfo.UseShellExecute = False 'esto es para decirle q no usaremos el shell del sistema operativo
process6.StartInfo.ErrorDialog = False 'esto es para omitir cualquier mensaje de error del proceso a ejecutar
process6.StartInfo.RedirectStandardOutput = True 'esto es para decirle q vamos a escribir (o utiliar) el resultado de la secuencia (o sea el resultado encriptado)
process6.Start() 'iniciamos el proceso
process6.WaitForExit() 'le decimos q se espere el proceso

Dim NoCertificado As String 'creamos una varaible q almacenara el resultado NoCertificado (el string completo)
NoCertificado = Mid(process6.StandardOutput.ReadToEnd, 8)

Dim NoCertificadoR As String = ""
'le aplicamos el ciclo estraemos solo las pociciones pares esto paras que nos deja la cadena original nadamas
For i = 0 To NoCertificado.Length - 1
If NoCertificado(i) <> "-" Then
If ((i + 1) Mod 2) = 0 Then
NoCertificadoR = NoCertificadoR & NoCertificado(i)
End If
Else
Exit For
End If
Next
'++++++++++++++++++++++++++++++++++hasta aca termina "lo complicado 29062012"+++++++++++++++++++++++++++++++++++++++++++++++++++++++






bueno despues de moverle un buen de cosas lo logre hacer, e ahi el codigo, se los dejo para que lo ocupen ya que a mi en verdad si me llevo tiempo hacerlo y pues es feo no poder contribuir en algo, asi que saluidos y que tengan un bonito dia

mdorantes
Mensajes: 11
Registrado: Mié Ago 08, 2012 10:18 am

Re: En visual net tengo problemas para generar mi sello

Mensajepor mdorantes » Vie Ago 10, 2012 4:48 pm

Alguien sabe como crear el NOCERTIFICADO con c#?

jasistemas
Mensajes: 158
Registrado: Mié Ene 11, 2012 3:08 pm
Contactar:

Re: En visual net tengo problemas para generar mi sello

Mensajepor jasistemas » Lun Ago 13, 2012 3:15 pm

Para acceder al .key, y puedes generar sello, obtener el no. de certificado y certificado, busca en google opensslkey.cs es codigo fuente puro C# que puedes integrar en tu proyecto .net 2005 o 2010

Saludos
jasistemas@hotmail.com


Volver a “Visual Basic”

¿Quién está conectado?

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