Come caricare a livello di codice un applet Java carta (un file .cap) utilizzando Visual C ++ / PCSC

StackOverflow https://stackoverflow.com/questions/3779557

  •  04-10-2019
  •  | 
  •  

Domanda

Sono currentlly su un progetto che mi obbliga a caricare un'applicazione JavaCard Applet (un .cap) file in una JavaCard. Il nostro quadro si basa su Visual C ++ e PCSC, quindi abbiamo bisogno di caricare lo stesso applet ad una serie di JavaCards. Qualcuno sa come questo può essere processato? Voglio dire, dove dovrei cominciare. Grazie!

È stato utile?

Soluzione

Lei ha ragione che questo non è un lavoro banale.

Ci sono differenze tra i vari javacards, ma in genere è necessario fare 4 cose:

  • inizializzare comunicazioni sicure con la carta (perché molti javacards sono carte "piattaforma globale" hanno bisogno di un canale protetto)
  • inviare un comando che dice "Voglio installare un applet"
  • inviare i dati binari per l'applet da installare
  • inviare un comando a "un'istanza di" l'applet dopo che i dati binari vengono inviati

Mi consiglia di utilizzare il plugin di Eclipse per installare l'applet inizialmente, perché si può vedere l'APDUs generato dal plugin per fare i passaggi precedenti. Una volta che conosci i comandi APDU è necessario inviare per installare l'applet, è possibile inviare direttamente i comandi utilizzando l'interfaccia PCSC dal codice C ++ per automatizzare l'installazione su un gran numero di carte.

La mia azienda fa un web browser plugin chiamato carta Boss per fare questo genere di cose (comunicazioni da visita tramite PCSC) da un browser - c'è una pagina web è possibile utilizzare dove è possibile digitare il proprio APDUs e inviarli alla scheda all'URL follwing:

https://cardboss.cometway.com/content.agent? nome_pagina = Card + Boss + Lab

Se si utilizza il nostro strumento, lo script di installazione applet dovrebbe apparire qualcosa di simile (si noti che questo è uno script per una carta JCOP utilizzando i tasti predefiniti JCOP)

    MESSAGE BOX Installing applets...

    INIT CHANNEL 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f, 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f

    // INSTALL CAP: 
    SEND 80 E6 02 00 1D 10 A0 00 00 00 09 00 03 FF FF FF FF 89 10 71 00 01 08 A0 00 00 00 03 00 00 00 00 00 00 

    // LOADING CAP: 
    SEND 80 E8 00 00 FA C4 82 01 03 01 00 25 DE CA FF (snip, I removed a bunch 
of binary data representing the cap file to shorten this post, and you might
need multiple SEND commands because of limits on the size of APDUS)

    // INSTANTIATING Applet
    SEND 80 E6 0C 00 1E 05 63 6F 6D 65 74 07 63 6F 6D 65 74 00 01 05 00 00 00 00 00 01 00 06 C9 04 68 2C 00 03 00 00 
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top