ho notato qualche comportamento molto strano sulla mia smartcard (NXP J2E145, J3A081, J3C145 con un lettore di Omnikey 5121): una perdita di potenza subito dopo la chiamata del metodo JavaCardJavacard - perdita di potenza durante la raccolta dei rifiuti
JCSystem.requestObjectDeletion()
può danneggiare la scheda: dopo circa il 10% di tale interruzione di corrente il comando ATR è molto lento (1000ms) e non ottengo risposta a nessun altro APDU (selezione applet, autenticazione gestore carta ecc.).
So che il comportamento di requestObjectDeletion() dipende dalla specifica implementazione del fornitore, quindi la mia domanda è molto ampio e aperto ...
è spazzatura collezionismo trasformati "normalmente" in una singola transazione?
C'è qualche raccomandazione "ufficiale" di NON chiamare la richiestaObjectDeletion() in caso di una possibile perdita di alimentazione?
Avete esperienza simile con le schede di NXP?
EDIT:
- JCSystem.isObjectDeletionSupported() == true su tutti i miei smartcard.
Quando si tenta di collegarsi al applet gestore della carta di una carta danneggiata, il guscio JCOP in Eclipse riporta questa:
ATR: 3BFB9600008131FE454F4450204D41502053414D3E
ATR: T = 1
jcshell: problemi Unknown con terminale. Ultimo errore del terminale: impossibile eseguire la richiesta a causa di un errore del dispositivo I/O.
hai controllato booleano JCSystem.isObjectDeletionSupported()? –
In realtà non l'ho fatto, ma il garbage collector normalmente funziona bene e non fa eccezione. La scheda sta facendo qualcosa dopo aver chiamato requestObjectDeletion (la spia sul lettore lampeggia) per circa 5 secondi e la EEPROM è stata pulita (l'ho verificata). L'unico problema è quando estraggo la carta dal lettore nel mezzo di questo processo. Quindi la carta sembra essere rotta, a volte. – vojta
Vedere "Modifica", per favore. – vojta