Partilhar via


Provedor de Serviços wrapper do fornecedor

A finalidade do wrapper do fornecedor é encapsular e usar as interfaces COM de baixo nível (fornecidas pelos fabricantes de cartão inteligentes) para uma cartão inteligente específica. Essas interfaces não são fornecidas pela Microsoft.

wrapper do fornecedor

Conforme descrito na parte 6 da Especificação de Interoperabilidade para ICCs e Sistemas de Computador Pessoal (consulte 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 main áreas:

  • Serviços de autenticação de cartão inteligentes, como obter desafio e autenticação cartão.
  • O smart cartão acesso a arquivos 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 inteligentes, como verificar e alterar o código.

Observação

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 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 estabelecer 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.

 

Observação

O exemplo SCardCOM é fornecido apenas como um exemplo de implementação das interfaces de wrapper. Para evitar a colisão de nome de DLL com outros fornecedores, você não deve usar SCardCOM.dll como o nome de nenhuma DLL criada.

 

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 interface ISCardVerify para verificar sua operação.

Para criar um provedor de serviços wrapper

  1. Crie uma instância da interface ISCardManage . 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.
  2. Anexe/conecte-se a um cartão por meio do método ISCardManage apropriado.
  3. Execute as operações necessárias por meio do método ISCardVerify apropriado (que pode chamar várias interfaces e métodos COM de baixo nível para concluir).
  4. Repita para outras operações.
  5. 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 wrapper de código ou 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.