X500Name.smali
.class public Lorg/spongycastle/asn1/x500/X500Name;
.super Lorg/spongycastle/asn1/ASN1Object;
.source "X500Name.java"
# interfaces
.implements Lorg/spongycastle/asn1/ASN1Choice;
# static fields
.field private static defaultStyle:Lorg/spongycastle/asn1/x500/X500NameStyle;
# instance fields
.field private hashCodeValue:I
.field private isHashCodeCalculated:Z
.field private rdns:[Lorg/spongycastle/asn1/x500/RDN;
.field private style:Lorg/spongycastle/asn1/x500/X500NameStyle;
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 34
sget-object v0, Lorg/spongycastle/asn1/x500/style/BCStyle;->INSTANCE:Lorg/spongycastle/asn1/x500/X500NameStyle;
sput-object v0, Lorg/spongycastle/asn1/x500/X500Name;->defaultStyle:Lorg/spongycastle/asn1/x500/X500NameStyle;
return-void
.end method
.method public constructor <init>(Ljava/lang/String;)V
.registers 3
.prologue
.line 140
sget-object v0, Lorg/spongycastle/asn1/x500/X500Name;->defaultStyle:Lorg/spongycastle/asn1/x500/X500NameStyle;
invoke-direct {p0, v0, p1}, Lorg/spongycastle/asn1/x500/X500Name;-><init>(Lorg/spongycastle/asn1/x500/X500NameStyle;Ljava/lang/String;)V
.line 141
return-void
.end method
.method private constructor <init>(Lorg/spongycastle/asn1/ASN1Sequence;)V
.registers 3
.prologue
.line 105
sget-object v0, Lorg/spongycastle/asn1/x500/X500Name;->defaultStyle:Lorg/spongycastle/asn1/x500/X500NameStyle;
invoke-direct {p0, v0, p1}, Lorg/spongycastle/asn1/x500/X500Name;-><init>(Lorg/spongycastle/asn1/x500/X500NameStyle;Lorg/spongycastle/asn1/ASN1Sequence;)V
.line 106
return-void
.end method
.method public constructor <init>(Lorg/spongycastle/asn1/x500/X500NameStyle;Ljava/lang/String;)V
.registers 4
.prologue
.line 147
invoke-interface {p1, p2}, Lorg/spongycastle/asn1/x500/X500NameStyle;->fromString(Ljava/lang/String;)[Lorg/spongycastle/asn1/x500/RDN;
move-result-object v0
invoke-direct {p0, v0}, Lorg/spongycastle/asn1/x500/X500Name;-><init>([Lorg/spongycastle/asn1/x500/RDN;)V
.line 149
iput-object p1, p0, Lorg/spongycastle/asn1/x500/X500Name;->style:Lorg/spongycastle/asn1/x500/X500NameStyle;
.line 150
return-void
.end method
.method private constructor <init>(Lorg/spongycastle/asn1/x500/X500NameStyle;Lorg/spongycastle/asn1/ASN1Sequence;)V
.registers 8
.prologue
.line 111
invoke-direct {p0}, Lorg/spongycastle/asn1/ASN1Object;-><init>()V
.line 112
iput-object p1, p0, Lorg/spongycastle/asn1/x500/X500Name;->style:Lorg/spongycastle/asn1/x500/X500NameStyle;
.line 113
invoke-virtual {p2}, Lorg/spongycastle/asn1/ASN1Sequence;->size()I
move-result v0
new-array v0, v0, [Lorg/spongycastle/asn1/x500/RDN;
iput-object v0, p0, Lorg/spongycastle/asn1/x500/X500Name;->rdns:[Lorg/spongycastle/asn1/x500/RDN;
.line 115
const/4 v0, 0x0
.line 117
invoke-virtual {p2}, Lorg/spongycastle/asn1/ASN1Sequence;->getObjects()Ljava/util/Enumeration;
move-result-object v2
:goto_12
invoke-interface {v2}, Ljava/util/Enumeration;->hasMoreElements()Z
move-result v1
if-eqz v1, :cond_28
.line 119
iget-object v3, p0, Lorg/spongycastle/asn1/x500/X500Name;->rdns:[Lorg/spongycastle/asn1/x500/RDN;
add-int/lit8 v1, v0, 0x1
invoke-interface {v2}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;
move-result-object v4
invoke-static {v4}, Lorg/spongycastle/asn1/x500/RDN;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/x500/RDN;
move-result-object v4
aput-object v4, v3, v0
move v0, v1
goto :goto_12
.line 121
:cond_28
return-void
.end method
.method public constructor <init>(Lorg/spongycastle/asn1/x500/X500NameStyle;Lorg/spongycastle/asn1/x500/X500Name;)V
.registers 4
.prologue
.line 46
invoke-direct {p0}, Lorg/spongycastle/asn1/ASN1Object;-><init>()V
.line 47
iget-object v0, p2, Lorg/spongycastle/asn1/x500/X500Name;->rdns:[Lorg/spongycastle/asn1/x500/RDN;
iput-object v0, p0, Lorg/spongycastle/asn1/x500/X500Name;->rdns:[Lorg/spongycastle/asn1/x500/RDN;
.line 48
iput-object p1, p0, Lorg/spongycastle/asn1/x500/X500Name;->style:Lorg/spongycastle/asn1/x500/X500NameStyle;
.line 49
return-void
.end method
.method public constructor <init>(Lorg/spongycastle/asn1/x500/X500NameStyle;[Lorg/spongycastle/asn1/x500/RDN;)V
.registers 3
.prologue
.line 132
invoke-direct {p0}, Lorg/spongycastle/asn1/ASN1Object;-><init>()V
.line 133
iput-object p2, p0, Lorg/spongycastle/asn1/x500/X500Name;->rdns:[Lorg/spongycastle/asn1/x500/RDN;
.line 134
iput-object p1, p0, Lorg/spongycastle/asn1/x500/X500Name;->style:Lorg/spongycastle/asn1/x500/X500NameStyle;
.line 135
return-void
.end method
.method public constructor <init>([Lorg/spongycastle/asn1/x500/RDN;)V
.registers 3
.prologue
.line 126
sget-object v0, Lorg/spongycastle/asn1/x500/X500Name;->defaultStyle:Lorg/spongycastle/asn1/x500/X500NameStyle;
invoke-direct {p0, v0, p1}, Lorg/spongycastle/asn1/x500/X500Name;-><init>(Lorg/spongycastle/asn1/x500/X500NameStyle;[Lorg/spongycastle/asn1/x500/RDN;)V
.line 127
return-void
.end method
.method public static getDefaultStyle()Lorg/spongycastle/asn1/x500/X500NameStyle;
.registers 1
.prologue
.line 328
sget-object v0, Lorg/spongycastle/asn1/x500/X500Name;->defaultStyle:Lorg/spongycastle/asn1/x500/X500NameStyle;
return-object v0
.end method
.method public static getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/x500/X500Name;
.registers 3
.prologue
.line 69
instance-of v0, p0, Lorg/spongycastle/asn1/x500/X500Name;
if-eqz v0, :cond_7
.line 71
check-cast p0, Lorg/spongycastle/asn1/x500/X500Name;
.line 78
:goto_6
return-object p0
.line 73
:cond_7
if-eqz p0, :cond_14
.line 75
new-instance v0, Lorg/spongycastle/asn1/x500/X500Name;
invoke-static {p0}, Lorg/spongycastle/asn1/ASN1Sequence;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/ASN1Sequence;
move-result-object v1
invoke-direct {v0, v1}, Lorg/spongycastle/asn1/x500/X500Name;-><init>(Lorg/spongycastle/asn1/ASN1Sequence;)V
move-object p0, v0
goto :goto_6
.line 78
:cond_14
const/4 p0, 0x0
goto :goto_6
.end method
.method public static getInstance(Lorg/spongycastle/asn1/ASN1TaggedObject;Z)Lorg/spongycastle/asn1/x500/X500Name;
.registers 3
.prologue
.line 63
const/4 v0, 0x1
invoke-static {p0, v0}, Lorg/spongycastle/asn1/ASN1Sequence;->getInstance(Lorg/spongycastle/asn1/ASN1TaggedObject;Z)Lorg/spongycastle/asn1/ASN1Sequence;
move-result-object v0
invoke-static {v0}, Lorg/spongycastle/asn1/x500/X500Name;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/x500/X500Name;
move-result-object v0
return-object v0
.end method
.method public static getInstance(Lorg/spongycastle/asn1/x500/X500NameStyle;Ljava/lang/Object;)Lorg/spongycastle/asn1/x500/X500Name;
.registers 4
.prologue
.line 85
instance-of v0, p1, Lorg/spongycastle/asn1/x500/X500Name;
if-eqz v0, :cond_c
.line 87
new-instance v0, Lorg/spongycastle/asn1/x500/X500Name;
check-cast p1, Lorg/spongycastle/asn1/x500/X500Name;
invoke-direct {v0, p0, p1}, Lorg/spongycastle/asn1/x500/X500Name;-><init>(Lorg/spongycastle/asn1/x500/X500NameStyle;Lorg/spongycastle/asn1/x500/X500Name;)V
.line 94
:goto_b
return-object v0
.line 89
:cond_c
if-eqz p1, :cond_18
.line 91
new-instance v0, Lorg/spongycastle/asn1/x500/X500Name;
invoke-static {p1}, Lorg/spongycastle/asn1/ASN1Sequence;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/ASN1Sequence;
move-result-object v1
invoke-direct {v0, p0, v1}, Lorg/spongycastle/asn1/x500/X500Name;-><init>(Lorg/spongycastle/asn1/x500/X500NameStyle;Lorg/spongycastle/asn1/ASN1Sequence;)V
goto :goto_b
.line 94
:cond_18
const/4 v0, 0x0
goto :goto_b
.end method
.method public static setDefaultStyle(Lorg/spongycastle/asn1/x500/X500NameStyle;)V
.registers 3
.prologue
.line 313
if-nez p0, :cond_a
.line 315
new-instance v0, Ljava/lang/NullPointerException;
const-string v1, "cannot set style to null"
invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
throw v0
.line 318
:cond_a
sput-object p0, Lorg/spongycastle/asn1/x500/X500Name;->defaultStyle:Lorg/spongycastle/asn1/x500/X500NameStyle;
.line 319
return-void
.end method
# virtual methods
.method public equals(Ljava/lang/Object;)Z
.registers 6
.prologue
const/4 v1, 0x1
const/4 v2, 0x0
.line 274
if-ne p1, p0, :cond_6
move v0, v1
.line 297
:goto_5
return v0
.line 279
:cond_6
instance-of v0, p1, Lorg/spongycastle/asn1/x500/X500Name;
if-nez v0, :cond_10
instance-of v0, p1, Lorg/spongycastle/asn1/ASN1Sequence;
if-nez v0, :cond_10
move v0, v2
.line 281
goto :goto_5
:cond_10
move-object v0, p1
.line 284
check-cast v0, Lorg/spongycastle/asn1/ASN1Encodable;
invoke-interface {v0}, Lorg/spongycastle/asn1/ASN1Encodable;->toASN1Primitive()Lorg/spongycastle/asn1/ASN1Primitive;
move-result-object v0
.line 286
invoke-virtual {p0}, Lorg/spongycastle/asn1/x500/X500Name;->toASN1Primitive()Lorg/spongycastle/asn1/ASN1Primitive;
move-result-object v3
invoke-virtual {v3, v0}, Lorg/spongycastle/asn1/ASN1Primitive;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_23
move v0, v1
.line 288
goto :goto_5
.line 293
:cond_23
:try_start_23
iget-object v0, p0, Lorg/spongycastle/asn1/x500/X500Name;->style:Lorg/spongycastle/asn1/x500/X500NameStyle;
new-instance v1, Lorg/spongycastle/asn1/x500/X500Name;
check-cast p1, Lorg/spongycastle/asn1/ASN1Encodable;
invoke-interface {p1}, Lorg/spongycastle/asn1/ASN1Encodable;->toASN1Primitive()Lorg/spongycastle/asn1/ASN1Primitive;
move-result-object v3
invoke-static {v3}, Lorg/spongycastle/asn1/ASN1Sequence;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/ASN1Sequence;
move-result-object v3
invoke-direct {v1, v3}, Lorg/spongycastle/asn1/x500/X500Name;-><init>(Lorg/spongycastle/asn1/ASN1Sequence;)V
invoke-interface {v0, p0, v1}, Lorg/spongycastle/asn1/x500/X500NameStyle;->areEqual(Lorg/spongycastle/asn1/x500/X500Name;Lorg/spongycastle/asn1/x500/X500Name;)Z
:try_end_37
.catch Ljava/lang/Exception; {:try_start_23 .. :try_end_37} :catch_39
move-result v0
goto :goto_5
.line 297
:catch_39
move-exception v0
move v0, v2
goto :goto_5
.end method
.method public getAttributeTypes()[Lorg/spongycastle/asn1/ASN1ObjectIdentifier;
.registers 9
.prologue
const/4 v1, 0x0
.line 173
move v0, v1
move v2, v1
.line 175
:goto_3
iget-object v3, p0, Lorg/spongycastle/asn1/x500/X500Name;->rdns:[Lorg/spongycastle/asn1/x500/RDN;
array-length v3, v3
if-eq v0, v3, :cond_14
.line 177
iget-object v3, p0, Lorg/spongycastle/asn1/x500/X500Name;->rdns:[Lorg/spongycastle/asn1/x500/RDN;
aget-object v3, v3, v0
.line 179
invoke-virtual {v3}, Lorg/spongycastle/asn1/x500/RDN;->size()I
move-result v3
add-int/2addr v2, v3
.line 175
add-int/lit8 v0, v0, 0x1
goto :goto_3
.line 182
:cond_14
new-array v5, v2, [Lorg/spongycastle/asn1/ASN1ObjectIdentifier;
move v0, v1
move v2, v1
.line 186
:goto_18
iget-object v3, p0, Lorg/spongycastle/asn1/x500/X500Name;->rdns:[Lorg/spongycastle/asn1/x500/RDN;
array-length v3, v3
if-eq v0, v3, :cond_56
.line 188
iget-object v3, p0, Lorg/spongycastle/asn1/x500/X500Name;->rdns:[Lorg/spongycastle/asn1/x500/RDN;
aget-object v4, v3, v0
.line 190
invoke-virtual {v4}, Lorg/spongycastle/asn1/x500/RDN;->isMultiValued()Z
move-result v3
if-eqz v3, :cond_42
.line 192
invoke-virtual {v4}, Lorg/spongycastle/asn1/x500/RDN;->getTypesAndValues()[Lorg/spongycastle/asn1/x500/AttributeTypeAndValue;
move-result-object v6
move v3, v2
move v2, v1
.line 193
:goto_2d
array-length v4, v6
if-eq v2, v4, :cond_3e
.line 195
add-int/lit8 v4, v3, 0x1
aget-object v7, v6, v2
invoke-virtual {v7}, Lorg/spongycastle/asn1/x500/AttributeTypeAndValue;->getType()Lorg/spongycastle/asn1/ASN1ObjectIdentifier;
move-result-object v7
aput-object v7, v5, v3
.line 193
add-int/lit8 v2, v2, 0x1
move v3, v4
goto :goto_2d
:cond_3e
move v2, v3
.line 186
:cond_3f
:goto_3f
add-int/lit8 v0, v0, 0x1
goto :goto_18
.line 198
:cond_42
invoke-virtual {v4}, Lorg/spongycastle/asn1/x500/RDN;->size()I
move-result v3
if-eqz v3, :cond_3f
.line 200
add-int/lit8 v3, v2, 0x1
invoke-virtual {v4}, Lorg/spongycastle/asn1/x500/RDN;->getFirst()Lorg/spongycastle/asn1/x500/AttributeTypeAndValue;
move-result-object v4
invoke-virtual {v4}, Lorg/spongycastle/asn1/x500/AttributeTypeAndValue;->getType()Lorg/spongycastle/asn1/ASN1ObjectIdentifier;
move-result-object v4
aput-object v4, v5, v2
move v2, v3
goto :goto_3f
.line 204
:cond_56
return-object v5
.end method
.method public getRDNs()[Lorg/spongycastle/asn1/x500/RDN;
.registers 5
.prologue
const/4 v3, 0x0
.line 159
iget-object v0, p0, Lorg/spongycastle/asn1/x500/X500Name;->rdns:[Lorg/spongycastle/asn1/x500/RDN;
array-length v0, v0
new-array v0, v0, [Lorg/spongycastle/asn1/x500/RDN;
.line 161
iget-object v1, p0, Lorg/spongycastle/asn1/x500/X500Name;->rdns:[Lorg/spongycastle/asn1/x500/RDN;
array-length v2, v0
invoke-static {v1, v3, v0, v3, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 163
return-object v0
.end method
.method public getRDNs(Lorg/spongycastle/asn1/ASN1ObjectIdentifier;)[Lorg/spongycastle/asn1/x500/RDN;
.registers 10
.prologue
const/4 v1, 0x0
.line 215
iget-object v0, p0, Lorg/spongycastle/asn1/x500/X500Name;->rdns:[Lorg/spongycastle/asn1/x500/RDN;
array-length v0, v0
new-array v4, v0, [Lorg/spongycastle/asn1/x500/RDN;
move v0, v1
move v2, v1
.line 218
:goto_8
iget-object v3, p0, Lorg/spongycastle/asn1/x500/X500Name;->rdns:[Lorg/spongycastle/asn1/x500/RDN;
array-length v3, v3
if-eq v0, v3, :cond_4a
.line 220
iget-object v3, p0, Lorg/spongycastle/asn1/x500/X500Name;->rdns:[Lorg/spongycastle/asn1/x500/RDN;
aget-object v5, v3, v0
.line 222
invoke-virtual {v5}, Lorg/spongycastle/asn1/x500/RDN;->isMultiValued()Z
move-result v3
if-eqz v3, :cond_36
.line 224
invoke-virtual {v5}, Lorg/spongycastle/asn1/x500/RDN;->getTypesAndValues()[Lorg/spongycastle/asn1/x500/AttributeTypeAndValue;
move-result-object v6
move v3, v1
.line 225
:goto_1c
array-length v7, v6
if-eq v3, v7, :cond_30
.line 227
aget-object v7, v6, v3
invoke-virtual {v7}, Lorg/spongycastle/asn1/x500/AttributeTypeAndValue;->getType()Lorg/spongycastle/asn1/ASN1ObjectIdentifier;
move-result-object v7
invoke-virtual {v7, p1}, Lorg/spongycastle/asn1/ASN1ObjectIdentifier;->equals(Ljava/lang/Object;)Z
move-result v7
if-eqz v7, :cond_33
.line 229
add-int/lit8 v3, v2, 0x1
aput-object v5, v4, v2
move v2, v3
.line 218
:cond_30
:goto_30
add-int/lit8 v0, v0, 0x1
goto :goto_8
.line 225
:cond_33
add-int/lit8 v3, v3, 0x1
goto :goto_1c
.line 236
:cond_36
invoke-virtual {v5}, Lorg/spongycastle/asn1/x500/RDN;->getFirst()Lorg/spongycastle/asn1/x500/AttributeTypeAndValue;
move-result-object v3
invoke-virtual {v3}, Lorg/spongycastle/asn1/x500/AttributeTypeAndValue;->getType()Lorg/spongycastle/asn1/ASN1ObjectIdentifier;
move-result-object v3
invoke-virtual {v3, p1}, Lorg/spongycastle/asn1/ASN1ObjectIdentifier;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_30
.line 238
add-int/lit8 v3, v2, 0x1
aput-object v5, v4, v2
move v2, v3
goto :goto_30
.line 243
:cond_4a
new-array v0, v2, [Lorg/spongycastle/asn1/x500/RDN;
.line 245
array-length v2, v0
invoke-static {v4, v1, v0, v1, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 247
return-object v0
.end method
.method public hashCode()I
.registers 2
.prologue
.line 257
iget-boolean v0, p0, Lorg/spongycastle/asn1/x500/X500Name;->isHashCodeCalculated:Z
if-eqz v0, :cond_7
.line 259
iget v0, p0, Lorg/spongycastle/asn1/x500/X500Name;->hashCodeValue:I
.line 266
:goto_6
return v0
.line 262
:cond_7
const/4 v0, 0x1
iput-boolean v0, p0, Lorg/spongycastle/asn1/x500/X500Name;->isHashCodeCalculated:Z
.line 264
iget-object v0, p0, Lorg/spongycastle/asn1/x500/X500Name;->style:Lorg/spongycastle/asn1/x500/X500NameStyle;
invoke-interface {v0, p0}, Lorg/spongycastle/asn1/x500/X500NameStyle;->calculateHashCode(Lorg/spongycastle/asn1/x500/X500Name;)I
move-result v0
iput v0, p0, Lorg/spongycastle/asn1/x500/X500Name;->hashCodeValue:I
.line 266
iget v0, p0, Lorg/spongycastle/asn1/x500/X500Name;->hashCodeValue:I
goto :goto_6
.end method
.method public toASN1Primitive()Lorg/spongycastle/asn1/ASN1Primitive;
.registers 3
.prologue
.line 252
new-instance v0, Lorg/spongycastle/asn1/DERSequence;
iget-object v1, p0, Lorg/spongycastle/asn1/x500/X500Name;->rdns:[Lorg/spongycastle/asn1/x500/RDN;
invoke-direct {v0, v1}, Lorg/spongycastle/asn1/DERSequence;-><init>([Lorg/spongycastle/asn1/ASN1Encodable;)V
return-object v0
.end method
.method public toString()Ljava/lang/String;
.registers 2
.prologue
.line 303
iget-object v0, p0, Lorg/spongycastle/asn1/x500/X500Name;->style:Lorg/spongycastle/asn1/x500/X500NameStyle;
invoke-interface {v0, p0}, Lorg/spongycastle/asn1/x500/X500NameStyle;->toString(Lorg/spongycastle/asn1/x500/X500Name;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method