- Added realracing3-community.apk (71.57 MB) - Removed 32-bit support (armeabi-v7a) - Only includes arm64-v8a libraries - Decompiled source code included - Added README-community.md with analysis
243 lines
15 KiB
Java
243 lines
15 KiB
Java
package androidx.credentials.playservices.controllers.CreatePublicKeyCredential;
|
|
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.os.Bundle;
|
|
import android.os.CancellationSignal;
|
|
import android.os.Handler;
|
|
import android.os.Looper;
|
|
import android.os.ResultReceiver;
|
|
import android.util.Log;
|
|
import androidx.annotation.VisibleForTesting;
|
|
import androidx.credentials.CreateCredentialResponse;
|
|
import androidx.credentials.CreatePublicKeyCredentialRequest;
|
|
import androidx.credentials.CreatePublicKeyCredentialResponse;
|
|
import androidx.credentials.CredentialManagerCallback;
|
|
import androidx.credentials.exceptions.CreateCredentialException;
|
|
import androidx.credentials.exceptions.CreateCredentialUnknownException;
|
|
import androidx.credentials.exceptions.domerrors.EncodingError;
|
|
import androidx.credentials.exceptions.domerrors.UnknownError;
|
|
import androidx.credentials.exceptions.publickeycredential.CreatePublicKeyCredentialDomException;
|
|
import androidx.credentials.playservices.CredentialProviderPlayServicesImpl;
|
|
import androidx.credentials.playservices.HiddenActivity;
|
|
import androidx.credentials.playservices.controllers.CredentialProviderBaseController;
|
|
import androidx.credentials.playservices.controllers.CredentialProviderController;
|
|
import com.google.android.gms.fido.Fido;
|
|
import com.google.android.gms.fido.fido2.api.common.PublicKeyCredential;
|
|
import com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialCreationOptions;
|
|
import java.util.concurrent.Executor;
|
|
import kotlin.Unit;
|
|
import kotlin.jvm.functions.Function0;
|
|
import kotlin.jvm.functions.Function2;
|
|
import kotlin.jvm.internal.DefaultConstructorMarker;
|
|
import kotlin.jvm.internal.Intrinsics;
|
|
import org.json.JSONException;
|
|
|
|
/* loaded from: classes.dex */
|
|
public final class CredentialProviderCreatePublicKeyCredentialController extends CredentialProviderController<CreatePublicKeyCredentialRequest, PublicKeyCredentialCreationOptions, PublicKeyCredential, CreateCredentialResponse, CreateCredentialException> {
|
|
public static final Companion Companion = new Companion(null);
|
|
private static final String TAG = "CreatePublicKey";
|
|
private CredentialManagerCallback<CreateCredentialResponse, CreateCredentialException> callback;
|
|
private CancellationSignal cancellationSignal;
|
|
private final Context context;
|
|
private Executor executor;
|
|
private final CredentialProviderCreatePublicKeyCredentialController$resultReceiver$1 resultReceiver;
|
|
|
|
@VisibleForTesting(otherwise = 2)
|
|
private static /* synthetic */ void getCallback$annotations() {
|
|
}
|
|
|
|
@VisibleForTesting(otherwise = 2)
|
|
private static /* synthetic */ void getCancellationSignal$annotations() {
|
|
}
|
|
|
|
@VisibleForTesting(otherwise = 2)
|
|
private static /* synthetic */ void getExecutor$annotations() {
|
|
}
|
|
|
|
public static final CredentialProviderCreatePublicKeyCredentialController getInstance(Context context) {
|
|
return Companion.getInstance(context);
|
|
}
|
|
|
|
/* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */
|
|
/* JADX WARN: Type inference failed for: r0v2, types: [androidx.credentials.playservices.controllers.CreatePublicKeyCredential.CredentialProviderCreatePublicKeyCredentialController$resultReceiver$1] */
|
|
public CredentialProviderCreatePublicKeyCredentialController(Context context) {
|
|
super(context);
|
|
Intrinsics.checkNotNullParameter(context, "context");
|
|
this.context = context;
|
|
final Handler handler = new Handler(Looper.getMainLooper());
|
|
this.resultReceiver = new ResultReceiver(handler) { // from class: androidx.credentials.playservices.controllers.CreatePublicKeyCredential.CredentialProviderCreatePublicKeyCredentialController$resultReceiver$1
|
|
@Override // android.os.ResultReceiver
|
|
public void onReceiveResult(int i, Bundle resultData) {
|
|
Executor executor;
|
|
Executor executor2;
|
|
CredentialManagerCallback credentialManagerCallback;
|
|
CredentialManagerCallback credentialManagerCallback2;
|
|
CancellationSignal cancellationSignal;
|
|
boolean maybeReportErrorFromResultReceiver;
|
|
Intrinsics.checkNotNullParameter(resultData, "resultData");
|
|
CredentialProviderCreatePublicKeyCredentialController credentialProviderCreatePublicKeyCredentialController = CredentialProviderCreatePublicKeyCredentialController.this;
|
|
CredentialProviderCreatePublicKeyCredentialController$resultReceiver$1$onReceiveResult$1 credentialProviderCreatePublicKeyCredentialController$resultReceiver$1$onReceiveResult$1 = new CredentialProviderCreatePublicKeyCredentialController$resultReceiver$1$onReceiveResult$1(CredentialProviderBaseController.Companion);
|
|
executor = CredentialProviderCreatePublicKeyCredentialController.this.executor;
|
|
if (executor == null) {
|
|
Intrinsics.throwUninitializedPropertyAccessException("executor");
|
|
executor2 = null;
|
|
} else {
|
|
executor2 = executor;
|
|
}
|
|
credentialManagerCallback = CredentialProviderCreatePublicKeyCredentialController.this.callback;
|
|
if (credentialManagerCallback == null) {
|
|
Intrinsics.throwUninitializedPropertyAccessException("callback");
|
|
credentialManagerCallback2 = null;
|
|
} else {
|
|
credentialManagerCallback2 = credentialManagerCallback;
|
|
}
|
|
cancellationSignal = CredentialProviderCreatePublicKeyCredentialController.this.cancellationSignal;
|
|
maybeReportErrorFromResultReceiver = credentialProviderCreatePublicKeyCredentialController.maybeReportErrorFromResultReceiver(resultData, credentialProviderCreatePublicKeyCredentialController$resultReceiver$1$onReceiveResult$1, executor2, credentialManagerCallback2, cancellationSignal);
|
|
if (maybeReportErrorFromResultReceiver) {
|
|
return;
|
|
}
|
|
CredentialProviderCreatePublicKeyCredentialController.this.handleResponse$credentials_play_services_auth_release(resultData.getInt(CredentialProviderBaseController.ACTIVITY_REQUEST_CODE_TAG), i, (Intent) resultData.getParcelable(CredentialProviderBaseController.RESULT_DATA_TAG));
|
|
}
|
|
};
|
|
}
|
|
|
|
@Override // androidx.credentials.playservices.controllers.CredentialProviderController
|
|
public void invokePlayServices(CreatePublicKeyCredentialRequest request, CredentialManagerCallback<CreateCredentialResponse, CreateCredentialException> callback, Executor executor, CancellationSignal cancellationSignal) {
|
|
Intrinsics.checkNotNullParameter(request, "request");
|
|
Intrinsics.checkNotNullParameter(callback, "callback");
|
|
Intrinsics.checkNotNullParameter(executor, "executor");
|
|
this.cancellationSignal = cancellationSignal;
|
|
this.callback = callback;
|
|
this.executor = executor;
|
|
try {
|
|
PublicKeyCredentialCreationOptions convertRequestToPlayServices = convertRequestToPlayServices(request);
|
|
if (CredentialProviderPlayServicesImpl.Companion.cancellationReviewer$credentials_play_services_auth_release(cancellationSignal)) {
|
|
return;
|
|
}
|
|
Intent intent = new Intent(this.context, (Class<?>) HiddenActivity.class);
|
|
intent.putExtra(CredentialProviderBaseController.REQUEST_TAG, convertRequestToPlayServices);
|
|
generateHiddenActivityIntent(this.resultReceiver, intent, CredentialProviderBaseController.CREATE_PUBLIC_KEY_CREDENTIAL_TAG);
|
|
try {
|
|
this.context.startActivity(intent);
|
|
} catch (Exception unused) {
|
|
CredentialProviderController.cancelOrCallbackExceptionOrResult(cancellationSignal, new CredentialProviderCreatePublicKeyCredentialController$invokePlayServices$3(this));
|
|
}
|
|
} catch (JSONException e) {
|
|
CredentialProviderController.cancelOrCallbackExceptionOrResult(cancellationSignal, new CredentialProviderCreatePublicKeyCredentialController$invokePlayServices$1(this, e));
|
|
} catch (Throwable th) {
|
|
CredentialProviderController.cancelOrCallbackExceptionOrResult(cancellationSignal, new CredentialProviderCreatePublicKeyCredentialController$invokePlayServices$2(this, th));
|
|
}
|
|
}
|
|
|
|
public final void handleResponse$credentials_play_services_auth_release(int i, int i2, Intent intent) {
|
|
CredentialProviderBaseController.Companion companion = CredentialProviderBaseController.Companion;
|
|
if (i != companion.getCONTROLLER_REQUEST_CODE$credentials_play_services_auth_release()) {
|
|
Log.w(TAG, "Returned request code " + companion.getCONTROLLER_REQUEST_CODE$credentials_play_services_auth_release() + " does not match what was given " + i);
|
|
return;
|
|
}
|
|
if (CredentialProviderController.maybeReportErrorResultCodeCreate(i2, new Function2() { // from class: androidx.credentials.playservices.controllers.CreatePublicKeyCredential.CredentialProviderCreatePublicKeyCredentialController$handleResponse$1
|
|
@Override // kotlin.jvm.functions.Function2
|
|
public /* bridge */ /* synthetic */ Object invoke(Object obj, Object obj2) {
|
|
invoke((CancellationSignal) obj, (Function0) obj2);
|
|
return Unit.INSTANCE;
|
|
}
|
|
|
|
public final void invoke(CancellationSignal cancellationSignal, Function0 f) {
|
|
Intrinsics.checkNotNullParameter(f, "f");
|
|
CredentialProviderController.Companion companion2 = CredentialProviderController.Companion;
|
|
CredentialProviderController.cancelOrCallbackExceptionOrResult(cancellationSignal, f);
|
|
}
|
|
}, new CredentialProviderCreatePublicKeyCredentialController$handleResponse$2(this), this.cancellationSignal)) {
|
|
return;
|
|
}
|
|
Executor executor = null;
|
|
byte[] byteArrayExtra = intent != null ? intent.getByteArrayExtra(Fido.FIDO2_KEY_CREDENTIAL_EXTRA) : null;
|
|
if (byteArrayExtra == null) {
|
|
if (CredentialProviderPlayServicesImpl.Companion.cancellationReviewer$credentials_play_services_auth_release(this.cancellationSignal)) {
|
|
return;
|
|
}
|
|
Executor executor2 = this.executor;
|
|
if (executor2 == null) {
|
|
Intrinsics.throwUninitializedPropertyAccessException("executor");
|
|
} else {
|
|
executor = executor2;
|
|
}
|
|
executor.execute(new Runnable() { // from class: androidx.credentials.playservices.controllers.CreatePublicKeyCredential.CredentialProviderCreatePublicKeyCredentialController$$ExternalSyntheticLambda0
|
|
@Override // java.lang.Runnable
|
|
public final void run() {
|
|
CredentialProviderCreatePublicKeyCredentialController.handleResponse$lambda$0(CredentialProviderCreatePublicKeyCredentialController.this);
|
|
}
|
|
});
|
|
return;
|
|
}
|
|
PublicKeyCredential deserializeFromBytes = PublicKeyCredential.deserializeFromBytes(byteArrayExtra);
|
|
Intrinsics.checkNotNullExpressionValue(deserializeFromBytes, "deserializeFromBytes(...)");
|
|
CreateCredentialException publicKeyCredentialResponseContainsError = PublicKeyCredentialControllerUtility.Companion.publicKeyCredentialResponseContainsError(deserializeFromBytes);
|
|
if (publicKeyCredentialResponseContainsError != null) {
|
|
CredentialProviderController.cancelOrCallbackExceptionOrResult(this.cancellationSignal, new CredentialProviderCreatePublicKeyCredentialController$handleResponse$4(this, publicKeyCredentialResponseContainsError));
|
|
return;
|
|
}
|
|
try {
|
|
CredentialProviderController.cancelOrCallbackExceptionOrResult(this.cancellationSignal, new CredentialProviderCreatePublicKeyCredentialController$handleResponse$5(this, convertResponseToCredentialManager(deserializeFromBytes)));
|
|
} catch (JSONException e) {
|
|
CredentialProviderController.cancelOrCallbackExceptionOrResult(this.cancellationSignal, new CredentialProviderCreatePublicKeyCredentialController$handleResponse$6(this, e));
|
|
} catch (Throwable th) {
|
|
CredentialProviderController.cancelOrCallbackExceptionOrResult(this.cancellationSignal, new CredentialProviderCreatePublicKeyCredentialController$handleResponse$7(this, th));
|
|
}
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: private */
|
|
public static final void handleResponse$lambda$0(CredentialProviderCreatePublicKeyCredentialController credentialProviderCreatePublicKeyCredentialController) {
|
|
CredentialManagerCallback<CreateCredentialResponse, CreateCredentialException> credentialManagerCallback = credentialProviderCreatePublicKeyCredentialController.callback;
|
|
if (credentialManagerCallback == null) {
|
|
Intrinsics.throwUninitializedPropertyAccessException("callback");
|
|
credentialManagerCallback = null;
|
|
}
|
|
credentialManagerCallback.onError(new CreatePublicKeyCredentialDomException(new UnknownError(), "Upon handling create public key credential response, fido module giving null bytes indicating internal error"));
|
|
}
|
|
|
|
@Override // androidx.credentials.playservices.controllers.CredentialProviderController
|
|
@VisibleForTesting(otherwise = 4)
|
|
public PublicKeyCredentialCreationOptions convertRequestToPlayServices(CreatePublicKeyCredentialRequest request) {
|
|
Intrinsics.checkNotNullParameter(request, "request");
|
|
return PublicKeyCredentialControllerUtility.Companion.convert(request, this.context);
|
|
}
|
|
|
|
@Override // androidx.credentials.playservices.controllers.CredentialProviderController
|
|
@VisibleForTesting(otherwise = 4)
|
|
public CreateCredentialResponse convertResponseToCredentialManager(PublicKeyCredential response) {
|
|
Intrinsics.checkNotNullParameter(response, "response");
|
|
try {
|
|
String json = response.toJson();
|
|
Intrinsics.checkNotNullExpressionValue(json, "toJson(...)");
|
|
return new CreatePublicKeyCredentialResponse(json);
|
|
} catch (Throwable th) {
|
|
throw new CreateCredentialUnknownException("The PublicKeyCredential response json had an unexpected exception when parsing: " + th.getMessage());
|
|
}
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: private */
|
|
public final CreatePublicKeyCredentialDomException JSONExceptionToPKCError(JSONException jSONException) {
|
|
String message = jSONException.getMessage();
|
|
if (message != null && message.length() > 0) {
|
|
return new CreatePublicKeyCredentialDomException(new EncodingError(), message);
|
|
}
|
|
return new CreatePublicKeyCredentialDomException(new EncodingError(), "Unknown error");
|
|
}
|
|
|
|
public static final class Companion {
|
|
public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) {
|
|
this();
|
|
}
|
|
|
|
private Companion() {
|
|
}
|
|
|
|
public final CredentialProviderCreatePublicKeyCredentialController getInstance(Context context) {
|
|
Intrinsics.checkNotNullParameter(context, "context");
|
|
return new CredentialProviderCreatePublicKeyCredentialController(context);
|
|
}
|
|
}
|
|
}
|