Método ISCardISO7816::ExternalAuthenticate
[O método ExternalAuthenticate está disponível para uso nos sistemas operacionais especificados na seção Requisitos. Ele não está disponível para uso no Windows Server 2003 com Service Pack 1 (SP1) e posterior, Windows Vista, Windows Server 2008 e versões subsequentes do sistema operacional. Os Módulos de Cartão Inteligente fornecem funcionalidade semelhante.]
O método ExternalAuthenticate constrói um comando APDU (unidade de dados de protocolo de aplicativo) que atualiza condicionalmente status de segurança, verificando a identidade do computador quando o cartão inteligente não confia nele.
O comando usa o resultado (sim ou não) da computação pelo cartão (com base em um desafio emitido anteriormente pelo cartão, por exemplo, pelo comando INS_GET_CHALLENGE), uma chave (possivelmente secreta) armazenada no cartão e dados de autenticação transmitidos pelo dispositivo de interface.
Sintaxe
HRESULT ExternalAuthenticate(
[in] BYTE byAlgorithmRef,
[in] BYTE bySecretRef,
[in] LPBYTEBUFFER pChallenge,
[in, out] LPSCARDCMD *ppCmd
);
Parâmetros
-
byAlgorithmRef [in]
-
A referência do algoritmo no cartão.
Se esse valor for zero, isso indicará que nenhuma informação é fornecida. A referência do algoritmo é conhecida antes de emitir o comando ou é fornecida no campo de dados.
-
bySecretRef [in]
-
A referência do segredo.
Valor Significado - Sem informações
Posição do bit: 00000000
Nenhuma informação é fornecida. A referência do segredo é conhecida antes de emitir o comando ou é fornecida no campo de dados.- Ref global
Posição do bit: 0-------
Dados de referência global (uma chave específica do MF).- Ref específico
Posição do bit: 1-------
Dados de referência específicos (uma chave específica do DF).- RFU
Posição do bit: -xx-----
00 (outros valores são RFU).- Segredo
Posição do bit: ---xxxxx
Número do segredo. -
pChallenge [in]
-
Um ponteiro para os dados relacionados à autenticação. Esse parâmetro pode ser NULL.
-
ppCmd [in, out]
-
Na entrada, um ponteiro para um objeto de interface ISCardCmd ou NULL.
No retorno, ele é preenchido com o comando APDU construído por essa operação. Se ppCmd tiver sido definido como NULL, um objeto cartãoISCardCmd inteligente será criado internamente e retornado usando o ponteiro ppCmd.
Valor retornado
O método retorna um dos valores possíveis a seguir.
Código de retorno | Descrição |
---|---|
|
A operação foi concluída com sucesso. |
|
Um parâmetro que não é válido foi passado. |
|
Um ponteiro inválido foi passado. |
|
Sem memória. |
Comentários
Para que o comando encapsulado seja bem-sucedido, o último desafio obtido da cartão deve ser válido.
Comparações malsucedidas podem ser registradas no cartão (por exemplo, para limitar o número de tentativas adicionais do uso dos dados de referência).
Para obter uma lista de todos os métodos fornecidos por essa interface, consulte ISCardISO7816.
Além dos códigos de erro COM listados acima, essa interface poderá retornar um código de erro de cartão inteligente se uma função de cartão inteligente tiver sido chamada para concluir a solicitação. Para obter mais informações, consulte Valores retornados de cartão inteligente.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte |
Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte |
Windows Server 2003 [somente aplicativos da área de trabalho] |
Fim do suporte ao cliente |
Windows XP |
Fim do suporte ao servidor |
Windows Server 2003 |
Cabeçalho |
|
Biblioteca de tipos |
|
DLL |
|
IID |
IID_ISCardISO7816 é definido como 53B6AA68-3F56-11D0-916B-00AA00C18068 |
Confira também