Primer paso de la investigacion. Se aportan el .apk, las carpetas con el apk extraido y el apk descompilado. El archivo API_DOCUMENTATION.md es un archivo donde se anotaran los descubrimientos del funcionamiento de la API, y los .py son scripts para probar la funcionalidad de la API con los métodos que vayamos encontrando. Finalmente, los archivos .js son scripts de Frida para extraer informacion de la APP durante la ejecucion.
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
package com.adif.elcanomovil.serviceNetworking.pinning;
|
||||
|
||||
import com.google.android.gms.measurement.internal.a;
|
||||
import kotlin.Metadata;
|
||||
import kotlin.jvm.internal.Intrinsics;
|
||||
|
||||
@Metadata(d1 = {"\u0000\"\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\u000e\n\u0002\b\t\n\u0002\u0010\u000b\n\u0002\b\u0002\n\u0002\u0010\b\n\u0002\b\u0002\b\u0086\b\u0018\u00002\u00020\u0001B\u0015\u0012\u0006\u0010\u0002\u001a\u00020\u0003\u0012\u0006\u0010\u0004\u001a\u00020\u0003¢\u0006\u0002\u0010\u0005J\t\u0010\t\u001a\u00020\u0003HÆ\u0003J\t\u0010\n\u001a\u00020\u0003HÆ\u0003J\u001d\u0010\u000b\u001a\u00020\u00002\b\b\u0002\u0010\u0002\u001a\u00020\u00032\b\b\u0002\u0010\u0004\u001a\u00020\u0003HÆ\u0001J\u0013\u0010\f\u001a\u00020\r2\b\u0010\u000e\u001a\u0004\u0018\u00010\u0001HÖ\u0003J\t\u0010\u000f\u001a\u00020\u0010HÖ\u0001J\t\u0010\u0011\u001a\u00020\u0003HÖ\u0001R\u0011\u0010\u0004\u001a\u00020\u0003¢\u0006\b\n\u0000\u001a\u0004\b\u0006\u0010\u0007R\u0011\u0010\u0002\u001a\u00020\u0003¢\u0006\b\n\u0000\u001a\u0004\b\b\u0010\u0007¨\u0006\u0012"}, d2 = {"Lcom/adif/elcanomovil/serviceNetworking/pinning/Pin;", "", "pattern", "", "hash", "(Ljava/lang/String;Ljava/lang/String;)V", "getHash", "()Ljava/lang/String;", "getPattern", "component1", "component2", "copy", "equals", "", "other", "hashCode", "", "toString", "service-networking_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
|
||||
/* loaded from: classes.dex */
|
||||
public final /* data */ class Pin {
|
||||
private final String hash;
|
||||
private final String pattern;
|
||||
|
||||
public Pin(String pattern, String hash) {
|
||||
Intrinsics.checkNotNullParameter(pattern, "pattern");
|
||||
Intrinsics.checkNotNullParameter(hash, "hash");
|
||||
this.pattern = pattern;
|
||||
this.hash = hash;
|
||||
}
|
||||
|
||||
public static /* synthetic */ Pin copy$default(Pin pin, String str, String str2, int i, Object obj) {
|
||||
if ((i & 1) != 0) {
|
||||
str = pin.pattern;
|
||||
}
|
||||
if ((i & 2) != 0) {
|
||||
str2 = pin.hash;
|
||||
}
|
||||
return pin.copy(str, str2);
|
||||
}
|
||||
|
||||
/* renamed from: component1, reason: from getter */
|
||||
public final String getPattern() {
|
||||
return this.pattern;
|
||||
}
|
||||
|
||||
/* renamed from: component2, reason: from getter */
|
||||
public final String getHash() {
|
||||
return this.hash;
|
||||
}
|
||||
|
||||
public final Pin copy(String pattern, String hash) {
|
||||
Intrinsics.checkNotNullParameter(pattern, "pattern");
|
||||
Intrinsics.checkNotNullParameter(hash, "hash");
|
||||
return new Pin(pattern, hash);
|
||||
}
|
||||
|
||||
public boolean equals(Object other) {
|
||||
if (this == other) {
|
||||
return true;
|
||||
}
|
||||
if (!(other instanceof Pin)) {
|
||||
return false;
|
||||
}
|
||||
Pin pin = (Pin) other;
|
||||
return Intrinsics.areEqual(this.pattern, pin.pattern) && Intrinsics.areEqual(this.hash, pin.hash);
|
||||
}
|
||||
|
||||
public final String getHash() {
|
||||
return this.hash;
|
||||
}
|
||||
|
||||
public final String getPattern() {
|
||||
return this.pattern;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
return this.hash.hashCode() + (this.pattern.hashCode() * 31);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder("Pin(pattern=");
|
||||
sb.append(this.pattern);
|
||||
sb.append(", hash=");
|
||||
return a.n(sb, this.hash, ')');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
package com.adif.elcanomovil.serviceNetworking.pinning;
|
||||
|
||||
import com.google.android.gms.measurement.internal.a;
|
||||
import java.util.List;
|
||||
import kotlin.Metadata;
|
||||
import kotlin.jvm.internal.Intrinsics;
|
||||
|
||||
@Metadata(d1 = {"\u0000&\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010 \n\u0002\u0010\u000e\n\u0002\b\t\n\u0002\u0010\u000b\n\u0002\b\u0002\n\u0002\u0010\b\n\u0002\b\u0002\b\u0086\b\u0018\u00002\u00020\u0001B!\u0012\f\u0010\u0002\u001a\b\u0012\u0004\u0012\u00020\u00040\u0003\u0012\f\u0010\u0005\u001a\b\u0012\u0004\u0012\u00020\u00040\u0003¢\u0006\u0002\u0010\u0006J\u000f\u0010\n\u001a\b\u0012\u0004\u0012\u00020\u00040\u0003HÆ\u0003J\u000f\u0010\u000b\u001a\b\u0012\u0004\u0012\u00020\u00040\u0003HÆ\u0003J)\u0010\f\u001a\u00020\u00002\u000e\b\u0002\u0010\u0002\u001a\b\u0012\u0004\u0012\u00020\u00040\u00032\u000e\b\u0002\u0010\u0005\u001a\b\u0012\u0004\u0012\u00020\u00040\u0003HÆ\u0001J\u0013\u0010\r\u001a\u00020\u000e2\b\u0010\u000f\u001a\u0004\u0018\u00010\u0001HÖ\u0003J\t\u0010\u0010\u001a\u00020\u0011HÖ\u0001J\t\u0010\u0012\u001a\u00020\u0004HÖ\u0001R\u0017\u0010\u0005\u001a\b\u0012\u0004\u0012\u00020\u00040\u0003¢\u0006\b\n\u0000\u001a\u0004\b\u0007\u0010\bR\u0017\u0010\u0002\u001a\b\u0012\u0004\u0012\u00020\u00040\u0003¢\u0006\b\n\u0000\u001a\u0004\b\t\u0010\b¨\u0006\u0013"}, d2 = {"Lcom/adif/elcanomovil/serviceNetworking/pinning/PinningPublicKeys;", "", "stationCirculationKeys", "", "", "elcanoAvisaKeys", "(Ljava/util/List;Ljava/util/List;)V", "getElcanoAvisaKeys", "()Ljava/util/List;", "getStationCirculationKeys", "component1", "component2", "copy", "equals", "", "other", "hashCode", "", "toString", "service-networking_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
|
||||
/* loaded from: classes.dex */
|
||||
public final /* data */ class PinningPublicKeys {
|
||||
private final List<String> elcanoAvisaKeys;
|
||||
private final List<String> stationCirculationKeys;
|
||||
|
||||
public PinningPublicKeys(List<String> stationCirculationKeys, List<String> elcanoAvisaKeys) {
|
||||
Intrinsics.checkNotNullParameter(stationCirculationKeys, "stationCirculationKeys");
|
||||
Intrinsics.checkNotNullParameter(elcanoAvisaKeys, "elcanoAvisaKeys");
|
||||
this.stationCirculationKeys = stationCirculationKeys;
|
||||
this.elcanoAvisaKeys = elcanoAvisaKeys;
|
||||
}
|
||||
|
||||
/* JADX WARN: Multi-variable type inference failed */
|
||||
public static /* synthetic */ PinningPublicKeys copy$default(PinningPublicKeys pinningPublicKeys, List list, List list2, int i, Object obj) {
|
||||
if ((i & 1) != 0) {
|
||||
list = pinningPublicKeys.stationCirculationKeys;
|
||||
}
|
||||
if ((i & 2) != 0) {
|
||||
list2 = pinningPublicKeys.elcanoAvisaKeys;
|
||||
}
|
||||
return pinningPublicKeys.copy(list, list2);
|
||||
}
|
||||
|
||||
public final List<String> component1() {
|
||||
return this.stationCirculationKeys;
|
||||
}
|
||||
|
||||
public final List<String> component2() {
|
||||
return this.elcanoAvisaKeys;
|
||||
}
|
||||
|
||||
public final PinningPublicKeys copy(List<String> stationCirculationKeys, List<String> elcanoAvisaKeys) {
|
||||
Intrinsics.checkNotNullParameter(stationCirculationKeys, "stationCirculationKeys");
|
||||
Intrinsics.checkNotNullParameter(elcanoAvisaKeys, "elcanoAvisaKeys");
|
||||
return new PinningPublicKeys(stationCirculationKeys, elcanoAvisaKeys);
|
||||
}
|
||||
|
||||
public boolean equals(Object other) {
|
||||
if (this == other) {
|
||||
return true;
|
||||
}
|
||||
if (!(other instanceof PinningPublicKeys)) {
|
||||
return false;
|
||||
}
|
||||
PinningPublicKeys pinningPublicKeys = (PinningPublicKeys) other;
|
||||
return Intrinsics.areEqual(this.stationCirculationKeys, pinningPublicKeys.stationCirculationKeys) && Intrinsics.areEqual(this.elcanoAvisaKeys, pinningPublicKeys.elcanoAvisaKeys);
|
||||
}
|
||||
|
||||
public final List<String> getElcanoAvisaKeys() {
|
||||
return this.elcanoAvisaKeys;
|
||||
}
|
||||
|
||||
public final List<String> getStationCirculationKeys() {
|
||||
return this.stationCirculationKeys;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
return this.elcanoAvisaKeys.hashCode() + (this.stationCirculationKeys.hashCode() * 31);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder("PinningPublicKeys(stationCirculationKeys=");
|
||||
sb.append(this.stationCirculationKeys);
|
||||
sb.append(", elcanoAvisaKeys=");
|
||||
return a.o(sb, this.elcanoAvisaKeys, ')');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
package com.adif.elcanomovil.serviceNetworking.pinning;
|
||||
|
||||
import com.google.firebase.storage.FirebaseStorage;
|
||||
import d1.InterfaceC0307a;
|
||||
import d1.d;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import kotlin.Metadata;
|
||||
import kotlin.coroutines.Continuation;
|
||||
import kotlin.jvm.internal.Intrinsics;
|
||||
import kotlinx.coroutines.BuildersKt;
|
||||
import kotlinx.coroutines.Dispatchers;
|
||||
import z1.C0669c;
|
||||
|
||||
@Singleton
|
||||
@Metadata(d1 = {"\u0000,\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010\u000e\n\u0002\b\u0002\n\u0002\u0010\t\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0006\b\u0007\u0018\u0000 \u00122\u00020\u0001:\u0001\u0012B\u0019\b\u0007\u0012\u0006\u0010\u0003\u001a\u00020\u0002\u0012\u0006\u0010\u0005\u001a\u00020\u0004¢\u0006\u0004\b\u0006\u0010\u0007J\u0010\u0010\t\u001a\u00020\bH\u0082@¢\u0006\u0004\b\t\u0010\nJ\u001c\u0010\u000e\u001a\u0004\u0018\u00010\r2\b\b\u0002\u0010\f\u001a\u00020\u000bH\u0086@¢\u0006\u0004\b\u000e\u0010\u000fR\u0014\u0010\u0003\u001a\u00020\u00028\u0002X\u0082\u0004¢\u0006\u0006\n\u0004\b\u0003\u0010\u0010R\u0014\u0010\u0005\u001a\u00020\u00048\u0002X\u0082\u0004¢\u0006\u0006\n\u0004\b\u0005\u0010\u0011¨\u0006\u0013"}, d2 = {"Lcom/adif/elcanomovil/serviceNetworking/pinning/PinningRemoteDataSource;", "", "Lcom/google/firebase/storage/FirebaseStorage;", "firebaseStorage", "Ld1/a;", "appDispatcher", "<init>", "(Lcom/google/firebase/storage/FirebaseStorage;Ld1/a;)V", "", "fetchJsonWithFirebaseStorage", "(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;", "", "timeout", "Lcom/adif/elcanomovil/serviceNetworking/pinning/PinningPublicKeys;", "getPublicKeys", "(JLkotlin/coroutines/Continuation;)Ljava/lang/Object;", "Lcom/google/firebase/storage/FirebaseStorage;", "Ld1/a;", "Companion", "service-networking_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
|
||||
/* loaded from: classes.dex */
|
||||
public final class PinningRemoteDataSource {
|
||||
private static final String CIRCULATION_KEY = "estaciones_circulacion_key";
|
||||
private static final String ELCANO_KEY = "elcanoweb_avisa_key";
|
||||
private static final long MAX_DOWNLOAD_SIZE = 1048576;
|
||||
private static final String PUBLIC_KEYS_URL = "https://firebasestorage.googleapis.com/v0/b/elcanopro.appspot.com/o/keys%2Fpublic_Keys_v2.json?alt=media&token=b5d3724d-f648-4574-b93e-85a5d7ef81ff";
|
||||
private static final long REQUEST_TIMEOUT = 5000;
|
||||
private final InterfaceC0307a appDispatcher;
|
||||
private final FirebaseStorage firebaseStorage;
|
||||
|
||||
@Inject
|
||||
public PinningRemoteDataSource(FirebaseStorage firebaseStorage, InterfaceC0307a appDispatcher) {
|
||||
Intrinsics.checkNotNullParameter(firebaseStorage, "firebaseStorage");
|
||||
Intrinsics.checkNotNullParameter(appDispatcher, "appDispatcher");
|
||||
this.firebaseStorage = firebaseStorage;
|
||||
this.appDispatcher = appDispatcher;
|
||||
}
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: private */
|
||||
/* JADX WARN: Removed duplicated region for block: B:15:0x0031 */
|
||||
/* JADX WARN: Removed duplicated region for block: B:8:0x0023 */
|
||||
/*
|
||||
Code decompiled incorrectly, please refer to instructions dump.
|
||||
To view partially-correct add '--show-bad-code' argument
|
||||
*/
|
||||
public final java.lang.Object fetchJsonWithFirebaseStorage(kotlin.coroutines.Continuation<? super java.lang.String> r7) {
|
||||
/*
|
||||
r6 = this;
|
||||
boolean r0 = r7 instanceof z1.C0667a
|
||||
if (r0 == 0) goto L13
|
||||
r0 = r7
|
||||
z1.a r0 = (z1.C0667a) r0
|
||||
int r1 = r0.f9006c
|
||||
r2 = -2147483648(0xffffffff80000000, float:-0.0)
|
||||
r3 = r1 & r2
|
||||
if (r3 == 0) goto L13
|
||||
int r1 = r1 - r2
|
||||
r0.f9006c = r1
|
||||
goto L18
|
||||
L13:
|
||||
z1.a r0 = new z1.a
|
||||
r0.<init>(r6, r7)
|
||||
L18:
|
||||
java.lang.Object r7 = r0.f9004a
|
||||
java.lang.Object r1 = kotlin.coroutines.intrinsics.IntrinsicsKt.getCOROUTINE_SUSPENDED()
|
||||
int r2 = r0.f9006c
|
||||
r3 = 1
|
||||
if (r2 == 0) goto L31
|
||||
if (r2 != r3) goto L29
|
||||
kotlin.ResultKt.throwOnFailure(r7)
|
||||
goto L56
|
||||
L29:
|
||||
java.lang.IllegalStateException r6 = new java.lang.IllegalStateException
|
||||
java.lang.String r7 = "call to 'resume' before 'invoke' with coroutine"
|
||||
r6.<init>(r7)
|
||||
throw r6
|
||||
L31:
|
||||
kotlin.ResultKt.throwOnFailure(r7)
|
||||
com.google.firebase.storage.FirebaseStorage r6 = r6.firebaseStorage
|
||||
java.lang.String r7 = "https://firebasestorage.googleapis.com/v0/b/elcanopro.appspot.com/o/keys%2Fpublic_Keys_v2.json?alt=media&token=b5d3724d-f648-4574-b93e-85a5d7ef81ff"
|
||||
com.google.firebase.storage.StorageReference r6 = r6.getReferenceFromUrl(r7)
|
||||
java.lang.String r7 = "getReferenceFromUrl(...)"
|
||||
kotlin.jvm.internal.Intrinsics.checkNotNullExpressionValue(r6, r7)
|
||||
r4 = 1048576(0x100000, double:5.180654E-318)
|
||||
com.google.android.gms.tasks.Task r6 = r6.getBytes(r4)
|
||||
java.lang.String r7 = "getBytes(...)"
|
||||
kotlin.jvm.internal.Intrinsics.checkNotNullExpressionValue(r6, r7)
|
||||
r0.f9006c = r3
|
||||
java.lang.Object r7 = kotlinx.coroutines.tasks.TasksKt.await(r6, r0)
|
||||
if (r7 != r1) goto L56
|
||||
return r1
|
||||
L56:
|
||||
byte[] r7 = (byte[]) r7
|
||||
java.lang.String r6 = new java.lang.String
|
||||
kotlin.jvm.internal.Intrinsics.checkNotNull(r7)
|
||||
java.nio.charset.Charset r0 = kotlin.text.Charsets.UTF_8
|
||||
r6.<init>(r7, r0)
|
||||
return r6
|
||||
*/
|
||||
throw new UnsupportedOperationException("Method not decompiled: com.adif.elcanomovil.serviceNetworking.pinning.PinningRemoteDataSource.fetchJsonWithFirebaseStorage(kotlin.coroutines.Continuation):java.lang.Object");
|
||||
}
|
||||
|
||||
public static /* synthetic */ Object getPublicKeys$default(PinningRemoteDataSource pinningRemoteDataSource, long j4, Continuation continuation, int i, Object obj) {
|
||||
if ((i & 1) != 0) {
|
||||
j4 = REQUEST_TIMEOUT;
|
||||
}
|
||||
return pinningRemoteDataSource.getPublicKeys(j4, continuation);
|
||||
}
|
||||
|
||||
public final Object getPublicKeys(long j4, Continuation<? super PinningPublicKeys> continuation) {
|
||||
((d) this.appDispatcher).getClass();
|
||||
return BuildersKt.withContext(Dispatchers.getIO(), new C0669c(j4, this, null), continuation);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.adif.elcanomovil.serviceNetworking.pinning;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import kotlin.Metadata;
|
||||
import org.json.JSONArray;
|
||||
|
||||
@Metadata(d1 = {"\u0000\u000e\n\u0000\n\u0002\u0010 \n\u0000\n\u0002\u0018\u0002\n\u0000\u001a\u0018\u0010\u0000\u001a\b\u0012\u0004\u0012\u0002H\u00020\u0001\"\u0004\b\u0000\u0010\u0002*\u00020\u0003H\u0002¨\u0006\u0004"}, d2 = {"asList", "", "T", "Lorg/json/JSONArray;", "service-networking_proNon_corporateRelease"}, k = 2, mv = {1, 9, 0}, xi = 48)
|
||||
/* loaded from: classes.dex */
|
||||
public final class PinningRemoteDataSourceKt {
|
||||
/* JADX INFO: Access modifiers changed from: private */
|
||||
public static final <T> List<T> asList(JSONArray jSONArray) {
|
||||
ArrayList arrayList = new ArrayList();
|
||||
int length = jSONArray.length();
|
||||
for (int i = 0; i < length; i++) {
|
||||
arrayList.add(jSONArray.get(i));
|
||||
}
|
||||
return arrayList;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.adif.elcanomovil.serviceNetworking.pinning;
|
||||
|
||||
import com.google.firebase.storage.FirebaseStorage;
|
||||
import d1.InterfaceC0307a;
|
||||
import dagger.internal.DaggerGenerated;
|
||||
import dagger.internal.Factory;
|
||||
import dagger.internal.QualifierMetadata;
|
||||
import dagger.internal.ScopeMetadata;
|
||||
import javax.inject.Provider;
|
||||
|
||||
@ScopeMetadata("javax.inject.Singleton")
|
||||
@DaggerGenerated
|
||||
@QualifierMetadata
|
||||
/* loaded from: classes.dex */
|
||||
public final class PinningRemoteDataSource_Factory implements Factory<PinningRemoteDataSource> {
|
||||
private final Provider<InterfaceC0307a> appDispatcherProvider;
|
||||
private final Provider<FirebaseStorage> firebaseStorageProvider;
|
||||
|
||||
public PinningRemoteDataSource_Factory(Provider<FirebaseStorage> provider, Provider<InterfaceC0307a> provider2) {
|
||||
this.firebaseStorageProvider = provider;
|
||||
this.appDispatcherProvider = provider2;
|
||||
}
|
||||
|
||||
public static PinningRemoteDataSource_Factory create(Provider<FirebaseStorage> provider, Provider<InterfaceC0307a> provider2) {
|
||||
return new PinningRemoteDataSource_Factory(provider, provider2);
|
||||
}
|
||||
|
||||
public static PinningRemoteDataSource newInstance(FirebaseStorage firebaseStorage, InterfaceC0307a interfaceC0307a) {
|
||||
return new PinningRemoteDataSource(firebaseStorage, interfaceC0307a);
|
||||
}
|
||||
|
||||
@Override // javax.inject.Provider
|
||||
public PinningRemoteDataSource get() {
|
||||
return newInstance(this.firebaseStorageProvider.get(), this.appDispatcherProvider.get());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
package com.adif.elcanomovil.serviceNetworking.pinning;
|
||||
|
||||
import com.adif.elcanomovil.commonNavGraph.arguments.NavArguments;
|
||||
import com.adif.elcanomovil.serviceStorage.preferences.PreferenceStorage;
|
||||
import d1.C0309c;
|
||||
import java.security.MessageDigest;
|
||||
import java.time.Instant;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Base64;
|
||||
import java.util.List;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import kotlin.Metadata;
|
||||
import kotlin.jvm.internal.DefaultConstructorMarker;
|
||||
import kotlin.jvm.internal.Intrinsics;
|
||||
import kotlin.jvm.internal.SourceDebugExtension;
|
||||
|
||||
@Singleton
|
||||
@Metadata(d1 = {"\u00008\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010\u000b\n\u0002\b\u0002\n\u0002\u0010\u000e\n\u0002\b\u0003\n\u0002\u0010\u001c\n\u0002\u0018\u0002\n\u0002\b\u0007\b\u0007\u0018\u0000 \u00182\u00020\u0001:\u0001\u0018B!\b\u0007\u0012\u0006\u0010\u0003\u001a\u00020\u0002\u0012\u0006\u0010\u0005\u001a\u00020\u0004\u0012\u0006\u0010\u0007\u001a\u00020\u0006¢\u0006\u0004\b\b\u0010\tJ\u000f\u0010\u000b\u001a\u00020\nH\u0002¢\u0006\u0004\b\u000b\u0010\fJ\u0017\u0010\u000f\u001a\u00020\r2\u0006\u0010\u000e\u001a\u00020\rH\u0002¢\u0006\u0004\b\u000f\u0010\u0010J\u0016\u0010\u0013\u001a\b\u0012\u0004\u0012\u00020\u00120\u0011H\u0086@¢\u0006\u0004\b\u0013\u0010\u0014R\u0014\u0010\u0003\u001a\u00020\u00028\u0002X\u0082\u0004¢\u0006\u0006\n\u0004\b\u0003\u0010\u0015R\u0014\u0010\u0005\u001a\u00020\u00048\u0002X\u0082\u0004¢\u0006\u0006\n\u0004\b\u0005\u0010\u0016R\u0014\u0010\u0007\u001a\u00020\u00068\u0002X\u0082\u0004¢\u0006\u0006\n\u0004\b\u0007\u0010\u0017¨\u0006\u0019"}, d2 = {"Lcom/adif/elcanomovil/serviceNetworking/pinning/PinningRepository;", "", "Lcom/adif/elcanomovil/serviceNetworking/pinning/PinningRemoteDataSource;", "dataSource", "Lcom/adif/elcanomovil/serviceStorage/preferences/PreferenceStorage;", "preference", "Ld1/c;", "dateUtils", "<init>", "(Lcom/adif/elcanomovil/serviceNetworking/pinning/PinningRemoteDataSource;Lcom/adif/elcanomovil/serviceStorage/preferences/PreferenceStorage;Ld1/c;)V", "", "cachedPinsNotValid", "()Z", "", "key", "getSha256Hash", "(Ljava/lang/String;)Ljava/lang/String;", "", "Lcom/adif/elcanomovil/serviceNetworking/pinning/Pin;", "getPins", "(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;", "Lcom/adif/elcanomovil/serviceNetworking/pinning/PinningRemoteDataSource;", "Lcom/adif/elcanomovil/serviceStorage/preferences/PreferenceStorage;", "Ld1/c;", "Companion", "service-networking_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
|
||||
@SourceDebugExtension({"SMAP\nPinningRepository.kt\nKotlin\n*S Kotlin\n*F\n+ 1 PinningRepository.kt\ncom/adif/elcanomovil/serviceNetworking/pinning/PinningRepository\n+ 2 _Collections.kt\nkotlin/collections/CollectionsKt___CollectionsKt\n*L\n1#1,67:1\n1549#2:68\n1620#2,3:69\n1549#2:72\n1620#2,3:73\n*S KotlinDebug\n*F\n+ 1 PinningRepository.kt\ncom/adif/elcanomovil/serviceNetworking/pinning/PinningRepository\n*L\n21#1:68\n21#1:69,3\n22#1:72\n22#1:73,3\n*E\n"})
|
||||
/* loaded from: classes.dex */
|
||||
public final class PinningRepository {
|
||||
|
||||
/* renamed from: Companion, reason: from kotlin metadata */
|
||||
public static final Companion INSTANCE = new Companion(null);
|
||||
public static final long PINS_CACHE_TIMEOUT_SECONDS = 172800;
|
||||
private final PinningRemoteDataSource dataSource;
|
||||
private final C0309c dateUtils;
|
||||
private final PreferenceStorage preference;
|
||||
|
||||
@Metadata(d1 = {"\u0000(\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\t\n\u0000\n\u0002\u0010!\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010 \n\u0002\u0010\u000e\n\u0002\b\u0002\b\u0086\u0003\u0018\u00002\u00020\u0001B\u0007\b\u0002¢\u0006\u0002\u0010\u0002J*\u0010\u0005\u001a\b\u0012\u0004\u0012\u00020\u00070\u00062\f\u0010\b\u001a\b\u0012\u0004\u0012\u00020\n0\t2\f\u0010\u000b\u001a\b\u0012\u0004\u0012\u00020\n0\tH\u0002R\u000e\u0010\u0003\u001a\u00020\u0004X\u0086T¢\u0006\u0002\n\u0000¨\u0006\f"}, d2 = {"Lcom/adif/elcanomovil/serviceNetworking/pinning/PinningRepository$Companion;", "", "()V", "PINS_CACHE_TIMEOUT_SECONDS", "", "collectPins", "", "Lcom/adif/elcanomovil/serviceNetworking/pinning/Pin;", "elCanoPinHashes", "", "", "circulationPinHashes", "service-networking_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
|
||||
@SourceDebugExtension({"SMAP\nPinningRepository.kt\nKotlin\n*S Kotlin\n*F\n+ 1 PinningRepository.kt\ncom/adif/elcanomovil/serviceNetworking/pinning/PinningRepository$Companion\n+ 2 _Collections.kt\nkotlin/collections/CollectionsKt___CollectionsKt\n*L\n1#1,67:1\n1855#2,2:68\n1855#2,2:70\n*S KotlinDebug\n*F\n+ 1 PinningRepository.kt\ncom/adif/elcanomovil/serviceNetworking/pinning/PinningRepository$Companion\n*L\n50#1:68,2\n54#1:70,2\n*E\n"})
|
||||
/* loaded from: classes.dex */
|
||||
public static final class Companion {
|
||||
public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) {
|
||||
this();
|
||||
}
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: private */
|
||||
public final List<Pin> collectPins(List<String> elCanoPinHashes, List<String> circulationPinHashes) {
|
||||
ArrayList arrayList = new ArrayList();
|
||||
for (String str : elCanoPinHashes) {
|
||||
arrayList.add(new Pin("avisa.adif.es", str));
|
||||
arrayList.add(new Pin(NavArguments.ARG_DYNAMIC_PACKAGE, str));
|
||||
}
|
||||
for (String str2 : circulationPinHashes) {
|
||||
arrayList.add(new Pin("estaciones.api.adif.es", str2));
|
||||
arrayList.add(new Pin("circulacion.api.adif.es", str2));
|
||||
}
|
||||
return arrayList;
|
||||
}
|
||||
|
||||
private Companion() {
|
||||
}
|
||||
}
|
||||
|
||||
@Inject
|
||||
public PinningRepository(PinningRemoteDataSource dataSource, PreferenceStorage preference, C0309c dateUtils) {
|
||||
Intrinsics.checkNotNullParameter(dataSource, "dataSource");
|
||||
Intrinsics.checkNotNullParameter(preference, "preference");
|
||||
Intrinsics.checkNotNullParameter(dateUtils, "dateUtils");
|
||||
this.dataSource = dataSource;
|
||||
this.preference = preference;
|
||||
this.dateUtils = dateUtils;
|
||||
}
|
||||
|
||||
private final boolean cachedPinsNotValid() {
|
||||
this.dateUtils.getClass();
|
||||
Instant now = Instant.now();
|
||||
Intrinsics.checkNotNullExpressionValue(now, "now(...)");
|
||||
return now.minusSeconds(PINS_CACHE_TIMEOUT_SECONDS).compareTo(this.preference.getLastPinningUpdate()) > 0;
|
||||
}
|
||||
|
||||
private final String getSha256Hash(String key) {
|
||||
return "sha256/" + Base64.getEncoder().encodeToString(MessageDigest.getInstance("SHA-256").digest(Base64.getDecoder().decode(key)));
|
||||
}
|
||||
|
||||
/* JADX WARN: Removed duplicated region for block: B:13:0x0053 */
|
||||
/* JADX WARN: Removed duplicated region for block: B:16:0x0058 */
|
||||
/* JADX WARN: Removed duplicated region for block: B:36:0x0035 */
|
||||
/* JADX WARN: Removed duplicated region for block: B:9:0x0025 */
|
||||
/*
|
||||
Code decompiled incorrectly, please refer to instructions dump.
|
||||
To view partially-correct add '--show-bad-code' argument
|
||||
*/
|
||||
public final java.lang.Object getPins(kotlin.coroutines.Continuation<? super java.lang.Iterable<com.adif.elcanomovil.serviceNetworking.pinning.Pin>> r8) {
|
||||
/*
|
||||
Method dump skipped, instructions count: 251
|
||||
To view this dump add '--comments-level debug' option
|
||||
*/
|
||||
throw new UnsupportedOperationException("Method not decompiled: com.adif.elcanomovil.serviceNetworking.pinning.PinningRepository.getPins(kotlin.coroutines.Continuation):java.lang.Object");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.adif.elcanomovil.serviceNetworking.pinning;
|
||||
|
||||
import com.adif.elcanomovil.serviceStorage.preferences.PreferenceStorage;
|
||||
import d1.C0309c;
|
||||
import dagger.internal.DaggerGenerated;
|
||||
import dagger.internal.Factory;
|
||||
import dagger.internal.QualifierMetadata;
|
||||
import dagger.internal.ScopeMetadata;
|
||||
import javax.inject.Provider;
|
||||
|
||||
@ScopeMetadata("javax.inject.Singleton")
|
||||
@DaggerGenerated
|
||||
@QualifierMetadata
|
||||
/* loaded from: classes.dex */
|
||||
public final class PinningRepository_Factory implements Factory<PinningRepository> {
|
||||
private final Provider<PinningRemoteDataSource> dataSourceProvider;
|
||||
private final Provider<C0309c> dateUtilsProvider;
|
||||
private final Provider<PreferenceStorage> preferenceProvider;
|
||||
|
||||
public PinningRepository_Factory(Provider<PinningRemoteDataSource> provider, Provider<PreferenceStorage> provider2, Provider<C0309c> provider3) {
|
||||
this.dataSourceProvider = provider;
|
||||
this.preferenceProvider = provider2;
|
||||
this.dateUtilsProvider = provider3;
|
||||
}
|
||||
|
||||
public static PinningRepository_Factory create(Provider<PinningRemoteDataSource> provider, Provider<PreferenceStorage> provider2, Provider<C0309c> provider3) {
|
||||
return new PinningRepository_Factory(provider, provider2, provider3);
|
||||
}
|
||||
|
||||
public static PinningRepository newInstance(PinningRemoteDataSource pinningRemoteDataSource, PreferenceStorage preferenceStorage, C0309c c0309c) {
|
||||
return new PinningRepository(pinningRemoteDataSource, preferenceStorage, c0309c);
|
||||
}
|
||||
|
||||
@Override // javax.inject.Provider
|
||||
public PinningRepository get() {
|
||||
return newInstance(this.dataSourceProvider.get(), this.preferenceProvider.get(), this.dateUtilsProvider.get());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user