fungsi panggilan balik PIBIO_ENGINE_IDENTIFY_FEATURE_SET_SECURE_FN (winbio_adapter.h)
Dipanggil oleh Windows Biometric Framework untuk membangun templat dari kumpulan fitur saat ini dan menemukan templat yang cocok dalam database. Jika kecocokan dapat ditemukan, adaptor mesin harus mengisi bidang Identitas, SubFaktor, Otorisasi, dan OtorisasiSize .
Sintaks
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
Pointer ke struktur WINBIO_PIPELINE yang terkait dengan unit biometrik yang melakukan operasi.
Nonce
Penunjuk ke buffer yang berisi nonce.
NonceSize
Ukuran, dalam byte, dari buffer yang ditentukan oleh parameter Nonce .
KeyIdentifier
Penunjuk ke buffer yang berisi pengidentifikasi untuk kunci dari panggilan sebelumnya ke EngineAdapterCreateKey
KeyIdentifierSize
Ukuran, dalam byte, dari buffer yang ditentukan oleh parameter KeyIdentifier .
Identity
Penunjuk ke struktur WINBIO_IDENTITY yang berisi SID templat yang dipulihkan dari database. Nilai ini dikembalikan hanya jika kecocokan ditemukan.
SubFactor
RejectDetail
Penunjuk ke variabel yang menerima informasi tambahan jika kegagalan penangkapan mencegah mesin melakukan operasi yang cocok. Jika pengambilan terbaru berhasil, atur parameter ini ke nol.
Authorization
Sebuah HMAC. Lihat bagian keterangan.
AuthorizationSize
Ukuran, dalam byte, dari buffer yang ditentukan oleh parameter Otorisasi .
Nilai kembali
WINBIO_E_INVALID_KEY_IDENTIFIER harus dikembalikan dalam kasus di mana kunci tidak dapat digunakan karena alasan apa pun. Ketika WINBIO_E_INVALID_KEY_IDENTIFIER dikembalikan, sensor dan TPM akan diprovisikan kembali.
Keterangan
Buffer Otorisasi berisi SHA256_HMAC berikut:
SHA256_HMAC(Key, SHA256(Nonce || 0xffffffe2 || SHA256(AccountSid)))
-
Kunci
Kunci adalah kunci HMAC yang diteruskan oleh EngineAdapterCreateKey, dan diidentifikasi oleh parameter KeyIdentifier .
-
Nonce
Nonce adalah parameter Nonce.
-
0xffffffe2
Bilangan bulat yang tidak ditandatangani 32-bit dalam format big-endian.
-
AccountSid
SID akun pengguna yang dirujuk oleh parameter Identitas. Byte SID dapat diperoleh dari struktur WINBIO_IDENTITY .
Contoh
Berikut adalah implementasi pseudocode dari perhitungan SHA256 HMAC:
// 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);
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 10 [khusus aplikasi desktop] |
Server minimum yang didukung | Windows Server 2016 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | winbio_adapter.h (termasuk Winbio_adapter.h) |