Bom dia galera estou tentando acessar um certificado digital diretamente do smartcard por meio de comando APDU, porém ainda não tive sucesso para localizar o mesmo.
Lista : [PC/SC terminal Alcor Micro USB Smart Card Reader 0]
Terminal Selecionado: Alcor Micro USB Smart Card Reader 0
card: PC/SC card in Alcor Micro USB Smart Card Reader 0, protocol T=0, state OK
ATR : 3B7F96000080318065B084413DF612004C829000
APDU: 0x00:0xA4:0x04:0x00
Resposta: 0x6A86
Alguém que já tenha feito algo parecido por favor me auxilie nesta questão.
Boa tarde, estou de volta para responder meu próprio tópico…kkkkkkkkkkkkk
Existe muito conteúdo sobre este assunto na internet e muitos tratam o assunto de forma genérica, vou tentar colocar de forma sucinta o que fiz para resolver este problema de forma que outras pessoas consigam realizar o mesmo.
Vamos entender a situação, ler um certificado digital em smart card. Para fazer a leitura dos certificados contidos nesses cartões é necessário utilizar a biblioteca compatível com a criptografia utilizada pelo mesmo, no meu caso PKCS#11.
Além disto é necessário utilizar uma dll que contém o métodos para acessar o certificado dentro do cartão, essa dll é a “aetcrss1.dll” ela vem no pacote de instalação do “SafeSign Standard” e um alerta básico para qualquer um quer tente utilizar essa biblioteca, não importa se o sistema é x64, NÃO VAI FUNCIONAR, em sistema x64 você deve utilizar a dll para sistemas x32 e só assim a leitura de certificados via código irá funcionar.
Demorei muito para chegar nesse ponto e finalmente consigo fazer a leitura dos certificados e assinar documentos com os mesmos e agora espero que este tópico ajude outras pessoas.
esse arquivo não vai estar dentro da pasta do software, ele é inserido dentro da pasta do sistema operacional, no caso do windows é na pasta System32 ou SysWOW64, porém esses arquivos estão dentro do arquivo que disponibilizei.
Não sei o que te dizer, eu consegui dessa forma, acesso a leitora do cartão leio as informações do cartão e assino documentos. O que posso fazer é deixar um pouco do meu código aqui.