menu di navigazione del network

Errore Lettura CIE con lettore ASK RDR518-U

Buongiorno, sto integrando la lettura della CIE in un applicazione desktop sviluppata in C#.
Sono partito come base di lavoro dall’ esempio riportato nel progetto:

Chiaramente Nella parte di autenticazione PACE ho inserito il CAN della mia CIE.
Tale progetto , mandato in debug con Visual Studio 2017, riconosce correttamente il lettore ed inizia lo scambio di APDU fino ad arrivare all’istruzione.
Array.Copy(RecvBuffer, resp, RecvLength);

Quando viene generata un eccezione “Overflow di un operazione aritmetica”.
Qualcuno ha mai affrontato un problema simile?
Da cosa può derivare?

E’ possibile avere un log delle APDU scambiate con la carta?

Innanzi tutto ti ringrazio per la risposta.
Le APDU e le conseguenti risposte sono le seguenti.
In pratica l’ultima APDU inviata ha una risposta vuota con len=0, e ciò causa un errore nella conseguente copy.
Grazie ancora

INFO 1 CIE.MRTD.SDK.PCSC.SmartCard - INIZIO Transazione Lettura CIE
INFO 1 CIE.MRTD.SDK.PCSC.SmartCard - Invio APDU [00-A4-02-0C-02-01-1C]
INFO 1 CIE.MRTD.SDK.PCSC.SmartCard - Ricezione Data Len=2 DATA[90-00]
INFO 1 CIE.MRTD.SDK.PCSC.SmartCard - Invio APDU [00-B0-00-00-06]
INFO 1 CIE.MRTD.SDK.PCSC.SmartCard - Ricezione Data Len=8 DATA[31-14-30-12-06-0A-90-00]
INFO 1 CIE.MRTD.SDK.PCSC.SmartCard - Invio APDU [00-B0-00-00-16]
INFO 1 CIE.MRTD.SDK.PCSC.SmartCard - Ricezione Data Len=24 DATA[31-14-30-12-06-0A-04-00-7F-00-07-02-02-04-01-01-02-01-02-02-01-02-90-00]
INFO 1 CIE.MRTD.SDK.PCSC.SmartCard - Invio APDU [00-22-C1-A4-0F-80-0A-04-00-7F-00-07-02-02-04-01-01-83-01-02]
INFO 1 CIE.MRTD.SDK.PCSC.SmartCard - Ricezione Data Len=2 DATA[90-00]
INFO 1 CIE.MRTD.SDK.PCSC.SmartCard - Invio APDU [10-86-00-00-02-7C-00-00]
INFO 1 CIE.MRTD.SDK.PCSC.SmartCard - Ricezione Data Len=14 DATA[7C-0A-80-08-4C-0B-D0-4C-43-DB-AD-E6-90-00]
INFO 1 CIE.MRTD.SDK.PCSC.SmartCard - Invio APDU [10-86-00-00-00-01-08-7C-82-01-04-81-82-01-00-20-6B-42-19-F9-21-FC-62-4D-38-44-F8-BC-33-C5-11-F1-2E-F1-6B-4D-F2-2A-5D-99-D3-3F-B4-A1-36-14-FD-D4-48-4A-49-E0-39-4C-15-72-F2-6E-BD-87-30-7E-3A-2C-49-63-25-CB-DF-56-E5-A4-55-5C-41-8E-58-EA-0C-E2-D2-AA-90-50-1E-31-74-BB-37-DF-4A-60-90-90-E1-28-7C-A4-96-15-AE-03-8C-EB-63-95-0D-BD-05-C2-23-3D-13-E4-3E-A2-12-68-BD-53-2D-E4-E6-2F-34-2F-56-D0-07-89-73-16-DE-5D-B3-1B-2F-97-2C-A2-06-65-83-91-D9-51-9A-D1-A5-ED-3D-D3-4E-F9-68-EF-F2-59-95-88-99-33-7D-6C-DA-F4-B9-E4-21-2C-7C-3C-BB-DD-C1-93-F1-03-27-50-59-E1-F1-4A-BF-16-6F-AA-3A-EF-4D-40-55-0A-41-4E-98-3B-02-8A-B6-41-4B-6C-82-F6-41-77-36-1F-96-B4-68-B1-15-4E-AD-49-20-BA-CA-68-D6-54-3B-5D-8D-E8-FC-B6-80-B3-5E-EB-AA-FE-77-31-E9-1D-DE-8D-05-AC-65-25-E6-30-24-1C-B5-D7-BE-21-92-0F-B9-67-DB-FA-92-CD-55-FF-FC-65-58-30-41-3F-BB-00-00]
INFO 1 CIE.MRTD.SDK.PCSC.SmartCard - Ricezione Data Len=0 DATA[]

In effetti è strano. Almeno 2 bytes con la status word ci devono essere sempre. L’APDU precedente è un chaining (Classe 10) e in Extended Length (LC=00 01 08), potrebbe non essere gestita correttamente dal driver del lettore.
Puoi provare a verificare la SCardTransmit in corrispondenza di questo comando restituisce 0 (SCARD_OK) o un codice di errore?

Nel frattempo che verifico posso aggiungere che dopo questo errore il lettore va in blocco e solo tramite un reset tramite tool Ask riprende a rispondere… l’idea di una non adeguatezza del driver era in effetti un’ idea.
Proverò con un altro lettore, che modello mi suggerisci?
Grazie

Con i lettori OMNIKEY, ad esempio il 5422, non ho mai avuto problemi. Purtroppo sono abbastanza costosi.

L’ ScardTransmit nel caso di blocco risponde 0x00000000 ma come detto RecvLength è 0 e RecvBuffer è vuoto.
Nel frattempo che indago la questione del lettore ed eventualmente compare un omnikey, c’è modo di aggirare il problema?

Purtroppo non credo ci sia modo di aggirare il problema.
Si può usare il protocollo BAC invece che il PACE, che utilizza chiavi più corte e non necessita di APDU estese. Però non si può fare col CAN ma solo con l’MRZ.
E comunque il protocollo di Chip Authentication richiede in ogni caso l’uso di APDU estese.