RxFingerprint | Android Fingerprint authentication and encryption | Authentication library

 by   Mauin Java Version: v3.0.0-RC-1 License: Apache-2.0

kandi X-RAY | RxFingerprint Summary

kandi X-RAY | RxFingerprint Summary

RxFingerprint is a Java library typically used in Security, Authentication applications. RxFingerprint has no bugs, it has no vulnerabilities, it has build file available, it has a Permissive License and it has low support. You can download it from GitHub.

RxFingerprint wraps the Android Fingerprint APIs (introduced in Android Marshmallow) and makes it easy to:. Learn more about the Android Fingerprint APIs at developer.android.com. This library has a minSdkVersion of 15, but will only really work on API level 23. Below that it will provide no functionality due to the missing APIs.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              RxFingerprint has a low active ecosystem.
              It has 376 star(s) with 83 fork(s). There are 19 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 24 open issues and 33 have been closed. On average issues are closed in 88 days. There are 5 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of RxFingerprint is v3.0.0-RC-1

            kandi-Quality Quality

              RxFingerprint has 0 bugs and 0 code smells.

            kandi-Security Security

              RxFingerprint has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              RxFingerprint code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              RxFingerprint is licensed under the Apache-2.0 License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              RxFingerprint releases are available to install and integrate.
              Build file is available. You can build the component from source.
              Installation instructions are not available. Examples and code snippets are available.
              RxFingerprint saves you 1060 person hours of effort in developing the same functionality from scratch.
              It has 2404 lines of code, 234 functions and 53 files.
              It has medium code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi has reviewed RxFingerprint and discovered the below as its top functions. This is intended to give you an instant insight into RxFingerprint implemented functionality, and help decide if they suit your requirements.
            • Handles authentication successful
            • Maps the given exception to an invalidated key
            • Convert a char array to a byte array
            • Checks if the given key exists
            • Handles the encryption of the given value
            • Convert the bytes to a char array
            • Connects to the emitter
            • Create authentication callback
            • Initializes a crypto object
            • Gets the cipher for decryption
            • Encrypts the fingerprint
            • Initialize a crypto object for encryption
            • Gets the cipher for encryption
            • Returns a cipher for encryption
            • Emits the encrypted string
            • Initializes the view
            • Creates button for decryption
            • Authenticates the fingerprint
            • Writes the value of the FingerprintEncryptionResult to the device
            • Decrypt the encrypted data
            • Initializes a crypto object for decrypting data
            Get all kandi verified functions for this library.

            RxFingerprint Key Features

            No Key Features are available at this moment for RxFingerprint.

            RxFingerprint Examples and Code Snippets

            No Code Snippets are available at this moment for RxFingerprint.

            Community Discussions

            QUESTION

            Android - how to get Unique key from Finger-Print Authentication?
            Asked 2019-Oct-14 at 13:32

            I'm want to encrypt and decrypt files from SD-card using AES. In order to do it we always need a seed (usually a string which is inserted by user as a password):

            ...

            ANSWER

            Answered 2019-Oct-14 at 13:32

            Updated 2019-10-14

            TL;DR

            No, you can't access the fingerprint. You can only get a "thumbs up" or "thumbs down" from the Biometric API. This is intentional by design.

            You can, however, leverage the Android Keystore for hardware-backed cryptographic operations, and require user re-authentication to release the key. This pretty much does what you want.

            The long answer

            Generating a password-like seed from a fingerprint is impossible. As James K Polk commented, fingerprints vary when scanned, and they are never legibly stored directly on the device.

            When a fingerprint is being enrolled, its image is temporarily stored on secure device memory, where it is processed to generate validation data and a fingerprint template (these are all inaccessible to the Android OS). The raw image is then discarded. When a finger is scanned, the image is compared to the validation data generated before, and if it matches to a certain degree of certainty, a user is deemed as authenticated.

            Biometric operations are conducted inside of Android's Trusted Execution Environment (TEE). This is a completely isolated OS running either on a protected part of the CPU on a separate coprocessor on modern devices (SE).

            It's a virtually untouchable environment with a restricted interface and hardware barriers put in place to protect against tampering with the chip and forced extraction of biometric validation data and cryptographic keys.

            Solution

            Going back to your original question, no, you can't get any unique finger identification. This would be inherently insecure, as any application could read the secret!

            What you can do, is leverage Android's hardware-backed Keystore and require device-level authentication to release hardware-backed cryptographic keys (setUserAuthenticationRequired(true)). This means generating a random secret which is securely saved to the Keystore, requiring a finger swipe to release the key to userspace. I can't stress the word hardware-backed enough.

            You have no control over which finger is can be used and whether vendor-specific implementations allow bypassing of biometrics with the device unlock pattern, for example.

            Android Keystore

            The Keystore's purpose is to protect cryptographic keys. Keys can only be retrieved by the application that owns them once sufficient requirements have been met, such as recent or immediate biometric authentication.

            Keys can be protected against malicious extraction, and on modern devices, hardware bound, meaning they never leave the secure hardware (TEE/SE), and therefore are never exposed to your Android application. Any cryptographic operations, such as AES encryption/decryption, are securely executed outside of userspace (on secure hardware), and enrolling new fingerprints/changing the lock pattern will permanently invalidate the key. In this mode of operation, the Keystore entry merely serves as an "interface" to conduct crypto operations inside of the secure hardware, the true secret is never exposed to your application.

            In summary

            There is a Fingerprint/Biometric API, which is there purely for convenience, allowing you to quickly confirm an action by requiring the user to authenticate. It boils down to a "yes"/"no" answer from the TEE/SE, and vary greatly depending on the phone manufacturer!

            The Keystore is a hardware-backed vault for cryptographic keys. Devices running API-level 28+ also have access to Strongbox Keymaster, if the device hardware supports it, which restricts cryptographic operations to a dedicated security CPU with more secure storage.

            These features are device/vendor specific! And could be compromised/insecure! Warn users before enabling fingerprint authentication if you aren't sure about the device. The only truly secure encryption method is prompting the user every time for the decrypt key (in this case, the mind is the hardware-backed store). Having it stored anywhere, even in live memory, is always a calculated risk.

            Doing cryptography right is extremely difficult. I highly advise that you research and try to understand the basics, and what additional security Android has to offer, before attempting to use this in production.

            Source https://stackoverflow.com/questions/44520343

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install RxFingerprint

            You can download it from GitHub.
            You can use RxFingerprint like any standard Java library. Please include the the jar files in your classpath. You can also use any IDE and you can run and debug the RxFingerprint component as you would do with any other Java program. Best practice is to use a build tool that supports dependency management such as Maven or Gradle. For Maven installation, please refer maven.apache.org. For Gradle installation, please refer gradle.org .

            Support

            For bugs, questions and discussions please use the Github Issues.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/Mauin/RxFingerprint.git

          • CLI

            gh repo clone Mauin/RxFingerprint

          • sshUrl

            git@github.com:Mauin/RxFingerprint.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Explore Related Topics

            Consider Popular Authentication Libraries

            supabase

            by supabase

            iosched

            by google

            monica

            by monicahq

            authelia

            by authelia

            hydra

            by ory

            Try Top Libraries by Mauin

            reject

            by MauinGroovy

            ReactiveAwareness

            by MauinJava

            servant

            by MauinJava

            DevFestDatabinding

            by MauinJava

            Fahrplan30c3

            by MauinJava