Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A finalidade do wrapper do fornecedor é encapsular e usar as interfaces COM de baixo nível (fornecidas pelos fabricantes de cartão inteligente) para um cartão inteligente específico. Essas interfaces não são fornecidas pela Microsoft.
de wrapper do fornecedor
Conforme descrito na parte 6 do Especificação de Interoperabilidade para ICCs e Sistemas de Computador Pessoal (consulte as especificações em https://pcscworkgroup.com), a funcionalidade exposta por esse wrapper é mais fácil de usar do que a funcionalidade de quatro provedores de serviços separados. A funcionalidade do wrapper pode ser dividida em quatro áreas principais:
- Serviços de autenticação de cartão inteligente, como obter desafio e autenticação de cartão.
- Acesso a arquivos de cartão inteligente ou serviços do sistema de arquivos, como abrir, fechar, ler e gravar.
- Gerenciamento de cartão inteligente, como anexar e desanexar.
- Serviços de verificação de cartão inteligente, como verificar e alterar o código.
Nota
Essa especificação pode não estar disponível em alguns idiomas e países ou regiões.
A funcionalidade é específica para o tipo de cartão que está sendo usado (que funciona com suporte ao cartão, protocolos e assim por diante) e será diferente para cada cartão.
O wrapper de exemplo do Microsoft SCardCOM usa a biblioteca COM da ATL para implementar um wrapper simples e definir um modelo para outros wrappers. Ele implementa as interfaces a seguir.
Interface ou objeto | Descrição |
---|---|
ISCardAuth |
Serviços de autenticação. |
isCardFileAccess |
Serviços do sistema de arquivos. |
ISCardManage |
Serviços de gerenciamento. |
ISCardVerify |
Serviços de verificação. |
Nota
O exemplo de SCardCOM é fornecido apenas como um exemplo de implementação das interfaces de wrapper. Para evitar a colisão de nome DLL com outros fornecedores, você não deve usar SCardCOM.dll como o nome de quaisquer DLLs criadas.
A seguir está um uso típico do wrapper do fornecedor. Este exemplo usa a interface ISCardManage para criar instâncias das interfaces que serão encapsuladas no provedor de serviços e na interfaceISCardVerifypara verificar sua operação.
Criar um provedor de serviços wrapper
- Crie uma instância da interfaceISCardManage. Use essa interface para criar uma instância de interfaces necessárias (por exemplo, ISCardFileAccess ou ISCardVerify). Ao criar essas interfaces, todas as interfaces COM de baixo nível correspondentes também seriam criadas.
- Anexe/conecte-se a um cartão por meio do métodoISCardManageapropriado.
- Execute as operações necessárias por meio do métodoISCardVerifyapropriado (que pode chamar várias interfaces e métodos COM de baixo nível para serem concluídos).
- Repita para outras operações.
- Versão quando concluída.
O GUID (nome da interface COM) e o identificador de interface (GUID) não devem ser alterados daqueles usados no código ou no wrapper de exemplo. No entanto, o GUID de classe (ou seja, onde reside uma implementação real de uma interface) deve ser alterado daqueles usados. Isso é especialmente importante ao implementar um wrapper de fornecedor. Um exemplo seria usar vários wrappers de fornecedor em um computador específico. Esses wrappers devem implementar as mesmas interfaces COM, mas sempre usarão estratégias de implementação diferentes. Portanto, classes diferentes (e IDs de classe) são necessárias.