Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 84a2b102 authored by Jim Miller's avatar Jim Miller Committed by Android Git Automerger
Browse files

am 64cd70d5: am b62dc82b: Add javax.crypto.Mac as a supported CryptoObject to Fingerprint

* commit '64cd70d5':
  Add javax.crypto.Mac as a supported CryptoObject to Fingerprint
parents 03f8542e 64cd70d5
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -13918,7 +13918,9 @@ package android.hardware.fingerprint {
  public static class FingerprintManager.CryptoObject {
    ctor public FingerprintManager.CryptoObject(java.security.Signature);
    ctor public FingerprintManager.CryptoObject(javax.crypto.Cipher);
    ctor public FingerprintManager.CryptoObject(javax.crypto.Mac);
    method public javax.crypto.Cipher getCipher();
    method public javax.crypto.Mac getMac();
    method public java.security.Signature getSignature();
  }
+2 −0
Original line number Diff line number Diff line
@@ -14217,7 +14217,9 @@ package android.hardware.fingerprint {
  public static class FingerprintManager.CryptoObject {
    ctor public FingerprintManager.CryptoObject(java.security.Signature);
    ctor public FingerprintManager.CryptoObject(javax.crypto.Cipher);
    ctor public FingerprintManager.CryptoObject(javax.crypto.Mac);
    method public javax.crypto.Cipher getCipher();
    method public javax.crypto.Mac getMac();
    method public java.security.Signature getSignature();
  }
+21 −3
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ import java.util.HashMap;
import java.util.List;

import javax.crypto.Cipher;
import javax.crypto.Mac;

/**
 * A class that coordinates access to the fingerprint hardware.
@@ -195,18 +196,26 @@ public class FingerprintManager {

    /**
     * A wrapper class for the crypto objects supported by FingerprintManager. Currently the
     * framework supports {@link Signature} and {@link Cipher} objects.
     * framework supports {@link Signature}, {@link Cipher} and {@link Mac} objects.
     */
    public static class CryptoObject {

        public CryptoObject(Signature signature) {
        public CryptoObject(@NonNull Signature signature) {
            mSignature = signature;
            mCipher = null;
            mMac = null;
        }

        public CryptoObject(Cipher cipher) {
        public CryptoObject(@NonNull Cipher cipher) {
            mCipher = cipher;
            mSignature = null;
            mMac = null;
        }

        public CryptoObject(@NonNull Mac mac) {
            mMac = mac;
            mCipher = null;
            mSignature = null;
        }

        /**
@@ -221,6 +230,12 @@ public class FingerprintManager {
         */
        public Cipher getCipher() { return mCipher; }

        /**
         * Get {@link Mac} object.
         * @return {@link Mac} object or null if this doesn't contain one.
         */
        public Mac getMac() { return mMac; }

        /**
         * @hide
         * @return the opId associated with this object or 0 if none
@@ -230,12 +245,15 @@ public class FingerprintManager {
                return AndroidKeyStoreProvider.getKeyStoreOperationHandle(mSignature);
            } else if (mCipher != null) {
                return AndroidKeyStoreProvider.getKeyStoreOperationHandle(mCipher);
            } else if (mMac != null) {
                return AndroidKeyStoreProvider.getKeyStoreOperationHandle(mMac);
            }
            return 0;
        }

        private final Signature mSignature;
        private final Cipher mCipher;
        private final Mac mMac;
    };

    /**