RSA.smali
.class public Lcom/baidu/pass/biometrics/base/utils/RSA;
.super Ljava/lang/Object;
.source "RSA.java"
# static fields
.field private static RSA_PUBLIC_KEY:Ljava/lang/String;
.field private static SO_UPDATE_PUBLIC_KEY_STR:Ljava/lang/String;
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 88
const-string v0, "MIIDSzCCArSgAwIBAgIJAMulCuPa8XlUMA0GCSqGSIb3DQEBCwUAMHcxCzAJBgNV\nBAYTAkNOMRAwDgYDVQQIDAdCZWlqaW5nMRAwDgYDVQQHDAdCZWlqaW5nMQ4wDAYD\nVQQKDAVCYWlkdTERMA8GA1UEAwwIUGFzc3BvcnQxITAfBgkqhkiG9w0BCQEWEnBh\nc3Nwb3J0QGJhaWR1LmNvbTAgFw0xNjEyMDYwMzU0MTBaGA8yMTE2MTExMjAzNTQx\nMFowdzELMAkGA1UEBhMCQ04xEDAOBgNVBAgMB0JlaWppbmcxEDAOBgNVBAcMB0Jl\naWppbmcxDjAMBgNVBAoMBUJhaWR1MREwDwYDVQQDDAhQYXNzcG9ydDEhMB8GCSqG\nSIb3DQEJARYScGFzc3BvcnRAYmFpZHUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GN\nADCBiQKBgQDRKdiCTDP5+pYZVCNNjv0EmUk13zPhGMcPi5aDhBqNuqbtxKnjSOiy\n2gNwuKTaPcVOD7ZUWw1tMy4QJYXaiZByBbZ0lp+QOt4j1G7dA3NIVPncdfhhASdh\n2X29aScOExOaqEyOPrwK0SPRjHaStdv3gvyWIIgL8KoD9OOVUNALGwIDAQABo4Hc\nMIHZMB0GA1UdDgQWBBS492mAG8aSPG3V9u7S0Oc3/HD9szAfBgNVHSMEGDAWgBS4\n92mAG8aSPG3V9u7S0Oc3/HD9szAMBgNVHRMEBTADAQH/MAsGA1UdDwQEAwIFoDAd\nBgNVHREEFjAUghJwYXNzcG9ydC5iYWlkdS5jb20wPgYJYIZIAYb4QgENBDEWL1Ro\naXMgcm9vdCBjZXJ0aWZpY2F0ZSB3YXMgZ2VuZXJhdGVkIGJ5IFBhc3Nwb3J0MB0G\nA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOBgQAk\nSGe7CVXwvjUVVsrOOPT/LxUmNAbC099oVzbt+RoBGmSzmt5CMjkNB6pkF+qtNRvi\nrPiDVD1d8WGgKoB8/Vmbqw/Fo+VLYi4nlrcgV1OgHfXmKMQJlrOX6Mo2CvYEvI4z\n4jLdKxVTd5bqR2oh5VCtTQNlk7gK6sDGF5uipPEsDQ=="
sput-object v0, Lcom/baidu/pass/biometrics/base/utils/RSA;->SO_UPDATE_PUBLIC_KEY_STR:Ljava/lang/String;
.line 107
const-string v0, "-----BEGIN CERTIFICATE-----\nMIIENTCCAx2gAwIBAgIJANClr937TOBKMA0GCSqGSIb3DQEBCwUAMHcxCzAJBgNV\nBAYTAkNOMRAwDgYDVQQIDAdCZWlqaW5nMRAwDgYDVQQHDAdCZWlqaW5nMQ4wDAYD\nVQQKDAVCYWlkdTERMA8GA1UEAwwIUGFzc3BvcnQxITAfBgkqhkiG9w0BCQEWEnBh\nc3Nwb3J0QGJhaWR1LmNvbTAeFw0xODA4MjgwMzExMTlaFw0yODA4MjUwMzExMTla\nMHcxCzAJBgNVBAYTAkNOMRAwDgYDVQQIDAdCZWlqaW5nMRAwDgYDVQQHDAdCZWlq\naW5nMQ4wDAYDVQQKDAVCYWlkdTERMA8GA1UEAwwIUGFzc3BvcnQxITAfBgkqhkiG\n9w0BCQEWEnBhc3Nwb3J0QGJhaWR1LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEP\nADCCAQoCggEBAL6o6DePv7RBZyN55XcdPhzl6V4RSDJbY/hFRSleNBXdVZdhqvxD\njitj57eyzwplbba/PxcZYMlhgaUw9p2oiaRyS59zbx93qWiRRPqdNlhdOPRL1W0b\nhCDzbnee6UgRAl/InCYgsw6sa1mSOzV/2puujTyYi1dEJJy/sY0qwBj2ykJ73ouF\n4dQZkytKfWfwpjeydRQ3zaNzI5ZRMXou1VzgTKDhTlRC3vwt2reHr5scAZFnDkpF\nFYHGFT2KjhkmzWf5LSkTbbtWDIafs4lWDNGR5AFPH5KcKUVoLBwmWjiJM7/WApyg\nPsDXMKch19Mp7hRJrShTJvj9uPmncOoJiqECAwEAAaOBwzCBwDAdBgNVHQ4EFgQU\n9TvCukPj+ZSnjqEQN1nwuNH40REwHwYDVR0jBBgwFoAU9TvCukPj+ZSnjqEQN1nw\nuNH40REwDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCBaAwMAYDVR0RBCkwJ4IScGFz\nc3BvcnQuYmFpZHUuY29tghF3YXBwYXNzLmJhaWR1LmNvbTASBglghkgBhvhCAQ0E\nBRYDUlNBMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0B\nAQsFAAOCAQEAaImIp8WmAGI8ZFZ676HTnh6bvdV+SQuLYw4rX73GU4amZdfuPrlS\nog6KpVotOfPfE0Op4gzfhCf21UXk9aGykYmPja7H8AgfRTyCsRE+N5UUaQjKNPpa\nNnS6JXjP7fT0Kzjg1qZ2T2GGm9cNDpccFZXNJ3LTlZ6hKxL9676ITG0skfpCy6hT\nd9fumaL+vNErh+juSSmiZ0MJshHobi188w9Yx7qUWKNq9nggJSc/KHSMdumwNdfo\nCDA0TaVutnwY+TSl9XTdqb0K5sRo/aoWhbNLWV1Uldizx0UMu1qm0p3ntLQHjlSY\nvitSKCCXfbrTf7BWjbsUK76aytK6eV7l6A==\n-----END CERTIFICATE-----"
sput-object v0, Lcom/baidu/pass/biometrics/base/utils/RSA;->RSA_PUBLIC_KEY:Ljava/lang/String;
return-void
.end method
.method public constructor <init>()V
.registers 1
.prologue
.line 14
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static decrypt(Ljava/lang/String;)Ljava/lang/String;
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
.line 59
sget-object v0, Lcom/baidu/pass/biometrics/base/utils/RSA;->SO_UPDATE_PUBLIC_KEY_STR:Ljava/lang/String;
invoke-static {v0}, Lcom/baidu/pass/biometrics/base/utils/RSA;->getPublicKey(Ljava/lang/String;)Ljava/security/PublicKey;
move-result-object v0
.line 61
const-string v1, "RSA/ECB/PKCS1Padding"
invoke-static {v1}, Ljavax/crypto/Cipher;->getInstance(Ljava/lang/String;)Ljavax/crypto/Cipher;
move-result-object v1
.line 62
const/4 v2, 0x2
invoke-virtual {v1, v2, v0}, Ljavax/crypto/Cipher;->init(ILjava/security/Key;)V
.line 63
const-string v0, "UTF-8"
invoke-virtual {p0, v0}, Ljava/lang/String;->getBytes(Ljava/lang/String;)[B
move-result-object v0
invoke-static {v0}, Lcom/baidu/android/common/security/Base64;->decode([B)[B
move-result-object v0
.line 65
invoke-virtual {v1, v0}, Ljavax/crypto/Cipher;->doFinal([B)[B
move-result-object v0
.line 66
new-instance v1, Ljava/lang/String;
const-string v2, "UTF-8"
invoke-direct {v1, v0, v2}, Ljava/lang/String;-><init>([BLjava/lang/String;)V
invoke-virtual {v1}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v0
.line 67
return-object v0
.end method
.method public static encrypt(Ljava/lang/String;)[B
.registers 2
.prologue
.line 24
sget-object v0, Lcom/baidu/pass/biometrics/base/utils/RSA;->RSA_PUBLIC_KEY:Ljava/lang/String;
invoke-static {p0, v0}, Lcom/baidu/pass/biometrics/base/utils/RSA;->encrypt(Ljava/lang/String;Ljava/lang/String;)[B
move-result-object v0
return-object v0
.end method
.method public static encrypt(Ljava/lang/String;Ljava/lang/String;)[B
.registers 6
.prologue
const/4 v3, 0x0
.line 37
if-eqz p0, :cond_9
invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_c
.line 38
:cond_9
new-array v0, v3, [B
.line 50
:goto_b
return-object v0
.line 41
:cond_c
:try_start_c
const-string v0, "RSA/NONE/PKCS1Padding"
invoke-static {v0}, Ljavax/crypto/Cipher;->getInstance(Ljava/lang/String;)Ljavax/crypto/Cipher;
move-result-object v0
.line 42
new-instance v1, Ljava/io/ByteArrayInputStream;
invoke-virtual {p1}, Ljava/lang/String;->getBytes()[B
move-result-object v2
invoke-direct {v1, v2}, Ljava/io/ByteArrayInputStream;-><init>([B)V
.line 43
invoke-static {v1}, Ljavax/security/cert/X509Certificate;->getInstance(Ljava/io/InputStream;)Ljavax/security/cert/X509Certificate;
move-result-object v1
.line 44
invoke-virtual {v1}, Ljavax/security/cert/X509Certificate;->getPublicKey()Ljava/security/PublicKey;
move-result-object v1
.line 45
const/4 v2, 0x1
invoke-virtual {v0, v2, v1}, Ljavax/crypto/Cipher;->init(ILjava/security/Key;)V
.line 46
const-string v1, "UTF-8"
invoke-virtual {p0, v1}, Ljava/lang/String;->getBytes(Ljava/lang/String;)[B
move-result-object v1
invoke-virtual {v0, v1}, Ljavax/crypto/Cipher;->doFinal([B)[B
:try_end_30
.catch Ljava/lang/Throwable; {:try_start_c .. :try_end_30} :catch_32
move-result-object v0
goto :goto_b
.line 47
:catch_32
move-exception v0
.line 50
new-array v0, v3, [B
goto :goto_b
.end method
.method public static getPublicKey(Ljava/lang/String;)Ljava/security/PublicKey;
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
.line 79
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object v0
invoke-static {v0}, Lcom/baidu/android/common/security/Base64;->decode([B)[B
move-result-object v0
.line 80
new-instance v1, Ljava/io/ByteArrayInputStream;
invoke-direct {v1, v0}, Ljava/io/ByteArrayInputStream;-><init>([B)V
.line 81
invoke-static {v1}, Ljavax/security/cert/X509Certificate;->getInstance(Ljava/io/InputStream;)Ljavax/security/cert/X509Certificate;
move-result-object v0
.line 82
invoke-virtual {v0}, Ljavax/security/cert/X509Certificate;->getPublicKey()Ljava/security/PublicKey;
move-result-object v0
.line 83
return-object v0
.end method