.class public Lcom/appsflyer/AFKeystoreWrapper; .super Ljava/lang/Object; .source "" # instance fields .field public AFInAppEventParameterName:Ljava/security/KeyStore; .field public AFInAppEventType:Ljava/lang/String; .field private AFKeystoreWrapper:Landroid/content/Context; .field public valueOf:I .field public final values:Ljava/lang/Object; # direct methods .method public constructor (Landroid/content/Context;)V .locals 1 .line 1 invoke-direct {p0}, Ljava/lang/Object;->()V .line 2 new-instance v0, Ljava/lang/Object; invoke-direct {v0}, Ljava/lang/Object;->()V iput-object v0, p0, Lcom/appsflyer/AFKeystoreWrapper;->values:Ljava/lang/Object; .line 3 iput-object p1, p0, Lcom/appsflyer/AFKeystoreWrapper;->AFKeystoreWrapper:Landroid/content/Context; const-string p1, "" .line 4 iput-object p1, p0, Lcom/appsflyer/AFKeystoreWrapper;->AFInAppEventType:Ljava/lang/String; const/4 p1, 0x0 .line 5 iput p1, p0, Lcom/appsflyer/AFKeystoreWrapper;->valueOf:I const-string p1, "Initialising KeyStore.." .line 6 invoke-static {p1}, Lcom/appsflyer/AFLogger;->AFKeystoreWrapper(Ljava/lang/String;)V :try_start_0 const-string p1, "AndroidKeyStore" .line 7 invoke-static {p1}, Ljava/security/KeyStore;->getInstance(Ljava/lang/String;)Ljava/security/KeyStore; move-result-object p1 iput-object p1, p0, Lcom/appsflyer/AFKeystoreWrapper;->AFInAppEventParameterName:Ljava/security/KeyStore; const/4 v0, 0x0 .line 8 invoke-virtual {p1, v0}, Ljava/security/KeyStore;->load(Ljava/security/KeyStore$LoadStoreParameter;)V :try_end_0 .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_3 .catch Ljava/security/NoSuchAlgorithmException; {:try_start_0 .. :try_end_0} :catch_2 .catch Ljava/security/cert/CertificateException; {:try_start_0 .. :try_end_0} :catch_1 .catch Ljava/security/KeyStoreException; {:try_start_0 .. :try_end_0} :catch_0 return-void :catch_0 move-exception p1 goto :goto_0 :catch_1 move-exception p1 goto :goto_0 :catch_2 move-exception p1 goto :goto_0 :catch_3 move-exception p1 :goto_0 const-string v0, "Couldn\'t load keystore instance of type: AndroidKeyStore" .line 9 invoke-static {v0, p1}, Lcom/appsflyer/AFLogger;->AFInAppEventType(Ljava/lang/String;Ljava/lang/Throwable;)V return-void .end method .method private static values(Ljava/lang/String;)Z .locals 1 const-string v0, "com.appsflyer" .line 1 invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result p0 return p0 .end method # virtual methods .method public final AFInAppEventParameterName()Z .locals 7 .line 1 iget-object v0, p0, Lcom/appsflyer/AFKeystoreWrapper;->values:Ljava/lang/Object; monitor-enter v0 .line 2 :try_start_0 iget-object v1, p0, Lcom/appsflyer/AFKeystoreWrapper;->AFInAppEventParameterName:Ljava/security/KeyStore; :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_2 const/4 v2, 0x1 const/4 v3, 0x0 if-eqz v1, :cond_1 .line 3 :try_start_1 invoke-virtual {v1}, Ljava/security/KeyStore;->aliases()Ljava/util/Enumeration; move-result-object v1 .line 4 :cond_0 invoke-interface {v1}, Ljava/util/Enumeration;->hasMoreElements()Z move-result v4 if-eqz v4, :cond_1 .line 5 invoke-interface {v1}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object; move-result-object v4 check-cast v4, Ljava/lang/String; if-eqz v4, :cond_0 .line 6 invoke-static {v4}, Lcom/appsflyer/AFKeystoreWrapper;->values(Ljava/lang/String;)Z move-result v5 if-eqz v5, :cond_0 const-string v1, "," .line 7 invoke-virtual {v4, v1}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; move-result-object v1 .line 8 array-length v5, v1 const/4 v6, 0x3 if-ne v5, v6, :cond_1 const-string v5, "Found a matching AF key with alias:\n" .line 9 invoke-virtual {v5, v4}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String; move-result-object v4 invoke-static {v4}, Lcom/appsflyer/AFLogger;->AFKeystoreWrapper(Ljava/lang/String;)V :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_1 .line 10 :try_start_2 aget-object v3, v1, v2 invoke-virtual {v3}, Ljava/lang/String;->trim()Ljava/lang/String; move-result-object v3 const-string v4, "=" invoke-virtual {v3, v4}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; move-result-object v3 const/4 v4, 0x2 .line 11 aget-object v1, v1, v4 invoke-virtual {v1}, Ljava/lang/String;->trim()Ljava/lang/String; move-result-object v1 const-string v5, "=" invoke-virtual {v1, v5}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; move-result-object v1 .line 12 array-length v5, v3 if-ne v5, v4, :cond_2 array-length v5, v1 if-ne v5, v4, :cond_2 .line 13 aget-object v3, v3, v2 invoke-virtual {v3}, Ljava/lang/String;->trim()Ljava/lang/String; move-result-object v3 iput-object v3, p0, Lcom/appsflyer/AFKeystoreWrapper;->AFInAppEventType:Ljava/lang/String; .line 14 aget-object v1, v1, v2 invoke-virtual {v1}, Ljava/lang/String;->trim()Ljava/lang/String; move-result-object v1 invoke-static {v1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v1 iput v1, p0, Lcom/appsflyer/AFKeystoreWrapper;->valueOf:I :try_end_2 .catchall {:try_start_2 .. :try_end_2} :catchall_0 goto :goto_1 :catchall_0 move-exception v1 goto :goto_0 :catchall_1 move-exception v1 move v2, v3 .line 15 :goto_0 :try_start_3 new-instance v3, Ljava/lang/StringBuilder; const-string v4, "Couldn\'t list KeyStore Aliases: " invoke-direct {v3, v4}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v4 invoke-virtual {v4}, Ljava/lang/Class;->getName()Ljava/lang/String; move-result-object v4 invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v3}, Ljava/lang/Object;->toString()Ljava/lang/String; move-result-object v3 invoke-static {v3, v1}, Lcom/appsflyer/AFLogger;->AFInAppEventType(Ljava/lang/String;Ljava/lang/Throwable;)V goto :goto_1 :cond_1 move v2, v3 .line 16 :cond_2 :goto_1 monitor-exit v0 :try_end_3 .catchall {:try_start_3 .. :try_end_3} :catchall_2 return v2 :catchall_2 move-exception v1 monitor-exit v0 throw v1 .end method .method public final AFInAppEventType()Ljava/lang/String; .locals 3 const-string v0, "com.appsflyer," .line 19 invoke-static {v0}, Landroid/support/v4/media/d;->a(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 .line 20 iget-object v1, p0, Lcom/appsflyer/AFKeystoreWrapper;->values:Ljava/lang/Object; monitor-enter v1 :try_start_0 const-string v2, "KSAppsFlyerId=" .line 21 invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; iget-object v2, p0, Lcom/appsflyer/AFKeystoreWrapper;->AFInAppEventType:Ljava/lang/String; invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v2, "," invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v2, "KSAppsFlyerRICounter=" .line 22 invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; iget v2, p0, Lcom/appsflyer/AFKeystoreWrapper;->valueOf:I invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; .line 23 monitor-exit v1 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 24 invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String; move-result-object v0 return-object v0 :catchall_0 move-exception v0 .line 25 monitor-exit v1 throw v0 .end method .method public final AFInAppEventType(Ljava/lang/String;)V .locals 5 const-string v0, "Creating a new key with alias: " .line 1 invoke-static {p1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 invoke-static {v0}, Lcom/appsflyer/AFLogger;->AFKeystoreWrapper(Ljava/lang/String;)V .line 2 :try_start_0 invoke-static {}, Ljava/util/Calendar;->getInstance()Ljava/util/Calendar; move-result-object v0 .line 3 invoke-static {}, Ljava/util/Calendar;->getInstance()Ljava/util/Calendar; move-result-object v1 const/4 v2, 0x1 const/4 v3, 0x5 .line 4 invoke-virtual {v1, v2, v3}, Ljava/util/Calendar;->add(II)V .line 5 iget-object v2, p0, Lcom/appsflyer/AFKeystoreWrapper;->values:Ljava/lang/Object; monitor-enter v2 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_1 .line 6 :try_start_1 iget-object v3, p0, Lcom/appsflyer/AFKeystoreWrapper;->AFInAppEventParameterName:Ljava/security/KeyStore; invoke-virtual {v3, p1}, Ljava/security/KeyStore;->containsAlias(Ljava/lang/String;)Z move-result v3 if-nez v3, :cond_0 .line 7 new-instance v3, Landroid/security/keystore/KeyGenParameterSpec$Builder; const/4 v4, 0x3 invoke-direct {v3, p1, v4}, Landroid/security/keystore/KeyGenParameterSpec$Builder;->(Ljava/lang/String;I)V new-instance p1, Ljavax/security/auth/x500/X500Principal; const-string v4, "CN=AndroidSDK, O=AppsFlyer" invoke-direct {p1, v4}, Ljavax/security/auth/x500/X500Principal;->(Ljava/lang/String;)V .line 8 invoke-virtual {v3, p1}, Landroid/security/keystore/KeyGenParameterSpec$Builder;->setCertificateSubject(Ljavax/security/auth/x500/X500Principal;)Landroid/security/keystore/KeyGenParameterSpec$Builder; move-result-object p1 sget-object v3, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger; .line 9 invoke-virtual {p1, v3}, Landroid/security/keystore/KeyGenParameterSpec$Builder;->setCertificateSerialNumber(Ljava/math/BigInteger;)Landroid/security/keystore/KeyGenParameterSpec$Builder; move-result-object p1 .line 10 invoke-virtual {v0}, Ljava/util/Calendar;->getTime()Ljava/util/Date; move-result-object v0 invoke-virtual {p1, v0}, Landroid/security/keystore/KeyGenParameterSpec$Builder;->setCertificateNotBefore(Ljava/util/Date;)Landroid/security/keystore/KeyGenParameterSpec$Builder; move-result-object p1 .line 11 invoke-virtual {v1}, Ljava/util/Calendar;->getTime()Ljava/util/Date; move-result-object v0 invoke-virtual {p1, v0}, Landroid/security/keystore/KeyGenParameterSpec$Builder;->setCertificateNotAfter(Ljava/util/Date;)Landroid/security/keystore/KeyGenParameterSpec$Builder; move-result-object p1 .line 12 invoke-virtual {p1}, Landroid/security/keystore/KeyGenParameterSpec$Builder;->build()Landroid/security/keystore/KeyGenParameterSpec; move-result-object p1 const-string v0, "RSA" const-string v1, "AndroidKeyStore" .line 13 invoke-static {v0, v1}, Ljava/security/KeyPairGenerator;->getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyPairGenerator; move-result-object v0 .line 14 invoke-virtual {v0, p1}, Ljava/security/KeyPairGenerator;->initialize(Ljava/security/spec/AlgorithmParameterSpec;)V .line 15 invoke-virtual {v0}, Ljava/security/KeyPairGeneratorSpi;->generateKeyPair()Ljava/security/KeyPair; goto :goto_0 :cond_0 const-string v0, "Alias already exists: " .line 16 invoke-static {p1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String; move-result-object p1 invoke-virtual {v0, p1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String; move-result-object p1 invoke-static {p1}, Lcom/appsflyer/AFLogger;->AFKeystoreWrapper(Ljava/lang/String;)V .line 17 :goto_0 monitor-exit v2 :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_0 return-void :catchall_0 move-exception p1 :try_start_2 monitor-exit v2 throw p1 :try_end_2 .catchall {:try_start_2 .. :try_end_2} :catchall_1 :catchall_1 move-exception p1 .line 18 new-instance v0, Ljava/lang/StringBuilder; const-string v1, "Exception " invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p1}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v1, " occurred" invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String; move-result-object v0 invoke-static {v0, p1}, Lcom/appsflyer/AFLogger;->AFInAppEventType(Ljava/lang/String;Ljava/lang/Throwable;)V return-void .end method .method public final valueOf()I .locals 2 .line 1 iget-object v0, p0, Lcom/appsflyer/AFKeystoreWrapper;->values:Ljava/lang/Object; monitor-enter v0 .line 2 :try_start_0 iget v1, p0, Lcom/appsflyer/AFKeystoreWrapper;->valueOf:I monitor-exit v0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 return v1 :catchall_0 move-exception v1 .line 3 monitor-exit v0 throw v1 .end method .method public final values()Ljava/lang/String; .locals 2 .line 2 iget-object v0, p0, Lcom/appsflyer/AFKeystoreWrapper;->values:Ljava/lang/Object; monitor-enter v0 .line 3 :try_start_0 iget-object v1, p0, Lcom/appsflyer/AFKeystoreWrapper;->AFInAppEventType:Ljava/lang/String; monitor-exit v0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 return-object v1 :catchall_0 move-exception v1 .line 4 monitor-exit v0 throw v1 .end method