Dev:BiometricKit.framework

BiometricKit is the framework relating to the TouchID debuted on the iPhone 5s. The TouchID has an internal codename Mesa. It is a private framework compiled only for arm64. You can also Google "Biokit.h", and from the Gist you can find the headers for the BiometricKit.framework. (You can also dump them yourselves, it is shipped with the iPhoneOS 7.0 SDK on Xcode and of course on an iPhone 5s.)

Note that if you decide to use the BiometricKit class and the BiometricKitDelegate in your own app, the app needs the entitlements of com.apple.private.biometrickit.allow and com.apple.private.bmk.allow.

BiometricKitIdentity
BiometricKitIdentity represents the enrolled fingerprints on the device. Properties for the user-defined name and UUID are available. You can get an array of all identities with [[BiometricKit manager] identities:nil].

BiometricKitMatchInfo
A BiometricKitMatchInfo object has two properties:
 * A dictionary of details, including (presumably) the area of the enrolled fingerprint, the number of nodes on file, and whether the enrollment data have been updated just now from the latest scan.
 * An array of topology</tt>'s of class BiometricKitEnrollProgressInfo</tt>. Currently observed to contain up to 15 "topology nodes".

BiometricKitEnrollProgressInfo
A BiometricKitEnrollProgressInfo</tt> object contains presumably the actual fingerprint digital representation as BiometricKitEnrollProgressCoordinates</tt> objects in its BKEPDNewNodeCoordinates</tt> key of messageDetails</tt> dictionary.

BiometricKitEnrollProgressCoordinates
A BiometricKitEnrollProgressCoordinates</tt> object is suspected record to the x and y coordinates and the angle (probably in radians) of the a particular fingerprint distinguishing feature.

Getting scan results
- (void)biometricEventMonitor:(SBUIBiometricEventMonitor *) handleBiometricEvent:(unsigned)</tt> from SBLockScreenManager</tt> would be invoked always after the screen is on and a fingerprint is registered. One exception is when the user enters the TouchID settings under Preferences.app</tt>, where the app took control of all the callbacks, and we have to lock and unlock the screen again in order to receive messages from the aforementioned callback again.

This issue happens if you hook up to the BiometricKitXPCClient</tt>'s - (void)matchResult:(BiometricKitIdentity *)result withDictionary:(NSDictionary *)dictionary</tt>; or if you go the good old delegate way with [BiometricKit manager]</tt>. I'm still trying to figure out how to revive that, if you found any way around this please do share with everyone.