tambem conhecido por Engineering Sample e um leitor de SmartCards de contato padrao PC/SC.Essa sem duvidas sera a parte mais chata de todo processo, digo isso pois existem algumas variaveis importantes a serem observadas.E um Java Card 2.1 ou 2.1.1 ou 2.2 ou 2.2.1 ou 2.2.2?Lembrem-se que no artigo o qual eu instruo a configurar o ambiente, eu recomendei que fosse baixada a versao do JCDK (Java Card Development Kit) 2.2.2, pois o plug-in do Simulador para Eclipse necessita do JCDK2.2.2.Pois bem, caso voce possua um cartao Java Card 2.2.1, o que for compilado com o JCDK 2.2.2 nao ira funcionar nesse cartao. Ou seja voce tera que baixar o JCDK2.2.1 e configurar a variavel de ambiente "JC_HOME" para apontar para o JCDK221.E um cartao GlobalPlatform 2.0.1 ou 2.1 ou 2.1.1 ou 2.2?A maioria dos cartoes utilizam a especificacao 2.1.1. Porem cartoes da Oberthur Cosmos utilizam a especificacao 2.0.1.Qual versao de Secure Channel Protocol ele utiliza, versao 1 ou 2 ou 3?Cartoes como Oberthur Cosmos e Gemxpresso utilizam a versao 1, enquanto cartoes com JCOP's da NXP utilizam a versao 2. Porem isso nao e uma regra.Qual e a chave 3DES utilizada no Secure Channel Protocol?Se for um cartao Java Card de Desenvolvimento, muito provavelmente sera a chave padrao Visa Open Platform que consiste de 1 a 3 chaves no seguinte padrao:0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4FCaso eu nao saiba, como eu descubro isso?Pergunte para o fabricante do qual voce comprou o cartao, ou verifique no Manual (Datasheet) do seu cartao.Nesse tutorial eu usarei como Base o cartao JCOP 2.4.1 de 80Kb da NXP.Java Card 2.2.2GlobalPlatform 2.1.1Secure Channel Protocol 23 Chaves 3DES padrao Visa Open PlatformFerramenta Necessaria :GPShell a ultima versao (link).Descompacte a ferramenta na raiz C: do se HD.Compilando um .CAPAbra seu Eclipse e carregue o Projeto do artigo anterior e vamos descobrir onde o Eclipse salva nosso projeto. Para isso va no menu "File > Switch Workspace > Other..." e verifique o caminho na qual sua Aplicacao se encontra.Va ate o diretorio "seu_workspace\JCApplets" e crie um arquivo "build.bat" utilizando o Bloco de Notas.Edite o build.bat e adicione os seguintes comandos abaixo:@ECHO OFFif "%OS%" == "Windows_NT" setlocalif not "%JAVA_HOME%" == "" goto check_tool echo Please set the JAVA_HOME environment variable. goto end:check_toolif not "%JC_HOME%" == "" goto doit echo Please set the JC_HOME environment variable. goto end:doitset JC_PATH=.;%CL_DIR%;%JC_HOME%\lib\api.jarset JCFLAGS=-g -d .\bin -source 1.2 -target 1.2 -classpath "%JC_PATH%"if exist bin del /s /q binif not exist bin mkdir binxcopy /s /y %JC_HOME%\api_export_files\*.* bin\%JAVA_HOME%\bin\javac %JCFLAGS% src\jchellorworld\*.javacd bincall %JC_HOME%\bin\converter -config ..\src\jchellorworld\JCHelloWorld.opt:endif "%OS%" == "Windows_NT" endlocalpauseEsse arquivo e responsavel pela compilacao propriamente dita, ele verifica a presenca das variaveis de ambiente "JAVA_HOME" e "JC_HOME".Apos isso ele configura o classpath e os parametros de compilacao a ser passada para o compilador javac.Depois o diretorio "bin" e previamente limpo e todos os arquivos ".exp" (Export Files) copiados para dentro da mesma. Export Files sao como arquivos Headers ".h" da Linguagem C e serve para se linkar as classes e metodos utilizado da API Java Card pelo nosso