PIBIO_ENGINE_IDENTIFY_FEATURE_SET_SECURE_FN Rückruffunktion (winbio_adapter.h)

Wird vom Windows Biometric Framework aufgerufen, um eine Vorlage aus dem aktuellen Featuresatz zu erstellen und eine übereinstimmende Vorlage in der Datenbank zu suchen. Wenn eine Übereinstimmung gefunden werden kann, muss der Engine-Adapter die Felder Identity, SubFactor, Authorization und AuthorizationSize ausfüllen.

Syntax

PIBIO_ENGINE_IDENTIFY_FEATURE_SET_SECURE_FN PibioEngineIdentifyFeatureSetSecureFn;

HRESULT PibioEngineIdentifyFeatureSetSecureFn(
  PWINBIO_PIPELINE Pipeline,
  const UCHAR *Nonce,
  SIZE_T NonceSize,
  const UCHAR *KeyIdentifier,
  SIZE_T KeyIdentifierSize,
  PWINBIO_IDENTITY Identity,
  PWINBIO_BIOMETRIC_SUBTYPE SubFactor,
  PWINBIO_REJECT_DETAIL RejectDetail,
  PUCHAR *Authorization,
  PSIZE_T AuthorizationSize
)
{...}

Parameter

Pipeline

Zeiger auf eine WINBIO_PIPELINE Struktur, die der biometrischen Einheit zugeordnet ist, die den Vorgang ausführt.

Nonce

Zeiger auf einen Puffer, der eine Nonce enthält.

NonceSize

Größe des durch den Nonce-Parameter angegebenen Puffers in Byte.

KeyIdentifier

Zeiger auf einen Puffer, der einen Bezeichner für den Schlüssel aus einem vorherigen Aufruf von EngineAdapterCreateKey enthält

KeyIdentifierSize

Größe des durch den KeyIdentifier-Parameter angegebenen Puffers in Byte.

Identity

Zeiger auf eine WINBIO_IDENTITY-Struktur , die die SID der aus der Datenbank wiederhergestellten Vorlage enthält. Dieser Wert wird nur zurückgegeben, wenn eine Übereinstimmung gefunden wird.

SubFactor

RejectDetail

Zeiger auf eine Variable, die zusätzliche Informationen empfängt, wenn ein Erfassungsfehler die Engine daran hindert, einen Abgleichsvorgang auszuführen. Wenn die letzte Erfassung erfolgreich war, legen Sie diesen Parameter auf 0 (null) fest.

Authorization

Ein HMAC. Weitere Informationen finden Sie im Abschnitt "Hinweise".

AuthorizationSize

Größe des durch den Authorization-Parameter angegebenen Puffers in Byte.

Rückgabewert

WINBIO_E_INVALID_KEY_IDENTIFIER müssen zurückgegeben werden, wenn der Schlüssel aus irgendeinem Grund nicht verwendet werden kann. Wenn WINBIO_E_INVALID_KEY_IDENTIFIER zurückgegeben wird, werden der Sensor und das TPM erneut bereitgestellt.

Hinweise

Der Autorisierungspuffer enthält die folgenden SHA256_HMAC:

SHA256_HMAC(Key, SHA256(Nonce || 0xffffffe2 || SHA256(AccountSid)))

  • Schlüssel

    Key ist der HMAC-Schlüssel, der von EngineAdapterCreateKey übergeben und durch den KeyIdentifier-Parameter identifiziert wird.

  • Nonce

    Nonce ist der Nonce-Parameter.

  • 0xffffffe2

    Eine 32-Bit-Ganzzahl ohne Vorzeichen im Big-Endian-Format.

  • AccountSid

    Die Konto-SID des Benutzers, auf den vom Identity-Parameter verwiesen wird. Die SID-Bytes können aus der WINBIO_IDENTITY-Struktur abgerufen werden.

Beispiele

Hier sehen Sie eine Pseudocodeimplementierung der SHA256 HMAC-Berechnung:

// Hash the AccountSid.
    assert(Identity->Type == WINBIO_ID_TYPE_SID);
    hashHandle = CreateHash(SHA256_ALGORITHM);
    HashData(
        hashHandle, 
        Identity->Value.AccountSid.Data, 
        Identity->Value.AccountSid.Size);
    identityHash = FinishHash(hashHandle);

    // Hash the parameters.
    BYTE bytes[] = {0xff, 0xff, 0xff, 0xe2};
    hashHandle = CreateHash(SHA256_ALGORITHM);
    HashData(hashHandle, Nonce, NonceSize);
    HashData(hashHandle, bytes, sizeof(bytes));
    HashData(hashHandle, identityHash, SHA256_DIGEST_LENGTH);
    parameterHash = FinishHash(hashHandle);

    // Calculate the authorization HMAC
    key, keySize = GetKeyFromIdentifier(KeyIdentifier, KeyIdentifierSize);
    hashHandle = CreateHash(HMAC_SHA256_ALGORITHM, key, keySize);
    HashData(hashHandle, parameterHash, SHA256_DIGEST_LENGTH);
    authorization = FinishHash(hashHandle);

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2016 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winbio_adapter.h (Winbio_adapter.h einschließen)