.class Lcom/example/firstjavaapplication/Part1$1; .super Ljava/lang/Object; .source "Part1.java" # interfaces .implements Landroid/view/View$OnClickListener; # annotations .annotation system Ldalvik/annotation/EnclosingMethod; value = Lcom/example/firstjavaapplication/Part1;->onCreate(Landroid/os/Bundle;)V .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x0 name = null .end annotation # instance fields .field final synthetic this$0:Lcom/example/firstjavaapplication/Part1; .field final synthetic val$flag_encoded:Ljava/lang/String; .field final synthetic val$textView2:Landroid/widget/TextView; # direct methods .method constructor (Lcom/example/firstjavaapplication/Part1;Ljava/lang/String;Landroid/widget/TextView;)V .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "()V" } .end annotation .line 94 iput-object p1, p0, Lcom/example/firstjavaapplication/Part1$1;->this$0:Lcom/example/firstjavaapplication/Part1; iput-object p2, p0, Lcom/example/firstjavaapplication/Part1$1;->val$flag_encoded:Ljava/lang/String; iput-object p3, p0, Lcom/example/firstjavaapplication/Part1$1;->val$textView2:Landroid/widget/TextView; invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method private MD5(Ljava/lang/String;)Ljava/lang/String; .locals 6 .line 116 :try_start_0 const-string v0, "MD5" invoke-static {v0}, Ljava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/MessageDigest; move-result-object v0 .line 117 invoke-virtual {p1}, Ljava/lang/String;->getBytes()[B move-result-object p1 invoke-virtual {v0, p1}, Ljava/security/MessageDigest;->update([B)V .line 118 invoke-virtual {v0}, Ljava/security/MessageDigest;->digest()[B move-result-object p1 .line 121 new-instance v0, Ljava/lang/StringBuffer; invoke-direct {v0}, Ljava/lang/StringBuffer;->()V const/4 v1, 0x0 move v2, v1 .line 122 :goto_0 array-length v3, p1 if-ge v2, v3, :cond_0 .line 123 const-string v3, "%02X" const/4 v4, 0x1 new-array v4, v4, [Ljava/lang/Object; aget-byte v5, p1, v2 invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte; move-result-object v5 aput-object v5, v4, v1 invoke-static {v3, v4}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; move-result-object v3 invoke-virtual {v0, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; add-int/lit8 v2, v2, 0x1 goto :goto_0 .line 125 :cond_0 invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String; move-result-object p1 :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 return-object p1 :catch_0 move-exception p1 .line 127 invoke-virtual {p1}, Ljava/lang/Exception;->printStackTrace()V .line 129 const-string p1, "" return-object p1 .end method .method private decrypt(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; .locals 5 .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/Exception; } .end annotation .line 133 invoke-virtual {p2}, Ljava/lang/String;->getBytes()[B move-result-object p2 .line 134 new-instance v0, Ljavax/crypto/spec/SecretKeySpec; const-string v1, "AES/ECB/PKCS7Padding" invoke-direct {v0, p2, v1}, Ljavax/crypto/spec/SecretKeySpec;->([BLjava/lang/String;)V const/4 p2, 0x0 .line 136 invoke-static {p1, p2}, Landroid/util/Base64;->decode(Ljava/lang/String;I)[B move-result-object p1 .line 137 const-string v2, "AES/ECB/NoPadding" invoke-static {v2}, Ljavax/crypto/Cipher;->getInstance(Ljava/lang/String;)Ljavax/crypto/Cipher; move-result-object v2 const/4 v3, 0x2 .line 138 invoke-virtual {v2, v3, v0}, Ljavax/crypto/Cipher;->init(ILjava/security/Key;)V :goto_0 const v4, 0x4c81a if-ge p2, v4, :cond_0 .line 141 invoke-virtual {v2, p1}, Ljavax/crypto/Cipher;->doFinal([B)[B move-result-object p1 add-int/lit8 p2, p2, 0x1 goto :goto_0 .line 144 :cond_0 invoke-static {v1}, Ljavax/crypto/Cipher;->getInstance(Ljava/lang/String;)Ljavax/crypto/Cipher; move-result-object p2 .line 145 invoke-virtual {p2, v3, v0}, Ljavax/crypto/Cipher;->init(ILjava/security/Key;)V .line 147 invoke-virtual {p2, p1}, Ljavax/crypto/Cipher;->doFinal([B)[B move-result-object p1 .line 149 new-instance p2, Ljava/lang/String; const-string v0, "UTF-8" invoke-direct {p2, p1, v0}, Ljava/lang/String;->([BLjava/lang/String;)V return-object p2 .end method # virtual methods .method public onClick(Landroid/view/View;)V .locals 3 .line 98 iget-object p1, p0, Lcom/example/firstjavaapplication/Part1$1;->this$0:Lcom/example/firstjavaapplication/Part1; invoke-static {p1}, Lcom/example/firstjavaapplication/Part1;->access$000(Lcom/example/firstjavaapplication/Part1;)Landroid/widget/EditText; move-result-object p1 invoke-virtual {p1}, Landroid/widget/EditText;->getText()Landroid/text/Editable; move-result-object p1 invoke-virtual {p1}, Ljava/lang/Object;->toString()Ljava/lang/String; move-result-object p1 invoke-virtual {p1}, Ljava/lang/String;->trim()Ljava/lang/String; move-result-object p1 .line 100 invoke-virtual {p1}, Ljava/lang/String;->isEmpty()Z move-result v0 const/4 v1, 0x0 if-nez v0, :cond_0 .line 102 :try_start_0 iget-object v0, p0, Lcom/example/firstjavaapplication/Part1$1;->this$0:Lcom/example/firstjavaapplication/Part1; sget v2, Lcom/example/firstjavaapplication/R$id;->textViewFLAG2:I invoke-virtual {v0, v2}, Lcom/example/firstjavaapplication/Part1;->findViewById(I)Landroid/view/View; move-result-object v0 check-cast v0, Landroid/widget/TextView; .line 103 iget-object v2, p0, Lcom/example/firstjavaapplication/Part1$1;->val$flag_encoded:Ljava/lang/String; invoke-direct {p0, v2, p1}, Lcom/example/firstjavaapplication/Part1$1;->decrypt(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object p1 invoke-virtual {v0, p1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 goto :goto_0 :catch_0 move-exception p1 .line 105 invoke-virtual {p1}, Ljava/lang/Exception;->printStackTrace()V .line 106 iget-object p1, p0, Lcom/example/firstjavaapplication/Part1$1;->val$textView2:Landroid/widget/TextView; iget-object v0, p0, Lcom/example/firstjavaapplication/Part1$1;->val$flag_encoded:Ljava/lang/String; invoke-virtual {p1, v0}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V .line 107 iget-object p1, p0, Lcom/example/firstjavaapplication/Part1$1;->this$0:Lcom/example/firstjavaapplication/Part1; const-string v0, "Wrong passphrase" invoke-static {p1, v0, v1}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast; move-result-object p1 invoke-virtual {p1}, Landroid/widget/Toast;->show()V goto :goto_0 .line 110 :cond_0 iget-object p1, p0, Lcom/example/firstjavaapplication/Part1$1;->this$0:Lcom/example/firstjavaapplication/Part1; const-string v0, "Please enter a password" invoke-static {p1, v0, v1}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast; move-result-object p1 invoke-virtual {p1}, Landroid/widget/Toast;->show()V :goto_0 return-void .end method