title: Understanding Android Fingerprint API authenticate() in depth
body: <p>I'm working on Android FingerPrint native API's for couple of days and there are two things that I'm confused with. The documentation has the examples but doesn't explain <strong>why</strong> we need to work this way, so please, any security Guru here?</p>
  
  <p>I want to understand in depth the <code>authenticate()</code> function of the API's, or to be more specific to understand two of the parameters it takes : <code>CryptoObject</code> and <code>Handler</code>. It is working "<em>perfect</em>" at my POV when passing <code>null</code> to both of these parameters. So there is actually two questions:
  Why we need to use CryptoObject and/or Handler while calling to authenticate (under what circumstances we want to encode and use not main handler)? Maybe some examples (even not code - but use cases). Thanks in advance. Love this site.</p>