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) |