gatekeeper_device Yapı Referansı
#include <
gatekeeper.h
>
Veri Alanları |
|
hw_device_t | yaygın |
int(* | enroll )(const struct gatekeeper_device *dev, uint32_t uid, const uint8_t *current_password_handle, uint32_t current_password_handle_length, const uint8_t *current_password, uint32_t current_password_length, const uint8_t *desired_password, uint32_t desired_password_length, uint8_t **enrolled_password_handle, uint32_t *enrolled_password_handle_length) |
int(* | verify )(const struct gatekeeper_device *dev, uint32_t uid, uint64_t challenge, const uint8_t *enrolled_password_handle, uint32_t enrolled_password_handle_length, const uint8_t *provided_password, uint32_t provided_password_length, uint8_t **auth_token, uint32_t *auth_token_length, bool *request_reenroll) |
int(* | delete_user )(const struct gatekeeper_device *dev, uint32_t uid) |
int(* | delete_all_users )(const struct gatekeeper_device *dev) |
Ayrıntılı Açıklama
Tanımı, gatekeeper.h dosyasının 41. satırı
Alan Belgeleri
hw_device_t common |
Kapı görevlisi cihazının yaygın yöntemleri. Yukarıda belirtildiği gibi, bu keymaster_device öğesinin ilk üyesi olmalıdır.
Tanımı, gatekeeper.h dosyasının 46. satırı
int(* delete_all_users)(const struct gatekeeper_device *dev) |
Tanımı, gatekeeper.h dosyasının 173 satırı
int(* delete_user)(const struct gatekeeper_device *dev, uint32_t uid) |
Tanımı, gatekeeper.h dosyasının 159 satırı
int(* enroll)(const struct gatekeeper_device *dev, uint32_t uid, const uint8_t *current_password_handle, uint32_t current_password_handle_length, const uint8_t *current_password, uint32_t current_password_length, const uint8_t *desired_password, uint32_t desired_password_length, uint8_t **enrolled_password_handle, uint32_t *enrolled_password_handle_length) |
Kullanıcı tarafından seçilen bir PIN'den veya şifreden türetilmesi gereken desired_password parametresini, yalnızca kimlik doğrulama faktörü verilerini kaydetmek için kullanılan kimlik doğrulama faktörü özel anahtarıyla kaydeder.
Zaten kayıtlı bir şifre varsa current_password_handle parametresinde sağlanmalıdır. Bu parametre, current_password parametresindeki mevcut şifreyle birlikte sağlanmalıdır. Bu şifre, current_password_handle ile doğrulanmalıdır.
Parametreler:
- dev: gatekeeper_open çağrıları aracılığıyla edinilen, gatekeeper_device işaretçisi
- uid: Android kullanıcı tanımlayıcısı
- current_password_handle: Kullanıcının değiştirmek istediği, şu anda kayıtlı şifre herkese açık kullanıcı adı. Şu anda kayıtlı bir şifre yoksa null olabilir.
- current_password_handle_length: current_password_handle tarafından işaretlenen arabelleğin bayt cinsinden uzunluğu. current_password_handle NULL ise 0 olmalıdır.
- current_password: Kullanıcının mevcut şifresi düz metin olarak. Gönderilirse current_password_handle ile doğrulanmalıdır.
- current_password_length: current_password tarafından işaretlenen arabelleğin bayt cinsinden boyutu. current_password NULL ise 0 olmalıdır.
- desired_password: Kullanıcının kaydetmek istediği yeni şifre (düz metin olarak). NULL olamaz.
- desired_password_length: desired_password tarafından işaretlenen arabelleğin bayt cinsinden uzunluğu.
- enrolled_password_handle: İşlem başarılı olursa desired_password parametresinde sağlanan şifreye atıfta bulunan yeni şifre işleyicisi içeren bir arabellek ayrılır. Bu arabellek, sonraki kayıt veya doğrulama çağrılarında kullanılabilir. Arayan, delete[] çağrısı aracılığıyla bu arabelleğin ayrılmasından sorumludur.
- enrolled_password_handle_length: Bu işlev tarafından ayrılan ve *enrolled_password_handle_length tarafından işaretlenen arabelleğin bayt cinsinden uzunluğuna işaretçi.
İadeler:
- Başarılı olduğunda 0
- Başarısızlık durumunda 0'dan küçük bir hata kodu veya
- Çağrı, T milisaniye geçene kadar yeniden denenmemeliyse T > 0 olan bir zaman aşımı değeri.
Hata oluştuğunda enrolled_password_handle atanmaz.
Tanım, gatekeeper.h dosyasının 91. satırı içindedir.
int(* verify)(const struct gatekeeper_device *dev, uint32_t uid, uint64_t challenge, const uint8_t *enrolled_password_handle, uint32_t enrolled_password_handle_length, const uint8_t *provided_password, uint32_t provided_password_length, uint8_t **auth_token, uint32_t *auth_token_length, bool *request_reenroll) |
provided_password parametresinin enrolled_password_handle ile eşleşip eşleşmediğini doğrular.
Bu modülün uygulamaları, kimlik doğrulamanın yakın zamanda yapıldığını doğrulamak için bu çağrının sonucunu saklayabilir.
Başarılı olduğunda, doğrulama jetonunun adresini auth_token alanına yazar. Bu adres, diğer güvenilir hizmetlere şifre doğrulamasını onaylamak için kullanılabilir. İstemciler bu değer için NULL gönderebilir.
Parametreler:
- dev: gatekeeper_open çağrıları aracılığıyla edinilen, gatekeeper_device işaretçisi
- uid: Android kullanıcı tanımlayıcısı
- challenge: Kimlik doğrulama için isteğe bağlı bir istek veya 0. Ayrı bir kimlik doğrulayıcı şifre doğrulaması istediğinde veya işleme özgü şifre kimlik doğrulaması için kullanılır.
- enrolled_password_handle: Kullanıcının doğrulamak istediği, şu anda kayıtlı olan şifre herkese açık kullanıcı adı.
- enrolled_password_handle_length: enrolled_password_handle tarafından işaretlenen arabelleğin bayt cinsinden uzunluğu
- provided_password: enrolled_password_handle ile doğrulanacak düz metin şifre
- provided_password_length: provided_password tarafından işaretlenen arabelleğin bayt cinsinden uzunluğu
- auth_token: Başarılı olduğunda, bu doğrulamadan elde edilen kimlik doğrulama jetonunu içeren bir arabellek *auth_token parametresine atanır. Arayan, delete[] çağrısı yoluyla bu belleğin ayrılmasından sorumludur.
- auth_token_length: İşlem başarılı olursa *auth_token parametresine atanan kimlik doğrulama jetonunun bayt cinsinden uzunluğu *auth_token_length parametresine atanır.
- request_reenroll: Üst katmanlardan, doğrulanmış şifreyi sürüm değişikliği nedeniyle yeniden kaydettirme isteği. Doğrulama başarısız olursa ayarlanmamıştır.
İadeler:
- Başarılı olduğunda 0
- Başarısızlık durumunda 0'dan küçük bir hata kodu veya
- Çağrı, T milisaniye geçene kadar yeniden denenmemeliyse T > 0 olan bir zaman aşımı değeri. Hata oluştuğunda yetkilendirme jetonu ayrılmaz.
gatekeeper.h dosyasının 141. satırı için tanımı
Bu yapının dokümanları aşağıdaki dosyadan oluşturulmuştur:
- hardware/libhardware/include/hardware/ gatekeeper.h