SkeinParameters$Builder.smali
.class public Lorg/spongycastle/crypto/params/SkeinParameters$Builder;
.super Ljava/lang/Object;
.source "SkeinParameters.java"
# instance fields
.field private parameters:Ljava/util/Hashtable;
# direct methods
.method public constructor <init>()V
.registers 2
.prologue
.line 156
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 153
new-instance v0, Ljava/util/Hashtable;
invoke-direct {v0}, Ljava/util/Hashtable;-><init>()V
iput-object v0, p0, Lorg/spongycastle/crypto/params/SkeinParameters$Builder;->parameters:Ljava/util/Hashtable;
.line 157
return-void
.end method
.method public constructor <init>(Ljava/util/Hashtable;)V
.registers 6
.prologue
.line 160
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 153
new-instance v0, Ljava/util/Hashtable;
invoke-direct {v0}, Ljava/util/Hashtable;-><init>()V
iput-object v0, p0, Lorg/spongycastle/crypto/params/SkeinParameters$Builder;->parameters:Ljava/util/Hashtable;
.line 161
invoke-virtual {p1}, Ljava/util/Hashtable;->keys()Ljava/util/Enumeration;
move-result-object v1
.line 162
:goto_e
invoke-interface {v1}, Ljava/util/Enumeration;->hasMoreElements()Z
move-result v0
if-eqz v0, :cond_24
.line 164
invoke-interface {v1}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Integer;
.line 165
iget-object v2, p0, Lorg/spongycastle/crypto/params/SkeinParameters$Builder;->parameters:Ljava/util/Hashtable;
invoke-virtual {p1, v0}, Ljava/util/Hashtable;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v3
invoke-virtual {v2, v0, v3}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_e
.line 167
:cond_24
return-void
.end method
.method public constructor <init>(Lorg/spongycastle/crypto/params/SkeinParameters;)V
.registers 6
.prologue
.line 170
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 153
new-instance v0, Ljava/util/Hashtable;
invoke-direct {v0}, Ljava/util/Hashtable;-><init>()V
iput-object v0, p0, Lorg/spongycastle/crypto/params/SkeinParameters$Builder;->parameters:Ljava/util/Hashtable;
.line 171
# getter for: Lorg/spongycastle/crypto/params/SkeinParameters;->parameters:Ljava/util/Hashtable;
invoke-static {p1}, Lorg/spongycastle/crypto/params/SkeinParameters;->access$000(Lorg/spongycastle/crypto/params/SkeinParameters;)Ljava/util/Hashtable;
move-result-object v0
invoke-virtual {v0}, Ljava/util/Hashtable;->keys()Ljava/util/Enumeration;
move-result-object v1
.line 172
:goto_12
invoke-interface {v1}, Ljava/util/Enumeration;->hasMoreElements()Z
move-result v0
if-eqz v0, :cond_2c
.line 174
invoke-interface {v1}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Integer;
.line 175
iget-object v2, p0, Lorg/spongycastle/crypto/params/SkeinParameters$Builder;->parameters:Ljava/util/Hashtable;
# getter for: Lorg/spongycastle/crypto/params/SkeinParameters;->parameters:Ljava/util/Hashtable;
invoke-static {p1}, Lorg/spongycastle/crypto/params/SkeinParameters;->access$000(Lorg/spongycastle/crypto/params/SkeinParameters;)Ljava/util/Hashtable;
move-result-object v3
invoke-virtual {v3, v0}, Ljava/util/Hashtable;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v3
invoke-virtual {v2, v0, v3}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_12
.line 177
:cond_2c
return-void
.end method
# virtual methods
.method public build()Lorg/spongycastle/crypto/params/SkeinParameters;
.registers 4
.prologue
.line 326
new-instance v0, Lorg/spongycastle/crypto/params/SkeinParameters;
iget-object v1, p0, Lorg/spongycastle/crypto/params/SkeinParameters$Builder;->parameters:Ljava/util/Hashtable;
const/4 v2, 0x0
invoke-direct {v0, v1, v2}, Lorg/spongycastle/crypto/params/SkeinParameters;-><init>(Ljava/util/Hashtable;Lorg/spongycastle/crypto/params/SkeinParameters$1;)V
return-object v0
.end method
.method public set(I[B)Lorg/spongycastle/crypto/params/SkeinParameters$Builder;
.registers 5
.prologue
const/4 v1, 0x4
.line 194
if-nez p2, :cond_b
.line 196
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "Parameter value must not be null."
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.line 198
:cond_b
if-eqz p1, :cond_1f
if-le p1, v1, :cond_17
const/16 v0, 0x3f
if-ge p1, v0, :cond_17
const/16 v0, 0x30
if-ne p1, v0, :cond_1f
.line 201
:cond_17
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "Parameter types must be in the range 0,5..47,49..62."
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.line 203
:cond_1f
if-ne p1, v1, :cond_29
.line 205
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "Parameter type 4 is reserved for internal use."
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.line 208
:cond_29
iget-object v0, p0, Lorg/spongycastle/crypto/params/SkeinParameters$Builder;->parameters:Ljava/util/Hashtable;
invoke-static {p1}, Lorg/spongycastle/util/Integers;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
invoke-virtual {v0, v1, p2}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 209
return-object p0
.end method
.method public setKey([B)Lorg/spongycastle/crypto/params/SkeinParameters$Builder;
.registers 3
.prologue
.line 217
const/4 v0, 0x0
invoke-virtual {p0, v0, p1}, Lorg/spongycastle/crypto/params/SkeinParameters$Builder;->set(I[B)Lorg/spongycastle/crypto/params/SkeinParameters$Builder;
move-result-object v0
return-object v0
.end method
.method public setKeyIdentifier([B)Lorg/spongycastle/crypto/params/SkeinParameters$Builder;
.registers 3
.prologue
.line 309
const/16 v0, 0x10
invoke-virtual {p0, v0, p1}, Lorg/spongycastle/crypto/params/SkeinParameters$Builder;->set(I[B)Lorg/spongycastle/crypto/params/SkeinParameters$Builder;
move-result-object v0
return-object v0
.end method
.method public setNonce([B)Lorg/spongycastle/crypto/params/SkeinParameters$Builder;
.registers 3
.prologue
.line 317
const/16 v0, 0x14
invoke-virtual {p0, v0, p1}, Lorg/spongycastle/crypto/params/SkeinParameters$Builder;->set(I[B)Lorg/spongycastle/crypto/params/SkeinParameters$Builder;
move-result-object v0
return-object v0
.end method
.method public setPersonalisation(Ljava/util/Date;Ljava/lang/String;Ljava/lang/String;)Lorg/spongycastle/crypto/params/SkeinParameters$Builder;
.registers 8
.prologue
.line 244
:try_start_0
new-instance v0, Ljava/io/ByteArrayOutputStream;
invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;-><init>()V
.line 245
new-instance v1, Ljava/io/OutputStreamWriter;
const-string v2, "UTF-8"
invoke-direct {v1, v0, v2}, Ljava/io/OutputStreamWriter;-><init>(Ljava/io/OutputStream;Ljava/lang/String;)V
.line 246
new-instance v2, Ljava/text/SimpleDateFormat;
const-string v3, "YYYYMMDD"
invoke-direct {v2, v3}, Ljava/text/SimpleDateFormat;-><init>(Ljava/lang/String;)V
.line 247
invoke-virtual {v2, p1}, Ljava/text/DateFormat;->format(Ljava/util/Date;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/io/OutputStreamWriter;->write(Ljava/lang/String;)V
.line 248
const-string v2, " "
invoke-virtual {v1, v2}, Ljava/io/OutputStreamWriter;->write(Ljava/lang/String;)V
.line 249
invoke-virtual {v1, p2}, Ljava/io/OutputStreamWriter;->write(Ljava/lang/String;)V
.line 250
const-string v2, " "
invoke-virtual {v1, v2}, Ljava/io/OutputStreamWriter;->write(Ljava/lang/String;)V
.line 251
invoke-virtual {v1, p3}, Ljava/io/OutputStreamWriter;->write(Ljava/lang/String;)V
.line 252
invoke-virtual {v1}, Ljava/io/OutputStreamWriter;->close()V
.line 253
const/16 v1, 0x8
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v0
invoke-virtual {p0, v1, v0}, Lorg/spongycastle/crypto/params/SkeinParameters$Builder;->set(I[B)Lorg/spongycastle/crypto/params/SkeinParameters$Builder;
:try_end_36
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_36} :catch_38
move-result-object v0
return-object v0
.line 255
:catch_38
move-exception v0
.line 257
new-instance v1, Ljava/lang/IllegalStateException;
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, "Byte I/O failed: "
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v1
.end method
.method public setPersonalisation(Ljava/util/Date;Ljava/util/Locale;Ljava/lang/String;Ljava/lang/String;)Lorg/spongycastle/crypto/params/SkeinParameters$Builder;
.registers 9
.prologue
.line 279
:try_start_0
new-instance v0, Ljava/io/ByteArrayOutputStream;
invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;-><init>()V
.line 280
new-instance v1, Ljava/io/OutputStreamWriter;
const-string v2, "UTF-8"
invoke-direct {v1, v0, v2}, Ljava/io/OutputStreamWriter;-><init>(Ljava/io/OutputStream;Ljava/lang/String;)V
.line 281
new-instance v2, Ljava/text/SimpleDateFormat;
const-string v3, "YYYYMMDD"
invoke-direct {v2, v3, p2}, Ljava/text/SimpleDateFormat;-><init>(Ljava/lang/String;Ljava/util/Locale;)V
.line 282
invoke-virtual {v2, p1}, Ljava/text/DateFormat;->format(Ljava/util/Date;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/io/OutputStreamWriter;->write(Ljava/lang/String;)V
.line 283
const-string v2, " "
invoke-virtual {v1, v2}, Ljava/io/OutputStreamWriter;->write(Ljava/lang/String;)V
.line 284
invoke-virtual {v1, p3}, Ljava/io/OutputStreamWriter;->write(Ljava/lang/String;)V
.line 285
const-string v2, " "
invoke-virtual {v1, v2}, Ljava/io/OutputStreamWriter;->write(Ljava/lang/String;)V
.line 286
invoke-virtual {v1, p4}, Ljava/io/OutputStreamWriter;->write(Ljava/lang/String;)V
.line 287
invoke-virtual {v1}, Ljava/io/OutputStreamWriter;->close()V
.line 288
const/16 v1, 0x8
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v0
invoke-virtual {p0, v1, v0}, Lorg/spongycastle/crypto/params/SkeinParameters$Builder;->set(I[B)Lorg/spongycastle/crypto/params/SkeinParameters$Builder;
:try_end_36
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_36} :catch_38
move-result-object v0
return-object v0
.line 290
:catch_38
move-exception v0
.line 292
new-instance v1, Ljava/lang/IllegalStateException;
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, "Byte I/O failed: "
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v1
.end method
.method public setPersonalisation([B)Lorg/spongycastle/crypto/params/SkeinParameters$Builder;
.registers 3
.prologue
.line 225
const/16 v0, 0x8
invoke-virtual {p0, v0, p1}, Lorg/spongycastle/crypto/params/SkeinParameters$Builder;->set(I[B)Lorg/spongycastle/crypto/params/SkeinParameters$Builder;
move-result-object v0
return-object v0
.end method
.method public setPublicKey([B)Lorg/spongycastle/crypto/params/SkeinParameters$Builder;
.registers 3
.prologue
.line 301
const/16 v0, 0xc
invoke-virtual {p0, v0, p1}, Lorg/spongycastle/crypto/params/SkeinParameters$Builder;->set(I[B)Lorg/spongycastle/crypto/params/SkeinParameters$Builder;
move-result-object v0
return-object v0
.end method