PKIXCertPathBuilderSpi.smali
.class public Lorg/spongycastle/jce/provider/PKIXCertPathBuilderSpi;
.super Ljava/security/cert/CertPathBuilderSpi;
.source "PKIXCertPathBuilderSpi.java"
# instance fields
.field private certPathException:Ljava/lang/Exception;
# direct methods
.method public constructor <init>()V
.registers 1
.prologue
.line 35
invoke-direct {p0}, Ljava/security/cert/CertPathBuilderSpi;-><init>()V
return-void
.end method
# virtual methods
.method protected build(Ljava/security/cert/X509Certificate;Lorg/spongycastle/jcajce/PKIXExtendedBuilderParameters;Ljava/util/List;)Ljava/security/cert/CertPathBuilderResult;
.registers 10
.prologue
const/4 v1, 0x0
.line 151
invoke-interface {p3, p1}, Ljava/util/List;->contains(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_9
move-object v0, v1
.line 278
:cond_8
:goto_8
return-object v0
.line 157
:cond_9
invoke-virtual {p2}, Lorg/spongycastle/jcajce/PKIXExtendedBuilderParameters;->getExcludedCerts()Ljava/util/Set;
move-result-object v0
invoke-interface {v0, p1}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_15
move-object v0, v1
.line 159
goto :goto_8
.line 162
:cond_15
invoke-virtual {p2}, Lorg/spongycastle/jcajce/PKIXExtendedBuilderParameters;->getMaxPathLength()I
move-result v0
const/4 v2, -0x1
if-eq v0, v2, :cond_2a
.line 164
invoke-interface {p3}, Ljava/util/List;->size()I
move-result v0
add-int/lit8 v0, v0, -0x1
invoke-virtual {p2}, Lorg/spongycastle/jcajce/PKIXExtendedBuilderParameters;->getMaxPathLength()I
move-result v2
if-le v0, v2, :cond_2a
move-object v0, v1
.line 166
goto :goto_8
.line 170
:cond_2a
invoke-interface {p3, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 178
:try_start_2d
new-instance v0, Lorg/spongycastle/jcajce/provider/asymmetric/x509/CertificateFactory;
invoke-direct {v0}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/CertificateFactory;-><init>()V
.line 179
new-instance v2, Lorg/spongycastle/jce/provider/PKIXCertPathValidatorSpi;
invoke-direct {v2}, Lorg/spongycastle/jce/provider/PKIXCertPathValidatorSpi;-><init>()V
:try_end_37
.catch Ljava/lang/Exception; {:try_start_2d .. :try_end_37} :catch_6a
.line 190
:try_start_37
invoke-virtual {p2}, Lorg/spongycastle/jcajce/PKIXExtendedBuilderParameters;->getBaseParameters()Lorg/spongycastle/jcajce/PKIXExtendedParameters;
move-result-object v3
invoke-virtual {v3}, Lorg/spongycastle/jcajce/PKIXExtendedParameters;->getTrustAnchors()Ljava/util/Set;
move-result-object v3
.line 191
invoke-virtual {p2}, Lorg/spongycastle/jcajce/PKIXExtendedBuilderParameters;->getBaseParameters()Lorg/spongycastle/jcajce/PKIXExtendedParameters;
move-result-object v4
invoke-virtual {v4}, Lorg/spongycastle/jcajce/PKIXExtendedParameters;->getSigProvider()Ljava/lang/String;
move-result-object v4
.line 190
invoke-static {p1, v3, v4}, Lorg/spongycastle/jce/provider/CertPathValidatorUtilities;->findTrustAnchor(Ljava/security/cert/X509Certificate;Ljava/util/Set;Ljava/lang/String;)Ljava/security/cert/TrustAnchor;
:try_end_4a
.catch Lorg/spongycastle/jce/provider/AnnotatedException; {:try_start_37 .. :try_end_4a} :catch_7c
move-result-object v3
if-eqz v3, :cond_8f
.line 199
:try_start_4d
invoke-virtual {v0, p3}, Lorg/spongycastle/jcajce/provider/asymmetric/x509/CertificateFactory;->engineGenerateCertPath(Ljava/util/List;)Ljava/security/cert/CertPath;
:try_end_50
.catch Ljava/lang/Exception; {:try_start_4d .. :try_end_50} :catch_73
.catch Lorg/spongycastle/jce/provider/AnnotatedException; {:try_start_4d .. :try_end_50} :catch_7c
move-result-object v3
.line 210
:try_start_51
invoke-virtual {v2, v3, p2}, Lorg/spongycastle/jce/provider/PKIXCertPathValidatorSpi;->engineValidate(Ljava/security/cert/CertPath;Ljava/security/cert/CertPathParameters;)Ljava/security/cert/CertPathValidatorResult;
move-result-object v0
check-cast v0, Ljava/security/cert/PKIXCertPathValidatorResult;
:try_end_57
.catch Ljava/lang/Exception; {:try_start_51 .. :try_end_57} :catch_86
.catch Lorg/spongycastle/jce/provider/AnnotatedException; {:try_start_51 .. :try_end_57} :catch_7c
.line 219
:try_start_57
new-instance v2, Ljava/security/cert/PKIXCertPathBuilderResult;
.line 220
invoke-virtual {v0}, Ljava/security/cert/PKIXCertPathValidatorResult;->getTrustAnchor()Ljava/security/cert/TrustAnchor;
move-result-object v4
invoke-virtual {v0}, Ljava/security/cert/PKIXCertPathValidatorResult;->getPolicyTree()Ljava/security/cert/PolicyNode;
move-result-object v5
.line 221
invoke-virtual {v0}, Ljava/security/cert/PKIXCertPathValidatorResult;->getPublicKey()Ljava/security/PublicKey;
move-result-object v0
invoke-direct {v2, v3, v4, v5, v0}, Ljava/security/cert/PKIXCertPathBuilderResult;-><init>(Ljava/security/cert/CertPath;Ljava/security/cert/TrustAnchor;Ljava/security/cert/PolicyNode;Ljava/security/PublicKey;)V
:try_end_68
.catch Lorg/spongycastle/jce/provider/AnnotatedException; {:try_start_57 .. :try_end_68} :catch_7c
move-object v0, v2
goto :goto_8
.line 184
:catch_6a
move-exception v0
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "Exception creating support classes."
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
.line 201
:catch_73
move-exception v0
.line 203
:try_start_74
new-instance v2, Lorg/spongycastle/jce/provider/AnnotatedException;
const-string v3, "Certification path could not be constructed from certificate list."
invoke-direct {v2, v3, v0}, Lorg/spongycastle/jce/provider/AnnotatedException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v2
:try_end_7c
.catch Lorg/spongycastle/jce/provider/AnnotatedException; {:try_start_74 .. :try_end_7c} :catch_7c
.line 270
:catch_7c
move-exception v0
.line 272
iput-object v0, p0, Lorg/spongycastle/jce/provider/PKIXCertPathBuilderSpi;->certPathException:Ljava/lang/Exception;
move-object v0, v1
.line 274
:goto_80
if-nez v0, :cond_8
.line 276
invoke-interface {p3, p1}, Ljava/util/List;->remove(Ljava/lang/Object;)Z
goto :goto_8
.line 213
:catch_86
move-exception v0
.line 215
:try_start_87
new-instance v2, Lorg/spongycastle/jce/provider/AnnotatedException;
const-string v3, "Certification path could not be validated."
invoke-direct {v2, v3, v0}, Lorg/spongycastle/jce/provider/AnnotatedException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v2
.line 226
:cond_8f
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 229
invoke-virtual {p2}, Lorg/spongycastle/jcajce/PKIXExtendedBuilderParameters;->getBaseParameters()Lorg/spongycastle/jcajce/PKIXExtendedParameters;
move-result-object v2
invoke-virtual {v2}, Lorg/spongycastle/jcajce/PKIXExtendedParameters;->getCertificateStores()Ljava/util/List;
move-result-object v2
invoke-interface {v0, v2}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z
:try_end_9f
.catch Lorg/spongycastle/jce/provider/AnnotatedException; {:try_start_87 .. :try_end_9f} :catch_7c
.line 234
:try_start_9f
sget-object v2, Lorg/spongycastle/asn1/x509/Extension;->issuerAlternativeName:Lorg/spongycastle/asn1/ASN1ObjectIdentifier;
.line 235
invoke-virtual {v2}, Lorg/spongycastle/asn1/ASN1ObjectIdentifier;->getId()Ljava/lang/String;
move-result-object v2
invoke-virtual {p1, v2}, Ljava/security/cert/X509Certificate;->getExtensionValue(Ljava/lang/String;)[B
move-result-object v2
invoke-virtual {p2}, Lorg/spongycastle/jcajce/PKIXExtendedBuilderParameters;->getBaseParameters()Lorg/spongycastle/jcajce/PKIXExtendedParameters;
move-result-object v3
invoke-virtual {v3}, Lorg/spongycastle/jcajce/PKIXExtendedParameters;->getNamedCertificateStoreMap()Ljava/util/Map;
move-result-object v3
.line 234
invoke-static {v2, v3}, Lorg/spongycastle/jce/provider/CertPathValidatorUtilities;->getAdditionalStoresFromAltNames([BLjava/util/Map;)Ljava/util/List;
move-result-object v2
invoke-interface {v0, v2}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z
:try_end_b8
.catch Ljava/security/cert/CertificateParsingException; {:try_start_9f .. :try_end_b8} :catch_da
.catch Lorg/spongycastle/jce/provider/AnnotatedException; {:try_start_9f .. :try_end_b8} :catch_7c
.line 243
:try_start_b8
new-instance v2, Ljava/util/HashSet;
invoke-direct {v2}, Ljava/util/HashSet;-><init>()V
:try_end_bd
.catch Lorg/spongycastle/jce/provider/AnnotatedException; {:try_start_b8 .. :try_end_bd} :catch_7c
.line 248
:try_start_bd
invoke-virtual {p2}, Lorg/spongycastle/jcajce/PKIXExtendedBuilderParameters;->getBaseParameters()Lorg/spongycastle/jcajce/PKIXExtendedParameters;
move-result-object v3
invoke-virtual {v3}, Lorg/spongycastle/jcajce/PKIXExtendedParameters;->getCertStores()Ljava/util/List;
move-result-object v3
invoke-static {p1, v3, v0}, Lorg/spongycastle/jce/provider/CertPathValidatorUtilities;->findIssuerCerts(Ljava/security/cert/X509Certificate;Ljava/util/List;Ljava/util/List;)Ljava/util/Collection;
move-result-object v0
invoke-interface {v2, v0}, Ljava/util/Collection;->addAll(Ljava/util/Collection;)Z
:try_end_cc
.catch Lorg/spongycastle/jce/provider/AnnotatedException; {:try_start_bd .. :try_end_cc} :catch_e3
.line 256
:try_start_cc
invoke-interface {v2}, Ljava/util/Collection;->isEmpty()Z
move-result v0
if-eqz v0, :cond_ec
.line 258
new-instance v0, Lorg/spongycastle/jce/provider/AnnotatedException;
const-string v2, "No issuer certificate for certificate in certification path found."
invoke-direct {v0, v2}, Lorg/spongycastle/jce/provider/AnnotatedException;-><init>(Ljava/lang/String;)V
throw v0
.line 237
:catch_da
move-exception v0
.line 239
new-instance v2, Lorg/spongycastle/jce/provider/AnnotatedException;
const-string v3, "No additional X.509 stores can be added from certificate locations."
invoke-direct {v2, v3, v0}, Lorg/spongycastle/jce/provider/AnnotatedException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v2
.line 250
:catch_e3
move-exception v0
.line 252
new-instance v2, Lorg/spongycastle/jce/provider/AnnotatedException;
const-string v3, "Cannot find issuer certificate for certificate in certification path."
invoke-direct {v2, v3, v0}, Lorg/spongycastle/jce/provider/AnnotatedException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v2
.line 261
:cond_ec
invoke-interface {v2}, Ljava/util/Collection;->iterator()Ljava/util/Iterator;
move-result-object v2
.line 263
:goto_f0
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_103
if-nez v1, :cond_103
.line 265
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/security/cert/X509Certificate;
.line 266
invoke-virtual {p0, v0, p2, p3}, Lorg/spongycastle/jce/provider/PKIXCertPathBuilderSpi;->build(Ljava/security/cert/X509Certificate;Lorg/spongycastle/jcajce/PKIXExtendedBuilderParameters;Ljava/util/List;)Ljava/security/cert/CertPathBuilderResult;
:try_end_101
.catch Lorg/spongycastle/jce/provider/AnnotatedException; {:try_start_cc .. :try_end_101} :catch_7c
move-result-object v1
goto :goto_f0
:cond_103
move-object v0, v1
.line 273
goto/16 :goto_80
.end method
.method public engineBuild(Ljava/security/cert/CertPathParameters;)Ljava/security/cert/CertPathBuilderResult;
.registers 6
.prologue
.line 48
instance-of v0, p1, Ljava/security/cert/PKIXBuilderParameters;
if-eqz v0, :cond_83
.line 50
new-instance v1, Lorg/spongycastle/jcajce/PKIXExtendedParameters$Builder;
move-object v0, p1
check-cast v0, Ljava/security/cert/PKIXBuilderParameters;
invoke-direct {v1, v0}, Lorg/spongycastle/jcajce/PKIXExtendedParameters$Builder;-><init>(Ljava/security/cert/PKIXParameters;)V
.line 53
instance-of v0, p1, Lorg/spongycastle/x509/ExtendedPKIXParameters;
if-eqz v0, :cond_7b
.line 55
check-cast p1, Lorg/spongycastle/x509/ExtendedPKIXBuilderParameters;
.line 58
invoke-virtual {p1}, Lorg/spongycastle/x509/ExtendedPKIXBuilderParameters;->getAdditionalStores()Ljava/util/List;
move-result-object v0
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v2
:goto_1a
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_2a
.line 60
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lorg/spongycastle/jcajce/PKIXCertStore;
invoke-virtual {v1, v0}, Lorg/spongycastle/jcajce/PKIXExtendedParameters$Builder;->addCertificateStore(Lorg/spongycastle/jcajce/PKIXCertStore;)Lorg/spongycastle/jcajce/PKIXExtendedParameters$Builder;
goto :goto_1a
.line 62
:cond_2a
new-instance v0, Lorg/spongycastle/jcajce/PKIXExtendedBuilderParameters$Builder;
invoke-virtual {v1}, Lorg/spongycastle/jcajce/PKIXExtendedParameters$Builder;->build()Lorg/spongycastle/jcajce/PKIXExtendedParameters;
move-result-object v1
invoke-direct {v0, v1}, Lorg/spongycastle/jcajce/PKIXExtendedBuilderParameters$Builder;-><init>(Lorg/spongycastle/jcajce/PKIXExtendedParameters;)V
.line 64
invoke-virtual {p1}, Lorg/spongycastle/x509/ExtendedPKIXBuilderParameters;->getExcludedCerts()Ljava/util/Set;
move-result-object v1
invoke-virtual {v0, v1}, Lorg/spongycastle/jcajce/PKIXExtendedBuilderParameters$Builder;->addExcludedCerts(Ljava/util/Set;)Lorg/spongycastle/jcajce/PKIXExtendedBuilderParameters$Builder;
.line 65
invoke-virtual {p1}, Lorg/spongycastle/x509/ExtendedPKIXBuilderParameters;->getMaxPathLength()I
move-result v1
invoke-virtual {v0, v1}, Lorg/spongycastle/jcajce/PKIXExtendedBuilderParameters$Builder;->setMaxPathLength(I)Lorg/spongycastle/jcajce/PKIXExtendedBuilderParameters$Builder;
.line 72
:goto_41
invoke-virtual {v0}, Lorg/spongycastle/jcajce/PKIXExtendedBuilderParameters$Builder;->build()Lorg/spongycastle/jcajce/PKIXExtendedBuilderParameters;
move-result-object p1
.line 88
:goto_45
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
.line 93
invoke-virtual {p1}, Lorg/spongycastle/jcajce/PKIXExtendedBuilderParameters;->getBaseParameters()Lorg/spongycastle/jcajce/PKIXExtendedParameters;
move-result-object v0
invoke-virtual {v0}, Lorg/spongycastle/jcajce/PKIXExtendedParameters;->getTargetConstraints()Lorg/spongycastle/jcajce/PKIXCertStoreSelector;
move-result-object v0
.line 97
:try_start_52
invoke-virtual {p1}, Lorg/spongycastle/jcajce/PKIXExtendedBuilderParameters;->getBaseParameters()Lorg/spongycastle/jcajce/PKIXExtendedParameters;
move-result-object v2
invoke-virtual {v2}, Lorg/spongycastle/jcajce/PKIXExtendedParameters;->getCertificateStores()Ljava/util/List;
move-result-object v2
invoke-static {v0, v2}, Lorg/spongycastle/jce/provider/CertPathValidatorUtilities;->findCertificates(Lorg/spongycastle/jcajce/PKIXCertStoreSelector;Ljava/util/List;)Ljava/util/Collection;
move-result-object v2
.line 98
invoke-virtual {p1}, Lorg/spongycastle/jcajce/PKIXExtendedBuilderParameters;->getBaseParameters()Lorg/spongycastle/jcajce/PKIXExtendedParameters;
move-result-object v3
invoke-virtual {v3}, Lorg/spongycastle/jcajce/PKIXExtendedParameters;->getCertStores()Ljava/util/List;
move-result-object v3
invoke-static {v0, v3}, Lorg/spongycastle/jce/provider/CertPathValidatorUtilities;->findCertificates(Lorg/spongycastle/jcajce/PKIXCertStoreSelector;Ljava/util/List;)Ljava/util/Collection;
move-result-object v0
invoke-interface {v2, v0}, Ljava/util/Collection;->addAll(Ljava/util/Collection;)Z
:try_end_6d
.catch Lorg/spongycastle/jce/provider/AnnotatedException; {:try_start_52 .. :try_end_6d} :catch_bb
.line 106
invoke-interface {v2}, Ljava/util/Collection;->isEmpty()Z
move-result v0
if-eqz v0, :cond_c4
.line 109
new-instance v0, Ljava/security/cert/CertPathBuilderException;
const-string v1, "No certificate found matching targetContraints."
invoke-direct {v0, v1}, Ljava/security/cert/CertPathBuilderException;-><init>(Ljava/lang/String;)V
throw v0
.line 69
:cond_7b
new-instance v0, Lorg/spongycastle/jcajce/PKIXExtendedBuilderParameters$Builder;
check-cast p1, Ljava/security/cert/PKIXBuilderParameters;
invoke-direct {v0, p1}, Lorg/spongycastle/jcajce/PKIXExtendedBuilderParameters$Builder;-><init>(Ljava/security/cert/PKIXBuilderParameters;)V
goto :goto_41
.line 74
:cond_83
instance-of v0, p1, Lorg/spongycastle/jcajce/PKIXExtendedBuilderParameters;
if-eqz v0, :cond_8a
.line 76
check-cast p1, Lorg/spongycastle/jcajce/PKIXExtendedBuilderParameters;
goto :goto_45
.line 80
:cond_8a
new-instance v0, Ljava/security/InvalidAlgorithmParameterException;
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "Parameters must be an instance of "
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
const-class v2, Ljava/security/cert/PKIXBuilderParameters;
.line 82
invoke-virtual {v2}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " or "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-class v2, Lorg/spongycastle/jcajce/PKIXExtendedBuilderParameters;
.line 83
invoke-virtual {v2}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "."
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/security/InvalidAlgorithmParameterException;-><init>(Ljava/lang/String;)V
throw v0
.line 100
:catch_bb
move-exception v0
.line 102
new-instance v1, Lorg/spongycastle/jce/exception/ExtCertPathBuilderException;
const-string v2, "Error finding target certificate."
invoke-direct {v1, v2, v0}, Lorg/spongycastle/jce/exception/ExtCertPathBuilderException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v1
.line 113
:cond_c4
const/4 v0, 0x0
.line 116
invoke-interface {v2}, Ljava/util/Collection;->iterator()Ljava/util/Iterator;
move-result-object v2
.line 117
:goto_c9
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v3
if-eqz v3, :cond_dc
if-nez v0, :cond_dc
.line 119
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/security/cert/X509Certificate;
.line 120
invoke-virtual {p0, v0, p1, v1}, Lorg/spongycastle/jce/provider/PKIXCertPathBuilderSpi;->build(Ljava/security/cert/X509Certificate;Lorg/spongycastle/jcajce/PKIXExtendedBuilderParameters;Ljava/util/List;)Ljava/security/cert/CertPathBuilderResult;
move-result-object v0
goto :goto_c9
.line 123
:cond_dc
if-nez v0, :cond_104
iget-object v1, p0, Lorg/spongycastle/jce/provider/PKIXCertPathBuilderSpi;->certPathException:Ljava/lang/Exception;
if-eqz v1, :cond_104
.line 125
iget-object v0, p0, Lorg/spongycastle/jce/provider/PKIXCertPathBuilderSpi;->certPathException:Ljava/lang/Exception;
instance-of v0, v0, Lorg/spongycastle/jce/provider/AnnotatedException;
if-eqz v0, :cond_fa
.line 127
new-instance v0, Ljava/security/cert/CertPathBuilderException;
iget-object v1, p0, Lorg/spongycastle/jce/provider/PKIXCertPathBuilderSpi;->certPathException:Ljava/lang/Exception;
invoke-virtual {v1}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object v1
iget-object v2, p0, Lorg/spongycastle/jce/provider/PKIXCertPathBuilderSpi;->certPathException:Ljava/lang/Exception;
invoke-virtual {v2}, Ljava/lang/Exception;->getCause()Ljava/lang/Throwable;
move-result-object v2
invoke-direct {v0, v1, v2}, Ljava/security/cert/CertPathBuilderException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v0
.line 129
:cond_fa
new-instance v0, Ljava/security/cert/CertPathBuilderException;
const-string v1, "Possible certificate chain could not be validated."
iget-object v2, p0, Lorg/spongycastle/jce/provider/PKIXCertPathBuilderSpi;->certPathException:Ljava/lang/Exception;
invoke-direct {v0, v1, v2}, Ljava/security/cert/CertPathBuilderException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v0
.line 134
:cond_104
if-nez v0, :cond_112
iget-object v1, p0, Lorg/spongycastle/jce/provider/PKIXCertPathBuilderSpi;->certPathException:Ljava/lang/Exception;
if-nez v1, :cond_112
.line 136
new-instance v0, Ljava/security/cert/CertPathBuilderException;
const-string v1, "Unable to find certificate chain."
invoke-direct {v0, v1}, Ljava/security/cert/CertPathBuilderException;-><init>(Ljava/lang/String;)V
throw v0
.line 140
:cond_112
return-object v0
.end method