Files
rr3-apk/decompiled/sources/androidx/credentials/webauthn/AuthenticatorAttestationResponse.java
Daniel Elliott f9d20bb3fc Add decompiled APK source code (JADX)
- 28,932 files
- Full Java source code
- Smali files
- Resources

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-18 14:52:23 -08:00

159 lines
6.7 KiB
Java

package androidx.credentials.webauthn;
import androidx.annotation.RestrictTo;
import com.google.android.gms.fido.u2f.api.common.ClientData;
import com.tapjoy.TapjoyConstants;
import java.security.MessageDigest;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import kotlin.collections.ArraysKt___ArraysJvmKt;
import kotlin.collections.CollectionsKt__CollectionsKt;
import kotlin.collections.MapsKt__MapsKt;
import kotlin.jvm.internal.DefaultConstructorMarker;
import kotlin.jvm.internal.Intrinsics;
import kotlin.text.Charsets;
import org.json.JSONArray;
import org.json.JSONObject;
@RestrictTo({RestrictTo.Scope.LIBRARY})
/* loaded from: classes.dex */
public final class AuthenticatorAttestationResponse implements AuthenticatorResponse {
private byte[] attestationObject;
private final boolean be;
private final boolean bs;
private final byte[] clientDataHash;
private JSONObject clientJson;
private final byte[] credentialId;
private final byte[] credentialPublicKey;
private final String origin;
private final String packageName;
private final PublicKeyCredentialCreationOptions requestOptions;
private final boolean up;
private final boolean uv;
public final byte[] getAttestationObject() {
return this.attestationObject;
}
@Override // androidx.credentials.webauthn.AuthenticatorResponse
public JSONObject getClientJson() {
return this.clientJson;
}
public final void setAttestationObject(byte[] bArr) {
Intrinsics.checkNotNullParameter(bArr, "<set-?>");
this.attestationObject = bArr;
}
@Override // androidx.credentials.webauthn.AuthenticatorResponse
public void setClientJson(JSONObject jSONObject) {
Intrinsics.checkNotNullParameter(jSONObject, "<set-?>");
this.clientJson = jSONObject;
}
public AuthenticatorAttestationResponse(PublicKeyCredentialCreationOptions requestOptions, byte[] credentialId, byte[] credentialPublicKey, String origin, boolean z, boolean z2, boolean z3, boolean z4, String str, byte[] bArr) {
Intrinsics.checkNotNullParameter(requestOptions, "requestOptions");
Intrinsics.checkNotNullParameter(credentialId, "credentialId");
Intrinsics.checkNotNullParameter(credentialPublicKey, "credentialPublicKey");
Intrinsics.checkNotNullParameter(origin, "origin");
this.requestOptions = requestOptions;
this.credentialId = credentialId;
this.credentialPublicKey = credentialPublicKey;
this.origin = origin;
this.up = z;
this.uv = z2;
this.be = z3;
this.bs = z4;
this.packageName = str;
this.clientDataHash = bArr;
this.clientJson = new JSONObject();
getClientJson().put("type", "webauthn.create");
getClientJson().put(ClientData.KEY_CHALLENGE, WebAuthnUtils.Companion.b64Encode(requestOptions.getChallenge()));
getClientJson().put("origin", origin);
if (str != null) {
getClientJson().put("androidPackageName", str);
}
this.attestationObject = defaultAttestationObject$credentials_release();
}
public /* synthetic */ AuthenticatorAttestationResponse(PublicKeyCredentialCreationOptions publicKeyCredentialCreationOptions, byte[] bArr, byte[] bArr2, String str, boolean z, boolean z2, boolean z3, boolean z4, String str2, byte[] bArr3, int i, DefaultConstructorMarker defaultConstructorMarker) {
this(publicKeyCredentialCreationOptions, bArr, bArr2, str, z, z2, z3, z4, (i & 256) != 0 ? null : str2, (i & 512) != 0 ? null : bArr3);
}
/* JADX WARN: Multi-variable type inference failed */
/* JADX WARN: Type inference failed for: r1v15 */
/* JADX WARN: Type inference failed for: r1v16 */
/* JADX WARN: Type inference failed for: r1v24 */
/* JADX WARN: Type inference failed for: r1v25 */
/* JADX WARN: Type inference failed for: r1v7 */
private final byte[] authData() {
byte[] plus;
byte[] plus2;
byte[] plus3;
byte[] plus4;
byte[] plus5;
byte[] plus6;
MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
byte[] bytes = this.requestOptions.getRp().getId().getBytes(Charsets.UTF_8);
Intrinsics.checkNotNullExpressionValue(bytes, "this as java.lang.String).getBytes(charset)");
byte[] rpHash = messageDigest.digest(bytes);
boolean z = this.up;
boolean z2 = z;
if (this.uv) {
z2 = (z ? 1 : 0) | 4;
}
boolean z3 = z2;
if (this.be) {
z3 = (z2 ? 1 : 0) | '\b';
}
?? r1 = z3;
if (this.bs) {
r1 = (z3 ? 1 : 0) | 16;
}
int i = r1 | 64;
byte[] bArr = new byte[16];
for (int i2 = 0; i2 < 16; i2++) {
bArr[i2] = 0;
}
byte[] bArr2 = this.credentialId;
byte[] bArr3 = {(byte) (bArr2.length >> 8), (byte) bArr2.length};
Intrinsics.checkNotNullExpressionValue(rpHash, "rpHash");
plus = ArraysKt___ArraysJvmKt.plus(rpHash, new byte[]{(byte) i});
plus2 = ArraysKt___ArraysJvmKt.plus(plus, new byte[]{0, 0, 0, 0});
plus3 = ArraysKt___ArraysJvmKt.plus(plus2, bArr);
plus4 = ArraysKt___ArraysJvmKt.plus(plus3, bArr3);
plus5 = ArraysKt___ArraysJvmKt.plus(plus4, this.credentialId);
plus6 = ArraysKt___ArraysJvmKt.plus(plus5, this.credentialPublicKey);
return plus6;
}
public final byte[] defaultAttestationObject$credentials_release() {
Map emptyMap;
LinkedHashMap linkedHashMap = new LinkedHashMap();
linkedHashMap.put("fmt", "none");
emptyMap = MapsKt__MapsKt.emptyMap();
linkedHashMap.put("attStmt", emptyMap);
linkedHashMap.put("authData", authData());
return new Cbor().encode(linkedHashMap);
}
@Override // androidx.credentials.webauthn.AuthenticatorResponse
public JSONObject json() {
List listOf;
String jSONObject = getClientJson().toString();
Intrinsics.checkNotNullExpressionValue(jSONObject, "clientJson.toString()");
byte[] bytes = jSONObject.getBytes(Charsets.UTF_8);
Intrinsics.checkNotNullExpressionValue(bytes, "this as java.lang.String).getBytes(charset)");
JSONObject jSONObject2 = new JSONObject();
if (this.clientDataHash == null) {
jSONObject2.put("clientDataJSON", WebAuthnUtils.Companion.b64Encode(bytes));
}
jSONObject2.put("attestationObject", WebAuthnUtils.Companion.b64Encode(this.attestationObject));
listOf = CollectionsKt__CollectionsKt.listOf((Object[]) new String[]{TapjoyConstants.LOG_LEVEL_INTERNAL, "hybrid"});
jSONObject2.put("transports", new JSONArray((Collection) listOf));
return jSONObject2;
}
}