bemerkte ich einige sehr seltsame Verhalten auf meinem Smart Cards (NXP J2E145, J3A081, J3C145 mit einem Omnikey 5121 Leser): Ein Stromausfall direkt nach Javacard-Methode aufrufenJavacard - Stromausfall während der Garbage Collection
JCSystem.requestObjectDeletion()
beschädigen die Karte: Nach etwa 10% solcher Stromausfälle ist der ATR-Befehl sehr langsam (1000 ms) und ich bekomme keine Antwort auf andere APDUs (Applet-Auswahl, Kartenmanager-Authentifizierung usw.).
Ich weiß, dass das Verhalten von requestObjectDeletion() auf der herstellerspezifischen Implementierung abhängt, so meine Frage ziemlich breit und offen ist ...
ist Müll „in der Regel“ in einer einzigen Transaktion verarbeitet sammeln?
Gibt es eine "offizielle" Empfehlung, requestObjectDeletion() im Falle eines möglichen Stromausfalls NICHT aufzurufen?
Haben Sie ähnliche Erfahrungen mit Karten von NXP?
EDIT:
- JCSystem.isObjectDeletionSupported() == true auf allen meinen Smart Cards.
Wenn Sie mit dem Kartenmanager-Applet einer beschädigten Karte verbinden versucht, berichtet die JCOP Shell in Eclipse IDE dies:
ATR: 3BFB9600008131FE454F4450204D41502053414D3E
ATR: T = 1
jcshell: Unbekannt Probleme mit Terminal. Letzter Terminalfehler: Die Anforderung konnte wegen eines E/A-Gerätefehlers nicht ausgeführt werden.
haben Sie boolean JCSystem.isObjectDeletionSupported() überprüft? –
Ich tat eigentlich nicht, aber der Müllsammler funktioniert normalerweise gut und es wirft keine Ausnahme. Die Karte macht etwas nach dem Aufruf von requestObjectDeletion (das Licht auf dem Lesegerät blinkt) für ungefähr 5 Sekunden und das EEPROM wird gereinigt (ich habe es überprüft). Das einzige Problem ist, wenn ich die Karte mitten in diesem Prozess aus dem Leser ziehe. Dann scheint die Karte manchmal kaputt zu sein. – vojta
Siehe "Bearbeiten", bitte. – vojta