101 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Smali
		
	
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Smali
		
	
	
	
	
	
| .class public Lcom/amazonaws/cognito/clientcontext/util/SignatureGenerator;
 | |
| .super Ljava/lang/Object;
 | |
| .source "SignatureGenerator.java"
 | |
| 
 | |
| 
 | |
| # static fields
 | |
| .field private static final ALGORITHM:Ljava/lang/String; = "HmacSHA256"
 | |
| 
 | |
| .field private static final TAG:Ljava/lang/String; = "HMAC_SHA256_Signature"
 | |
| 
 | |
| 
 | |
| # direct methods
 | |
| .method public constructor <init>()V
 | |
|     .locals 0
 | |
| 
 | |
|     .line 1
 | |
|     invoke-direct {p0}, Ljava/lang/Object;-><init>()V
 | |
| 
 | |
|     return-void
 | |
| .end method
 | |
| 
 | |
| .method private logWarning(Ljava/lang/Exception;)V
 | |
|     .locals 2
 | |
| 
 | |
|     const-string v0, "HMAC_SHA256_Signature"
 | |
| 
 | |
|     const-string v1, "Exception while completing context data signature"
 | |
| 
 | |
|     .line 1
 | |
|     invoke-static {v0, v1, p1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
 | |
| 
 | |
|     return-void
 | |
| .end method
 | |
| 
 | |
| 
 | |
| # virtual methods
 | |
| .method public getSignature(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 | |
|     .locals 4
 | |
| 
 | |
|     const-string v0, "HmacSHA256"
 | |
| 
 | |
|     .line 1
 | |
|     :try_start_0
 | |
|     invoke-static {v0}, Ljavax/crypto/Mac;->getInstance(Ljava/lang/String;)Ljavax/crypto/Mac;
 | |
| 
 | |
|     move-result-object v1
 | |
| 
 | |
|     .line 2
 | |
|     new-instance v2, Ljavax/crypto/spec/SecretKeySpec;
 | |
| 
 | |
|     sget-object v3, Lcom/amazonaws/cognito/clientcontext/data/ConfigurationConstant;->DEFAULT_CHARSET:Ljava/nio/charset/Charset;
 | |
| 
 | |
|     invoke-virtual {p2, v3}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B
 | |
| 
 | |
|     move-result-object p2
 | |
| 
 | |
|     invoke-direct {v2, p2, v0}, Ljavax/crypto/spec/SecretKeySpec;-><init>([BLjava/lang/String;)V
 | |
| 
 | |
|     .line 3
 | |
|     invoke-virtual {v1, v2}, Ljavax/crypto/Mac;->init(Ljava/security/Key;)V
 | |
| 
 | |
|     .line 4
 | |
|     invoke-virtual {p3, v3}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B
 | |
| 
 | |
|     move-result-object p2
 | |
| 
 | |
|     .line 5
 | |
|     invoke-virtual {v1, p2}, Ljavax/crypto/Mac;->update([B)V
 | |
| 
 | |
|     .line 6
 | |
|     invoke-virtual {p1, v3}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B
 | |
| 
 | |
|     move-result-object p1
 | |
| 
 | |
|     .line 7
 | |
|     invoke-virtual {v1, p1}, Ljavax/crypto/Mac;->doFinal([B)[B
 | |
| 
 | |
|     move-result-object p1
 | |
| 
 | |
|     const/4 p2, 0x0
 | |
| 
 | |
|     invoke-static {p1, p2}, Landroid/util/Base64;->encodeToString([BI)Ljava/lang/String;
 | |
| 
 | |
|     move-result-object p1
 | |
|     :try_end_0
 | |
|     .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
 | |
| 
 | |
|     goto :goto_0
 | |
| 
 | |
|     :catch_0
 | |
|     move-exception p1
 | |
| 
 | |
|     .line 8
 | |
|     invoke-direct {p0, p1}, Lcom/amazonaws/cognito/clientcontext/util/SignatureGenerator;->logWarning(Ljava/lang/Exception;)V
 | |
| 
 | |
|     const-string p1, ""
 | |
| 
 | |
|     :goto_0
 | |
|     return-object p1
 | |
| .end method
 |