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