Compartir a través de


MÉTODO ISCardISO7816::ExternalAuthenticate

[El método ExternalAuthenticate está disponible para su uso en los sistemas operativos especificados en la sección Requisitos. No está disponible para su uso en Windows Server 2003 con Service Pack 1 (SP1) y versiones posteriores, Windows Vista, Windows Server 2008 y versiones posteriores del sistema operativo. Los módulos de tarjeta inteligente proporcionan una funcionalidad similar.]

El método ExternalAuthenticate crea un comando de unidad de datos de protocolo de aplicación (APDU) que actualiza condicionalmente el estado de seguridad, comprobando la identidad del equipo cuando la tarjeta inteligente no confía en él.

El comando usa el resultado (sí o no) del cálculo por la tarjeta (en función de un desafío emitido previamente por la tarjeta, por ejemplo, por el comando INS_GET_CHALLENGE), una clave (posiblemente secreta) almacenada en la tarjeta y los datos de autenticación transmitidos por el dispositivo de interfaz.

Sintaxis

HRESULT ExternalAuthenticate(
  [in]      BYTE         byAlgorithmRef,
  [in]      BYTE         bySecretRef,
  [in]      LPBYTEBUFFER pChallenge,
  [in, out] LPSCARDCMD   *ppCmd
);

Parámetros

byAlgorithmRef [in]

Referencia del algoritmo en la tarjeta.

Si este valor es cero, esto indica que no se proporciona información. La referencia del algoritmo se conoce antes de emitir el comando o se proporciona en el campo de datos.

bySecretRef [in]

Referencia del secreto.

Valor Significado
Sin información
Posición de bits: 00000000
No se proporciona información. La referencia del secreto se conoce antes de emitir el comando o se proporciona en el campo de datos.
Referencia global
Posición de bits: 0-------
Datos de referencia globales (una clave específica de MF).
Referencia específica
Posición de bits: 1-------
Datos de referencia específicos (una clave específica df).
RFU
Posición de bits: -xx-----
00 (otros valores son RFU).
Secreto
Posición de bits: ---xxxxx
Número del secreto.

 

pChallenge [in]

Puntero a los datos relacionados con la autenticación. Este parámetro puede ser NULL.

ppCmd [in, out]

En la entrada, un puntero a un objeto de interfaz ISCardCmd o NULL.

A cambio, se rellena con el comando APDU construido por esta operación. Si ppCmd se estableció en NULL, un objeto ISCardCmd de tarjeta inteligente se crea internamente y se devuelve mediante el puntero ppCmd.

Valor devuelto

El método devuelve uno de los siguientes valores posibles.

Código devuelto Descripción
S_OK
La operación se ha completado correctamente.
E_INVALIDARG
Se pasó un parámetro que no es válido.
E_POINTER
Se pasó un puntero incorrecto.
E_OUTOFMEMORY
Memoria insuficiente

 

Comentarios

Para que el comando encapsulado se realice correctamente, el último desafío obtenido de la tarjeta debe ser válido.

Las comparaciones incorrectas se pueden registrar en la tarjeta (por ejemplo, para limitar el número de intentos adicionales del uso de los datos de referencia).

Para obtener una lista de todos los métodos proporcionados por esta interfaz, vea ISCardISO7816.

Además de los códigos de error COM enumerados anteriormente, esta interfaz puede devolver un código de error de tarjeta inteligente si se llamó a una función de tarjeta inteligente para completar la solicitud. Para obtener más información, consulte Valores devueltos de tarjeta inteligente.

Requisitos

Requisito Value
Cliente mínimo compatible
Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows Server 2003 [solo aplicaciones de escritorio]
Fin de compatibilidad de cliente
Windows XP
Fin de compatibilidad de servidor
Windows Server 2003
Encabezado
Scardssp.h
Biblioteca de tipos
Scardsrv.tlb
Archivo DLL
Scardssp.dll
IID
IID_ISCardISO7816 se define como 53B6AA68-3F56-11D0-916B-00AA00C18068

Consulte también

InternalAuthenticate

ISCardISO7816