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

Commit 406f067b authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "Allow credstore to call into...

Merge "Allow credstore to call into KeyAttestationApplicationIdProviderService" am: 715e7541 am: 11e5071f

Change-Id: I63f2cdcd2240b842614093761390bad866ef091b
parents a988f06d 11e5071f
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -98,6 +98,12 @@ public class Process {
     */
    public static final int KEYSTORE_UID = 1017;

    /**
     * Defines the UID/GID for credstore.
     * @hide
     */
    public static final int CREDSTORE_UID = 1076;

    /**
     * Defines the UID/GID for the NFC service process.
     * @hide
+8 −6
Original line number Diff line number Diff line
@@ -24,16 +24,16 @@ import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Binder;
import android.os.RemoteException;
import android.os.UserHandle;
import android.security.keymaster.KeyAttestationPackageInfo;
import android.security.keymaster.KeyAttestationApplicationId;
import android.security.keymaster.IKeyAttestationApplicationIdProvider;
import android.security.keymaster.KeyAttestationApplicationId;
import android.security.keymaster.KeyAttestationPackageInfo;

/**
 * @hide
 * The KeyAttestationApplicationIdProviderService provides information describing the possible
 * applications identified by a UID. Due to UID sharing, this KeyAttestationApplicationId can
 * comprise information about multiple packages. The Information is used by keystore to describe
 * the initiating application of a key attestation procedure.
 * comprise information about multiple packages. The Information is used by keystore and credstore
 * to describe the initiating application of a key attestation procedure.
 */
public class KeyAttestationApplicationIdProviderService
        extends IKeyAttestationApplicationIdProvider.Stub {
@@ -46,8 +46,10 @@ public class KeyAttestationApplicationIdProviderService

    public KeyAttestationApplicationId getKeyAttestationApplicationId(int uid)
            throws RemoteException {
        if (Binder.getCallingUid() != android.os.Process.KEYSTORE_UID) {
            throw new SecurityException("This service can only be used by Keystore");
        int callingUid = Binder.getCallingUid();
        if (callingUid != android.os.Process.KEYSTORE_UID
                && callingUid != android.os.Process.CREDSTORE_UID) {
            throw new SecurityException("This service can only be used by Keystore or Credstore");
        }
        KeyAttestationPackageInfo[] keyAttestationPackageInfos = null;
        final long token = Binder.clearCallingIdentity();