PDA

Visualizza la versione completa : [C] Lettura dati da Smart Card


weit21085
08-04-2009, 16:30
Buon giorno.
Ho un problema:
Devo leggere da un lettore smat card.
Questo conesso attraverso la porta COM1 del pc.
allora il eseguo questo codice:
--------------------------------------------------------
HANDLE smart ;
smart= CreateFile(TEXT("\\\\.\\COM1"),// lpFileName
GENERIC_READ, // dwDesiredAccess
0,// dwShareMode
NULL,// lpSecurityAttributes
OPEN_EXISTING,// dwCreationDisposition
FILE_FLAG_OVERLAPPED,// dwFlagsAndAttributes
NULL);// dwFlagsAndAttributes
if(smart== INVALID_HANDLE_VALUE)
{
DWORD dw=GetLastError();
printf("errore n... %d\n smart %d\n", dw, smart);
errore(dw);
}
else printf("OK\n");
CloseHandle(smart);
system("PAUSE");
return 0;
------------------------------------------------------------
esattamente come descritto sul msdn.
Il problema sta in questo:
Quando il lettore sconnesso riesco ad accedere alla porta quando attaccato mi ritorna errore n. 5 ERROR_ACCESS_DENIED, come se non avessi i diritti. :dh:
Forse non devo accedere alla porta COM1 essendo occupata dal lettore e dal suo driver??
Allora quale l'indirizzo corrispondente???
Qualcuno ha gi affrontato questo tipo di problemi??
grazie, Ciao....

oregon
08-04-2009, 17:15
Non puoi accedere alla porta proprio perche' viene gestita dai driver del lettore.

Ti devi interfacciare alle librerie fornite con il lettore (a seconda delle funzioni che deve svolgere la smart card potresti anche interfacciarti con le API standard di Windows ...).

weit21085
08-04-2009, 17:28
Scusa l'ignoranza ma io sto usando il C non il visual basic.
Tu sai quali sono API di windows per interfacciarmi?? Le librerie... il sistema ke ho proprietario e non conosco le librerire. Ci sono solo le DLL ma quelle sono compilate e non si legge niente. Cmq so cosa deve sputare fuori la smat card quindi mi interessa leggere quello ke mette sulla porta...
grazie

oregon
08-04-2009, 17:34
Originariamente inviato da weit21085
Scusa l'ignoranza ma io sto usando il C non il visual basic.

E chi ti ha detto il contrario? Quel link che leggi sul VB6 e' nella mia firma, non e' una risposta a te.



Tu sai quali sono API di windows per interfacciarmi?? Le librerie... il sistema ke ho proprietario e non conosco le librerire.

Se il sistema e' proprietario, non credo che le API di Windows possono funzionare.

Comunque, sono le CryptoAPI CAPICOM

http://www.dia.unisa.it/~ads/corso-security/www/CORSO-0102/CAPICOM/index.htm

che si interfacciano con uno strato ulteriore (il CSP) e il driver del dispositivo.

Ma questo a patto che il lettore e la smart card siano usate per determinati scopi ...


Ci sono solo le DLL ma quelle sono compilate e non si legge niente.

E ci credo altrimenti non sarebbero DLL ... ! :)

Devi leggere la documentazione, se esiste.



Cmq so cosa deve sputare fuori la smat card quindi mi interessa leggere quello ke mette sulla porta...

Ma non e' detto che lo faccia in maniera semplice. Non si sa di che tipo di smart card si tratta, di cosa c'e' scritto, di quale standard rispetta ...

Insomma e' impossibile dirti nulla di piu' ... sicuramente non ci accedi leggendo dalla porta.

Se hai della documentazione specifica sul device in questione bene, altrimenti la vedo dura.

Loading