Closed zoao closed 2 months ago
Essa mensagem de erro pode ter várias causas, mas no vosso caso já que estão a utilizar leitor contactless, poderá ser porque o módulo de integração (minidriver) não se conseguiu autenticar no cartão com o protocolo PACE.
Para isto é necessário que o CAN (card access number) que é fornecido na primeira leitura na aplicação Autenticação.gov esteja guardado no registry em HKEY_CURRENT_USER\SOFTWARE\PTEID\can_cache
. Este registo criado pela aplicação guarda o CAN do último cartão lido com sucesso. Se este registo não existir, estiver vazio ou com uma valor errado para o cartão atual, o módulo minidriver não consegue comunicar com o cartão em interface contactless.
No cenário mais comum de utilizador final tipicamente só vai utilizar um Cartão de Cidadão num determinado PC e utilizador logo este esquema funciona. Em situação de desenvolvimento é muito normal lermos vários cartões e como tal esse erro pode acontecer.
Obrigado @agrr , só hoje conseguimos confirmar com o leitor de cartões sem ser contact less e confirmo que a assinatura funcionou bem.
No entanto tendo em conta que o novo cartão tem a opção contact less e para alguns ambientes de trabalho, é normal que no mesmo computador passem vários utilizadores e cartões do cidadão, por isso parece-me que isto vai gerar alguns problemas... Mas para já vamos aconselhar a não usarem a opção de contact less
Os novos cartões do cidadão com o algoritmo criptográfico ECDSA, estão a dar o seguinte erro ao tentarmos usar as bibliotecas do sistema operativo. Isto acontece na nossa aplicação desenvolvida em .Net 6 com as bibliotecas System.Security.Cryptography, depois de adicionarmos manualmente o algoritmo: Ecdsa256SignatureDescription
Mas tambem acontece o mesmo erro por exemplo se tentamos assinar um ficheiro com o Word.
No entanto se usarmos a aplicação autenticação.gov 3.12.0, a assiantura funciona bem.
O erro que dá é: "O smart card não pode efectuar a operação pedida ou esta necessita de um smart card diferente"