X509CertificatePair.smali
.class public Lorg/spongycastle/x509/X509CertificatePair;
.super Ljava/lang/Object;
.source "X509CertificatePair.java"
# instance fields
.field private forward:Ljava/security/cert/X509Certificate;
.field private reverse:Ljava/security/cert/X509Certificate;
# direct methods
.method public constructor <init>(Ljava/security/cert/X509Certificate;Ljava/security/cert/X509Certificate;)V
.registers 3
.prologue
.line 34
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 35
iput-object p1, p0, Lorg/spongycastle/x509/X509CertificatePair;->forward:Ljava/security/cert/X509Certificate;
.line 36
iput-object p2, p0, Lorg/spongycastle/x509/X509CertificatePair;->reverse:Ljava/security/cert/X509Certificate;
.line 37
return-void
.end method
.method public constructor <init>(Lorg/spongycastle/asn1/x509/CertificatePair;)V
.registers 4
.prologue
.line 47
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 48
invoke-virtual {p1}, Lorg/spongycastle/asn1/x509/CertificatePair;->getForward()Lorg/spongycastle/asn1/x509/Certificate;
move-result-object v0
if-eqz v0, :cond_14
.line 50
new-instance v0, Lorg/spongycastle/jce/provider/X509CertificateObject;
invoke-virtual {p1}, Lorg/spongycastle/asn1/x509/CertificatePair;->getForward()Lorg/spongycastle/asn1/x509/Certificate;
move-result-object v1
invoke-direct {v0, v1}, Lorg/spongycastle/jce/provider/X509CertificateObject;-><init>(Lorg/spongycastle/asn1/x509/Certificate;)V
iput-object v0, p0, Lorg/spongycastle/x509/X509CertificatePair;->forward:Ljava/security/cert/X509Certificate;
.line 52
:cond_14
invoke-virtual {p1}, Lorg/spongycastle/asn1/x509/CertificatePair;->getReverse()Lorg/spongycastle/asn1/x509/Certificate;
move-result-object v0
if-eqz v0, :cond_25
.line 54
new-instance v0, Lorg/spongycastle/jce/provider/X509CertificateObject;
invoke-virtual {p1}, Lorg/spongycastle/asn1/x509/CertificatePair;->getReverse()Lorg/spongycastle/asn1/x509/Certificate;
move-result-object v1
invoke-direct {v0, v1}, Lorg/spongycastle/jce/provider/X509CertificateObject;-><init>(Lorg/spongycastle/asn1/x509/Certificate;)V
iput-object v0, p0, Lorg/spongycastle/x509/X509CertificatePair;->reverse:Ljava/security/cert/X509Certificate;
.line 56
:cond_25
return-void
.end method
# virtual methods
.method public equals(Ljava/lang/Object;)Z
.registers 7
.prologue
const/4 v2, 0x1
const/4 v1, 0x0
.line 117
if-nez p1, :cond_5
.line 150
:cond_4
:goto_4
return v1
.line 121
:cond_5
instance-of v0, p1, Lorg/spongycastle/x509/X509CertificatePair;
if-eqz v0, :cond_4
.line 125
check-cast p1, Lorg/spongycastle/x509/X509CertificatePair;
.line 128
iget-object v0, p0, Lorg/spongycastle/x509/X509CertificatePair;->forward:Ljava/security/cert/X509Certificate;
if-eqz v0, :cond_29
.line 130
iget-object v0, p0, Lorg/spongycastle/x509/X509CertificatePair;->forward:Ljava/security/cert/X509Certificate;
iget-object v3, p1, Lorg/spongycastle/x509/X509CertificatePair;->forward:Ljava/security/cert/X509Certificate;
invoke-virtual {v0, v3}, Ljava/security/cert/X509Certificate;->equals(Ljava/lang/Object;)Z
move-result v0
.line 139
:goto_17
iget-object v3, p0, Lorg/spongycastle/x509/X509CertificatePair;->reverse:Ljava/security/cert/X509Certificate;
if-eqz v3, :cond_2f
.line 141
iget-object v3, p0, Lorg/spongycastle/x509/X509CertificatePair;->reverse:Ljava/security/cert/X509Certificate;
iget-object v4, p1, Lorg/spongycastle/x509/X509CertificatePair;->reverse:Ljava/security/cert/X509Certificate;
invoke-virtual {v3, v4}, Ljava/security/cert/X509Certificate;->equals(Ljava/lang/Object;)Z
move-result v3
.line 150
:goto_23
if-eqz v0, :cond_4
if-eqz v3, :cond_4
move v1, v2
goto :goto_4
.line 134
:cond_29
iget-object v0, p1, Lorg/spongycastle/x509/X509CertificatePair;->forward:Ljava/security/cert/X509Certificate;
if-eqz v0, :cond_37
move v0, v1
.line 136
goto :goto_17
.line 145
:cond_2f
iget-object v3, p1, Lorg/spongycastle/x509/X509CertificatePair;->reverse:Ljava/security/cert/X509Certificate;
if-eqz v3, :cond_35
move v3, v1
.line 147
goto :goto_23
:cond_35
move v3, v2
goto :goto_23
:cond_37
move v0, v2
goto :goto_17
.end method
.method public getEncoded()[B
.registers 4
.prologue
const/4 v0, 0x0
.line 61
.line 65
:try_start_1
iget-object v1, p0, Lorg/spongycastle/x509/X509CertificatePair;->forward:Ljava/security/cert/X509Certificate;
if-eqz v1, :cond_2d
.line 67
new-instance v1, Lorg/spongycastle/asn1/ASN1InputStream;
iget-object v2, p0, Lorg/spongycastle/x509/X509CertificatePair;->forward:Ljava/security/cert/X509Certificate;
.line 68
invoke-virtual {v2}, Ljava/security/cert/X509Certificate;->getEncoded()[B
move-result-object v2
invoke-direct {v1, v2}, Lorg/spongycastle/asn1/ASN1InputStream;-><init>([B)V
invoke-virtual {v1}, Lorg/spongycastle/asn1/ASN1InputStream;->readObject()Lorg/spongycastle/asn1/ASN1Primitive;
move-result-object v1
.line 67
invoke-static {v1}, Lorg/spongycastle/asn1/x509/Certificate;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/x509/Certificate;
move-result-object v1
.line 69
if-nez v1, :cond_2e
.line 71
new-instance v0, Ljava/security/cert/CertificateEncodingException;
const-string v1, "unable to get encoding for forward"
invoke-direct {v0, v1}, Ljava/security/cert/CertificateEncodingException;-><init>(Ljava/lang/String;)V
throw v0
:try_end_22
.catch Ljava/lang/IllegalArgumentException; {:try_start_1 .. :try_end_22} :catch_22
.catch Ljava/io/IOException; {:try_start_1 .. :try_end_22} :catch_4f
.line 85
:catch_22
move-exception v0
.line 87
new-instance v1, Lorg/spongycastle/x509/ExtCertificateEncodingException;
invoke-virtual {v0}, Ljava/lang/IllegalArgumentException;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2, v0}, Lorg/spongycastle/x509/ExtCertificateEncodingException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v1
:cond_2d
move-object v1, v0
.line 74
:cond_2e
:try_start_2e
iget-object v2, p0, Lorg/spongycastle/x509/X509CertificatePair;->reverse:Ljava/security/cert/X509Certificate;
if-eqz v2, :cond_5a
.line 76
new-instance v0, Lorg/spongycastle/asn1/ASN1InputStream;
iget-object v2, p0, Lorg/spongycastle/x509/X509CertificatePair;->reverse:Ljava/security/cert/X509Certificate;
.line 77
invoke-virtual {v2}, Ljava/security/cert/X509Certificate;->getEncoded()[B
move-result-object v2
invoke-direct {v0, v2}, Lorg/spongycastle/asn1/ASN1InputStream;-><init>([B)V
invoke-virtual {v0}, Lorg/spongycastle/asn1/ASN1InputStream;->readObject()Lorg/spongycastle/asn1/ASN1Primitive;
move-result-object v0
.line 76
invoke-static {v0}, Lorg/spongycastle/asn1/x509/Certificate;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/x509/Certificate;
move-result-object v0
.line 78
if-nez v0, :cond_5a
.line 80
new-instance v0, Ljava/security/cert/CertificateEncodingException;
const-string v1, "unable to get encoding for reverse"
invoke-direct {v0, v1}, Ljava/security/cert/CertificateEncodingException;-><init>(Ljava/lang/String;)V
throw v0
:try_end_4f
.catch Ljava/lang/IllegalArgumentException; {:try_start_2e .. :try_end_4f} :catch_22
.catch Ljava/io/IOException; {:try_start_2e .. :try_end_4f} :catch_4f
.line 89
:catch_4f
move-exception v0
.line 91
new-instance v1, Lorg/spongycastle/x509/ExtCertificateEncodingException;
invoke-virtual {v0}, Ljava/io/IOException;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2, v0}, Lorg/spongycastle/x509/ExtCertificateEncodingException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v1
.line 83
:cond_5a
:try_start_5a
new-instance v2, Lorg/spongycastle/asn1/x509/CertificatePair;
invoke-direct {v2, v1, v0}, Lorg/spongycastle/asn1/x509/CertificatePair;-><init>(Lorg/spongycastle/asn1/x509/Certificate;Lorg/spongycastle/asn1/x509/Certificate;)V
const-string v0, "DER"
invoke-virtual {v2, v0}, Lorg/spongycastle/asn1/x509/CertificatePair;->getEncoded(Ljava/lang/String;)[B
:try_end_64
.catch Ljava/lang/IllegalArgumentException; {:try_start_5a .. :try_end_64} :catch_22
.catch Ljava/io/IOException; {:try_start_5a .. :try_end_64} :catch_4f
move-result-object v0
return-object v0
.end method
.method public getForward()Ljava/security/cert/X509Certificate;
.registers 2
.prologue
.line 102
iget-object v0, p0, Lorg/spongycastle/x509/X509CertificatePair;->forward:Ljava/security/cert/X509Certificate;
return-object v0
.end method
.method public getReverse()Ljava/security/cert/X509Certificate;
.registers 2
.prologue
.line 112
iget-object v0, p0, Lorg/spongycastle/x509/X509CertificatePair;->reverse:Ljava/security/cert/X509Certificate;
return-object v0
.end method
.method public hashCode()I
.registers 3
.prologue
.line 155
const/4 v0, -0x1
.line 156
iget-object v1, p0, Lorg/spongycastle/x509/X509CertificatePair;->forward:Ljava/security/cert/X509Certificate;
if-eqz v1, :cond_d
.line 158
iget-object v0, p0, Lorg/spongycastle/x509/X509CertificatePair;->forward:Ljava/security/cert/X509Certificate;
invoke-virtual {v0}, Ljava/security/cert/X509Certificate;->hashCode()I
move-result v0
xor-int/lit8 v0, v0, -0x1
.line 160
:cond_d
iget-object v1, p0, Lorg/spongycastle/x509/X509CertificatePair;->reverse:Ljava/security/cert/X509Certificate;
if-eqz v1, :cond_1a
.line 162
mul-int/lit8 v0, v0, 0x11
.line 163
iget-object v1, p0, Lorg/spongycastle/x509/X509CertificatePair;->reverse:Ljava/security/cert/X509Certificate;
invoke-virtual {v1}, Ljava/security/cert/X509Certificate;->hashCode()I
move-result v1
xor-int/2addr v0, v1
.line 165
:cond_1a
return v0
.end method