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

Commit 255b41f1 authored by Alex Johnston's avatar Alex Johnston Committed by Android (Google) Code Review
Browse files

Merge "hasKeyPair callable by the cred mng app" into sc-dev

parents 932239de 98bb355a
Loading
Loading
Loading
Loading
+13 −4
Original line number Original line Diff line number Diff line
@@ -6169,13 +6169,22 @@ public class DevicePolicyManager {
    // STOPSHIP(b/174298501): clarify the expected return value following generateKeyPair call.
    // STOPSHIP(b/174298501): clarify the expected return value following generateKeyPair call.
    /**
    /**
     * Called by a device or profile owner, or delegated certificate installer, to query whether a
     * This API can be called by the following to query whether a certificate and private key are
     * certificate and private key are installed under a given alias.
     * installed under a given alias:
     * <ul>
     *    <li>Device owner</li>
     *    <li>Profile owner</li>
     *    <li>Delegated certificate installer</li>
     *    <li>Credential management app</li>
     * </ul>
     *
     * If called by the credential management app, the alias must exist in the credential
     * management app's {@link android.security.AppUriAuthenticationPolicy}.
     *
     *
     * @param alias The alias under which the key pair is installed.
     * @param alias The alias under which the key pair is installed.
     * @return {@code true} if a key pair with this alias exists, {@code false} otherwise.
     * @return {@code true} if a key pair with this alias exists, {@code false} otherwise.
     * @throws SecurityException if the caller is not a device or profile owner or a delegated
     * @throws SecurityException if the caller is not a device or profile owner, a delegated
     *         certificate installer.
     *         certificate installer or the credential management app.
     * @see #setDelegatedScopes
     * @see #setDelegatedScopes
     * @see #DELEGATION_CERT_INSTALL
     * @see #DELEGATION_CERT_INSTALL
     */
     */
+2 −1
Original line number Original line Diff line number Diff line
@@ -5482,7 +5482,8 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
    @Override
    @Override
    public boolean hasKeyPair(String callerPackage, String alias) {
    public boolean hasKeyPair(String callerPackage, String alias) {
        final CallerIdentity caller = getCallerIdentity(callerPackage);
        final CallerIdentity caller = getCallerIdentity(callerPackage);
        Preconditions.checkCallAuthorization(canManageCertificates(caller));
        Preconditions.checkCallAuthorization(canManageCertificates(caller)
                || isCredentialManagementApp(caller, alias));
        return mInjector.binderWithCleanCallingIdentity(() -> {
        return mInjector.binderWithCleanCallingIdentity(() -> {
            try (KeyChainConnection keyChainConnection =
            try (KeyChainConnection keyChainConnection =