LDAPStoreHelper.smali
.class public Lorg/spongycastle/x509/util/LDAPStoreHelper;
.super Ljava/lang/Object;
.source "LDAPStoreHelper.java"
# static fields
.field private static LDAP_PROVIDER:Ljava/lang/String; = null
.field private static REFERRALS_IGNORE:Ljava/lang/String; = null
.field private static final SEARCH_SECURITY_LEVEL:Ljava/lang/String; = "none"
.field private static final URL_CONTEXT_PREFIX:Ljava/lang/String; = "com.sun.jndi.url"
.field private static cacheSize:I
.field private static lifeTime:J
# instance fields
.field private cacheMap:Ljava/util/Map;
.field private params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
# direct methods
.method static constructor <clinit>()V
.registers 2
.prologue
.line 81
const-string v0, "com.sun.jndi.ldap.LdapCtxFactory"
sput-object v0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->LDAP_PROVIDER:Ljava/lang/String;
.line 86
const-string v0, "ignore"
sput-object v0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->REFERRALS_IGNORE:Ljava/lang/String;
.line 1033
const/16 v0, 0x20
sput v0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->cacheSize:I
.line 1035
const-wide/32 v0, 0xea60
sput-wide v0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->lifeTime:J
return-void
.end method
.method public constructor <init>(Lorg/spongycastle/jce/X509LDAPCertStoreParameters;)V
.registers 4
.prologue
.line 74
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 1031
new-instance v0, Ljava/util/HashMap;
sget v1, Lorg/spongycastle/x509/util/LDAPStoreHelper;->cacheSize:I
invoke-direct {v0, v1}, Ljava/util/HashMap;-><init>(I)V
iput-object v0, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->cacheMap:Ljava/util/Map;
.line 75
iput-object p1, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
.line 76
return-void
.end method
.method private declared-synchronized addToCache(Ljava/lang/String;Ljava/util/List;)V
.registers 14
.prologue
.line 1039
monitor-enter p0
:try_start_1
new-instance v0, Ljava/sql/Date;
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v2
invoke-direct {v0, v2, v3}, Ljava/sql/Date;-><init>(J)V
.line 1040
new-instance v7, Ljava/util/ArrayList;
invoke-direct {v7}, Ljava/util/ArrayList;-><init>()V
.line 1041
invoke-interface {v7, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 1042
invoke-interface {v7, p2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 1043
iget-object v1, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->cacheMap:Ljava/util/Map;
invoke-interface {v1, p1}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_24
.line 1045
iget-object v0, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->cacheMap:Ljava/util/Map;
invoke-interface {v0, p1, v7}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:try_end_22
.catchall {:try_start_1 .. :try_end_22} :catchall_73
.line 1070
:goto_22
monitor-exit p0
return-void
.line 1049
:cond_24
:try_start_24
iget-object v1, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->cacheMap:Ljava/util/Map;
invoke-interface {v1}, Ljava/util/Map;->size()I
move-result v1
sget v2, Lorg/spongycastle/x509/util/LDAPStoreHelper;->cacheSize:I
if-lt v1, v2, :cond_6d
.line 1052
iget-object v1, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->cacheMap:Ljava/util/Map;
invoke-interface {v1}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object v1
invoke-interface {v1}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v8
.line 1053
invoke-virtual {v0}, Ljava/sql/Date;->getTime()J
move-result-wide v4
.line 1054
const/4 v6, 0x0
.line 1055
:goto_3d
invoke-interface {v8}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_68
.line 1057
invoke-interface {v8}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/Map$Entry;
.line 1058
invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/util/List;
const/4 v2, 0x0
invoke-interface {v1, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/sql/Date;
.line 1059
invoke-virtual {v1}, Ljava/sql/Date;->getTime()J
move-result-wide v2
.line 1060
cmp-long v1, v2, v4
if-gez v1, :cond_76
.line 1063
invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v0
move-wide v9, v2
move-object v2, v0
move-wide v0, v9
:goto_65
move-wide v4, v0
move-object v6, v2
.line 1065
goto :goto_3d
.line 1066
:cond_68
iget-object v0, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->cacheMap:Ljava/util/Map;
invoke-interface {v0, v6}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;
.line 1068
:cond_6d
iget-object v0, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->cacheMap:Ljava/util/Map;
invoke-interface {v0, p1, v7}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:try_end_72
.catchall {:try_start_24 .. :try_end_72} :catchall_73
goto :goto_22
.line 1039
:catchall_73
move-exception v0
monitor-exit p0
throw v0
:cond_76
move-wide v0, v4
move-object v2, v6
goto :goto_65
.end method
.method private attrCertSubjectSerialSearch(Lorg/spongycastle/x509/X509AttributeCertStoreSelector;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
.registers 12
.prologue
const/4 v1, 0x0
const/4 v2, 0x0
.line 327
new-instance v3, Ljava/util/ArrayList;
invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
.line 336
new-instance v4, Ljava/util/HashSet;
invoke-direct {v4}, Ljava/util/HashSet;-><init>()V
.line 338
invoke-virtual {p1}, Lorg/spongycastle/x509/X509AttributeCertStoreSelector;->getHolder()Lorg/spongycastle/x509/AttributeCertificateHolder;
move-result-object v0
if-eqz v0, :cond_103
.line 341
invoke-virtual {p1}, Lorg/spongycastle/x509/X509AttributeCertStoreSelector;->getHolder()Lorg/spongycastle/x509/AttributeCertificateHolder;
move-result-object v0
invoke-virtual {v0}, Lorg/spongycastle/x509/AttributeCertificateHolder;->getSerialNumber()Ljava/math/BigInteger;
move-result-object v0
if-eqz v0, :cond_2b
.line 343
invoke-virtual {p1}, Lorg/spongycastle/x509/X509AttributeCertStoreSelector;->getHolder()Lorg/spongycastle/x509/AttributeCertificateHolder;
move-result-object v0
invoke-virtual {v0}, Lorg/spongycastle/x509/AttributeCertificateHolder;->getSerialNumber()Ljava/math/BigInteger;
move-result-object v0
.line 344
invoke-virtual {v0}, Ljava/math/BigInteger;->toString()Ljava/lang/String;
move-result-object v0
.line 343
invoke-interface {v4, v0}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
.line 347
:cond_2b
invoke-virtual {p1}, Lorg/spongycastle/x509/X509AttributeCertStoreSelector;->getHolder()Lorg/spongycastle/x509/AttributeCertificateHolder;
move-result-object v0
invoke-virtual {v0}, Lorg/spongycastle/x509/AttributeCertificateHolder;->getEntityNames()[Ljava/security/Principal;
move-result-object v0
if-eqz v0, :cond_103
.line 349
invoke-virtual {p1}, Lorg/spongycastle/x509/X509AttributeCertStoreSelector;->getHolder()Lorg/spongycastle/x509/AttributeCertificateHolder;
move-result-object v0
invoke-virtual {v0}, Lorg/spongycastle/x509/AttributeCertificateHolder;->getEntityNames()[Ljava/security/Principal;
move-result-object v0
.line 353
:goto_3d
invoke-virtual {p1}, Lorg/spongycastle/x509/X509AttributeCertStoreSelector;->getAttributeCert()Lorg/spongycastle/x509/X509AttributeCertificate;
move-result-object v5
if-eqz v5, :cond_6c
.line 355
invoke-virtual {p1}, Lorg/spongycastle/x509/X509AttributeCertStoreSelector;->getAttributeCert()Lorg/spongycastle/x509/X509AttributeCertificate;
move-result-object v5
invoke-interface {v5}, Lorg/spongycastle/x509/X509AttributeCertificate;->getHolder()Lorg/spongycastle/x509/AttributeCertificateHolder;
move-result-object v5
invoke-virtual {v5}, Lorg/spongycastle/x509/AttributeCertificateHolder;->getEntityNames()[Ljava/security/Principal;
move-result-object v5
if-eqz v5, :cond_5d
.line 357
invoke-virtual {p1}, Lorg/spongycastle/x509/X509AttributeCertStoreSelector;->getAttributeCert()Lorg/spongycastle/x509/X509AttributeCertificate;
move-result-object v0
invoke-interface {v0}, Lorg/spongycastle/x509/X509AttributeCertificate;->getHolder()Lorg/spongycastle/x509/AttributeCertificateHolder;
move-result-object v0
.line 358
invoke-virtual {v0}, Lorg/spongycastle/x509/AttributeCertificateHolder;->getEntityNames()[Ljava/security/Principal;
move-result-object v0
.line 361
:cond_5d
invoke-virtual {p1}, Lorg/spongycastle/x509/X509AttributeCertStoreSelector;->getAttributeCert()Lorg/spongycastle/x509/X509AttributeCertificate;
move-result-object v5
invoke-interface {v5}, Lorg/spongycastle/x509/X509AttributeCertificate;->getSerialNumber()Ljava/math/BigInteger;
move-result-object v5
.line 362
invoke-virtual {v5}, Ljava/math/BigInteger;->toString()Ljava/lang/String;
move-result-object v5
.line 361
invoke-interface {v4, v5}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
.line 364
:cond_6c
if-eqz v0, :cond_7e
.line 367
aget-object v1, v0, v2
instance-of v1, v1, Ljavax/security/auth/x500/X500Principal;
if-eqz v1, :cond_ba
.line 369
aget-object v0, v0, v2
check-cast v0, Ljavax/security/auth/x500/X500Principal;
const-string v1, "RFC1779"
.line 370
invoke-virtual {v0, v1}, Ljavax/security/auth/x500/X500Principal;->getName(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
.line 378
:cond_7e
:goto_7e
invoke-virtual {p1}, Lorg/spongycastle/x509/X509AttributeCertStoreSelector;->getSerialNumber()Ljava/math/BigInteger;
move-result-object v0
if-eqz v0, :cond_8f
.line 380
invoke-virtual {p1}, Lorg/spongycastle/x509/X509AttributeCertStoreSelector;->getSerialNumber()Ljava/math/BigInteger;
move-result-object v0
invoke-virtual {v0}, Ljava/math/BigInteger;->toString()Ljava/lang/String;
move-result-object v0
invoke-interface {v4, v0}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
.line 384
:cond_8f
if-eqz v1, :cond_c1
move v0, v2
.line 386
:goto_92
array-length v2, p4
if-ge v0, v2, :cond_c1
.line 388
aget-object v2, p4, v0
invoke-direct {p0, v1, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->parseDN(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
.line 389
new-instance v5, Ljava/lang/StringBuilder;
const-string v6, "*"
invoke-direct {v5, v6}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v5, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
const-string v5, "*"
invoke-virtual {v2, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
.line 390
invoke-direct {p0, p3, v2, p2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->search([Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v2
invoke-interface {v3, v2}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z
.line 386
add-int/lit8 v0, v0, 0x1
goto :goto_92
.line 375
:cond_ba
aget-object v0, v0, v2
invoke-interface {v0}, Ljava/security/Principal;->getName()Ljava/lang/String;
move-result-object v1
goto :goto_7e
.line 394
:cond_c1
invoke-interface {v4}, Ljava/util/Collection;->size()I
move-result v0
if-lez v0, :cond_f1
iget-object v0, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
.line 395
invoke-virtual {v0}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getSearchForSerialNumberIn()Ljava/lang/String;
move-result-object v0
if-eqz v0, :cond_f1
.line 397
invoke-interface {v4}, Ljava/util/Collection;->iterator()Ljava/util/Iterator;
move-result-object v2
.line 398
:goto_d3
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_f1
.line 400
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
.line 401
iget-object v5, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
invoke-virtual {v5}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getSearchForSerialNumberIn()Ljava/lang/String;
move-result-object v5
invoke-direct {p0, v5}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v5
invoke-direct {p0, v5, v0, p2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->search([Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v0
invoke-interface {v3, v0}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z
goto :goto_d3
.line 404
:cond_f1
invoke-interface {v4}, Ljava/util/Collection;->size()I
move-result v0
if-nez v0, :cond_102
if-nez v1, :cond_102
.line 406
const-string v0, "*"
invoke-direct {p0, p3, v0, p2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->search([Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v0
invoke-interface {v3, v0}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z
.line 409
:cond_102
return-object v3
:cond_103
move-object v0, v1
goto/16 :goto_3d
.end method
.method private cRLIssuerSearch(Lorg/spongycastle/x509/X509CRLStoreSelector;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
.registers 13
.prologue
const/4 v1, 0x0
.line 429
new-instance v3, Ljava/util/ArrayList;
invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
.line 431
const/4 v2, 0x0
.line 432
new-instance v4, Ljava/util/HashSet;
invoke-direct {v4}, Ljava/util/HashSet;-><init>()V
.line 433
invoke-virtual {p1}, Lorg/spongycastle/x509/X509CRLStoreSelector;->getIssuers()Ljava/util/Collection;
move-result-object v0
if-eqz v0, :cond_19
.line 435
invoke-virtual {p1}, Lorg/spongycastle/x509/X509CRLStoreSelector;->getIssuers()Ljava/util/Collection;
move-result-object v0
invoke-interface {v4, v0}, Ljava/util/Collection;->addAll(Ljava/util/Collection;)Z
.line 437
:cond_19
invoke-virtual {p1}, Lorg/spongycastle/x509/X509CRLStoreSelector;->getCertificateChecking()Ljava/security/cert/X509Certificate;
move-result-object v0
if-eqz v0, :cond_2a
.line 439
invoke-virtual {p1}, Lorg/spongycastle/x509/X509CRLStoreSelector;->getCertificateChecking()Ljava/security/cert/X509Certificate;
move-result-object v0
invoke-direct {p0, v0}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->getCertificateIssuer(Ljava/security/cert/X509Certificate;)Ljavax/security/auth/x500/X500Principal;
move-result-object v0
invoke-interface {v4, v0}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
.line 441
:cond_2a
invoke-virtual {p1}, Lorg/spongycastle/x509/X509CRLStoreSelector;->getAttrCertificateChecking()Lorg/spongycastle/x509/X509AttributeCertificate;
move-result-object v0
if-eqz v0, :cond_4e
.line 443
invoke-virtual {p1}, Lorg/spongycastle/x509/X509CRLStoreSelector;->getAttrCertificateChecking()Lorg/spongycastle/x509/X509AttributeCertificate;
move-result-object v0
invoke-interface {v0}, Lorg/spongycastle/x509/X509AttributeCertificate;->getIssuer()Lorg/spongycastle/x509/AttributeCertificateIssuer;
move-result-object v0
invoke-virtual {v0}, Lorg/spongycastle/x509/AttributeCertificateIssuer;->getPrincipals()[Ljava/security/Principal;
move-result-object v5
move v0, v1
.line 444
:goto_3d
array-length v6, v5
if-ge v0, v6, :cond_4e
.line 446
aget-object v6, v5, v0
instance-of v6, v6, Ljavax/security/auth/x500/X500Principal;
if-eqz v6, :cond_4b
.line 448
aget-object v6, v5, v0
invoke-interface {v4, v6}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
.line 444
:cond_4b
add-int/lit8 v0, v0, 0x1
goto :goto_3d
.line 452
:cond_4e
invoke-interface {v4}, Ljava/util/Collection;->iterator()Ljava/util/Iterator;
move-result-object v4
move-object v0, v2
.line 453
:goto_53
invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_90
.line 455
invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljavax/security/auth/x500/X500Principal;
const-string v2, "RFC1779"
invoke-virtual {v0, v2}, Ljavax/security/auth/x500/X500Principal;->getName(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
move v0, v1
.line 458
:goto_66
array-length v5, p4
if-ge v0, v5, :cond_8e
.line 460
aget-object v5, p4, v0
invoke-direct {p0, v2, v5}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->parseDN(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v5
.line 461
new-instance v6, Ljava/lang/StringBuilder;
const-string v7, "*"
invoke-direct {v6, v7}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v6, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, "*"
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
.line 462
invoke-direct {p0, p3, v5, p2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->search([Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v5
invoke-interface {v3, v5}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z
.line 458
add-int/lit8 v0, v0, 0x1
goto :goto_66
:cond_8e
move-object v0, v2
.line 465
goto :goto_53
.line 466
:cond_90
if-nez v0, :cond_9b
.line 468
const-string v0, "*"
invoke-direct {p0, p3, v0, p2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->search([Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v0
invoke-interface {v3, v0}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z
.line 471
:cond_9b
return-object v3
.end method
.method private certSubjectSerialSearch(Lorg/spongycastle/x509/X509CertStoreSelector;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
.registers 12
.prologue
.line 205
new-instance v3, Ljava/util/ArrayList;
invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
.line 208
const/4 v0, 0x0
.line 210
invoke-direct {p0, p1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->getSubjectAsString(Lorg/spongycastle/x509/X509CertStoreSelector;)Ljava/lang/String;
move-result-object v1
.line 212
invoke-virtual {p1}, Lorg/spongycastle/x509/X509CertStoreSelector;->getSerialNumber()Ljava/math/BigInteger;
move-result-object v2
if-eqz v2, :cond_18
.line 214
invoke-virtual {p1}, Lorg/spongycastle/x509/X509CertStoreSelector;->getSerialNumber()Ljava/math/BigInteger;
move-result-object v0
invoke-virtual {v0}, Ljava/math/BigInteger;->toString()Ljava/lang/String;
move-result-object v0
.line 216
:cond_18
invoke-virtual {p1}, Lorg/spongycastle/x509/X509CertStoreSelector;->getCertificate()Ljava/security/cert/X509Certificate;
move-result-object v2
if-eqz v2, :cond_8e
.line 218
invoke-virtual {p1}, Lorg/spongycastle/x509/X509CertStoreSelector;->getCertificate()Ljava/security/cert/X509Certificate;
move-result-object v0
invoke-virtual {v0}, Ljava/security/cert/X509Certificate;->getSubjectX500Principal()Ljavax/security/auth/x500/X500Principal;
move-result-object v0
const-string v1, "RFC1779"
invoke-virtual {v0, v1}, Ljavax/security/auth/x500/X500Principal;->getName(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
.line 219
invoke-virtual {p1}, Lorg/spongycastle/x509/X509CertStoreSelector;->getCertificate()Ljava/security/cert/X509Certificate;
move-result-object v0
invoke-virtual {v0}, Ljava/security/cert/X509Certificate;->getSerialNumber()Ljava/math/BigInteger;
move-result-object v0
invoke-virtual {v0}, Ljava/math/BigInteger;->toString()Ljava/lang/String;
move-result-object v0
move-object v2, v1
move-object v1, v0
.line 223
:goto_3a
if-eqz v2, :cond_65
.line 225
const/4 v0, 0x0
:goto_3d
array-length v4, p4
if-ge v0, v4, :cond_65
.line 227
aget-object v4, p4, v0
invoke-direct {p0, v2, v4}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->parseDN(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
.line 228
new-instance v5, Ljava/lang/StringBuilder;
const-string v6, "*"
invoke-direct {v5, v6}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v5, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
const-string v5, "*"
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
.line 229
invoke-direct {p0, p3, v4, p2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->search([Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v4
invoke-interface {v3, v4}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z
.line 225
add-int/lit8 v0, v0, 0x1
goto :goto_3d
.line 233
:cond_65
if-eqz v1, :cond_80
iget-object v0, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
invoke-virtual {v0}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getSearchForSerialNumberIn()Ljava/lang/String;
move-result-object v0
if-eqz v0, :cond_80
.line 236
iget-object v0, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
.line 237
invoke-virtual {v0}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getSearchForSerialNumberIn()Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v0
.line 236
invoke-direct {p0, v0, v1, p2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->search([Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v0
invoke-interface {v3, v0}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z
.line 240
:cond_80
if-nez v1, :cond_8d
if-nez v2, :cond_8d
.line 242
const-string v0, "*"
invoke-direct {p0, p3, v0, p2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->search([Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v0
invoke-interface {v3, v0}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z
.line 245
:cond_8d
return-object v3
:cond_8e
move-object v2, v1
move-object v1, v0
goto :goto_3a
.end method
.method private connectLDAP()Ljavax/naming/directory/DirContext;
.registers 4
.prologue
.line 100
new-instance v0, Ljava/util/Properties;
invoke-direct {v0}, Ljava/util/Properties;-><init>()V
.line 101
const-string v1, "java.naming.factory.initial"
sget-object v2, Lorg/spongycastle/x509/util/LDAPStoreHelper;->LDAP_PROVIDER:Ljava/lang/String;
invoke-virtual {v0, v1, v2}, Ljava/util/Properties;->setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
.line 102
const-string v1, "java.naming.batchsize"
const-string v2, "0"
invoke-virtual {v0, v1, v2}, Ljava/util/Properties;->setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
.line 104
const-string v1, "java.naming.provider.url"
iget-object v2, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
invoke-virtual {v2}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getLdapURL()Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v1, v2}, Ljava/util/Properties;->setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
.line 105
const-string v1, "java.naming.factory.url.pkgs"
const-string v2, "com.sun.jndi.url"
invoke-virtual {v0, v1, v2}, Ljava/util/Properties;->setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
.line 106
const-string v1, "java.naming.referral"
sget-object v2, Lorg/spongycastle/x509/util/LDAPStoreHelper;->REFERRALS_IGNORE:Ljava/lang/String;
invoke-virtual {v0, v1, v2}, Ljava/util/Properties;->setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
.line 107
const-string v1, "java.naming.security.authentication"
const-string v2, "none"
invoke-virtual {v0, v1, v2}, Ljava/util/Properties;->setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
.line 110
new-instance v1, Ljavax/naming/directory/InitialDirContext;
invoke-direct {v1, v0}, Ljavax/naming/directory/InitialDirContext;-><init>(Ljava/util/Hashtable;)V
.line 111
return-object v1
.end method
.method private createAttributeCertificates(Ljava/util/List;Lorg/spongycastle/x509/X509AttributeCertStoreSelector;)Ljava/util/Set;
.registers 8
.prologue
.line 657
new-instance v1, Ljava/util/HashSet;
invoke-direct {v1}, Ljava/util/HashSet;-><init>()V
.line 659
invoke-interface {p1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v2
.line 660
new-instance v3, Lorg/spongycastle/jce/provider/X509AttrCertParser;
invoke-direct {v3}, Lorg/spongycastle/jce/provider/X509AttrCertParser;-><init>()V
.line 661
:cond_e
:goto_e
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_34
.line 665
:try_start_14
new-instance v4, Ljava/io/ByteArrayInputStream;
.line 666
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, [B
invoke-direct {v4, v0}, Ljava/io/ByteArrayInputStream;-><init>([B)V
.line 665
invoke-virtual {v3, v4}, Lorg/spongycastle/jce/provider/X509AttrCertParser;->engineInit(Ljava/io/InputStream;)V
.line 668
invoke-virtual {v3}, Lorg/spongycastle/jce/provider/X509AttrCertParser;->engineRead()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lorg/spongycastle/x509/X509AttributeCertificate;
.line 669
invoke-virtual {p2, v0}, Lorg/spongycastle/x509/X509AttributeCertStoreSelector;->match(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_e
.line 671
invoke-interface {v1, v0}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
:try_end_31
.catch Lorg/spongycastle/x509/util/StreamParsingException; {:try_start_14 .. :try_end_31} :catch_32
goto :goto_e
.line 677
:catch_32
move-exception v0
goto :goto_e
.line 680
:cond_34
return-object v1
.end method
.method private createCRLs(Ljava/util/List;Lorg/spongycastle/x509/X509CRLStoreSelector;)Ljava/util/Set;
.registers 8
.prologue
.line 576
new-instance v1, Ljava/util/HashSet;
invoke-direct {v1}, Ljava/util/HashSet;-><init>()V
.line 578
new-instance v2, Lorg/spongycastle/jce/provider/X509CRLParser;
invoke-direct {v2}, Lorg/spongycastle/jce/provider/X509CRLParser;-><init>()V
.line 579
invoke-interface {p1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v3
.line 580
:cond_e
:goto_e
invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_34
.line 584
:try_start_14
new-instance v4, Ljava/io/ByteArrayInputStream;
.line 585
invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, [B
invoke-direct {v4, v0}, Ljava/io/ByteArrayInputStream;-><init>([B)V
.line 584
invoke-virtual {v2, v4}, Lorg/spongycastle/jce/provider/X509CRLParser;->engineInit(Ljava/io/InputStream;)V
.line 586
invoke-virtual {v2}, Lorg/spongycastle/jce/provider/X509CRLParser;->engineRead()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/security/cert/X509CRL;
.line 587
invoke-virtual {p2, v0}, Lorg/spongycastle/x509/X509CRLStoreSelector;->match(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_e
.line 589
invoke-interface {v1, v0}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
:try_end_31
.catch Lorg/spongycastle/x509/util/StreamParsingException; {:try_start_14 .. :try_end_31} :catch_32
goto :goto_e
.line 595
:catch_32
move-exception v0
goto :goto_e
.line 598
:cond_34
return-object v1
.end method
.method private createCerts(Ljava/util/List;Lorg/spongycastle/x509/X509CertStoreSelector;)Ljava/util/Set;
.registers 8
.prologue
.line 158
new-instance v1, Ljava/util/HashSet;
invoke-direct {v1}, Ljava/util/HashSet;-><init>()V
.line 160
invoke-interface {p1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v2
.line 161
new-instance v3, Lorg/spongycastle/jce/provider/X509CertParser;
invoke-direct {v3}, Lorg/spongycastle/jce/provider/X509CertParser;-><init>()V
.line 162
:cond_e
:goto_e
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_34
.line 166
:try_start_14
new-instance v4, Ljava/io/ByteArrayInputStream;
.line 167
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, [B
invoke-direct {v4, v0}, Ljava/io/ByteArrayInputStream;-><init>([B)V
.line 166
invoke-virtual {v3, v4}, Lorg/spongycastle/jce/provider/X509CertParser;->engineInit(Ljava/io/InputStream;)V
.line 169
invoke-virtual {v3}, Lorg/spongycastle/jce/provider/X509CertParser;->engineRead()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/security/cert/X509Certificate;
.line 170
invoke-virtual {p2, v0}, Lorg/spongycastle/x509/X509CertStoreSelector;->match(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_e
.line 172
invoke-interface {v1, v0}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
:try_end_31
.catch Ljava/lang/Exception; {:try_start_14 .. :try_end_31} :catch_32
goto :goto_e
.line 179
:catch_32
move-exception v0
goto :goto_e
.line 182
:cond_34
return-object v1
.end method
.method private createCrossCertificatePairs(Ljava/util/List;Lorg/spongycastle/x509/X509CertPairStoreSelector;)Ljava/util/Set;
.registers 10
.prologue
.line 604
new-instance v4, Ljava/util/HashSet;
invoke-direct {v4}, Ljava/util/HashSet;-><init>()V
.line 606
const/4 v0, 0x0
move v2, v0
.line 607
:goto_7
invoke-interface {p1}, Ljava/util/List;->size()I
move-result v0
if-ge v2, v0, :cond_6c
.line 615
:try_start_d
new-instance v1, Lorg/spongycastle/jce/provider/X509CertPairParser;
invoke-direct {v1}, Lorg/spongycastle/jce/provider/X509CertPairParser;-><init>()V
.line 616
new-instance v3, Ljava/io/ByteArrayInputStream;
.line 617
invoke-interface {p1, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, [B
invoke-direct {v3, v0}, Ljava/io/ByteArrayInputStream;-><init>([B)V
.line 616
invoke-virtual {v1, v3}, Lorg/spongycastle/jce/provider/X509CertPairParser;->engineInit(Ljava/io/InputStream;)V
.line 618
invoke-virtual {v1}, Lorg/spongycastle/jce/provider/X509CertPairParser;->engineRead()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lorg/spongycastle/x509/X509CertificatePair;
:try_end_26
.catch Lorg/spongycastle/x509/util/StreamParsingException; {:try_start_d .. :try_end_26} :catch_35
.catch Ljava/security/cert/CertificateParsingException; {:try_start_d .. :try_end_26} :catch_72
.catch Ljava/io/IOException; {:try_start_d .. :try_end_26} :catch_6d
move-object v1, v0
move v0, v2
.line 635
:goto_28
:try_start_28
invoke-virtual {p2, v1}, Lorg/spongycastle/x509/X509CertPairStoreSelector;->match(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_31
.line 637
invoke-interface {v4, v1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
:try_end_31
.catch Ljava/security/cert/CertificateParsingException; {:try_start_28 .. :try_end_31} :catch_75
.catch Ljava/io/IOException; {:try_start_28 .. :try_end_31} :catch_70
.line 648
:cond_31
:goto_31
add-int/lit8 v0, v0, 0x1
move v2, v0
goto :goto_7
.line 624
:catch_35
move-exception v0
:try_start_36
invoke-interface {p1, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, [B
.line 625
add-int/lit8 v1, v2, 0x1
invoke-interface {p1, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, [B
.line 626
new-instance v3, Lorg/spongycastle/x509/X509CertificatePair;
new-instance v5, Lorg/spongycastle/asn1/x509/CertificatePair;
new-instance v6, Lorg/spongycastle/asn1/ASN1InputStream;
invoke-direct {v6, v0}, Lorg/spongycastle/asn1/ASN1InputStream;-><init>([B)V
.line 629
invoke-virtual {v6}, Lorg/spongycastle/asn1/ASN1InputStream;->readObject()Lorg/spongycastle/asn1/ASN1Primitive;
move-result-object v0
.line 628
invoke-static {v0}, Lorg/spongycastle/asn1/x509/Certificate;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/x509/Certificate;
move-result-object v0
new-instance v6, Lorg/spongycastle/asn1/ASN1InputStream;
invoke-direct {v6, v1}, Lorg/spongycastle/asn1/ASN1InputStream;-><init>([B)V
.line 632
invoke-virtual {v6}, Lorg/spongycastle/asn1/ASN1InputStream;->readObject()Lorg/spongycastle/asn1/ASN1Primitive;
move-result-object v1
.line 631
invoke-static {v1}, Lorg/spongycastle/asn1/x509/Certificate;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/x509/Certificate;
move-result-object v1
invoke-direct {v5, v0, v1}, Lorg/spongycastle/asn1/x509/CertificatePair;-><init>(Lorg/spongycastle/asn1/x509/Certificate;Lorg/spongycastle/asn1/x509/Certificate;)V
invoke-direct {v3, v5}, Lorg/spongycastle/x509/X509CertificatePair;-><init>(Lorg/spongycastle/asn1/x509/CertificatePair;)V
:try_end_68
.catch Ljava/security/cert/CertificateParsingException; {:try_start_36 .. :try_end_68} :catch_72
.catch Ljava/io/IOException; {:try_start_36 .. :try_end_68} :catch_6d
.line 633
add-int/lit8 v0, v2, 0x1
move-object v1, v3
goto :goto_28
.line 651
:cond_6c
return-object v4
:catch_6d
move-exception v0
move v0, v2
goto :goto_31
:catch_70
move-exception v1
goto :goto_31
.line 647
:catch_72
move-exception v0
move v0, v2
goto :goto_31
:catch_75
move-exception v1
goto :goto_31
.end method
.method private crossCertificatePairSubjectSearch(Lorg/spongycastle/x509/X509CertPairStoreSelector;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
.registers 11
.prologue
.line 271
new-instance v2, Ljava/util/ArrayList;
invoke-direct {v2}, Ljava/util/ArrayList;-><init>()V
.line 274
const/4 v0, 0x0
.line 276
invoke-virtual {p1}, Lorg/spongycastle/x509/X509CertPairStoreSelector;->getForwardSelector()Lorg/spongycastle/x509/X509CertStoreSelector;
move-result-object v1
if-eqz v1, :cond_14
.line 278
invoke-virtual {p1}, Lorg/spongycastle/x509/X509CertPairStoreSelector;->getForwardSelector()Lorg/spongycastle/x509/X509CertStoreSelector;
move-result-object v0
invoke-direct {p0, v0}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->getSubjectAsString(Lorg/spongycastle/x509/X509CertStoreSelector;)Ljava/lang/String;
move-result-object v0
.line 280
:cond_14
invoke-virtual {p1}, Lorg/spongycastle/x509/X509CertPairStoreSelector;->getCertPair()Lorg/spongycastle/x509/X509CertificatePair;
move-result-object v1
if-eqz v1, :cond_6e
.line 282
invoke-virtual {p1}, Lorg/spongycastle/x509/X509CertPairStoreSelector;->getCertPair()Lorg/spongycastle/x509/X509CertificatePair;
move-result-object v1
invoke-virtual {v1}, Lorg/spongycastle/x509/X509CertificatePair;->getForward()Ljava/security/cert/X509Certificate;
move-result-object v1
if-eqz v1, :cond_6e
.line 284
invoke-virtual {p1}, Lorg/spongycastle/x509/X509CertPairStoreSelector;->getCertPair()Lorg/spongycastle/x509/X509CertificatePair;
move-result-object v0
invoke-virtual {v0}, Lorg/spongycastle/x509/X509CertificatePair;->getForward()Ljava/security/cert/X509Certificate;
move-result-object v0
.line 285
invoke-virtual {v0}, Ljava/security/cert/X509Certificate;->getSubjectX500Principal()Ljavax/security/auth/x500/X500Principal;
move-result-object v0
const-string v1, "RFC1779"
invoke-virtual {v0, v1}, Ljavax/security/auth/x500/X500Principal;->getName(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
move-object v1, v0
.line 289
:goto_37
if-eqz v1, :cond_62
.line 291
const/4 v0, 0x0
:goto_3a
array-length v3, p4
if-ge v0, v3, :cond_62
.line 293
aget-object v3, p4, v0
invoke-direct {p0, v1, v3}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->parseDN(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
.line 294
new-instance v4, Ljava/lang/StringBuilder;
const-string v5, "*"
invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, "*"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
.line 295
invoke-direct {p0, p3, v3, p2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->search([Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v3
invoke-interface {v2, v3}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z
.line 291
add-int/lit8 v0, v0, 0x1
goto :goto_3a
.line 299
:cond_62
if-nez v1, :cond_6d
.line 301
const-string v0, "*"
invoke-direct {p0, p3, v0, p2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->search([Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v0
invoke-interface {v2, v0}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z
.line 304
:cond_6d
return-object v2
:cond_6e
move-object v1, v0
goto :goto_37
.end method
.method private getCertificateIssuer(Ljava/security/cert/X509Certificate;)Ljavax/security/auth/x500/X500Principal;
.registers 3
.prologue
.line 1115
invoke-virtual {p1}, Ljava/security/cert/X509Certificate;->getIssuerX500Principal()Ljavax/security/auth/x500/X500Principal;
move-result-object v0
return-object v0
.end method
.method private getFromCache(Ljava/lang/String;)Ljava/util/List;
.registers 12
.prologue
const/4 v2, 0x0
.line 1074
iget-object v0, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->cacheMap:Ljava/util/Map;
invoke-interface {v0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/List;
.line 1075
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v4
.line 1076
if-eqz v0, :cond_2b
.line 1079
const/4 v1, 0x0
invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/sql/Date;
invoke-virtual {v1}, Ljava/sql/Date;->getTime()J
move-result-wide v6
sget-wide v8, Lorg/spongycastle/x509/util/LDAPStoreHelper;->lifeTime:J
sub-long/2addr v4, v8
cmp-long v1, v6, v4
if-gez v1, :cond_23
move-object v0, v2
.line 1085
:goto_22
return-object v0
.line 1083
:cond_23
const/4 v1, 0x1
invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/List;
goto :goto_22
:cond_2b
move-object v0, v2
.line 1085
goto :goto_22
.end method
.method private getSubjectAsString(Lorg/spongycastle/x509/X509CertStoreSelector;)Ljava/lang/String;
.registers 6
.prologue
.line 1100
:try_start_0
invoke-virtual {p1}, Lorg/spongycastle/x509/X509CertStoreSelector;->getSubjectAsBytes()[B
move-result-object v0
.line 1101
if-eqz v0, :cond_2c
.line 1103
new-instance v1, Ljavax/security/auth/x500/X500Principal;
invoke-direct {v1, v0}, Ljavax/security/auth/x500/X500Principal;-><init>([B)V
const-string v0, "RFC1779"
invoke-virtual {v1, v0}, Ljavax/security/auth/x500/X500Principal;->getName(Ljava/lang/String;)Ljava/lang/String;
:try_end_10
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_10} :catch_12
move-result-object v0
.line 1110
:goto_11
return-object v0
.line 1106
:catch_12
move-exception v0
.line 1108
new-instance v1, Lorg/spongycastle/util/StoreException;
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, "exception processing name: "
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0}, Ljava/io/IOException;->getMessage()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2, v0}, Lorg/spongycastle/util/StoreException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v1
.line 1110
:cond_2c
const/4 v0, 0x0
goto :goto_11
.end method
.method private parseDN(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.registers 11
.prologue
const/16 v7, 0x2c
const/4 v6, 0x1
const/4 v5, 0x0
const/4 v4, -0x1
.line 116
.line 117
invoke-virtual {p1}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
move-result-object v0
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
.line 118
invoke-virtual {p2}, Ljava/lang/String;->toLowerCase()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
.line 117
invoke-virtual {v0, v1}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I
move-result v0
.line 119
if-ne v0, v4, :cond_29
.line 121
const-string v0, ""
.line 152
:cond_28
:goto_28
return-object v0
.line 123
:cond_29
invoke-virtual {p2}, Ljava/lang/String;->length()I
move-result v1
add-int/2addr v0, v1
invoke-virtual {p1, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v1
.line 124
invoke-virtual {v1, v7}, Ljava/lang/String;->indexOf(I)I
move-result v0
.line 125
if-ne v0, v4, :cond_3c
.line 127
invoke-virtual {v1}, Ljava/lang/String;->length()I
move-result v0
.line 129
:cond_3c
:goto_3c
add-int/lit8 v2, v0, -0x1
invoke-virtual {v1, v2}, Ljava/lang/String;->charAt(I)C
move-result v2
const/16 v3, 0x5c
if-ne v2, v3, :cond_53
.line 131
add-int/lit8 v0, v0, 0x1
invoke-virtual {v1, v7, v0}, Ljava/lang/String;->indexOf(II)I
move-result v0
.line 132
if-ne v0, v4, :cond_3c
.line 134
invoke-virtual {v1}, Ljava/lang/String;->length()I
move-result v0
goto :goto_3c
.line 137
:cond_53
invoke-virtual {v1, v5, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v0
.line 138
const/16 v1, 0x3d
invoke-virtual {v0, v1}, Ljava/lang/String;->indexOf(I)I
move-result v1
.line 139
add-int/lit8 v1, v1, 0x1
invoke-virtual {v0, v1}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v0
.line 140
invoke-virtual {v0, v5}, Ljava/lang/String;->charAt(I)C
move-result v1
const/16 v2, 0x20
if-ne v1, v2, :cond_6f
.line 142
invoke-virtual {v0, v6}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v0
.line 144
:cond_6f
const-string v1, "\""
invoke-virtual {v0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v1
if-eqz v1, :cond_7b
.line 146
invoke-virtual {v0, v6}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v0
.line 148
:cond_7b
const-string v1, "\""
invoke-virtual {v0, v1}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v1
if-eqz v1, :cond_28
.line 150
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v1
add-int/lit8 v1, v1, -0x1
invoke-virtual {v0, v5, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v0
goto :goto_28
.end method
.method private search([Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
.registers 11
.prologue
const/4 v3, 0x0
const/4 v1, 0x0
.line 491
if-nez p1, :cond_2f
move-object v0, v3
.line 508
:goto_5
const-string v2, ""
move-object v6, v2
move v2, v1
move-object v1, v6
.line 509
:goto_a
array-length v4, p3
if-ge v2, v4, :cond_82
.line 511
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v4, "("
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
aget-object v4, p3, v2
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v4, "=*)"
invoke-virtual {v1, v4}, 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
.line 509
add-int/lit8 v2, v2, 0x1
goto :goto_a
.line 497
:cond_2f
const-string v0, ""
.line 498
const-string v2, "**"
invoke-virtual {p2, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_3b
.line 500
const-string p2, "*"
:cond_3b
move-object v2, v0
move v0, v1
.line 502
:goto_3d
array-length v4, p1
if-ge v0, v4, :cond_6c
.line 504
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
const-string v4, "("
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
aget-object v4, p1, v0
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
const-string v4, "="
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
const-string v4, ")"
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
.line 502
add-int/lit8 v0, v0, 0x1
goto :goto_3d
.line 506
:cond_6c
new-instance v0, Ljava/lang/StringBuilder;
const-string v4, "(|"
invoke-direct {v0, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, ")"
invoke-virtual {v0, v2}, 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
goto :goto_5
.line 513
:cond_82
new-instance v2, Ljava/lang/StringBuilder;
const-string v4, "(|"
invoke-direct {v2, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v2, v1}, 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
.line 515
new-instance v2, Ljava/lang/StringBuilder;
const-string v4, "(&"
invoke-direct {v2, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
const-string v4, ")"
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
.line 516
if-nez v0, :cond_127
.line 521
:goto_b2
invoke-direct {p0, v1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->getFromCache(Ljava/lang/String;)Ljava/util/List;
move-result-object v0
.line 522
if-eqz v0, :cond_b9
.line 570
:goto_b8
return-object v0
.line 527
:cond_b9
new-instance v2, Ljava/util/ArrayList;
invoke-direct {v2}, Ljava/util/ArrayList;-><init>()V
.line 531
:try_start_be
invoke-direct {p0}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->connectLDAP()Ljavax/naming/directory/DirContext;
move-result-object v3
.line 533
new-instance v0, Ljavax/naming/directory/SearchControls;
invoke-direct {v0}, Ljavax/naming/directory/SearchControls;-><init>()V
.line 534
const/4 v4, 0x2
invoke-virtual {v0, v4}, Ljavax/naming/directory/SearchControls;->setSearchScope(I)V
.line 535
const-wide/16 v4, 0x0
invoke-virtual {v0, v4, v5}, Ljavax/naming/directory/SearchControls;->setCountLimit(J)V
.line 536
invoke-virtual {v0, p3}, Ljavax/naming/directory/SearchControls;->setReturningAttributes([Ljava/lang/String;)V
.line 537
iget-object v4, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
invoke-virtual {v4}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getBaseDN()Ljava/lang/String;
move-result-object v4
invoke-interface {v3, v4, v1, v0}, Ljavax/naming/directory/DirContext;->search(Ljava/lang/String;Ljava/lang/String;Ljavax/naming/directory/SearchControls;)Ljavax/naming/NamingEnumeration;
move-result-object v4
.line 539
:cond_dd
invoke-interface {v4}, Ljavax/naming/NamingEnumeration;->hasMoreElements()Z
move-result v0
if-eqz v0, :cond_111
.line 541
invoke-interface {v4}, Ljavax/naming/NamingEnumeration;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljavax/naming/directory/SearchResult;
.line 543
invoke-virtual {v0}, Ljavax/naming/directory/SearchResult;->getAttributes()Ljavax/naming/directory/Attributes;
move-result-object v0
invoke-interface {v0}, Ljavax/naming/directory/Attributes;->getAll()Ljavax/naming/NamingEnumeration;
move-result-object v0
invoke-interface {v0}, Ljavax/naming/NamingEnumeration;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljavax/naming/directory/Attribute;
invoke-interface {v0}, Ljavax/naming/directory/Attribute;->getAll()Ljavax/naming/NamingEnumeration;
move-result-object v0
.line 544
:goto_fb
invoke-interface {v0}, Ljavax/naming/NamingEnumeration;->hasMore()Z
move-result v5
if-eqz v5, :cond_dd
.line 546
invoke-interface {v0}, Ljavax/naming/NamingEnumeration;->next()Ljava/lang/Object;
move-result-object v5
invoke-interface {v2, v5}, Ljava/util/List;->add(Ljava/lang/Object;)Z
:try_end_108
.catch Ljavax/naming/NamingException; {:try_start_be .. :try_end_108} :catch_109
.catchall {:try_start_be .. :try_end_108} :catchall_11c
goto :goto_fb
:catch_109
move-exception v0
.line 561
if-eqz v3, :cond_10f
.line 563
:try_start_10c
invoke-interface {v3}, Ljavax/naming/directory/DirContext;->close()V
:try_end_10f
.catch Ljava/lang/Exception; {:try_start_10c .. :try_end_10f} :catch_123
:cond_10f
:goto_10f
move-object v0, v2
.line 570
goto :goto_b8
.line 549
:cond_111
:try_start_111
invoke-direct {p0, v1, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->addToCache(Ljava/lang/String;Ljava/util/List;)V
:try_end_114
.catch Ljavax/naming/NamingException; {:try_start_111 .. :try_end_114} :catch_109
.catchall {:try_start_111 .. :try_end_114} :catchall_11c
.line 561
if-eqz v3, :cond_10f
.line 563
:try_start_116
invoke-interface {v3}, Ljavax/naming/directory/DirContext;->close()V
:try_end_119
.catch Ljava/lang/Exception; {:try_start_116 .. :try_end_119} :catch_11a
goto :goto_10f
.line 569
:catch_11a
move-exception v0
goto :goto_10f
.line 559
:catchall_11c
move-exception v0
.line 561
if-eqz v3, :cond_122
.line 563
:try_start_11f
invoke-interface {v3}, Ljavax/naming/directory/DirContext;->close()V
:try_end_122
.catch Ljava/lang/Exception; {:try_start_11f .. :try_end_122} :catch_125
.line 568
:cond_122
:goto_122
throw v0
.line 569
:catch_123
move-exception v0
goto :goto_10f
:catch_125
move-exception v1
goto :goto_122
:cond_127
move-object v1, v2
goto :goto_b2
.end method
.method private splitString(Ljava/lang/String;)[Ljava/lang/String;
.registers 3
.prologue
.line 1093
const-string v0, "\\s+"
invoke-virtual {p1, v0}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v0
return-object v0
.end method
# virtual methods
.method public getAACertificates(Lorg/spongycastle/x509/X509AttributeCertStoreSelector;)Ljava/util/Collection;
.registers 7
.prologue
.line 860
iget-object v0, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
invoke-virtual {v0}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getAACertificateAttribute()Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v0
.line 861
iget-object v1, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
invoke-virtual {v1}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getLdapAACertificateAttributeName()Ljava/lang/String;
move-result-object v1
invoke-direct {p0, v1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v1
.line 862
iget-object v2, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
invoke-virtual {v2}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getAACertificateSubjectAttributeName()Ljava/lang/String;
move-result-object v2
invoke-direct {p0, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v2
.line 864
invoke-direct {p0, p1, v0, v1, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->attrCertSubjectSerialSearch(Lorg/spongycastle/x509/X509AttributeCertStoreSelector;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v3
.line 866
invoke-direct {p0, v3, p1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->createAttributeCertificates(Ljava/util/List;Lorg/spongycastle/x509/X509AttributeCertStoreSelector;)Ljava/util/Set;
move-result-object v3
.line 867
invoke-interface {v3}, Ljava/util/Set;->size()I
move-result v4
if-nez v4, :cond_3c
.line 869
new-instance v4, Lorg/spongycastle/x509/X509AttributeCertStoreSelector;
invoke-direct {v4}, Lorg/spongycastle/x509/X509AttributeCertStoreSelector;-><init>()V
.line 870
invoke-direct {p0, v4, v0, v1, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->attrCertSubjectSerialSearch(Lorg/spongycastle/x509/X509AttributeCertStoreSelector;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v0
.line 872
invoke-direct {p0, v0, p1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->createAttributeCertificates(Ljava/util/List;Lorg/spongycastle/x509/X509AttributeCertStoreSelector;)Ljava/util/Set;
move-result-object v0
invoke-interface {v3, v0}, Ljava/util/Set;->addAll(Ljava/util/Collection;)Z
.line 875
:cond_3c
return-object v3
.end method
.method public getAttributeAuthorityRevocationLists(Lorg/spongycastle/x509/X509CRLStoreSelector;)Ljava/util/Collection;
.registers 7
.prologue
.line 764
iget-object v0, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
invoke-virtual {v0}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getAttributeAuthorityRevocationListAttribute()Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v0
.line 765
iget-object v1, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
.line 766
invoke-virtual {v1}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getLdapAttributeAuthorityRevocationListAttributeName()Ljava/lang/String;
move-result-object v1
.line 765
invoke-direct {p0, v1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v1
.line 767
iget-object v2, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
.line 768
invoke-virtual {v2}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getAttributeAuthorityRevocationListIssuerAttributeName()Ljava/lang/String;
move-result-object v2
.line 767
invoke-direct {p0, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v2
.line 770
invoke-direct {p0, p1, v0, v1, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->cRLIssuerSearch(Lorg/spongycastle/x509/X509CRLStoreSelector;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v3
.line 772
invoke-direct {p0, v3, p1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->createCRLs(Ljava/util/List;Lorg/spongycastle/x509/X509CRLStoreSelector;)Ljava/util/Set;
move-result-object v3
.line 773
invoke-interface {v3}, Ljava/util/Set;->size()I
move-result v4
if-nez v4, :cond_3c
.line 775
new-instance v4, Lorg/spongycastle/x509/X509CRLStoreSelector;
invoke-direct {v4}, Lorg/spongycastle/x509/X509CRLStoreSelector;-><init>()V
.line 776
invoke-direct {p0, v4, v0, v1, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->cRLIssuerSearch(Lorg/spongycastle/x509/X509CRLStoreSelector;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v0
.line 779
invoke-direct {p0, v0, p1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->createCRLs(Ljava/util/List;Lorg/spongycastle/x509/X509CRLStoreSelector;)Ljava/util/Set;
move-result-object v0
invoke-interface {v3, v0}, Ljava/util/Set;->addAll(Ljava/util/Collection;)Z
.line 781
:cond_3c
return-object v3
.end method
.method public getAttributeCertificateAttributes(Lorg/spongycastle/x509/X509AttributeCertStoreSelector;)Ljava/util/Collection;
.registers 7
.prologue
.line 983
iget-object v0, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
invoke-virtual {v0}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getAttributeCertificateAttributeAttribute()Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v0
.line 984
iget-object v1, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
.line 985
invoke-virtual {v1}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getLdapAttributeCertificateAttributeAttributeName()Ljava/lang/String;
move-result-object v1
.line 984
invoke-direct {p0, v1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v1
.line 986
iget-object v2, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
.line 987
invoke-virtual {v2}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getAttributeCertificateAttributeSubjectAttributeName()Ljava/lang/String;
move-result-object v2
.line 986
invoke-direct {p0, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v2
.line 988
invoke-direct {p0, p1, v0, v1, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->attrCertSubjectSerialSearch(Lorg/spongycastle/x509/X509AttributeCertStoreSelector;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v3
.line 990
invoke-direct {p0, v3, p1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->createAttributeCertificates(Ljava/util/List;Lorg/spongycastle/x509/X509AttributeCertStoreSelector;)Ljava/util/Set;
move-result-object v3
.line 991
invoke-interface {v3}, Ljava/util/Set;->size()I
move-result v4
if-nez v4, :cond_3c
.line 993
new-instance v4, Lorg/spongycastle/x509/X509AttributeCertStoreSelector;
invoke-direct {v4}, Lorg/spongycastle/x509/X509AttributeCertStoreSelector;-><init>()V
.line 994
invoke-direct {p0, v4, v0, v1, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->attrCertSubjectSerialSearch(Lorg/spongycastle/x509/X509AttributeCertStoreSelector;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v0
.line 996
invoke-direct {p0, v0, p1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->createAttributeCertificates(Ljava/util/List;Lorg/spongycastle/x509/X509AttributeCertStoreSelector;)Ljava/util/Set;
move-result-object v0
invoke-interface {v3, v0}, Ljava/util/Set;->addAll(Ljava/util/Collection;)Z
.line 999
:cond_3c
return-object v3
.end method
.method public getAttributeCertificateRevocationLists(Lorg/spongycastle/x509/X509CRLStoreSelector;)Ljava/util/Collection;
.registers 7
.prologue
.line 729
iget-object v0, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
.line 730
invoke-virtual {v0}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getAttributeCertificateRevocationListAttribute()Ljava/lang/String;
move-result-object v0
.line 729
invoke-direct {p0, v0}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v0
.line 731
iget-object v1, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
.line 732
invoke-virtual {v1}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getLdapAttributeCertificateRevocationListAttributeName()Ljava/lang/String;
move-result-object v1
.line 731
invoke-direct {p0, v1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v1
.line 733
iget-object v2, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
.line 734
invoke-virtual {v2}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getAttributeCertificateRevocationListIssuerAttributeName()Ljava/lang/String;
move-result-object v2
.line 733
invoke-direct {p0, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v2
.line 736
invoke-direct {p0, p1, v0, v1, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->cRLIssuerSearch(Lorg/spongycastle/x509/X509CRLStoreSelector;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v3
.line 738
invoke-direct {p0, v3, p1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->createCRLs(Ljava/util/List;Lorg/spongycastle/x509/X509CRLStoreSelector;)Ljava/util/Set;
move-result-object v3
.line 739
invoke-interface {v3}, Ljava/util/Set;->size()I
move-result v4
if-nez v4, :cond_3c
.line 741
new-instance v4, Lorg/spongycastle/x509/X509CRLStoreSelector;
invoke-direct {v4}, Lorg/spongycastle/x509/X509CRLStoreSelector;-><init>()V
.line 742
invoke-direct {p0, v4, v0, v1, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->cRLIssuerSearch(Lorg/spongycastle/x509/X509CRLStoreSelector;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v0
.line 745
invoke-direct {p0, v0, p1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->createCRLs(Ljava/util/List;Lorg/spongycastle/x509/X509CRLStoreSelector;)Ljava/util/Set;
move-result-object v0
invoke-interface {v3, v0}, Ljava/util/Set;->addAll(Ljava/util/Collection;)Z
.line 747
:cond_3c
return-object v3
.end method
.method public getAttributeDescriptorCertificates(Lorg/spongycastle/x509/X509AttributeCertStoreSelector;)Ljava/util/Collection;
.registers 7
.prologue
.line 892
iget-object v0, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
invoke-virtual {v0}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getAttributeDescriptorCertificateAttribute()Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v0
.line 893
iget-object v1, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
.line 894
invoke-virtual {v1}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getLdapAttributeDescriptorCertificateAttributeName()Ljava/lang/String;
move-result-object v1
.line 893
invoke-direct {p0, v1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v1
.line 895
iget-object v2, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
.line 896
invoke-virtual {v2}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getAttributeDescriptorCertificateSubjectAttributeName()Ljava/lang/String;
move-result-object v2
.line 895
invoke-direct {p0, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v2
.line 898
invoke-direct {p0, p1, v0, v1, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->attrCertSubjectSerialSearch(Lorg/spongycastle/x509/X509AttributeCertStoreSelector;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v3
.line 900
invoke-direct {p0, v3, p1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->createAttributeCertificates(Ljava/util/List;Lorg/spongycastle/x509/X509AttributeCertStoreSelector;)Ljava/util/Set;
move-result-object v3
.line 901
invoke-interface {v3}, Ljava/util/Set;->size()I
move-result v4
if-nez v4, :cond_3c
.line 903
new-instance v4, Lorg/spongycastle/x509/X509AttributeCertStoreSelector;
invoke-direct {v4}, Lorg/spongycastle/x509/X509AttributeCertStoreSelector;-><init>()V
.line 904
invoke-direct {p0, v4, v0, v1, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->attrCertSubjectSerialSearch(Lorg/spongycastle/x509/X509AttributeCertStoreSelector;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v0
.line 906
invoke-direct {p0, v0, p1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->createAttributeCertificates(Ljava/util/List;Lorg/spongycastle/x509/X509AttributeCertStoreSelector;)Ljava/util/Set;
move-result-object v0
invoke-interface {v3, v0}, Ljava/util/Set;->addAll(Ljava/util/Collection;)Z
.line 909
:cond_3c
return-object v3
.end method
.method public getAuthorityRevocationLists(Lorg/spongycastle/x509/X509CRLStoreSelector;)Ljava/util/Collection;
.registers 7
.prologue
.line 696
iget-object v0, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
invoke-virtual {v0}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getAuthorityRevocationListAttribute()Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v0
.line 697
iget-object v1, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
.line 698
invoke-virtual {v1}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getLdapAuthorityRevocationListAttributeName()Ljava/lang/String;
move-result-object v1
.line 697
invoke-direct {p0, v1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v1
.line 699
iget-object v2, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
.line 700
invoke-virtual {v2}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getAuthorityRevocationListIssuerAttributeName()Ljava/lang/String;
move-result-object v2
.line 699
invoke-direct {p0, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v2
.line 702
invoke-direct {p0, p1, v0, v1, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->cRLIssuerSearch(Lorg/spongycastle/x509/X509CRLStoreSelector;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v3
.line 704
invoke-direct {p0, v3, p1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->createCRLs(Ljava/util/List;Lorg/spongycastle/x509/X509CRLStoreSelector;)Ljava/util/Set;
move-result-object v3
.line 705
invoke-interface {v3}, Ljava/util/Set;->size()I
move-result v4
if-nez v4, :cond_3c
.line 707
new-instance v4, Lorg/spongycastle/x509/X509CRLStoreSelector;
invoke-direct {v4}, Lorg/spongycastle/x509/X509CRLStoreSelector;-><init>()V
.line 708
invoke-direct {p0, v4, v0, v1, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->cRLIssuerSearch(Lorg/spongycastle/x509/X509CRLStoreSelector;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v0
.line 711
invoke-direct {p0, v0, p1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->createCRLs(Ljava/util/List;Lorg/spongycastle/x509/X509CRLStoreSelector;)Ljava/util/Set;
move-result-object v0
invoke-interface {v3, v0}, Ljava/util/Set;->addAll(Ljava/util/Collection;)Z
.line 713
:cond_3c
return-object v3
.end method
.method public getCACertificates(Lorg/spongycastle/x509/X509CertStoreSelector;)Ljava/util/Collection;
.registers 7
.prologue
.line 926
iget-object v0, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
invoke-virtual {v0}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getCACertificateAttribute()Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v0
.line 927
iget-object v1, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
invoke-virtual {v1}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getLdapCACertificateAttributeName()Ljava/lang/String;
move-result-object v1
invoke-direct {p0, v1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v1
.line 928
iget-object v2, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
.line 929
invoke-virtual {v2}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getCACertificateSubjectAttributeName()Ljava/lang/String;
move-result-object v2
.line 928
invoke-direct {p0, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v2
.line 930
invoke-direct {p0, p1, v0, v1, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->certSubjectSerialSearch(Lorg/spongycastle/x509/X509CertStoreSelector;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v3
.line 932
invoke-direct {p0, v3, p1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->createCerts(Ljava/util/List;Lorg/spongycastle/x509/X509CertStoreSelector;)Ljava/util/Set;
move-result-object v3
.line 933
invoke-interface {v3}, Ljava/util/Set;->size()I
move-result v4
if-nez v4, :cond_3c
.line 935
new-instance v4, Lorg/spongycastle/x509/X509CertStoreSelector;
invoke-direct {v4}, Lorg/spongycastle/x509/X509CertStoreSelector;-><init>()V
.line 936
invoke-direct {p0, v4, v0, v1, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->certSubjectSerialSearch(Lorg/spongycastle/x509/X509CertStoreSelector;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v0
.line 938
invoke-direct {p0, v0, p1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->createCerts(Ljava/util/List;Lorg/spongycastle/x509/X509CertStoreSelector;)Ljava/util/Set;
move-result-object v0
invoke-interface {v3, v0}, Ljava/util/Set;->addAll(Ljava/util/Collection;)Z
.line 940
:cond_3c
return-object v3
.end method
.method public getCertificateRevocationLists(Lorg/spongycastle/x509/X509CRLStoreSelector;)Ljava/util/Collection;
.registers 7
.prologue
.line 1012
iget-object v0, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
invoke-virtual {v0}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getCertificateRevocationListAttribute()Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v0
.line 1013
iget-object v1, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
.line 1014
invoke-virtual {v1}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getLdapCertificateRevocationListAttributeName()Ljava/lang/String;
move-result-object v1
.line 1013
invoke-direct {p0, v1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v1
.line 1015
iget-object v2, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
.line 1016
invoke-virtual {v2}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getCertificateRevocationListIssuerAttributeName()Ljava/lang/String;
move-result-object v2
.line 1015
invoke-direct {p0, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v2
.line 1017
invoke-direct {p0, p1, v0, v1, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->cRLIssuerSearch(Lorg/spongycastle/x509/X509CRLStoreSelector;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v3
.line 1019
invoke-direct {p0, v3, p1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->createCRLs(Ljava/util/List;Lorg/spongycastle/x509/X509CRLStoreSelector;)Ljava/util/Set;
move-result-object v3
.line 1020
invoke-interface {v3}, Ljava/util/Set;->size()I
move-result v4
if-nez v4, :cond_3c
.line 1022
new-instance v4, Lorg/spongycastle/x509/X509CRLStoreSelector;
invoke-direct {v4}, Lorg/spongycastle/x509/X509CRLStoreSelector;-><init>()V
.line 1023
invoke-direct {p0, v4, v0, v1, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->cRLIssuerSearch(Lorg/spongycastle/x509/X509CRLStoreSelector;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v0
.line 1026
invoke-direct {p0, v0, p1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->createCRLs(Ljava/util/List;Lorg/spongycastle/x509/X509CRLStoreSelector;)Ljava/util/Set;
move-result-object v0
invoke-interface {v3, v0}, Ljava/util/Set;->addAll(Ljava/util/Collection;)Z
.line 1028
:cond_3c
return-object v3
.end method
.method public getCrossCertificatePairs(Lorg/spongycastle/x509/X509CertPairStoreSelector;)Ljava/util/Collection;
.registers 8
.prologue
.line 794
iget-object v0, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
invoke-virtual {v0}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getCrossCertificateAttribute()Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v0
.line 795
iget-object v1, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
invoke-virtual {v1}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getLdapCrossCertificateAttributeName()Ljava/lang/String;
move-result-object v1
invoke-direct {p0, v1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v1
.line 796
iget-object v2, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
.line 797
invoke-virtual {v2}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getCrossCertificateSubjectAttributeName()Ljava/lang/String;
move-result-object v2
.line 796
invoke-direct {p0, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v2
.line 798
invoke-direct {p0, p1, v0, v1, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->crossCertificatePairSubjectSearch(Lorg/spongycastle/x509/X509CertPairStoreSelector;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v3
.line 800
invoke-direct {p0, v3, p1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->createCrossCertificatePairs(Ljava/util/List;Lorg/spongycastle/x509/X509CertPairStoreSelector;)Ljava/util/Set;
move-result-object v3
.line 801
invoke-interface {v3}, Ljava/util/Set;->size()I
move-result v4
if-nez v4, :cond_47
.line 803
new-instance v4, Lorg/spongycastle/x509/X509CertStoreSelector;
invoke-direct {v4}, Lorg/spongycastle/x509/X509CertStoreSelector;-><init>()V
.line 804
new-instance v5, Lorg/spongycastle/x509/X509CertPairStoreSelector;
invoke-direct {v5}, Lorg/spongycastle/x509/X509CertPairStoreSelector;-><init>()V
.line 806
invoke-virtual {v5, v4}, Lorg/spongycastle/x509/X509CertPairStoreSelector;->setForwardSelector(Lorg/spongycastle/x509/X509CertStoreSelector;)V
.line 807
invoke-virtual {v5, v4}, Lorg/spongycastle/x509/X509CertPairStoreSelector;->setReverseSelector(Lorg/spongycastle/x509/X509CertStoreSelector;)V
.line 808
invoke-direct {p0, v5, v0, v1, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->crossCertificatePairSubjectSearch(Lorg/spongycastle/x509/X509CertPairStoreSelector;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v0
.line 810
invoke-direct {p0, v0, p1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->createCrossCertificatePairs(Ljava/util/List;Lorg/spongycastle/x509/X509CertPairStoreSelector;)Ljava/util/Set;
move-result-object v0
invoke-interface {v3, v0}, Ljava/util/Set;->addAll(Ljava/util/Collection;)Z
.line 812
:cond_47
return-object v3
.end method
.method public getDeltaCertificateRevocationLists(Lorg/spongycastle/x509/X509CRLStoreSelector;)Ljava/util/Collection;
.registers 7
.prologue
.line 953
iget-object v0, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
invoke-virtual {v0}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getDeltaRevocationListAttribute()Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v0
.line 954
iget-object v1, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
invoke-virtual {v1}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getLdapDeltaRevocationListAttributeName()Ljava/lang/String;
move-result-object v1
invoke-direct {p0, v1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v1
.line 955
iget-object v2, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
.line 956
invoke-virtual {v2}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getDeltaRevocationListIssuerAttributeName()Ljava/lang/String;
move-result-object v2
.line 955
invoke-direct {p0, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v2
.line 957
invoke-direct {p0, p1, v0, v1, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->cRLIssuerSearch(Lorg/spongycastle/x509/X509CRLStoreSelector;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v3
.line 959
invoke-direct {p0, v3, p1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->createCRLs(Ljava/util/List;Lorg/spongycastle/x509/X509CRLStoreSelector;)Ljava/util/Set;
move-result-object v3
.line 960
invoke-interface {v3}, Ljava/util/Set;->size()I
move-result v4
if-nez v4, :cond_3c
.line 962
new-instance v4, Lorg/spongycastle/x509/X509CRLStoreSelector;
invoke-direct {v4}, Lorg/spongycastle/x509/X509CRLStoreSelector;-><init>()V
.line 963
invoke-direct {p0, v4, v0, v1, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->cRLIssuerSearch(Lorg/spongycastle/x509/X509CRLStoreSelector;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v0
.line 966
invoke-direct {p0, v0, p1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->createCRLs(Ljava/util/List;Lorg/spongycastle/x509/X509CRLStoreSelector;)Ljava/util/Set;
move-result-object v0
invoke-interface {v3, v0}, Ljava/util/Set;->addAll(Ljava/util/Collection;)Z
.line 968
:cond_3c
return-object v3
.end method
.method public getUserCertificates(Lorg/spongycastle/x509/X509CertStoreSelector;)Ljava/util/Collection;
.registers 7
.prologue
.line 829
iget-object v0, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
invoke-virtual {v0}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getUserCertificateAttribute()Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v0
.line 830
iget-object v1, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
invoke-virtual {v1}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getLdapUserCertificateAttributeName()Ljava/lang/String;
move-result-object v1
invoke-direct {p0, v1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v1
.line 831
iget-object v2, p0, Lorg/spongycastle/x509/util/LDAPStoreHelper;->params:Lorg/spongycastle/jce/X509LDAPCertStoreParameters;
.line 832
invoke-virtual {v2}, Lorg/spongycastle/jce/X509LDAPCertStoreParameters;->getUserCertificateSubjectAttributeName()Ljava/lang/String;
move-result-object v2
.line 831
invoke-direct {p0, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->splitString(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v2
.line 834
invoke-direct {p0, p1, v0, v1, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->certSubjectSerialSearch(Lorg/spongycastle/x509/X509CertStoreSelector;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v3
.line 836
invoke-direct {p0, v3, p1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->createCerts(Ljava/util/List;Lorg/spongycastle/x509/X509CertStoreSelector;)Ljava/util/Set;
move-result-object v3
.line 837
invoke-interface {v3}, Ljava/util/Set;->size()I
move-result v4
if-nez v4, :cond_3c
.line 839
new-instance v4, Lorg/spongycastle/x509/X509CertStoreSelector;
invoke-direct {v4}, Lorg/spongycastle/x509/X509CertStoreSelector;-><init>()V
.line 840
invoke-direct {p0, v4, v0, v1, v2}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->certSubjectSerialSearch(Lorg/spongycastle/x509/X509CertStoreSelector;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
move-result-object v0
.line 842
invoke-direct {p0, v0, p1}, Lorg/spongycastle/x509/util/LDAPStoreHelper;->createCerts(Ljava/util/List;Lorg/spongycastle/x509/X509CertStoreSelector;)Ljava/util/Set;
move-result-object v0
invoke-interface {v3, v0}, Ljava/util/Set;->addAll(Ljava/util/Collection;)Z
.line 845
:cond_3c
return-object v3
.end method