for desenvolver um Applet Java Card PKI. Cryptographic Application Programming Interface (CAPI)Tambem conhecida como CryptoAPI, Microsoft Cryptography API ou MS-CAPI e uma Interface Criptografica que os produtos Microsoft como o Internet Explorer, Outlook, Office, Windows Live, etc, utilizam para realizar operacoes criptograficas como cifragem, decifragem, assinaturas e verificacoes.Outros aplicativos podem utilizar a MS-CAPI, um exemplo e o Adobe Acrobat Reader que acessa o Key Store do Windows para assinatura de pdf s. Basicamente para um Token ou Smart Card de certificacao digital funcionar com produtos Microsoft e necessario implementar as funcoes contidas na interface da MS-CAPI, trata-se de uma biblioteca dinamica (DLL), que ira se linkar com a DLL PKCS#11 do Token / Smart.Esse link e definido atraves de uma entrada no registro do Windows que linka a implementacao da DLL MS-CAPI com o Token / Smart Card, e um Certificado Digital do Key Store do Windows linkado com a DLL MS-CAPI.Como podem ver na figura acima, existem duas maneiras de se utilizar Certificacao Digital em ambientes MS, uma e utilizar a MS-CAPI e acessar certificados digitais a partir do Key Store do Windows e outra e acessar diretamente o servico atraves do PKCS#11 como o Firefox e a API JCE IAIK fazem. O Card / Token ManagerTrata-se do aplicativo responsavel pelo gerenciamento de todas essas especificacoes citadas acima como instalacao de applets no cartao, disparo de geracao de chaves, requisicao de certificados, instalacao de certificados no cartao e no Key Store do Sistema Operacional, assinatura e verificacao, etc.Um dos aplicativos mais usados e completo e o "SafeSign Identity Client (link)" inclusive um dos mais adotados pelas AC s brasileiras que pode ser obtido gratuitamente via download. Outra Solucao e a da "Charismathics (link)". PIN e PUK O PIN (Personal Identification Number) e a senha que identifica o dono do Cartao/Token e e requerida antes de uma operacao criptografica ser realizada como geracao de chaves, assinatura e cifragem.O PUK (Personal Unblock Key) e a senha utilizada para desbloqueio do PIN em caso de bloqueio por tentativas de entradas incorretas. O Caminho das PedrasExistem dois caminhos bem distintos a serem percorridos pelos profissionais que almejam trabalhar com Certificacao Digital.O Primeiro Caminho e mais complexo e desenvolver tudo do Zero nesse caso:Desenvolver uma Aplicacao PKCS#15 para Smart Cards (Ex. Applet Java Card), ou utilizar um Smart Card / Token com PKCS#15 nativo (Ex. Cartao StarCos da GD Burti, token HASP).Desenvolver uma biblioteca de link dinamico que implemente a especificacao PKCS#11 (Ex. DLL para MS-Win).Para Ambientes Microsoft, desenvolver uma biblioteca de link dinamico que implemente a especificacao CryptoAPI e que implicitamente se link com a biblioteca PKCS#11. Essa DLL (CryptoAPI), deve ser Assinada Digitalmente pela Microsoft para que ela possa ser devidamente utilizada em ambientes Windows.Desenvolver um Card Manager com a funcao de Iniciar o Cartao (instalar o aplicativo se necessario, definir PIN e PUK, etc). Prover suporte aos padroes PKCS#1,7,10,11 e 12. Prover suporte ao Padrao MS-CAPI (se usada em ambientes Microsoft). Desenvolver uma aplicacao que utilize a certificacao digital como um assinador de Nota Fiscal (NFe), documentos, etc. Utilizando a biblioteca PKCS#11 ou