Condividi tramite


PIBIO_ENGINE_IDENTIFY_FEATURE_SET_SECURE_FN funzione di callback (winbio_adapter.h)

Chiamato da Windows Biometric Framework per creare un modello dal set di funzionalità corrente e individuare un modello corrispondente nel database. Se è possibile trovare una corrispondenza, l'adattatore del motore deve compilare i campi Identity, SubFactor, Authorization e AuthorizationSize .

Sintassi

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
)
{...}

Parametri

Pipeline

Puntatore a una struttura WINBIO_PIPELINE associata all'unità biometrica che esegue l'operazione.

Nonce

Puntatore a un buffer che contiene un nonce.

NonceSize

Dimensioni, in byte, del buffer specificato dal parametro Nonce .

KeyIdentifier

Puntatore a un buffer contenente un identificatore per la chiave da una chiamata precedente a EngineAdapterCreateKey

KeyIdentifierSize

Dimensioni, in byte, del buffer specificato dal parametro KeyIdentifier .

Identity

Puntatore a una struttura WINBIO_IDENTITY che contiene il SID del modello recuperato dal database. Questo valore viene restituito solo se viene trovata una corrispondenza.

SubFactor

RejectDetail

Puntatore a una variabile che riceve informazioni aggiuntive se un errore di acquisizione impedisce al motore di eseguire un'operazione corrispondente. Se l'acquisizione più recente è riuscita, impostare questo parametro su zero.

Authorization

Un HMAC. Vedere la sezione osservazioni.

AuthorizationSize

Dimensioni, in byte, del buffer specificato dal parametro Authorization .

Valore restituito

WINBIO_E_INVALID_KEY_IDENTIFIER deve essere restituito nel caso in cui la chiave non possa essere usata per qualsiasi motivo. Quando viene restituito WINBIO_E_INVALID_KEY_IDENTIFIER , verrà eseguito di nuovo il provisioning del sensore e del TPM.

Commenti

Il buffer di autorizzazione contiene i SHA256_HMAC seguenti:

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

  • Chiave

    Key è la chiave HMAC passata da EngineAdapterCreateKey e identificata dal parametro KeyIdentifier .

  • Nonce

    Nonce è il parametro Nonce.

  • 0xffffffe2

    Intero senza segno a 32 bit in formato big-endian.

  • AccountSid

    SID dell'account dell'utente a cui fa riferimento il parametro Identity. I byte SID possono essere ottenuti dalla struttura WINBIO_IDENTITY .

Esempio

Ecco un'implementazione pseudocodice del calcolo HMAC SHA256:

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

Requisiti

Requisito Valore
Client minimo supportato Windows 10 [solo app desktop]
Server minimo supportato Windows Server 2016 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winbio_adapter.h (includere Winbio_adapter.h)