Hello World Java Card! (Parte 1 - Configurando o Ambiente)
Autor: Ricardo Massao | Publicado: 2010-12-19T04:50:00-08:00

Bom, chegou a hora de escrever-mos nossa primeira aplicação Java Card, de inicio utilizaremos o JCWDE (Java Card Workstation Development Environment) ou o CREF( C Reference Implementation of Java Card), mais conhecidos como Simuladores Java Card.O Simulador não é ruim porém não é completo como um Java Card físico, possui diversas limitações como&nbsp; ausência ou implementação parcial de alguns motores criptograficos, vários esquemas de *padding estão ausentes, o tamanho máximo de uma chave RSA é de 512 bits, sendo que a maioria dos Java Cards suportam 2048 bits alguns até 4096 bits, implementação parcial do GlobalPlatform e somente o CREF pode salvar o estado do Applet porém não aceita debugging.Então se puder consiga um cartão Java Card que será muito mais proveitoso e divertido também.&nbsp;

*padding - Algoritimos Criptograficos cifram blocos de dados com tamanhos fixos ou múltiplos, por exemplo o TripleDES somente cifra blocos múltiplos de 8 bytes, caso o bloco de dados não seja múltiplo é necessário complementar o bloco para torna-lo múltiplo de 8.Por exemplo imagine que precisamos cifrar o seguinte bloco de dados :[0x01 0x02 0x03 0x04] - 4 bytes, se enviar-mos para o motor 3DES receberemos uma exceção, logo seguindo a especificação ISO9797-1 aplicaremos o seguinte padding:[0x01 0x02 0x03 0x04 0x80 0x00 0x00 0x00] - 8 bytes.&nbsp;

Ferramentas Necessárias :JDK - Java Development Kit (link).JCDK - Java Card Classic Development Kit 2.2.2 (link).Eclipse versão Classic (link).Plug-In Java Card para o Eclipse (link).&nbsp;
Observação, baixe o JCDK versão 2.2.2 se está se perguntando porque veja aqui o porque focinho de porco não é tomada.&nbsp;

Configurando o Ambiente de Desenvolvimento.Instale o JDK com as configurações padrões.
Descompacte o arquivo "java_card_kit-2_2_2-windows.zip" em um local temporário, descompacte o conteúdo do arquivo "java_card_kit-2_2_2-rr-bin-windows-do.zip" que está localizado dentro da pasta "java_card_kit-2_2_2", para uma pasta com o nome de "JCDK222" na raiz C: do seu HD.
Deixe a estrutura de Diretórios exatamente como na figura abaixo, isso facilitará bastante sua vida no decorrer dos tutoriais :



Estrutura de Diretório do JCDK.

Agora iremos configurar as variáveis de Ambiente do Windows.
Clique em "Iniciar-&gt;Painel de Controle -&gt; Sistema" e acesse a seguinte janela :

 
Vá até a Aba "Avançado" e clique no botão "Variáveis de Ambiente".

Verifique na Lista "Variáveis do Sistema" na coluna "Variável" se não existe uma entrada chamada "JAVA_HOME", se não existir clique no botão "Novo...".

Crie a seguinte entrada seguindo a imagem acima, vai uma dica valiosa aqui, notaram que coloquei "C:\Arquiv~1\..." isso porque em alguns prompt de comando do windows o espaço contido em "Arquivo de Programas" gera um Erro na hora de localizar os executáveis do JDK. Quem usou Windows 95 deve saber do que estou falando. No Windows 7 ou Windows Vista isso pode mudar por exemplo no meu Windows 7 64bits o JDK se instalou em "C:\Program Files (x86)\Java\jdk1.6.0_20", porem o path no prompt de comando correto é "C:\Progra~2\Java\jdk1.6.0_20". Aqui você terá que dar seus pulinhos para configurar corretamente seu ambiente.&nbsp;
Algumas pessoas dirão : Ahh! mas é só colocar entre aspas dupas! "C:\Arquivo de Programas\Java\jdk1.6.0_20".
O que posso dizer para essas pessoas é "sim pode"... Mas se não conseguirem compilar depois seus Applets tentem usando a dica do Arquiv~1.
Caso você não tenha o Classpath na lista de variáveis crie uma entrada para ele também conforme a figura acima.
Por ultimo crie a entrada do JCDK conforme a figura acima.
Agora abra um prompt de comando e teste se o ambiente foi configurado corretamente digitando:
%JAVA_HOME%\bin\javac -version
%JC_HOME%\bin\verifycap -version
O resultado deve ser similar a imagem acima, se for parabéns você configurou seu ambiente para desenvolvimento Java Card com sucesso!
Agora descompacte o Eclipse em um local de sua escolha no meu caso eu o coloquei na raiz C: do HD, aliás é onde o pessoal do Eclipse recomenda colocar para evitar problemas.
Descompacte o Plug-In Java Card e copie a pasta "plugins" para a raiz do seu Eclipse, no meu caso "C:\Eclipse".
Execute o Eclipse e se tudo estiver correto você verá três itens de menu novo, "CREF", "Java Card"e "JCWDE", conforme a figura abaixo :&nbsp;
Finalmente clique em "Java Card -&gt; Preferences" e configure o local do JCDK, conforme a figura abaixo:
Bem felizmente essa foi de longe a parte mais difícil de todo processo, agora vem a parte mais fácil de todas que é programar em Java Card.

Particularmente eu prefiro utilizar o Netbeans para desenvolvimento Java, inclusive para Java Card porém&nbsp; como o Netbeans traz nativamente o Java Card Dev Kit 3.0(Dependendo da Distro que você baixar), e esses cartões ainda são raros no mercado, resolvi utilizar o Eclipse pois utiliza o JCDK 2.2.2 e esses cartões são facilmente encontrados no mercado inclusive brasileiro, as chances de você conseguir um é infinitamente maior do que conseguir um JC 3 e relembrando o JC 3 é a evolução direta do JC2.2.2.


Bom, na Parte do 2 do Artigo finalmente vocês Desenvolverão um Applet Java Card e o executará no Simulador JCWDE.


Até a Próxima, Abraços a Todos!