DVCSRequestInformationBuilder.smali
.class public Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;
.super Ljava/lang/Object;
.source "DVCSRequestInformationBuilder.java"
# static fields
.field private static final DEFAULT_VERSION:I = 0x1
.field private static final TAG_DATA_LOCATIONS:I = 0x3
.field private static final TAG_DVCS:I = 0x2
.field private static final TAG_EXTENSIONS:I = 0x4
.field private static final TAG_REQUESTER:I = 0x0
.field private static final TAG_REQUEST_POLICY:I = 0x1
# instance fields
.field private dataLocations:Lorg/spongycastle/asn1/x509/GeneralNames;
.field private dvcs:Lorg/spongycastle/asn1/x509/GeneralNames;
.field private extensions:Lorg/spongycastle/asn1/x509/Extensions;
.field private initialInfo:Lorg/spongycastle/asn1/dvcs/DVCSRequestInformation;
.field private nonce:Ljava/math/BigInteger;
.field private requestPolicy:Lorg/spongycastle/asn1/x509/PolicyInformation;
.field private requestTime:Lorg/spongycastle/asn1/dvcs/DVCSTime;
.field private requester:Lorg/spongycastle/asn1/x509/GeneralNames;
.field private final service:Lorg/spongycastle/asn1/dvcs/ServiceType;
.field private version:I
# direct methods
.method public constructor <init>(Lorg/spongycastle/asn1/dvcs/DVCSRequestInformation;)V
.registers 3
.prologue
.line 59
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 33
const/4 v0, 0x1
iput v0, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->version:I
.line 60
iput-object p1, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->initialInfo:Lorg/spongycastle/asn1/dvcs/DVCSRequestInformation;
.line 61
invoke-virtual {p1}, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformation;->getService()Lorg/spongycastle/asn1/dvcs/ServiceType;
move-result-object v0
iput-object v0, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->service:Lorg/spongycastle/asn1/dvcs/ServiceType;
.line 62
invoke-virtual {p1}, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformation;->getVersion()I
move-result v0
iput v0, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->version:I
.line 63
invoke-virtual {p1}, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformation;->getNonce()Ljava/math/BigInteger;
move-result-object v0
iput-object v0, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->nonce:Ljava/math/BigInteger;
.line 64
invoke-virtual {p1}, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformation;->getRequestTime()Lorg/spongycastle/asn1/dvcs/DVCSTime;
move-result-object v0
iput-object v0, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->requestTime:Lorg/spongycastle/asn1/dvcs/DVCSTime;
.line 65
invoke-virtual {p1}, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformation;->getRequestPolicy()Lorg/spongycastle/asn1/x509/PolicyInformation;
move-result-object v0
iput-object v0, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->requestPolicy:Lorg/spongycastle/asn1/x509/PolicyInformation;
.line 66
invoke-virtual {p1}, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformation;->getDVCS()Lorg/spongycastle/asn1/x509/GeneralNames;
move-result-object v0
iput-object v0, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->dvcs:Lorg/spongycastle/asn1/x509/GeneralNames;
.line 67
invoke-virtual {p1}, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformation;->getDataLocations()Lorg/spongycastle/asn1/x509/GeneralNames;
move-result-object v0
iput-object v0, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->dataLocations:Lorg/spongycastle/asn1/x509/GeneralNames;
.line 68
return-void
.end method
.method public constructor <init>(Lorg/spongycastle/asn1/dvcs/ServiceType;)V
.registers 3
.prologue
.line 54
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 33
const/4 v0, 0x1
iput v0, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->version:I
.line 55
iput-object p1, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->service:Lorg/spongycastle/asn1/dvcs/ServiceType;
.line 56
return-void
.end method
# virtual methods
.method public build()Lorg/spongycastle/asn1/dvcs/DVCSRequestInformation;
.registers 10
.prologue
const/4 v6, 0x1
const/4 v8, 0x5
const/4 v1, 0x0
.line 72
new-instance v2, Lorg/spongycastle/asn1/ASN1EncodableVector;
invoke-direct {v2}, Lorg/spongycastle/asn1/ASN1EncodableVector;-><init>()V
.line 74
iget v0, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->version:I
if-eq v0, v6, :cond_17
.line 76
new-instance v0, Lorg/spongycastle/asn1/ASN1Integer;
iget v3, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->version:I
int-to-long v4, v3
invoke-direct {v0, v4, v5}, Lorg/spongycastle/asn1/ASN1Integer;-><init>(J)V
invoke-virtual {v2, v0}, Lorg/spongycastle/asn1/ASN1EncodableVector;->add(Lorg/spongycastle/asn1/ASN1Encodable;)V
.line 78
:cond_17
iget-object v0, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->service:Lorg/spongycastle/asn1/dvcs/ServiceType;
invoke-virtual {v2, v0}, Lorg/spongycastle/asn1/ASN1EncodableVector;->add(Lorg/spongycastle/asn1/ASN1Encodable;)V
.line 79
iget-object v0, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->nonce:Ljava/math/BigInteger;
if-eqz v0, :cond_2a
.line 81
new-instance v0, Lorg/spongycastle/asn1/ASN1Integer;
iget-object v3, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->nonce:Ljava/math/BigInteger;
invoke-direct {v0, v3}, Lorg/spongycastle/asn1/ASN1Integer;-><init>(Ljava/math/BigInteger;)V
invoke-virtual {v2, v0}, Lorg/spongycastle/asn1/ASN1EncodableVector;->add(Lorg/spongycastle/asn1/ASN1Encodable;)V
.line 83
:cond_2a
iget-object v0, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->requestTime:Lorg/spongycastle/asn1/dvcs/DVCSTime;
if-eqz v0, :cond_33
.line 85
iget-object v0, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->requestTime:Lorg/spongycastle/asn1/dvcs/DVCSTime;
invoke-virtual {v2, v0}, Lorg/spongycastle/asn1/ASN1EncodableVector;->add(Lorg/spongycastle/asn1/ASN1Encodable;)V
.line 88
:cond_33
new-array v3, v8, [I
fill-array-data v3, :array_70
.line 95
new-array v4, v8, [Lorg/spongycastle/asn1/ASN1Encodable;
iget-object v0, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->requester:Lorg/spongycastle/asn1/x509/GeneralNames;
aput-object v0, v4, v1
iget-object v0, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->requestPolicy:Lorg/spongycastle/asn1/x509/PolicyInformation;
aput-object v0, v4, v6
const/4 v0, 0x2
iget-object v5, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->dvcs:Lorg/spongycastle/asn1/x509/GeneralNames;
aput-object v5, v4, v0
const/4 v0, 0x3
iget-object v5, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->dataLocations:Lorg/spongycastle/asn1/x509/GeneralNames;
aput-object v5, v4, v0
const/4 v0, 0x4
iget-object v5, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->extensions:Lorg/spongycastle/asn1/x509/Extensions;
aput-object v5, v4, v0
move v0, v1
.line 102
:goto_52
if-ge v0, v8, :cond_65
.line 104
aget v5, v3, v0
.line 105
aget-object v6, v4, v0
.line 106
if-eqz v6, :cond_62
.line 108
new-instance v7, Lorg/spongycastle/asn1/DERTaggedObject;
invoke-direct {v7, v1, v5, v6}, Lorg/spongycastle/asn1/DERTaggedObject;-><init>(ZILorg/spongycastle/asn1/ASN1Encodable;)V
invoke-virtual {v2, v7}, Lorg/spongycastle/asn1/ASN1EncodableVector;->add(Lorg/spongycastle/asn1/ASN1Encodable;)V
.line 102
:cond_62
add-int/lit8 v0, v0, 0x1
goto :goto_52
.line 112
:cond_65
new-instance v0, Lorg/spongycastle/asn1/DERSequence;
invoke-direct {v0, v2}, Lorg/spongycastle/asn1/DERSequence;-><init>(Lorg/spongycastle/asn1/ASN1EncodableVector;)V
invoke-static {v0}, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformation;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/dvcs/DVCSRequestInformation;
move-result-object v0
return-object v0
.line 88
nop
:array_70
.array-data 4
0x0
0x1
0x2
0x3
0x4
.end array-data
.end method
.method public setDVCS(Lorg/spongycastle/asn1/x509/GeneralName;)V
.registers 3
.prologue
.line 191
new-instance v0, Lorg/spongycastle/asn1/x509/GeneralNames;
invoke-direct {v0, p1}, Lorg/spongycastle/asn1/x509/GeneralNames;-><init>(Lorg/spongycastle/asn1/x509/GeneralName;)V
invoke-virtual {p0, v0}, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->setDVCS(Lorg/spongycastle/asn1/x509/GeneralNames;)V
.line 192
return-void
.end method
.method public setDVCS(Lorg/spongycastle/asn1/x509/GeneralNames;)V
.registers 2
.prologue
.line 199
iput-object p1, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->dvcs:Lorg/spongycastle/asn1/x509/GeneralNames;
.line 200
return-void
.end method
.method public setDataLocations(Lorg/spongycastle/asn1/x509/GeneralName;)V
.registers 3
.prologue
.line 204
new-instance v0, Lorg/spongycastle/asn1/x509/GeneralNames;
invoke-direct {v0, p1}, Lorg/spongycastle/asn1/x509/GeneralNames;-><init>(Lorg/spongycastle/asn1/x509/GeneralName;)V
invoke-virtual {p0, v0}, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->setDataLocations(Lorg/spongycastle/asn1/x509/GeneralNames;)V
.line 205
return-void
.end method
.method public setDataLocations(Lorg/spongycastle/asn1/x509/GeneralNames;)V
.registers 2
.prologue
.line 212
iput-object p1, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->dataLocations:Lorg/spongycastle/asn1/x509/GeneralNames;
.line 213
return-void
.end method
.method public setExtensions(Lorg/spongycastle/asn1/x509/Extensions;)V
.registers 4
.prologue
.line 217
iget-object v0, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->initialInfo:Lorg/spongycastle/asn1/dvcs/DVCSRequestInformation;
if-eqz v0, :cond_c
.line 219
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "cannot change extensions in existing DVCSRequestInformation"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.line 222
:cond_c
iput-object p1, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->extensions:Lorg/spongycastle/asn1/x509/Extensions;
.line 223
return-void
.end method
.method public setNonce(Ljava/math/BigInteger;)V
.registers 7
.prologue
const/4 v4, 0x0
.line 134
iget-object v0, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->initialInfo:Lorg/spongycastle/asn1/dvcs/DVCSRequestInformation;
if-eqz v0, :cond_f
.line 136
iget-object v0, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->initialInfo:Lorg/spongycastle/asn1/dvcs/DVCSRequestInformation;
invoke-virtual {v0}, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformation;->getNonce()Ljava/math/BigInteger;
move-result-object v0
if-nez v0, :cond_12
.line 138
iput-object p1, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->nonce:Ljava/math/BigInteger;
.line 153
:cond_f
:goto_f
iput-object p1, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->nonce:Ljava/math/BigInteger;
.line 154
return-void
.line 142
:cond_12
iget-object v0, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->initialInfo:Lorg/spongycastle/asn1/dvcs/DVCSRequestInformation;
invoke-virtual {v0}, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformation;->getNonce()Ljava/math/BigInteger;
move-result-object v0
invoke-virtual {v0}, Ljava/math/BigInteger;->toByteArray()[B
move-result-object v0
.line 143
invoke-static {p1}, Lorg/spongycastle/util/BigIntegers;->asUnsignedByteArray(Ljava/math/BigInteger;)[B
move-result-object v1
.line 144
array-length v2, v0
array-length v3, v1
add-int/2addr v2, v3
new-array v2, v2, [B
.line 146
array-length v3, v0
invoke-static {v0, v4, v2, v4, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 147
array-length v0, v0
array-length v3, v1
invoke-static {v1, v4, v2, v0, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 149
new-instance v0, Ljava/math/BigInteger;
invoke-direct {v0, v2}, Ljava/math/BigInteger;-><init>([B)V
iput-object v0, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->nonce:Ljava/math/BigInteger;
goto :goto_f
.end method
.method public setRequestPolicy(Lorg/spongycastle/asn1/x509/PolicyInformation;)V
.registers 4
.prologue
.line 181
iget-object v0, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->initialInfo:Lorg/spongycastle/asn1/dvcs/DVCSRequestInformation;
if-eqz v0, :cond_c
.line 183
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "cannot change request policy in existing DVCSRequestInformation"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.line 186
:cond_c
iput-object p1, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->requestPolicy:Lorg/spongycastle/asn1/x509/PolicyInformation;
.line 187
return-void
.end method
.method public setRequestTime(Lorg/spongycastle/asn1/dvcs/DVCSTime;)V
.registers 4
.prologue
.line 158
iget-object v0, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->initialInfo:Lorg/spongycastle/asn1/dvcs/DVCSRequestInformation;
if-eqz v0, :cond_c
.line 160
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "cannot change request time in existing DVCSRequestInformation"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.line 163
:cond_c
iput-object p1, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->requestTime:Lorg/spongycastle/asn1/dvcs/DVCSTime;
.line 164
return-void
.end method
.method public setRequester(Lorg/spongycastle/asn1/x509/GeneralName;)V
.registers 3
.prologue
.line 168
new-instance v0, Lorg/spongycastle/asn1/x509/GeneralNames;
invoke-direct {v0, p1}, Lorg/spongycastle/asn1/x509/GeneralNames;-><init>(Lorg/spongycastle/asn1/x509/GeneralName;)V
invoke-virtual {p0, v0}, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->setRequester(Lorg/spongycastle/asn1/x509/GeneralNames;)V
.line 169
return-void
.end method
.method public setRequester(Lorg/spongycastle/asn1/x509/GeneralNames;)V
.registers 2
.prologue
.line 176
iput-object p1, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->requester:Lorg/spongycastle/asn1/x509/GeneralNames;
.line 177
return-void
.end method
.method public setVersion(I)V
.registers 4
.prologue
.line 117
iget-object v0, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->initialInfo:Lorg/spongycastle/asn1/dvcs/DVCSRequestInformation;
if-eqz v0, :cond_c
.line 119
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "cannot change version in existing DVCSRequestInformation"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.line 122
:cond_c
iput p1, p0, Lorg/spongycastle/asn1/dvcs/DVCSRequestInformationBuilder;->version:I
.line 123
return-void
.end method