Keystore、key、CryptoObject などを使用する必要があるのはなぜですか? 単純に、指紋マネージャーにユーザーの認証を依頼すると、単純にステータス (成功/失敗) を返すことができます。
その必要はありません。CryptoObject
値を渡すだけで、なしで指紋認証を行うことができnull
ます。その後、キーストアやその他のものをいじる必要はありません。
指紋認証コンテキストでの の唯一の用途は、CryptoObject
前回ユーザーが指紋で認証されてから新しい指紋が追加されたかどうかを知ることです。
認証ごとに毎回新しいキーを生成する必要がありますか?
新しい指紋が追加された場合は、ユーザーの身元を確認するためにパスワードを要求し、新しい鍵を生成する必要があります (新しい指紋が追加されたときに鍵が無効になったため)。
繰り返しますが、これらをいじる必要はありません。null
CryptoObject
視点の問題
指紋認証には CryptoObject は必要ありません。実際には、まったく逆です。
Android で暗号化操作を行う場合、 Cipher、Signature、Mac (およびその他)のいずれかのオブジェクトを使用できます。これら 3 つのうちの 1 つを使用して、 CryptoObjectを構築できます。
これらのオブジェクトのキーを生成するとき、ユーザーが以前に指紋を介して認証された場合にのみsetUserAuthenticationRequired(boolean)
有効なキーを取得することを管理するという名前のメソッドがあります。
したがって、たとえばクライアント/サーバー通信の場合、クライアントがキーを使用できる場合、それは彼が指紋を介して認証され、彼の身元がわかっていることを意味します。
そうは言っても、私のライブラリをチェックすると、全体がずっと簡単になります:
https://github.com/OmarAflak/Fingerprint