.class public Lz7/a; .super Ljava/lang/Object; .source "KeyStoreUtil.java" # direct methods .method public static a(Ljava/lang/String;Z)Ljava/security/KeyPair; .locals 3 .annotation build Landroidx/annotation/RequiresApi; api = 0x17 .end annotation .line 1 invoke-static {}, Ljava/util/Calendar;->getInstance()Ljava/util/Calendar; .line 2 invoke-static {}, Ljava/util/Calendar;->getInstance()Ljava/util/Calendar; move-result-object v0 const/4 v1, 0x1 const/16 v2, 0x270f .line 3 invoke-virtual {v0, v1, v2}, Ljava/util/Calendar;->add(II)V const-string v0, "EC" const-string v1, "AndroidKeyStore" .line 4 invoke-static {v0, v1}, Ljava/security/KeyPairGenerator;->getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyPairGenerator; move-result-object v0 .line 5 new-instance v1, Landroid/security/keystore/KeyGenParameterSpec$Builder; const/4 v2, 0x4 invoke-direct {v1, p0, v2}, Landroid/security/keystore/KeyGenParameterSpec$Builder;->(Ljava/lang/String;I)V new-instance p0, Ljava/security/spec/ECGenParameterSpec; const-string v2, "secp256r1" invoke-direct {p0, v2}, Ljava/security/spec/ECGenParameterSpec;->(Ljava/lang/String;)V .line 6 invoke-virtual {v1, p0}, Landroid/security/keystore/KeyGenParameterSpec$Builder;->setAlgorithmParameterSpec(Ljava/security/spec/AlgorithmParameterSpec;)Landroid/security/keystore/KeyGenParameterSpec$Builder; move-result-object p0 const-string v1, "SHA-256" filled-new-array {v1}, [Ljava/lang/String; move-result-object v1 .line 7 invoke-virtual {p0, v1}, Landroid/security/keystore/KeyGenParameterSpec$Builder;->setDigests([Ljava/lang/String;)Landroid/security/keystore/KeyGenParameterSpec$Builder; move-result-object p0 .line 8 invoke-virtual {p0, p1}, Landroid/security/keystore/KeyGenParameterSpec$Builder;->setUserAuthenticationRequired(Z)Landroid/security/keystore/KeyGenParameterSpec$Builder; move-result-object p0 .line 9 invoke-virtual {p0}, Landroid/security/keystore/KeyGenParameterSpec$Builder;->build()Landroid/security/keystore/KeyGenParameterSpec; move-result-object p0 .line 10 invoke-virtual {v0, p0}, Ljava/security/KeyPairGenerator;->initialize(Ljava/security/spec/AlgorithmParameterSpec;)V .line 11 invoke-virtual {v0}, Ljava/security/KeyPairGenerator;->generateKeyPair()Ljava/security/KeyPair; move-result-object p0 return-object p0 .end method .method public static b(Ljava/lang/String;)Ljava/security/Signature; .locals 3 const-string v0, "SHA256withECDSA" .line 1 invoke-static {v0}, Ljava/security/Signature;->getInstance(Ljava/lang/String;)Ljava/security/Signature; move-result-object v0 const-string v1, "AndroidKeyStore" .line 2 invoke-static {v1}, Ljava/security/KeyStore;->getInstance(Ljava/lang/String;)Ljava/security/KeyStore; move-result-object v1 const/4 v2, 0x0 .line 3 invoke-virtual {v1, v2}, Ljava/security/KeyStore;->load(Ljava/security/KeyStore$LoadStoreParameter;)V .line 4 invoke-static {p0}, Lz7/a;->g(Ljava/lang/String;)Ljava/security/PrivateKey; move-result-object p0 .line 5 invoke-virtual {v0, p0}, Ljava/security/Signature;->initSign(Ljava/security/PrivateKey;)V return-object v0 .end method .method public static c(Ljava/lang/String;Ljava/lang/String;)Z .locals 5 :try_start_0 const-string v0, "AndroidKeyStore" .line 1 invoke-static {v0}, Ljava/security/KeyStore;->getInstance(Ljava/lang/String;)Ljava/security/KeyStore; move-result-object v0 const/4 v1, 0x0 .line 2 invoke-virtual {v0, v1}, Ljava/security/KeyStore;->load(Ljava/security/KeyStore$LoadStoreParameter;)V .line 3 invoke-virtual {v0}, Ljava/security/KeyStore;->aliases()Ljava/util/Enumeration; move-result-object v1 .line 4 :cond_0 :goto_0 invoke-interface {v1}, Ljava/util/Enumeration;->hasMoreElements()Z move-result v2 if-eqz v2, :cond_1 .line 5 invoke-interface {v1}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object; move-result-object v2 check-cast v2, Ljava/lang/String; .line 6 new-instance v3, Ljava/lang/StringBuilder; invoke-direct {v3}, Ljava/lang/StringBuilder;->()V const-string v4, "removeAlias : " invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v4, " // " invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v3 invoke-static {v3}, Lo8/f;->c(Ljava/lang/String;)V .line 7 invoke-static {v2, p1}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z move-result v3 if-nez v3, :cond_0 .line 8 invoke-virtual {v2, p0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result v3 if-eqz v3, :cond_0 .line 9 invoke-virtual {v0, v2}, Ljava/security/KeyStore;->deleteEntry(Ljava/lang/String;)V :try_end_0 .catch Ljava/security/KeyStoreException; {:try_start_0 .. :try_end_0} :catch_0 .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 .catch Ljava/security/NoSuchAlgorithmException; {:try_start_0 .. :try_end_0} :catch_0 .catch Ljava/security/cert/CertificateException; {:try_start_0 .. :try_end_0} :catch_0 goto :goto_0 :cond_1 const/4 p0, 0x1 return p0 :catch_0 const/4 p0, 0x0 return p0 .end method .method public static d(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; .locals 1 const-string v0, "|" .line 1 invoke-static {p0, v0, p1}, Landroid/support/v4/media/f;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object p0 return-object p0 .end method .method public static e(Ljava/lang/String;)Z .locals 2 :try_start_0 const-string v0, "AndroidKeyStore" .line 1 invoke-static {v0}, Ljava/security/KeyStore;->getInstance(Ljava/lang/String;)Ljava/security/KeyStore; move-result-object v0 const/4 v1, 0x0 .line 2 invoke-virtual {v0, v1}, Ljava/security/KeyStore;->load(Ljava/security/KeyStore$LoadStoreParameter;)V .line 3 invoke-virtual {v0, p0}, Ljava/security/KeyStore;->deleteEntry(Ljava/lang/String;)V :try_end_0 .catch Ljava/security/KeyStoreException; {:try_start_0 .. :try_end_0} :catch_0 .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 .catch Ljava/security/NoSuchAlgorithmException; {:try_start_0 .. :try_end_0} :catch_0 .catch Ljava/security/cert/CertificateException; {:try_start_0 .. :try_end_0} :catch_0 const/4 p0, 0x1 return p0 :catch_0 const/4 p0, 0x0 return p0 .end method .method public static f(Ljava/lang/String;)Z .locals 5 :try_start_0 const-string v0, "AndroidKeyStore" .line 1 invoke-static {v0}, Ljava/security/KeyStore;->getInstance(Ljava/lang/String;)Ljava/security/KeyStore; move-result-object v0 const/4 v1, 0x0 .line 2 invoke-virtual {v0, v1}, Ljava/security/KeyStore;->load(Ljava/security/KeyStore$LoadStoreParameter;)V .line 3 invoke-virtual {v0}, Ljava/security/KeyStore;->aliases()Ljava/util/Enumeration; move-result-object v1 .line 4 :cond_0 :goto_0 invoke-interface {v1}, Ljava/util/Enumeration;->hasMoreElements()Z move-result v2 if-eqz v2, :cond_1 .line 5 invoke-interface {v1}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object; move-result-object v2 check-cast v2, Ljava/lang/String; .line 6 new-instance v3, Ljava/lang/StringBuilder; invoke-direct {v3}, Ljava/lang/StringBuilder;->()V const-string v4, "removeAlias : " invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v3 invoke-static {v3}, Lo8/f;->c(Ljava/lang/String;)V .line 7 invoke-virtual {v2, p0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result v3 if-eqz v3, :cond_0 .line 8 invoke-virtual {v0, v2}, Ljava/security/KeyStore;->deleteEntry(Ljava/lang/String;)V :try_end_0 .catch Ljava/security/KeyStoreException; {:try_start_0 .. :try_end_0} :catch_0 .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 .catch Ljava/security/NoSuchAlgorithmException; {:try_start_0 .. :try_end_0} :catch_0 .catch Ljava/security/cert/CertificateException; {:try_start_0 .. :try_end_0} :catch_0 goto :goto_0 :cond_1 const/4 p0, 0x1 return p0 :catch_0 const/4 p0, 0x0 return p0 .end method .method public static g(Ljava/lang/String;)Ljava/security/PrivateKey; .locals 2 const-string v0, "AndroidKeyStore" .line 1 invoke-static {v0}, Ljava/security/KeyStore;->getInstance(Ljava/lang/String;)Ljava/security/KeyStore; move-result-object v0 const/4 v1, 0x0 .line 2 invoke-virtual {v0, v1}, Ljava/security/KeyStore;->load(Ljava/security/KeyStore$LoadStoreParameter;)V .line 3 invoke-virtual {v0, p0, v1}, Ljava/security/KeyStore;->getEntry(Ljava/lang/String;Ljava/security/KeyStore$ProtectionParameter;)Ljava/security/KeyStore$Entry; move-result-object p0 .line 4 instance-of v0, p0, Ljava/security/KeyStore$PrivateKeyEntry; if-nez v0, :cond_0 return-object v1 .line 5 :cond_0 check-cast p0, Ljava/security/KeyStore$PrivateKeyEntry; invoke-virtual {p0}, Ljava/security/KeyStore$PrivateKeyEntry;->getPrivateKey()Ljava/security/PrivateKey; move-result-object p0 return-object p0 .end method