+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 5 su 5

Lettura indirizzo di residenza da tessera CNS

  1. #1
    L'avatar di jqoobe
    jqoobe non è in linea Novello
    Post
    21
    Like Inviati  
    0
    Like Ricevuti  
    0
    Salve a tutti, ho un piccolo problema nel reperire l'indirizzo di residenza dalla tessera sanitaria, sono riuscito ad estrarre i seguenti dati:

    Cognome
    Nome
    Codice FIscale
    Data di emissione
    Data di Scadenza
    Data di Nascita
    Luogo di Nascita
    Provincia
    Nazionalità
    Sesso
    tutti questi dati sono presenti nel percorso Master File o comunemente chiamato MF
    a seguire il DF1 con fid 1100 e EF.Dati_personali don Fid 1102.


    Mi servirebbe ora estrarre anche la residenza ma non riesco a navigare il file DF.NKAF che contiene appunto questo dato. Qualcuno si è già cimentato in questo problema con Vb6 ?

  2. #2
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Post
    17,369
    Blogs
    5
    Like Inviati  
    5
    Like Ricevuti  
    31
    La questione è un po' generica e, a meno che non risponda qualcuno che l'ha già fatto, nessun altro potrà darti alcuna indicazione con le poche indicazioni che hai dato.

    Cosa usi per leggere i dati dalla carta?
    Cosa hai provato a fare per leggere l'indirizzo e quali errori hai avuto?
    ℹ️ Leggi di più su AntonioG ...

  3. #3
    L'avatar di jqoobe
    jqoobe non è in linea Novello
    Post
    21
    Like Inviati  
    0
    Like Ricevuti  
    0
    Uso la libreria winsCard.dll

  4. #4
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Post
    17,369
    Blogs
    5
    Like Inviati  
    5
    Like Ricevuti  
    31
    Ok ... ma rimane quanto ti ho detto. Solo se qualcuno lo ha già fatto potrebbe darti una mano perché non hai dato nessuna indicazione per permettere ad altri di rispondere.
    ℹ️ Leggi di più su AntonioG ...

  5. #5
    L'avatar di jqoobe
    jqoobe non è in linea Novello
    Post
    21
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ciao Antonio, navigando il file system della smart card ottengo i dati riportati sopra... in questa maniera:
        Dim apdu(261) As Byte
        Dim recvbuf(258) As Byte
        Dim recvlen As Integer
        Dim iosendreq As SCARD_IO_REQUEST
        Dim iorecvreq As SCARD_IO_REQUEST
       ' STRINGA APDU
        apdu(0) = &H0   'CLA
        apdu(1) = &HCA  'INS
        apdu(2) = &H0   'P1
        apdu(3) = &H81  'P2
        apdu(4) = &H0   'LC
        apdu(5) = &H0   'LE
        recvlen = 257
        iosendreq.dwProtocol = activeprotocol
        iosendreq.dbPciLength = Len(iosendreq)
        iorecvreq.dwProtocol = activeprotocol
        iorecvreq.dbPciLength = Len(iosendreq)
        retval = SCardTransmit(hCard, iosendreq, apdu(0), 6, iorecvreq, recvbuf(0), recvlen)
        If (retval <> 0) Then MsgBox ("Errore nella trasmissione: " & CStr(retval))
        '---------------------
        '      LIVELLO MF
        '---------------------
        apdu(0) = &H0   'CLA
        apdu(1) = &HA4 'INS
        apdu(2) = &H0  'P1
        apdu(3) = &H0  'P2
        apdu(4) = &H2  'LC
        apdu(5) = &H3F
        apdu(6) = &H0
        recvlen = 257
        iosendreq.dwProtocol = activeprotocol
        iosendreq.dbPciLength = Len(iosendreq)
        iorecvreq.dwProtocol = activeprotocol
        iorecvreq.dbPciLength = Len(iosendreq)
        retval = SCardTransmit(hCard, iosendreq, apdu(0), 7, iorecvreq, recvbuf(0), recvlen)
        If (retval <> 0) Then
                MsgBox ("Errore n." & CStr(retval))
        End If
        '---------------------
        '      LIVELLO DF D000
        '---------------------
        apdu(0) = &H0   'CLA
        apdu(1) = &HA4 'INS
        apdu(2) = &H0  'P1
        apdu(3) = &H0  'P2
        apdu(4) = &H2  'LC
        apdu(5) = &HD0
        apdu(6) = &H0
        recvlen = 257
        iosendreq.dwProtocol = activeprotocol
        iosendreq.dbPciLength = Len(iosendreq)
        iorecvreq.dwProtocol = activeprotocol
        iorecvreq.dbPciLength = Len(iosendreq)
        retval = SCardTransmit(hCard, iosendreq, apdu(0), 7, iorecvreq, recvbuf(0), recvlen)
        If (retval <> 0) Then
                MsgBox ("Errore n." & CStr(retval))
        End If
        '---------------------
        '      LIVELLO D100 - DATI PERSONALI CONTENUTI NELLA CARTA
        '---------------------
        apdu(0) = &H0   'CLA
        apdu(1) = &HA4 'INS
        apdu(2) = &H0  'P1
        apdu(3) = &H0  'P2
        apdu(4) = &H2  'LC
        apdu(5) = &HD1
        apdu(6) = &H0
       recvlen = 257
        iosendreq.dwProtocol = activeprotocol
        iosendreq.dbPciLength = Len(iosendreq)
        iorecvreq.dwProtocol = activeprotocol
        iorecvreq.dbPciLength = Len(iosendreq)
       retval = SCardTransmit(hCard, iosendreq, apdu(0), 7, iorecvreq, recvbuf(0), recvlen)
        If (retval <> 0) Then
                MsgBox ("Errore n." & CStr(retval))
        End If
        
        
          '---------------------
        '      LIVELLO D101 - DATI PERSONALI CONTENUTI NELLA CARTA EF.NKAF
        '---------------------
        apdu(0) = &H0   'CLA
        apdu(1) = &HA4 'INS
        apdu(2) = &H0  'P1
        apdu(3) = &H0  'P2
        apdu(4) = &H2  'LC
        apdu(5) = &HD1
        apdu(6) = &H1
       recvlen = 257
        iosendreq.dwProtocol = activeprotocol
        iosendreq.dbPciLength = Len(iosendreq)
        iorecvreq.dwProtocol = activeprotocol
        iorecvreq.dbPciLength = Len(iosendreq)
       retval = SCardTransmit(hCard, iosendreq, apdu(0), 7, iorecvreq, recvbuf(0), recvlen)
        If (retval <> 0) Then
                MsgBox ("Errore n." & CStr(retval))
        End If
        
        
        
        
       ' LEGGO I BINARY PROVENIENTI DALLA CARTA
        apdu(0) = &H0   'CLA
        apdu(1) = &HB0 'INS
        apdu(2) = &H0  'P1
        apdu(3) = &H0  'P2
       apdu(4) = &H96  'LC
        recvlen = 257
        iosendreq.dwProtocol = activeprotocol
        iosendreq.dbPciLength = Len(iosendreq)
        iorecvreq.dwProtocol = activeprotocol
        iorecvreq.dbPciLength = Len(iosendreq)
        retval = SCardTransmit(hCard, iosendreq, apdu(0), 5, iorecvreq, recvbuf(0), recvlen)
        If (retval <> 0) Then
                MsgBox ("Errore n." & CStr(retval))
        End If
       risposta = ""
       
    
       
       For K = 0 To apdu(4) - 1: risposta = risposta + Chr(recvbuf(K)): Next K
    
    unico problema in questa parte del file system ( non so per quale motivo ) non è presente l'indirizzo di residenza e altri dati tipo medico di famiglia, statura etc etc, a quanto pare questi dati risiedono nal EF.nkaf che ha un FID D101, applicando lo stesso ragionamento per navigare il file system come sopra non ottengo i dati attesi.. e non sono pefettamente sicuro che stia facendo giusto.

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Lettura tessera sanitaria
    Da Miciogatto nel forum C#
    Risposte: 3
    Ultimo Post: 27-02-2018, 16:08
  2. Articolo: [VB GDI+] Form Stile Tessera
    Da MarcoGG nel forum Visual Basic .Net
    Risposte: 2
    Ultimo Post: 30-04-2010, 16:27
  3. Articolo: [C# GDI+] Form Stile Tessera
    Da MarcoGG nel forum C#
    Risposte: 0
    Ultimo Post: 30-04-2010, 14:46
  4. Indirizzo MAC
    Da onion nel forum Networking e sicurezza
    Risposte: 1
    Ultimo Post: 03-03-2008, 16:06
  5. Indirizzo IP
    Da chico_ nel forum Visual Basic 6
    Risposte: 4
    Ultimo Post: 15-11-2006, 20:31