X509CRLObject.smali
.class Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;
.super Ljava/security/cert/X509CRL;
.source "X509CRLObject.java"
# instance fields
.field private bcHelper:Lorg/spongycastle/jcajce/util/JcaJceHelper;
.field private c:Lorg/spongycastle/asn1/x509/CertificateList;
.field private hashCodeValue:I
.field private isHashCodeSet:Z
.field private isIndirect:Z
.field private sigAlgName:Ljava/lang/String;
.field private sigAlgParams:[B
# direct methods
.method protected constructor <init>(Lorg/spongycastle/jcajce/util/JcaJceHelper;Lorg/spongycastle/asn1/x509/CertificateList;)V
.registers 7
.prologue
.line 89
invoke-direct {p0}, Ljava/security/cert/X509CRL;-><init>()V
.line 66
const/4 v0, 0x0
iput-boolean v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->isHashCodeSet:Z
.line 90
iput-object p1, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->bcHelper:Lorg/spongycastle/jcajce/util/JcaJceHelper;
.line 91
iput-object p2, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->c:Lorg/spongycastle/asn1/x509/CertificateList;
.line 95
:try_start_a
invoke-virtual {p2}, Lorg/spongycastle/asn1/x509/CertificateList;->getSignatureAlgorithm()Lorg/spongycastle/asn1/x509/AlgorithmIdentifier;
move-result-object v0
invoke-static {v0}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509SignatureUtil;->getSignatureName(Lorg/spongycastle/asn1/x509/AlgorithmIdentifier;)Ljava/lang/String;
move-result-object v0
iput-object v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->sigAlgName:Ljava/lang/String;
.line 97
invoke-virtual {p2}, Lorg/spongycastle/asn1/x509/CertificateList;->getSignatureAlgorithm()Lorg/spongycastle/asn1/x509/AlgorithmIdentifier;
move-result-object v0
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/AlgorithmIdentifier;->getParameters()Lorg/spongycastle/asn1/ASN1Encodable;
move-result-object v0
if-eqz v0, :cond_39
.line 99
invoke-virtual {p2}, Lorg/spongycastle/asn1/x509/CertificateList;->getSignatureAlgorithm()Lorg/spongycastle/asn1/x509/AlgorithmIdentifier;
move-result-object v0
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/AlgorithmIdentifier;->getParameters()Lorg/spongycastle/asn1/ASN1Encodable;
move-result-object v0
invoke-interface {v0}, Lorg/spongycastle/asn1/ASN1Encodable;->toASN1Primitive()Lorg/spongycastle/asn1/ASN1Primitive;
move-result-object v0
const-string v1, "DER"
invoke-virtual {v0, v1}, Lorg/spongycastle/asn1/ASN1Primitive;->getEncoded(Ljava/lang/String;)[B
move-result-object v0
iput-object v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->sigAlgParams:[B
.line 106
:goto_32
invoke-static {p0}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->isIndirectCRL(Ljava/security/cert/X509CRL;)Z
move-result v0
iput-boolean v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->isIndirect:Z
.line 111
return-void
.line 103
:cond_39
const/4 v0, 0x0
iput-object v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->sigAlgParams:[B
:try_end_3c
.catch Ljava/lang/Exception; {:try_start_a .. :try_end_3c} :catch_3d
goto :goto_32
.line 108
:catch_3d
move-exception v0
.line 110
new-instance v1, Ljava/security/cert/CRLException;
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, "CRL contents invalid: "
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0}, Ljava/security/cert/CRLException;-><init>(Ljava/lang/String;)V
throw v1
.end method
.method private doVerify(Ljava/security/PublicKey;Ljava/security/Signature;)V
.registers 5
.prologue
.line 267
iget-object v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->c:Lorg/spongycastle/asn1/x509/CertificateList;
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/CertificateList;->getSignatureAlgorithm()Lorg/spongycastle/asn1/x509/AlgorithmIdentifier;
move-result-object v0
iget-object v1, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->c:Lorg/spongycastle/asn1/x509/CertificateList;
invoke-virtual {v1}, Lorg/spongycastle/asn1/x509/CertificateList;->getTBSCertList()Lorg/spongycastle/asn1/x509/TBSCertList;
move-result-object v1
invoke-virtual {v1}, Lorg/spongycastle/asn1/x509/TBSCertList;->getSignature()Lorg/spongycastle/asn1/x509/AlgorithmIdentifier;
move-result-object v1
invoke-virtual {v0, v1}, Lorg/spongycastle/asn1/x509/AlgorithmIdentifier;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_1e
.line 269
new-instance v0, Ljava/security/cert/CRLException;
const-string v1, "Signature algorithm on CertificateList does not match TBSCertList."
invoke-direct {v0, v1}, Ljava/security/cert/CRLException;-><init>(Ljava/lang/String;)V
throw v0
.line 272
:cond_1e
invoke-virtual {p2, p1}, Ljava/security/Signature;->initVerify(Ljava/security/PublicKey;)V
.line 273
invoke-virtual {p0}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->getTBSCertList()[B
move-result-object v0
invoke-virtual {p2, v0}, Ljava/security/Signature;->update([B)V
.line 275
invoke-virtual {p0}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->getSignature()[B
move-result-object v0
invoke-virtual {p2, v0}, Ljava/security/Signature;->verify([B)Z
move-result v0
if-nez v0, :cond_3a
.line 277
new-instance v0, Ljava/security/SignatureException;
const-string v1, "CRL does not verify with supplied public key."
invoke-direct {v0, v1}, Ljava/security/SignatureException;-><init>(Ljava/lang/String;)V
throw v0
.line 279
:cond_3a
return-void
.end method
.method private getExtensionOIDs(Z)Ljava/util/Set;
.registers 7
.prologue
.line 135
invoke-virtual {p0}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->getVersion()I
move-result v0
const/4 v1, 0x2
if-ne v0, v1, :cond_3c
.line 137
iget-object v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->c:Lorg/spongycastle/asn1/x509/CertificateList;
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/CertificateList;->getTBSCertList()Lorg/spongycastle/asn1/x509/TBSCertList;
move-result-object v0
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/TBSCertList;->getExtensions()Lorg/spongycastle/asn1/x509/Extensions;
move-result-object v2
.line 139
if-eqz v2, :cond_3c
.line 141
new-instance v1, Ljava/util/HashSet;
invoke-direct {v1}, Ljava/util/HashSet;-><init>()V
.line 142
invoke-virtual {v2}, Lorg/spongycastle/asn1/x509/Extensions;->oids()Ljava/util/Enumeration;
move-result-object v3
.line 144
:cond_1c
:goto_1c
invoke-interface {v3}, Ljava/util/Enumeration;->hasMoreElements()Z
move-result v0
if-eqz v0, :cond_3a
.line 146
invoke-interface {v3}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lorg/spongycastle/asn1/ASN1ObjectIdentifier;
.line 147
invoke-virtual {v2, v0}, Lorg/spongycastle/asn1/x509/Extensions;->getExtension(Lorg/spongycastle/asn1/ASN1ObjectIdentifier;)Lorg/spongycastle/asn1/x509/Extension;
move-result-object v4
.line 149
invoke-virtual {v4}, Lorg/spongycastle/asn1/x509/Extension;->isCritical()Z
move-result v4
if-ne p1, v4, :cond_1c
.line 151
invoke-virtual {v0}, Lorg/spongycastle/asn1/ASN1ObjectIdentifier;->getId()Ljava/lang/String;
move-result-object v0
invoke-interface {v1, v0}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
goto :goto_1c
:cond_3a
move-object v0, v1
.line 159
:goto_3b
return-object v0
:cond_3c
const/4 v0, 0x0
goto :goto_3b
.end method
.method static isIndirectCRL(Ljava/security/cert/X509CRL;)Z
.registers 4
.prologue
.line 74
:try_start_0
sget-object v0, Lorg/spongycastle/asn1/x509/Extension;->issuingDistributionPoint:Lorg/spongycastle/asn1/ASN1ObjectIdentifier;
invoke-virtual {v0}, Lorg/spongycastle/asn1/ASN1ObjectIdentifier;->getId()Ljava/lang/String;
move-result-object v0
invoke-virtual {p0, v0}, Ljava/security/cert/X509CRL;->getExtensionValue(Ljava/lang/String;)[B
move-result-object v0
.line 75
if-eqz v0, :cond_20
.line 76
invoke-static {v0}, Lorg/spongycastle/asn1/ASN1OctetString;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/ASN1OctetString;
move-result-object v0
invoke-virtual {v0}, Lorg/spongycastle/asn1/ASN1OctetString;->getOctets()[B
move-result-object v0
invoke-static {v0}, Lorg/spongycastle/asn1/x509/IssuingDistributionPoint;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/x509/IssuingDistributionPoint;
move-result-object v0
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/IssuingDistributionPoint;->isIndirectCRL()Z
:try_end_1b
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_1b} :catch_22
move-result v0
if-eqz v0, :cond_20
const/4 v0, 0x1
:goto_1f
return v0
:cond_20
const/4 v0, 0x0
goto :goto_1f
.line 78
:catch_22
move-exception v0
.line 80
new-instance v1, Lorg/spongycastle/jcajce/provider/asymmetric/x509/ExtCRLException;
const-string v2, "Exception reading IssuingDistributionPoint"
invoke-direct {v1, v2, v0}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/ExtCRLException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v1
.end method
.method private loadCRLEntries()Ljava/util/Set;
.registers 7
.prologue
.line 320
new-instance v2, Ljava/util/HashSet;
invoke-direct {v2}, Ljava/util/HashSet;-><init>()V
.line 321
iget-object v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->c:Lorg/spongycastle/asn1/x509/CertificateList;
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/CertificateList;->getRevokedCertificateEnumeration()Ljava/util/Enumeration;
move-result-object v3
.line 323
const/4 v1, 0x0
.line 324
:goto_c
invoke-interface {v3}, Ljava/util/Enumeration;->hasMoreElements()Z
move-result v0
if-eqz v0, :cond_51
.line 326
invoke-interface {v3}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lorg/spongycastle/asn1/x509/TBSCertList$CRLEntry;
.line 327
new-instance v4, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLEntryObject;
iget-boolean v5, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->isIndirect:Z
invoke-direct {v4, v0, v5, v1}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLEntryObject;-><init>(Lorg/spongycastle/asn1/x509/TBSCertList$CRLEntry;ZLorg/spongycastle/asn1/x500/X500Name;)V
.line 328
invoke-interface {v2, v4}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
.line 329
iget-boolean v4, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->isIndirect:Z
if-eqz v4, :cond_52
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/TBSCertList$CRLEntry;->hasExtensions()Z
move-result v4
if-eqz v4, :cond_52
.line 331
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/TBSCertList$CRLEntry;->getExtensions()Lorg/spongycastle/asn1/x509/Extensions;
move-result-object v0
sget-object v4, Lorg/spongycastle/asn1/x509/Extension;->certificateIssuer:Lorg/spongycastle/asn1/ASN1ObjectIdentifier;
invoke-virtual {v0, v4}, Lorg/spongycastle/asn1/x509/Extensions;->getExtension(Lorg/spongycastle/asn1/ASN1ObjectIdentifier;)Lorg/spongycastle/asn1/x509/Extension;
move-result-object v0
.line 333
if-eqz v0, :cond_52
.line 335
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/Extension;->getParsedValue()Lorg/spongycastle/asn1/ASN1Encodable;
move-result-object v0
invoke-static {v0}, Lorg/spongycastle/asn1/x509/GeneralNames;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/x509/GeneralNames;
move-result-object v0
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/GeneralNames;->getNames()[Lorg/spongycastle/asn1/x509/GeneralName;
move-result-object v0
const/4 v1, 0x0
aget-object v0, v0, v1
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/GeneralName;->getName()Lorg/spongycastle/asn1/ASN1Encodable;
move-result-object v0
invoke-static {v0}, Lorg/spongycastle/asn1/x500/X500Name;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/x500/X500Name;
move-result-object v0
:goto_4f
move-object v1, v0
.line 338
goto :goto_c
.line 340
:cond_51
return-object v2
:cond_52
move-object v0, v1
goto :goto_4f
.end method
# virtual methods
.method public equals(Ljava/lang/Object;)Z
.registers 5
.prologue
const/4 v0, 0x0
.line 624
if-ne p0, p1, :cond_5
.line 626
const/4 v0, 0x1
.line 653
:cond_4
:goto_4
return v0
.line 629
:cond_5
instance-of v1, p1, Ljava/security/cert/X509CRL;
if-eqz v1, :cond_4
.line 634
instance-of v1, p1, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;
if-eqz v1, :cond_26
.line 636
check-cast p1, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;
.line 638
iget-boolean v1, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->isHashCodeSet:Z
if-eqz v1, :cond_1d
.line 640
iget-boolean v1, p1, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->isHashCodeSet:Z
.line 641
if-eqz v1, :cond_1d
.line 643
iget v1, p1, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->hashCodeValue:I
iget v2, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->hashCodeValue:I
if-ne v1, v2, :cond_4
.line 650
:cond_1d
iget-object v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->c:Lorg/spongycastle/asn1/x509/CertificateList;
iget-object v1, p1, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->c:Lorg/spongycastle/asn1/x509/CertificateList;
invoke-virtual {v0, v1}, Lorg/spongycastle/asn1/x509/CertificateList;->equals(Ljava/lang/Object;)Z
move-result v0
goto :goto_4
.line 653
:cond_26
invoke-super {p0, p1}, Ljava/security/cert/X509CRL;->equals(Ljava/lang/Object;)Z
move-result v0
goto :goto_4
.end method
.method public getCriticalExtensionOIDs()Ljava/util/Set;
.registers 2
.prologue
.line 164
const/4 v0, 0x1
invoke-direct {p0, v0}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->getExtensionOIDs(Z)Ljava/util/Set;
move-result-object v0
return-object v0
.end method
.method public getEncoded()[B
.registers 3
.prologue
.line 201
:try_start_0
iget-object v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->c:Lorg/spongycastle/asn1/x509/CertificateList;
const-string v1, "DER"
invoke-virtual {v0, v1}, Lorg/spongycastle/asn1/x509/CertificateList;->getEncoded(Ljava/lang/String;)[B
:try_end_7
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_7} :catch_9
move-result-object v0
return-object v0
.line 203
:catch_9
move-exception v0
.line 205
new-instance v1, Ljava/security/cert/CRLException;
invoke-virtual {v0}, Ljava/io/IOException;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0}, Ljava/security/cert/CRLException;-><init>(Ljava/lang/String;)V
throw v1
.end method
.method public getExtensionValue(Ljava/lang/String;)[B
.registers 6
.prologue
.line 174
iget-object v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->c:Lorg/spongycastle/asn1/x509/CertificateList;
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/CertificateList;->getTBSCertList()Lorg/spongycastle/asn1/x509/TBSCertList;
move-result-object v0
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/TBSCertList;->getExtensions()Lorg/spongycastle/asn1/x509/Extensions;
move-result-object v0
.line 176
if-eqz v0, :cond_3a
.line 178
new-instance v1, Lorg/spongycastle/asn1/ASN1ObjectIdentifier;
invoke-direct {v1, p1}, Lorg/spongycastle/asn1/ASN1ObjectIdentifier;-><init>(Ljava/lang/String;)V
invoke-virtual {v0, v1}, Lorg/spongycastle/asn1/x509/Extensions;->getExtension(Lorg/spongycastle/asn1/ASN1ObjectIdentifier;)Lorg/spongycastle/asn1/x509/Extension;
move-result-object v0
.line 180
if-eqz v0, :cond_3a
.line 184
:try_start_17
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/Extension;->getExtnValue()Lorg/spongycastle/asn1/ASN1OctetString;
move-result-object v0
invoke-virtual {v0}, Lorg/spongycastle/asn1/ASN1OctetString;->getEncoded()[B
:try_end_1e
.catch Ljava/lang/Exception; {:try_start_17 .. :try_end_1e} :catch_20
move-result-object v0
.line 193
:goto_1f
return-object v0
.line 186
:catch_20
move-exception v0
.line 188
new-instance v1, Ljava/lang/IllegalStateException;
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, "error parsing "
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0}, Ljava/lang/Exception;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v1
.line 193
:cond_3a
const/4 v0, 0x0
goto :goto_1f
.end method
.method public getIssuerDN()Ljava/security/Principal;
.registers 3
.prologue
.line 288
new-instance v0, Lorg/spongycastle/jce/X509Principal;
iget-object v1, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->c:Lorg/spongycastle/asn1/x509/CertificateList;
invoke-virtual {v1}, Lorg/spongycastle/asn1/x509/CertificateList;->getIssuer()Lorg/spongycastle/asn1/x500/X500Name;
move-result-object v1
invoke-virtual {v1}, Lorg/spongycastle/asn1/x500/X500Name;->toASN1Primitive()Lorg/spongycastle/asn1/ASN1Primitive;
move-result-object v1
invoke-static {v1}, Lorg/spongycastle/asn1/x500/X500Name;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/x500/X500Name;
move-result-object v1
invoke-direct {v0, v1}, Lorg/spongycastle/jce/X509Principal;-><init>(Lorg/spongycastle/asn1/x500/X500Name;)V
return-object v0
.end method
.method public getIssuerX500Principal()Ljavax/security/auth/x500/X500Principal;
.registers 3
.prologue
.line 295
:try_start_0
new-instance v0, Ljavax/security/auth/x500/X500Principal;
iget-object v1, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->c:Lorg/spongycastle/asn1/x509/CertificateList;
invoke-virtual {v1}, Lorg/spongycastle/asn1/x509/CertificateList;->getIssuer()Lorg/spongycastle/asn1/x500/X500Name;
move-result-object v1
invoke-virtual {v1}, Lorg/spongycastle/asn1/x500/X500Name;->getEncoded()[B
move-result-object v1
invoke-direct {v0, v1}, Ljavax/security/auth/x500/X500Principal;-><init>([B)V
:try_end_f
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_f} :catch_10
return-object v0
.line 299
:catch_10
move-exception v0
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "can\'t encode issuer DN"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public getNextUpdate()Ljava/util/Date;
.registers 2
.prologue
.line 310
iget-object v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->c:Lorg/spongycastle/asn1/x509/CertificateList;
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/CertificateList;->getNextUpdate()Lorg/spongycastle/asn1/x509/Time;
move-result-object v0
if-eqz v0, :cond_13
.line 312
iget-object v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->c:Lorg/spongycastle/asn1/x509/CertificateList;
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/CertificateList;->getNextUpdate()Lorg/spongycastle/asn1/x509/Time;
move-result-object v0
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/Time;->getDate()Ljava/util/Date;
move-result-object v0
.line 315
:goto_12
return-object v0
:cond_13
const/4 v0, 0x0
goto :goto_12
.end method
.method public getNonCriticalExtensionOIDs()Ljava/util/Set;
.registers 2
.prologue
.line 169
const/4 v0, 0x0
invoke-direct {p0, v0}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->getExtensionOIDs(Z)Ljava/util/Set;
move-result-object v0
return-object v0
.end method
.method public getRevokedCertificate(Ljava/math/BigInteger;)Ljava/security/cert/X509CRLEntry;
.registers 7
.prologue
const/4 v2, 0x0
.line 345
iget-object v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->c:Lorg/spongycastle/asn1/x509/CertificateList;
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/CertificateList;->getRevokedCertificateEnumeration()Ljava/util/Enumeration;
move-result-object v3
move-object v1, v2
.line 348
:goto_8
invoke-interface {v3}, Ljava/util/Enumeration;->hasMoreElements()Z
move-result v0
if-eqz v0, :cond_29
.line 350
invoke-interface {v3}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lorg/spongycastle/asn1/x509/TBSCertList$CRLEntry;
.line 352
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/TBSCertList$CRLEntry;->getUserCertificate()Lorg/spongycastle/asn1/ASN1Integer;
move-result-object v4
invoke-virtual {v4}, Lorg/spongycastle/asn1/ASN1Integer;->getValue()Ljava/math/BigInteger;
move-result-object v4
invoke-virtual {p1, v4}, Ljava/math/BigInteger;->equals(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_2a
.line 354
new-instance v2, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLEntryObject;
iget-boolean v3, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->isIndirect:Z
invoke-direct {v2, v0, v3, v1}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLEntryObject;-><init>(Lorg/spongycastle/asn1/x509/TBSCertList$CRLEntry;ZLorg/spongycastle/asn1/x500/X500Name;)V
.line 368
:cond_29
return-object v2
.line 357
:cond_2a
iget-boolean v4, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->isIndirect:Z
if-eqz v4, :cond_59
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/TBSCertList$CRLEntry;->hasExtensions()Z
move-result v4
if-eqz v4, :cond_59
.line 359
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/TBSCertList$CRLEntry;->getExtensions()Lorg/spongycastle/asn1/x509/Extensions;
move-result-object v0
sget-object v4, Lorg/spongycastle/asn1/x509/Extension;->certificateIssuer:Lorg/spongycastle/asn1/ASN1ObjectIdentifier;
invoke-virtual {v0, v4}, Lorg/spongycastle/asn1/x509/Extensions;->getExtension(Lorg/spongycastle/asn1/ASN1ObjectIdentifier;)Lorg/spongycastle/asn1/x509/Extension;
move-result-object v0
.line 361
if-eqz v0, :cond_59
.line 363
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/Extension;->getParsedValue()Lorg/spongycastle/asn1/ASN1Encodable;
move-result-object v0
invoke-static {v0}, Lorg/spongycastle/asn1/x509/GeneralNames;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/x509/GeneralNames;
move-result-object v0
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/GeneralNames;->getNames()[Lorg/spongycastle/asn1/x509/GeneralName;
move-result-object v0
const/4 v1, 0x0
aget-object v0, v0, v1
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/GeneralName;->getName()Lorg/spongycastle/asn1/ASN1Encodable;
move-result-object v0
invoke-static {v0}, Lorg/spongycastle/asn1/x500/X500Name;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/x500/X500Name;
move-result-object v0
:goto_57
move-object v1, v0
.line 366
goto :goto_8
:cond_59
move-object v0, v1
goto :goto_57
.end method
.method public getRevokedCertificates()Ljava/util/Set;
.registers 3
.prologue
.line 373
invoke-direct {p0}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->loadCRLEntries()Ljava/util/Set;
move-result-object v0
.line 375
invoke-interface {v0}, Ljava/util/Set;->isEmpty()Z
move-result v1
if-nez v1, :cond_f
.line 377
invoke-static {v0}, Ljava/util/Collections;->unmodifiableSet(Ljava/util/Set;)Ljava/util/Set;
move-result-object v0
.line 380
:goto_e
return-object v0
:cond_f
const/4 v0, 0x0
goto :goto_e
.end method
.method public getSigAlgName()Ljava/lang/String;
.registers 2
.prologue
.line 403
iget-object v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->sigAlgName:Ljava/lang/String;
return-object v0
.end method
.method public getSigAlgOID()Ljava/lang/String;
.registers 2
.prologue
.line 408
iget-object v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->c:Lorg/spongycastle/asn1/x509/CertificateList;
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/CertificateList;->getSignatureAlgorithm()Lorg/spongycastle/asn1/x509/AlgorithmIdentifier;
move-result-object v0
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/AlgorithmIdentifier;->getAlgorithm()Lorg/spongycastle/asn1/ASN1ObjectIdentifier;
move-result-object v0
invoke-virtual {v0}, Lorg/spongycastle/asn1/ASN1ObjectIdentifier;->getId()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public getSigAlgParams()[B
.registers 5
.prologue
const/4 v3, 0x0
.line 413
iget-object v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->sigAlgParams:[B
if-eqz v0, :cond_11
.line 415
iget-object v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->sigAlgParams:[B
array-length v0, v0
new-array v0, v0, [B
.line 417
iget-object v1, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->sigAlgParams:[B
array-length v2, v0
invoke-static {v1, v3, v0, v3, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 422
:goto_10
return-object v0
:cond_11
const/4 v0, 0x0
goto :goto_10
.end method
.method public getSignature()[B
.registers 2
.prologue
.line 398
iget-object v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->c:Lorg/spongycastle/asn1/x509/CertificateList;
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/CertificateList;->getSignature()Lorg/spongycastle/asn1/DERBitString;
move-result-object v0
invoke-virtual {v0}, Lorg/spongycastle/asn1/DERBitString;->getOctets()[B
move-result-object v0
return-object v0
.end method
.method public getTBSCertList()[B
.registers 3
.prologue
.line 388
:try_start_0
iget-object v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->c:Lorg/spongycastle/asn1/x509/CertificateList;
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/CertificateList;->getTBSCertList()Lorg/spongycastle/asn1/x509/TBSCertList;
move-result-object v0
const-string v1, "DER"
invoke-virtual {v0, v1}, Lorg/spongycastle/asn1/x509/TBSCertList;->getEncoded(Ljava/lang/String;)[B
:try_end_b
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_b} :catch_d
move-result-object v0
return-object v0
.line 390
:catch_d
move-exception v0
.line 392
new-instance v1, Ljava/security/cert/CRLException;
invoke-virtual {v0}, Ljava/io/IOException;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0}, Ljava/security/cert/CRLException;-><init>(Ljava/lang/String;)V
throw v1
.end method
.method public getThisUpdate()Ljava/util/Date;
.registers 2
.prologue
.line 305
iget-object v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->c:Lorg/spongycastle/asn1/x509/CertificateList;
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/CertificateList;->getThisUpdate()Lorg/spongycastle/asn1/x509/Time;
move-result-object v0
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/Time;->getDate()Ljava/util/Date;
move-result-object v0
return-object v0
.end method
.method public getVersion()I
.registers 2
.prologue
.line 283
iget-object v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->c:Lorg/spongycastle/asn1/x509/CertificateList;
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/CertificateList;->getVersionNumber()I
move-result v0
return v0
.end method
.method public hasUnsupportedCriticalExtension()Z
.registers 4
.prologue
const/4 v0, 0x0
.line 120
invoke-virtual {p0}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->getCriticalExtensionOIDs()Ljava/util/Set;
move-result-object v1
.line 122
if-nez v1, :cond_8
.line 130
:cond_7
:goto_7
return v0
.line 127
:cond_8
sget-object v2, Lorg/spongycastle/asn1/x509/Extension;->issuingDistributionPoint:Lorg/spongycastle/asn1/ASN1ObjectIdentifier;
invoke-virtual {v2}, Lorg/spongycastle/asn1/ASN1ObjectIdentifier;->getId()Ljava/lang/String;
move-result-object v2
invoke-interface {v1, v2}, Ljava/util/Set;->remove(Ljava/lang/Object;)Z
.line 128
sget-object v2, Lorg/spongycastle/asn1/x509/Extension;->deltaCRLIndicator:Lorg/spongycastle/asn1/ASN1ObjectIdentifier;
invoke-virtual {v2}, Lorg/spongycastle/asn1/ASN1ObjectIdentifier;->getId()Ljava/lang/String;
move-result-object v2
invoke-interface {v1, v2}, Ljava/util/Set;->remove(Ljava/lang/Object;)Z
.line 130
invoke-interface {v1}, Ljava/util/Set;->isEmpty()Z
move-result v1
if-nez v1, :cond_7
const/4 v0, 0x1
goto :goto_7
.end method
.method public hashCode()I
.registers 2
.prologue
.line 658
iget-boolean v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->isHashCodeSet:Z
if-nez v0, :cond_d
.line 660
const/4 v0, 0x1
iput-boolean v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->isHashCodeSet:Z
.line 661
invoke-super {p0}, Ljava/security/cert/X509CRL;->hashCode()I
move-result v0
iput v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->hashCodeValue:I
.line 664
:cond_d
iget v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->hashCodeValue:I
return v0
.end method
.method public isRevoked(Ljava/security/cert/Certificate;)Z
.registers 9
.prologue
const/4 v2, 0x0
.line 562
invoke-virtual {p1}, Ljava/security/cert/Certificate;->getType()Ljava/lang/String;
move-result-object v0
const-string v1, "X.509"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_15
.line 564
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "X.509 CRL used with non X.509 Cert"
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.line 567
:cond_15
iget-object v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->c:Lorg/spongycastle/asn1/x509/CertificateList;
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/CertificateList;->getRevokedCertificateEnumeration()Ljava/util/Enumeration;
move-result-object v3
.line 569
iget-object v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->c:Lorg/spongycastle/asn1/x509/CertificateList;
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/CertificateList;->getIssuer()Lorg/spongycastle/asn1/x500/X500Name;
move-result-object v1
.line 571
invoke-interface {v3}, Ljava/util/Enumeration;->hasMoreElements()Z
move-result v0
if-eqz v0, :cond_ba
move-object v0, p1
.line 573
check-cast v0, Ljava/security/cert/X509Certificate;
invoke-virtual {v0}, Ljava/security/cert/X509Certificate;->getSerialNumber()Ljava/math/BigInteger;
move-result-object v4
move-object v0, v1
.line 575
:cond_2f
invoke-interface {v3}, Ljava/util/Enumeration;->hasMoreElements()Z
move-result v1
if-eqz v1, :cond_ba
.line 577
invoke-interface {v3}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;
move-result-object v1
invoke-static {v1}, Lorg/spongycastle/asn1/x509/TBSCertList$CRLEntry;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/x509/TBSCertList$CRLEntry;
move-result-object v1
.line 579
iget-boolean v5, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->isIndirect:Z
if-eqz v5, :cond_69
invoke-virtual {v1}, Lorg/spongycastle/asn1/x509/TBSCertList$CRLEntry;->hasExtensions()Z
move-result v5
if-eqz v5, :cond_69
.line 581
invoke-virtual {v1}, Lorg/spongycastle/asn1/x509/TBSCertList$CRLEntry;->getExtensions()Lorg/spongycastle/asn1/x509/Extensions;
move-result-object v5
sget-object v6, Lorg/spongycastle/asn1/x509/Extension;->certificateIssuer:Lorg/spongycastle/asn1/ASN1ObjectIdentifier;
invoke-virtual {v5, v6}, Lorg/spongycastle/asn1/x509/Extensions;->getExtension(Lorg/spongycastle/asn1/ASN1ObjectIdentifier;)Lorg/spongycastle/asn1/x509/Extension;
move-result-object v5
.line 583
if-eqz v5, :cond_69
.line 585
invoke-virtual {v5}, Lorg/spongycastle/asn1/x509/Extension;->getParsedValue()Lorg/spongycastle/asn1/ASN1Encodable;
move-result-object v0
invoke-static {v0}, Lorg/spongycastle/asn1/x509/GeneralNames;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/x509/GeneralNames;
move-result-object v0
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/GeneralNames;->getNames()[Lorg/spongycastle/asn1/x509/GeneralName;
move-result-object v0
aget-object v0, v0, v2
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/GeneralName;->getName()Lorg/spongycastle/asn1/ASN1Encodable;
move-result-object v0
invoke-static {v0}, Lorg/spongycastle/asn1/x500/X500Name;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/x500/X500Name;
move-result-object v0
.line 589
:cond_69
invoke-virtual {v1}, Lorg/spongycastle/asn1/x509/TBSCertList$CRLEntry;->getUserCertificate()Lorg/spongycastle/asn1/ASN1Integer;
move-result-object v1
invoke-virtual {v1}, Lorg/spongycastle/asn1/ASN1Integer;->getValue()Ljava/math/BigInteger;
move-result-object v1
invoke-virtual {v1, v4}, Ljava/math/BigInteger;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_2f
.line 593
instance-of v1, p1, Ljava/security/cert/X509Certificate;
if-eqz v1, :cond_91
.line 595
check-cast p1, Ljava/security/cert/X509Certificate;
invoke-virtual {p1}, Ljava/security/cert/X509Certificate;->getIssuerX500Principal()Ljavax/security/auth/x500/X500Principal;
move-result-object v1
invoke-virtual {v1}, Ljavax/security/auth/x500/X500Principal;->getEncoded()[B
move-result-object v1
invoke-static {v1}, Lorg/spongycastle/asn1/x500/X500Name;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/x500/X500Name;
move-result-object v1
.line 609
:goto_89
invoke-virtual {v0, v1}, Lorg/spongycastle/asn1/x500/X500Name;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_b8
move v0, v2
.line 619
:goto_90
return v0
.line 601
:cond_91
:try_start_91
invoke-virtual {p1}, Ljava/security/cert/Certificate;->getEncoded()[B
move-result-object v1
invoke-static {v1}, Lorg/spongycastle/asn1/x509/Certificate;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/x509/Certificate;
move-result-object v1
invoke-virtual {v1}, Lorg/spongycastle/asn1/x509/Certificate;->getIssuer()Lorg/spongycastle/asn1/x500/X500Name;
:try_end_9c
.catch Ljava/security/cert/CertificateEncodingException; {:try_start_91 .. :try_end_9c} :catch_9e
move-result-object v1
goto :goto_89
.line 603
:catch_9e
move-exception v0
.line 605
new-instance v1, Ljava/lang/IllegalArgumentException;
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, "Cannot process certificate: "
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0}, Ljava/security/cert/CertificateEncodingException;->getMessage()Ljava/lang/String;
move-result-object v0
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v1
.line 614
:cond_b8
const/4 v0, 0x1
goto :goto_90
:cond_ba
move v0, v2
.line 619
goto :goto_90
.end method
.method public toString()Ljava/lang/String;
.registers 9
.prologue
const/16 v1, 0x14
.line 432
new-instance v2, Ljava/lang/StringBuffer;
invoke-direct {v2}, Ljava/lang/StringBuffer;-><init>()V
.line 433
invoke-static {}, Lorg/spongycastle/util/Strings;->lineSeparator()Ljava/lang/String;
move-result-object v3
.line 435
const-string v0, " Version: "
invoke-virtual {v2, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
invoke-virtual {p0}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->getVersion()I
move-result v4
invoke-virtual {v0, v4}, Ljava/lang/StringBuffer;->append(I)Ljava/lang/StringBuffer;
move-result-object v0
invoke-virtual {v0, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 437
const-string v0, " IssuerDN: "
invoke-virtual {v2, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
invoke-virtual {p0}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->getIssuerDN()Ljava/security/Principal;
move-result-object v4
invoke-virtual {v0, v4}, Ljava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;
move-result-object v0
.line 438
invoke-virtual {v0, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 439
const-string v0, " This update: "
invoke-virtual {v2, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
invoke-virtual {p0}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->getThisUpdate()Ljava/util/Date;
move-result-object v4
invoke-virtual {v0, v4}, Ljava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;
move-result-object v0
.line 440
invoke-virtual {v0, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 441
const-string v0, " Next update: "
invoke-virtual {v2, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
invoke-virtual {p0}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->getNextUpdate()Ljava/util/Date;
move-result-object v4
invoke-virtual {v0, v4}, Ljava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;
move-result-object v0
.line 442
invoke-virtual {v0, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 443
const-string v0, " Signature Algorithm: "
invoke-virtual {v2, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
invoke-virtual {p0}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->getSigAlgName()Ljava/lang/String;
move-result-object v4
invoke-virtual {v0, v4}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
.line 444
invoke-virtual {v0, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 446
invoke-virtual {p0}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->getSignature()[B
move-result-object v4
.line 448
const-string v0, " Signature: "
invoke-virtual {v2, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
new-instance v5, Ljava/lang/String;
const/4 v6, 0x0
.line 449
invoke-static {v4, v6, v1}, Lorg/spongycastle/util/encoders/Hex;->encode([BII)[B
move-result-object v6
invoke-direct {v5, v6}, Ljava/lang/String;-><init>([B)V
.line 448
invoke-virtual {v0, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
.line 449
invoke-virtual {v0, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move v0, v1
.line 450
:goto_7c
array-length v5, v4
if-ge v0, v5, :cond_b6
.line 452
array-length v5, v4
add-int/lit8 v5, v5, -0x14
if-ge v0, v5, :cond_9d
.line 454
const-string v5, " "
invoke-virtual {v2, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
new-instance v6, Ljava/lang/String;
.line 455
invoke-static {v4, v0, v1}, Lorg/spongycastle/util/encoders/Hex;->encode([BII)[B
move-result-object v7
invoke-direct {v6, v7}, Ljava/lang/String;-><init>([B)V
.line 454
invoke-virtual {v5, v6}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
.line 455
invoke-virtual {v5, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 450
:goto_9a
add-int/lit8 v0, v0, 0x14
goto :goto_7c
.line 459
:cond_9d
const-string v5, " "
invoke-virtual {v2, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
new-instance v6, Ljava/lang/String;
array-length v7, v4
sub-int/2addr v7, v0
.line 460
invoke-static {v4, v0, v7}, Lorg/spongycastle/util/encoders/Hex;->encode([BII)[B
move-result-object v7
invoke-direct {v6, v7}, Ljava/lang/String;-><init>([B)V
.line 459
invoke-virtual {v5, v6}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
.line 460
invoke-virtual {v5, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
goto :goto_9a
.line 464
:cond_b6
iget-object v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->c:Lorg/spongycastle/asn1/x509/CertificateList;
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/CertificateList;->getTBSCertList()Lorg/spongycastle/asn1/x509/TBSCertList;
move-result-object v0
invoke-virtual {v0}, Lorg/spongycastle/asn1/x509/TBSCertList;->getExtensions()Lorg/spongycastle/asn1/x509/Extensions;
move-result-object v1
.line 466
if-eqz v1, :cond_1dd
.line 468
invoke-virtual {v1}, Lorg/spongycastle/asn1/x509/Extensions;->oids()Ljava/util/Enumeration;
move-result-object v4
.line 470
invoke-interface {v4}, Ljava/util/Enumeration;->hasMoreElements()Z
move-result v0
if-eqz v0, :cond_d5
.line 472
const-string v0, " Extensions: "
invoke-virtual {v2, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
invoke-virtual {v0, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 475
:cond_d5
:goto_d5
invoke-interface {v4}, Ljava/util/Enumeration;->hasMoreElements()Z
move-result v0
if-eqz v0, :cond_1dd
.line 477
invoke-interface {v4}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lorg/spongycastle/asn1/ASN1ObjectIdentifier;
.line 478
invoke-virtual {v1, v0}, Lorg/spongycastle/asn1/x509/Extensions;->getExtension(Lorg/spongycastle/asn1/ASN1ObjectIdentifier;)Lorg/spongycastle/asn1/x509/Extension;
move-result-object v5
.line 480
invoke-virtual {v5}, Lorg/spongycastle/asn1/x509/Extension;->getExtnValue()Lorg/spongycastle/asn1/ASN1OctetString;
move-result-object v6
if-eqz v6, :cond_1d8
.line 482
invoke-virtual {v5}, Lorg/spongycastle/asn1/x509/Extension;->getExtnValue()Lorg/spongycastle/asn1/ASN1OctetString;
move-result-object v6
invoke-virtual {v6}, Lorg/spongycastle/asn1/ASN1OctetString;->getOctets()[B
move-result-object v6
.line 483
new-instance v7, Lorg/spongycastle/asn1/ASN1InputStream;
invoke-direct {v7, v6}, Lorg/spongycastle/asn1/ASN1InputStream;-><init>([B)V
.line 484
const-string v6, " critical("
invoke-virtual {v2, v6}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v6
.line 485
invoke-virtual {v5}, Lorg/spongycastle/asn1/x509/Extension;->isCritical()Z
move-result v5
.line 484
invoke-virtual {v6, v5}, Ljava/lang/StringBuffer;->append(Z)Ljava/lang/StringBuffer;
move-result-object v5
const-string v6, ") "
.line 485
invoke-virtual {v5, v6}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 488
:try_start_10b
sget-object v5, Lorg/spongycastle/asn1/x509/Extension;->cRLNumber:Lorg/spongycastle/asn1/ASN1ObjectIdentifier;
invoke-virtual {v0, v5}, Lorg/spongycastle/asn1/ASN1ObjectIdentifier;->equals(Ljava/lang/Object;)Z
move-result v5
if-eqz v5, :cond_13e
.line 490
new-instance v5, Lorg/spongycastle/asn1/x509/CRLNumber;
.line 492
invoke-virtual {v7}, Lorg/spongycastle/asn1/ASN1InputStream;->readObject()Lorg/spongycastle/asn1/ASN1Primitive;
move-result-object v6
.line 491
invoke-static {v6}, Lorg/spongycastle/asn1/ASN1Integer;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/ASN1Integer;
move-result-object v6
.line 492
invoke-virtual {v6}, Lorg/spongycastle/asn1/ASN1Integer;->getPositiveValue()Ljava/math/BigInteger;
move-result-object v6
invoke-direct {v5, v6}, Lorg/spongycastle/asn1/x509/CRLNumber;-><init>(Ljava/math/BigInteger;)V
.line 490
invoke-virtual {v2, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;
move-result-object v5
.line 493
invoke-virtual {v5, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
:try_end_12b
.catch Ljava/lang/Exception; {:try_start_10b .. :try_end_12b} :catch_12c
goto :goto_d5
.line 530
:catch_12c
move-exception v5
invoke-virtual {v0}, Lorg/spongycastle/asn1/ASN1ObjectIdentifier;->getId()Ljava/lang/String;
move-result-object v0
invoke-virtual {v2, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 531
const-string v0, " value = *****"
invoke-virtual {v2, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
invoke-virtual {v0, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
goto :goto_d5
.line 495
:cond_13e
:try_start_13e
sget-object v5, Lorg/spongycastle/asn1/x509/Extension;->deltaCRLIndicator:Lorg/spongycastle/asn1/ASN1ObjectIdentifier;
invoke-virtual {v0, v5}, Lorg/spongycastle/asn1/ASN1ObjectIdentifier;->equals(Ljava/lang/Object;)Z
move-result v5
if-eqz v5, :cond_16f
.line 497
new-instance v5, Ljava/lang/StringBuilder;
const-string v6, "Base CRL: "
invoke-direct {v5, v6}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
new-instance v6, Lorg/spongycastle/asn1/x509/CRLNumber;
.line 500
invoke-virtual {v7}, Lorg/spongycastle/asn1/ASN1InputStream;->readObject()Lorg/spongycastle/asn1/ASN1Primitive;
move-result-object v7
.line 499
invoke-static {v7}, Lorg/spongycastle/asn1/ASN1Integer;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/ASN1Integer;
move-result-object v7
.line 500
invoke-virtual {v7}, Lorg/spongycastle/asn1/ASN1Integer;->getPositiveValue()Ljava/math/BigInteger;
move-result-object v7
invoke-direct {v6, v7}, Lorg/spongycastle/asn1/x509/CRLNumber;-><init>(Ljava/math/BigInteger;)V
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
.line 497
invoke-virtual {v2, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
.line 501
invoke-virtual {v5, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
goto/16 :goto_d5
.line 503
:cond_16f
sget-object v5, Lorg/spongycastle/asn1/x509/Extension;->issuingDistributionPoint:Lorg/spongycastle/asn1/ASN1ObjectIdentifier;
.line 504
invoke-virtual {v0, v5}, Lorg/spongycastle/asn1/ASN1ObjectIdentifier;->equals(Ljava/lang/Object;)Z
move-result v5
if-eqz v5, :cond_188
.line 507
invoke-virtual {v7}, Lorg/spongycastle/asn1/ASN1InputStream;->readObject()Lorg/spongycastle/asn1/ASN1Primitive;
move-result-object v5
invoke-static {v5}, Lorg/spongycastle/asn1/x509/IssuingDistributionPoint;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/x509/IssuingDistributionPoint;
move-result-object v5
.line 506
invoke-virtual {v2, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;
move-result-object v5
.line 507
invoke-virtual {v5, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
goto/16 :goto_d5
.line 509
:cond_188
sget-object v5, Lorg/spongycastle/asn1/x509/Extension;->cRLDistributionPoints:Lorg/spongycastle/asn1/ASN1ObjectIdentifier;
.line 510
invoke-virtual {v0, v5}, Lorg/spongycastle/asn1/ASN1ObjectIdentifier;->equals(Ljava/lang/Object;)Z
move-result v5
if-eqz v5, :cond_1a1
.line 513
invoke-virtual {v7}, Lorg/spongycastle/asn1/ASN1InputStream;->readObject()Lorg/spongycastle/asn1/ASN1Primitive;
move-result-object v5
invoke-static {v5}, Lorg/spongycastle/asn1/x509/CRLDistPoint;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/x509/CRLDistPoint;
move-result-object v5
.line 512
invoke-virtual {v2, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;
move-result-object v5
.line 513
invoke-virtual {v5, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
goto/16 :goto_d5
.line 515
:cond_1a1
sget-object v5, Lorg/spongycastle/asn1/x509/Extension;->freshestCRL:Lorg/spongycastle/asn1/ASN1ObjectIdentifier;
invoke-virtual {v0, v5}, Lorg/spongycastle/asn1/ASN1ObjectIdentifier;->equals(Ljava/lang/Object;)Z
move-result v5
if-eqz v5, :cond_1ba
.line 518
invoke-virtual {v7}, Lorg/spongycastle/asn1/ASN1InputStream;->readObject()Lorg/spongycastle/asn1/ASN1Primitive;
move-result-object v5
invoke-static {v5}, Lorg/spongycastle/asn1/x509/CRLDistPoint;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/x509/CRLDistPoint;
move-result-object v5
.line 517
invoke-virtual {v2, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;
move-result-object v5
.line 518
invoke-virtual {v5, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
goto/16 :goto_d5
.line 522
:cond_1ba
invoke-virtual {v0}, Lorg/spongycastle/asn1/ASN1ObjectIdentifier;->getId()Ljava/lang/String;
move-result-object v5
invoke-virtual {v2, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 523
const-string v5, " value = "
invoke-virtual {v2, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
.line 524
invoke-virtual {v7}, Lorg/spongycastle/asn1/ASN1InputStream;->readObject()Lorg/spongycastle/asn1/ASN1Primitive;
move-result-object v6
invoke-static {v6}, Lorg/spongycastle/asn1/util/ASN1Dump;->dumpAsString(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v6
.line 523
invoke-virtual {v5, v6}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v5
.line 525
invoke-virtual {v5, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
:try_end_1d6
.catch Ljava/lang/Exception; {:try_start_13e .. :try_end_1d6} :catch_12c
goto/16 :goto_d5
.line 536
:cond_1d8
invoke-virtual {v2, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
goto/16 :goto_d5
.line 540
:cond_1dd
invoke-virtual {p0}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->getRevokedCertificates()Ljava/util/Set;
move-result-object v0
.line 541
if-eqz v0, :cond_1f8
.line 543
invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v0
.line 544
:goto_1e7
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_1f8
.line 546
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
invoke-virtual {v2, v1}, Ljava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;
.line 547
invoke-virtual {v2, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
goto :goto_1e7
.line 550
:cond_1f8
invoke-virtual {v2}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public verify(Ljava/security/PublicKey;)V
.registers 4
.prologue
.line 217
:try_start_0
iget-object v0, p0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->bcHelper:Lorg/spongycastle/jcajce/util/JcaJceHelper;
invoke-virtual {p0}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->getSigAlgName()Ljava/lang/String;
move-result-object v1
invoke-interface {v0, v1}, Lorg/spongycastle/jcajce/util/JcaJceHelper;->createSignature(Ljava/lang/String;)Ljava/security/Signature;
:try_end_9
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_9} :catch_e
move-result-object v0
.line 224
:goto_a
invoke-direct {p0, p1, v0}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->doVerify(Ljava/security/PublicKey;Ljava/security/Signature;)V
.line 225
return-void
.line 221
:catch_e
move-exception v0
invoke-virtual {p0}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->getSigAlgName()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/security/Signature;->getInstance(Ljava/lang/String;)Ljava/security/Signature;
move-result-object v0
goto :goto_a
.end method
.method public verify(Ljava/security/PublicKey;Ljava/lang/String;)V
.registers 4
.prologue
.line 233
if-eqz p2, :cond_e
.line 235
invoke-virtual {p0}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->getSigAlgName()Ljava/lang/String;
move-result-object v0
invoke-static {v0, p2}, Ljava/security/Signature;->getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/Signature;
move-result-object v0
.line 242
:goto_a
invoke-direct {p0, p1, v0}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->doVerify(Ljava/security/PublicKey;Ljava/security/Signature;)V
.line 243
return-void
.line 239
:cond_e
invoke-virtual {p0}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->getSigAlgName()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/security/Signature;->getInstance(Ljava/lang/String;)Ljava/security/Signature;
move-result-object v0
goto :goto_a
.end method
.method public verify(Ljava/security/PublicKey;Ljava/security/Provider;)V
.registers 4
.prologue
.line 251
if-eqz p2, :cond_e
.line 253
invoke-virtual {p0}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->getSigAlgName()Ljava/lang/String;
move-result-object v0
invoke-static {v0, p2}, Ljava/security/Signature;->getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/Signature;
move-result-object v0
.line 260
:goto_a
invoke-direct {p0, p1, v0}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->doVerify(Ljava/security/PublicKey;Ljava/security/Signature;)V
.line 261
return-void
.line 257
:cond_e
invoke-virtual {p0}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/X509CRLObject;->getSigAlgName()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/security/Signature;->getInstance(Ljava/lang/String;)Ljava/security/Signature;
move-result-object v0
goto :goto_a
.end method