elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Programar tarjetero de DNIe
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programar tarjetero de DNIe  (Leído 2,704 veces)
MetalJimmy

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Programar tarjetero de DNIe
« en: 8 Agosto 2018, 13:12 pm »

Buenas a todos,

Me gustaría saber como puedo programar en una aplicación de escritorio (visual basic) en Visual studio 2015 un tarjetero (de teclado o externo) para que reconozca si esta conectado, reconozca el DNIe y me lea y muestre el certificado (todo en formularios diferentes pero eso es lo sencillo).

Si alguien tiene algo me gustaria que compartiesen lo que sepan.


Un saludo


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Programar tarjetero de DNIe
« Respuesta #1 en: 8 Agosto 2018, 21:01 pm »

Esta es la informaciónque tienes pública, la puedes obtener en Google:
https://www.incibe.es/extfrontinteco/img/File/intecocert/dnie/pdf/guiades.pdf
https://www.dnielectronico.es/PortalDNIe/PRF1_Cons02.action?pag=REF_1120


En línea

MetalJimmy

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Programar tarjetero de DNIe
« Respuesta #2 en: 9 Agosto 2018, 08:58 am »

Muchas gracias aunque esas páginas ya las visité y no encuentro nada parecido a lo que necesito ya que es una aplicacion de escritorio. Tengo esto pero me da el error :Referencia a objeto no establecida como instancia de un objeto.

Paso el codigo que tengo de DNIe:

Código:
Private Sub viaFirmaDNIe()
        Dim tipofichero As TypeFile
        Dim tipoformatofirma As TypeFormatSign
        Dim arr() As Byte = File.ReadAllBytes(rutapdf)
        Dim signedDocument() As Byte
        Dim temp As New Documento
        ' Dim temp As String
        'temp = rutapdf
        temp.nombre = "Documento_firmado" + ".pdf"
        tipofichero = 2 'es un pdf
        tipoformatofirma = TypeFormatSign.PAdES_BASIC
        temp.tipo = tipofichero
        temp.typeFormatSign = tipoformatofirma
        temp.datos = arr
        Dim politica As New Policy
        politica.typeFormatSign = tipoformatofirma
        politica.typeSign = TypeSign.ENVELOPED
        PolicyUtil.AddParameter(politica, PolicyParam.DIGITAL_SIGN_PAGE, "1")
        PolicyUtil.AddParameter(politica, PolicyParam.DIGITAL_SIGN_RECTANGLE, PolicyUtil.rectangleToJson(PolicyUtil.newRectangle(40, 10, 550, 75)))
        PolicyUtil.AddParameter(politica, PolicyParam.DIGITAL_SIGN_STAMPER_HIDE_STATUS, "true")
        PolicyUtil.AddParameter(politica, PolicyParam.DIGITAL_SIGN_STAMPER_TYPE, "QR-BAR-H")

        PolicyUtil.AddParameter(politica, PolicyParam.FILTER_CA_NAME, "DNIe")
        'para la demo si no hay actualizaciones poner la linea anterior con "FNMT" en vez de "DNIe"

        Dim estadofirma As New SignStatus
        estadofirma = client.SignWithPolicy(politica, temp)
        If estadofirma.Status = "ERROR" Then
            Dim msginfo As New Msg_eliminar("Advertencia", "El documento no puede ser firmado. No existe lector de DNIe disponible en este momento.", 0)
            msginfo.ShowDialog()
            msginfo.Dispose()
        Else
            Dim signid As String = ""
            If (Not estadofirma Is Nothing) And (estadofirma.Status = SignStatus.SIGN_OK) Then
                signid = estadofirma.IdSign
                '        //resignedDocumentcupero el documento mediante su identificador
                signedDocument = client.GetSignedDocument(signid)
                If (Not signedDocument Is Nothing And signedDocument.Length > 0) Then
                    'aqui muestro el documento firmado
                    'MODIFICADO 20170213 --> lo estaba escribiendo dos veces en el HD, comento una
                    'DocumentUtil.OpenFile(signedDocument, "Documento_firmado.pdf")
                    ' aqui tengo que guardarlo en la base de datos y ponerlo como firmado y fecha
                    File.WriteAllBytes(Path.GetTempPath + "Documento_firmado.pdf", signedDocument)
                    firmaok = True
                End If
            Else
                If (estadofirma.Status = (SignStatus.SIGN_CANCEL)) Then

                    Dim mensaje As New Msg_eliminar("Advertencia", "La firma del documento ha sido cancelada", 0)
                    mensaje.ShowDialog()
                    mensaje.Dispose()
                Else
                    If (estadofirma.Status = (SignStatus.SIGN_ERROR)) Then

                        'Dim mensaje As New Msg_Info("Error", "Error en la firma" & " - " & estadofirma.ErrorMessage, 0)
                        Dim mensaje As New Msg_eliminar("Advertencia", "El documento no ha sido firmado", 2)
                        mensaje.ShowDialog()
                        mensaje.Dispose()
                    Else
                        If (estadofirma.Status = (SignStatus.FORM_CLOSED)) Then

                            Dim mensaje As New Msg_eliminar("Advertencia", "El documento no ha sido firmado", 2)
                            mensaje.ShowDialog()
                            mensaje.Dispose()
                        End If
                    End If
                End If

            End If
        End If
    End Sub
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Programar tarjetero de DNIe
« Respuesta #3 en: 10 Agosto 2018, 16:18 pm »

Ok, pero una cosa es ver cómo accedr a DNIe y otra es corregir ese NullReferenceException.
Para eso último, tendrás que depurar tu programa y ver qué parte te da el error, que se debe a que un objeto no lo has inicializado o no tiene valor.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Curso de DNIe
Seguridad
erawlam 2 2,320 Último mensaje 7 Mayo 2012, 15:47 pm
por erawlam
El sainete del DNIe
Noticias
wolfbcn 0 1,280 Último mensaje 29 Octubre 2014, 15:06 pm
por wolfbcn
DNIe 3.0 ¿Por qué es tan difícil?
Noticias
wolfbcn 0 1,471 Último mensaje 20 Octubre 2017, 14:17 pm
por wolfbcn
DNIe 3.0 ¿Por qué es tan difícil?
Noticias
wolfbcn 1 1,438 Último mensaje 25 Mayo 2018, 17:34 pm
por Serapis
DNIe 3.0 ¿Por qué es tan difícil?
Noticias
wolfbcn 1 1,078 Último mensaje 5 Octubre 2018, 17:16 pm
por Serapis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines