GMSSRootCalc.smali
.class public Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;
.super Ljava/lang/Object;
.source "GMSSRootCalc.java"
# instance fields
.field private AuthPath:[[B
.field private K:I
.field private digestProvider:Lorg/spongycastle/pqc/crypto/gmss/GMSSDigestProvider;
.field private heightOfNextSeed:I
.field private heightOfNodes:Ljava/util/Vector;
.field private heightOfTree:I
.field private index:[I
.field private indexForNextSeed:I
.field private isFinished:Z
.field private isInitialized:Z
.field private mdLength:I
.field private messDigestTree:Lorg/spongycastle/crypto/Digest;
.field private retain:[Ljava/util/Vector;
.field private root:[B
.field private tailStack:Ljava/util/Vector;
.field private treehash:[Lorg/spongycastle/pqc/crypto/gmss/Treehash;
# direct methods
.method public constructor <init>(IILorg/spongycastle/pqc/crypto/gmss/GMSSDigestProvider;)V
.registers 7
.prologue
.line 188
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 189
iput p1, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
.line 190
iput-object p3, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->digestProvider:Lorg/spongycastle/pqc/crypto/gmss/GMSSDigestProvider;
.line 191
invoke-interface {p3}, Lorg/spongycastle/pqc/crypto/gmss/GMSSDigestProvider;->get()Lorg/spongycastle/crypto/Digest;
move-result-object v0
iput-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->messDigestTree:Lorg/spongycastle/crypto/Digest;
.line 192
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->messDigestTree:Lorg/spongycastle/crypto/Digest;
invoke-interface {v0}, Lorg/spongycastle/crypto/Digest;->getDigestSize()I
move-result v0
iput v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->mdLength:I
.line 193
iput p2, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->K:I
.line 194
new-array v0, p1, [I
iput-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->index:[I
.line 195
iget v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->mdLength:I
filled-new-array {p1, v0}, [I
move-result-object v0
sget-object v1, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;
invoke-static {v1, v0}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;
move-result-object v0
check-cast v0, [[B
iput-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->AuthPath:[[B
.line 196
iget v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->mdLength:I
new-array v0, v0, [B
iput-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->root:[B
.line 198
iget v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->K:I
add-int/lit8 v0, v0, -0x1
new-array v0, v0, [Ljava/util/Vector;
iput-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->retain:[Ljava/util/Vector;
.line 199
const/4 v0, 0x0
:goto_3a
add-int/lit8 v1, p2, -0x1
if-ge v0, v1, :cond_4a
.line 201
iget-object v1, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->retain:[Ljava/util/Vector;
new-instance v2, Ljava/util/Vector;
invoke-direct {v2}, Ljava/util/Vector;-><init>()V
aput-object v2, v1, v0
.line 199
add-int/lit8 v0, v0, 0x1
goto :goto_3a
.line 204
:cond_4a
return-void
.end method
.method public constructor <init>(Lorg/spongycastle/crypto/Digest;[[B[I[Lorg/spongycastle/pqc/crypto/gmss/Treehash;[Ljava/util/Vector;)V
.registers 11
.prologue
const/4 v2, 0x1
const/4 v1, 0x0
.line 116
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 117
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->digestProvider:Lorg/spongycastle/pqc/crypto/gmss/GMSSDigestProvider;
invoke-interface {v0}, Lorg/spongycastle/pqc/crypto/gmss/GMSSDigestProvider;->get()Lorg/spongycastle/crypto/Digest;
move-result-object v0
iput-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->messDigestTree:Lorg/spongycastle/crypto/Digest;
.line 120
aget v0, p3, v1
iput v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
.line 121
aget v0, p3, v2
iput v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->mdLength:I
.line 122
const/4 v0, 0x2
aget v0, p3, v0
iput v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->K:I
.line 123
const/4 v0, 0x3
aget v0, p3, v0
iput v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->indexForNextSeed:I
.line 124
const/4 v0, 0x4
aget v0, p3, v0
iput v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfNextSeed:I
.line 125
const/4 v0, 0x5
aget v0, p3, v0
if-ne v0, v2, :cond_4b
.line 127
iput-boolean v2, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->isFinished:Z
.line 133
:goto_2b
const/4 v0, 0x6
aget v0, p3, v0
if-ne v0, v2, :cond_4e
.line 135
iput-boolean v2, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->isInitialized:Z
.line 142
:goto_32
const/4 v0, 0x7
aget v2, p3, v0
.line 144
iget v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
new-array v0, v0, [I
iput-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->index:[I
move v0, v1
.line 145
:goto_3c
iget v3, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
if-ge v0, v3, :cond_51
.line 147
iget-object v3, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->index:[I
add-int/lit8 v4, v0, 0x8
aget v4, p3, v4
aput v4, v3, v0
.line 145
add-int/lit8 v0, v0, 0x1
goto :goto_3c
.line 131
:cond_4b
iput-boolean v1, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->isFinished:Z
goto :goto_2b
.line 139
:cond_4e
iput-boolean v1, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->isInitialized:Z
goto :goto_32
.line 150
:cond_51
new-instance v0, Ljava/util/Vector;
invoke-direct {v0}, Ljava/util/Vector;-><init>()V
iput-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfNodes:Ljava/util/Vector;
move v0, v1
.line 151
:goto_59
if-ge v0, v2, :cond_6e
.line 153
iget-object v3, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfNodes:Ljava/util/Vector;
iget v4, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
add-int/lit8 v4, v4, 0x8
add-int/2addr v4, v0
aget v4, p3, v4
invoke-static {v4}, Lorg/spongycastle/util/Integers;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/util/Vector;->addElement(Ljava/lang/Object;)V
.line 151
add-int/lit8 v0, v0, 0x1
goto :goto_59
.line 158
:cond_6e
aget-object v0, p2, v1
iput-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->root:[B
.line 160
iget v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
iget v3, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->mdLength:I
filled-new-array {v0, v3}, [I
move-result-object v0
sget-object v3, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;
invoke-static {v3, v0}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;
move-result-object v0
check-cast v0, [[B
iput-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->AuthPath:[[B
move v0, v1
.line 161
:goto_85
iget v3, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
if-ge v0, v3, :cond_94
.line 163
iget-object v3, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->AuthPath:[[B
add-int/lit8 v4, v0, 0x1
aget-object v4, p2, v4
aput-object v4, v3, v0
.line 161
add-int/lit8 v0, v0, 0x1
goto :goto_85
.line 166
:cond_94
new-instance v0, Ljava/util/Vector;
invoke-direct {v0}, Ljava/util/Vector;-><init>()V
iput-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->tailStack:Ljava/util/Vector;
.line 167
:goto_9b
if-ge v1, v2, :cond_ac
.line 169
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->tailStack:Ljava/util/Vector;
iget v3, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
add-int/lit8 v3, v3, 0x1
add-int/2addr v3, v1
aget-object v3, p2, v3
invoke-virtual {v0, v3}, Ljava/util/Vector;->addElement(Ljava/lang/Object;)V
.line 167
add-int/lit8 v1, v1, 0x1
goto :goto_9b
.line 173
:cond_ac
invoke-static {p4}, Lorg/spongycastle/pqc/crypto/gmss/GMSSUtils;->clone([Lorg/spongycastle/pqc/crypto/gmss/Treehash;)[Lorg/spongycastle/pqc/crypto/gmss/Treehash;
move-result-object v0
iput-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->treehash:[Lorg/spongycastle/pqc/crypto/gmss/Treehash;
.line 176
invoke-static {p5}, Lorg/spongycastle/pqc/crypto/gmss/GMSSUtils;->clone([Ljava/util/Vector;)[Ljava/util/Vector;
move-result-object v0
iput-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->retain:[Ljava/util/Vector;
.line 177
return-void
.end method
# virtual methods
.method public getAuthPath()[[B
.registers 2
.prologue
.line 435
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->AuthPath:[[B
invoke-static {v0}, Lorg/spongycastle/pqc/crypto/gmss/GMSSUtils;->clone([[B)[[B
move-result-object v0
return-object v0
.end method
.method public getRetain()[Ljava/util/Vector;
.registers 2
.prologue
.line 455
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->retain:[Ljava/util/Vector;
invoke-static {v0}, Lorg/spongycastle/pqc/crypto/gmss/GMSSUtils;->clone([Ljava/util/Vector;)[Ljava/util/Vector;
move-result-object v0
return-object v0
.end method
.method public getRoot()[B
.registers 2
.prologue
.line 465
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->root:[B
invoke-static {v0}, Lorg/spongycastle/util/Arrays;->clone([B)[B
move-result-object v0
return-object v0
.end method
.method public getStack()Ljava/util/Vector;
.registers 4
.prologue
.line 475
new-instance v0, Ljava/util/Vector;
invoke-direct {v0}, Ljava/util/Vector;-><init>()V
.line 476
iget-object v1, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->tailStack:Ljava/util/Vector;
invoke-virtual {v1}, Ljava/util/Vector;->elements()Ljava/util/Enumeration;
move-result-object v1
:goto_b
invoke-interface {v1}, Ljava/util/Enumeration;->hasMoreElements()Z
move-result v2
if-eqz v2, :cond_19
.line 478
invoke-interface {v1}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/util/Vector;->addElement(Ljava/lang/Object;)V
goto :goto_b
.line 480
:cond_19
return-object v0
.end method
.method public getStatByte()[[B
.registers 7
.prologue
const/4 v1, 0x0
.line 492
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->tailStack:Ljava/util/Vector;
if-nez v0, :cond_2d
move v2, v1
.line 500
:goto_6
iget v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
add-int/lit8 v0, v0, 0x1
add-int/2addr v0, v2
const/16 v3, 0x40
filled-new-array {v0, v3}, [I
move-result-object v0
sget-object v3, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;
invoke-static {v3, v0}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;
move-result-object v0
check-cast v0, [[B
.line 501
iget-object v3, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->root:[B
aput-object v3, v0, v1
move v3, v1
.line 503
:goto_1e
iget v4, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
if-ge v3, v4, :cond_35
.line 505
add-int/lit8 v4, v3, 0x1
iget-object v5, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->AuthPath:[[B
aget-object v5, v5, v3
aput-object v5, v0, v4
.line 503
add-int/lit8 v3, v3, 0x1
goto :goto_1e
.line 498
:cond_2d
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->tailStack:Ljava/util/Vector;
invoke-virtual {v0}, Ljava/util/Vector;->size()I
move-result v0
move v2, v0
goto :goto_6
:cond_35
move v3, v1
.line 507
:goto_36
if-ge v3, v2, :cond_4c
.line 509
iget v1, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
add-int/lit8 v1, v1, 0x1
add-int v4, v1, v3
iget-object v1, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->tailStack:Ljava/util/Vector;
invoke-virtual {v1, v3}, Ljava/util/Vector;->elementAt(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, [B
aput-object v1, v0, v4
.line 507
add-int/lit8 v1, v3, 0x1
move v3, v1
goto :goto_36
.line 512
:cond_4c
return-object v0
.end method
.method public getStatInt()[I
.registers 9
.prologue
const/4 v7, 0x6
const/4 v6, 0x5
const/4 v5, 0x1
const/4 v0, 0x0
.line 524
iget-object v1, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->tailStack:Ljava/util/Vector;
if-nez v1, :cond_46
move v1, v0
.line 532
:goto_9
iget v2, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
add-int/lit8 v2, v2, 0x8
add-int/2addr v2, v1
new-array v3, v2, [I
.line 533
iget v2, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
aput v2, v3, v0
.line 534
iget v2, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->mdLength:I
aput v2, v3, v5
.line 535
const/4 v2, 0x2
iget v4, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->K:I
aput v4, v3, v2
.line 536
const/4 v2, 0x3
iget v4, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->indexForNextSeed:I
aput v4, v3, v2
.line 537
const/4 v2, 0x4
iget v4, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfNextSeed:I
aput v4, v3, v2
.line 538
iget-boolean v2, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->isFinished:Z
if-eqz v2, :cond_4d
.line 540
aput v5, v3, v6
.line 546
:goto_2d
iget-boolean v2, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->isInitialized:Z
if-eqz v2, :cond_50
.line 548
aput v5, v3, v7
.line 554
:goto_33
const/4 v2, 0x7
aput v1, v3, v2
move v2, v0
.line 556
:goto_37
iget v4, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
if-ge v2, v4, :cond_53
.line 558
add-int/lit8 v4, v2, 0x8
iget-object v5, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->index:[I
aget v5, v5, v2
aput v5, v3, v4
.line 556
add-int/lit8 v2, v2, 0x1
goto :goto_37
.line 530
:cond_46
iget-object v1, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->tailStack:Ljava/util/Vector;
invoke-virtual {v1}, Ljava/util/Vector;->size()I
move-result v1
goto :goto_9
.line 544
:cond_4d
aput v0, v3, v6
goto :goto_2d
.line 552
:cond_50
aput v0, v3, v7
goto :goto_33
:cond_53
move v2, v0
.line 560
:goto_54
if-ge v2, v1, :cond_6e
.line 562
iget v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
add-int/lit8 v0, v0, 0x8
add-int v4, v0, v2
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfNodes:Ljava/util/Vector;
.line 563
invoke-virtual {v0, v2}, Ljava/util/Vector;->elementAt(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Integer;
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v0
aput v0, v3, v4
.line 560
add-int/lit8 v0, v2, 0x1
move v2, v0
goto :goto_54
.line 566
:cond_6e
return-object v3
.end method
.method public getTreehash()[Lorg/spongycastle/pqc/crypto/gmss/Treehash;
.registers 2
.prologue
.line 445
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->treehash:[Lorg/spongycastle/pqc/crypto/gmss/Treehash;
invoke-static {v0}, Lorg/spongycastle/pqc/crypto/gmss/GMSSUtils;->clone([Lorg/spongycastle/pqc/crypto/gmss/Treehash;)[Lorg/spongycastle/pqc/crypto/gmss/Treehash;
move-result-object v0
return-object v0
.end method
.method public initialize(Ljava/util/Vector;)V
.registers 7
.prologue
const/4 v1, 0x0
.line 213
iget v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
iget v2, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->K:I
sub-int/2addr v0, v2
new-array v0, v0, [Lorg/spongycastle/pqc/crypto/gmss/Treehash;
iput-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->treehash:[Lorg/spongycastle/pqc/crypto/gmss/Treehash;
move v0, v1
.line 214
:goto_b
iget v2, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
iget v3, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->K:I
sub-int/2addr v2, v3
if-ge v0, v2, :cond_24
.line 216
iget-object v2, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->treehash:[Lorg/spongycastle/pqc/crypto/gmss/Treehash;
new-instance v3, Lorg/spongycastle/pqc/crypto/gmss/Treehash;
iget-object v4, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->digestProvider:Lorg/spongycastle/pqc/crypto/gmss/GMSSDigestProvider;
invoke-interface {v4}, Lorg/spongycastle/pqc/crypto/gmss/GMSSDigestProvider;->get()Lorg/spongycastle/crypto/Digest;
move-result-object v4
invoke-direct {v3, p1, v0, v4}, Lorg/spongycastle/pqc/crypto/gmss/Treehash;-><init>(Ljava/util/Vector;ILorg/spongycastle/crypto/Digest;)V
aput-object v3, v2, v0
.line 214
add-int/lit8 v0, v0, 0x1
goto :goto_b
.line 219
:cond_24
iget v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
new-array v0, v0, [I
iput-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->index:[I
.line 220
iget v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
iget v2, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->mdLength:I
filled-new-array {v0, v2}, [I
move-result-object v0
sget-object v2, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;
invoke-static {v2, v0}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;
move-result-object v0
check-cast v0, [[B
iput-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->AuthPath:[[B
.line 221
iget v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->mdLength:I
new-array v0, v0, [B
iput-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->root:[B
.line 223
new-instance v0, Ljava/util/Vector;
invoke-direct {v0}, Ljava/util/Vector;-><init>()V
iput-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->tailStack:Ljava/util/Vector;
.line 224
new-instance v0, Ljava/util/Vector;
invoke-direct {v0}, Ljava/util/Vector;-><init>()V
iput-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfNodes:Ljava/util/Vector;
.line 225
const/4 v0, 0x1
iput-boolean v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->isInitialized:Z
.line 226
iput-boolean v1, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->isFinished:Z
move v0, v1
.line 228
:goto_56
iget v2, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
if-ge v0, v2, :cond_62
.line 230
iget-object v2, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->index:[I
const/4 v3, -0x1
aput v3, v2, v0
.line 228
add-int/lit8 v0, v0, 0x1
goto :goto_56
.line 233
:cond_62
iget v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->K:I
add-int/lit8 v0, v0, -0x1
new-array v0, v0, [Ljava/util/Vector;
iput-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->retain:[Ljava/util/Vector;
move v0, v1
.line 234
:goto_6b
iget v2, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->K:I
add-int/lit8 v2, v2, -0x1
if-ge v0, v2, :cond_7d
.line 236
iget-object v2, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->retain:[Ljava/util/Vector;
new-instance v3, Ljava/util/Vector;
invoke-direct {v3}, Ljava/util/Vector;-><init>()V
aput-object v3, v2, v0
.line 234
add-int/lit8 v0, v0, 0x1
goto :goto_6b
.line 239
:cond_7d
const/4 v0, 0x3
iput v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->indexForNextSeed:I
.line 240
iput v1, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfNextSeed:I
.line 241
return-void
.end method
.method public initializeTreehashSeed([BI)V
.registers 4
.prologue
.line 405
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->treehash:[Lorg/spongycastle/pqc/crypto/gmss/Treehash;
aget-object v0, v0, p2
invoke-virtual {v0, p1}, Lorg/spongycastle/pqc/crypto/gmss/Treehash;->initializeSeed([B)V
.line 406
return-void
.end method
.method public toString()Ljava/lang/String;
.registers 6
.prologue
const/4 v1, 0x0
.line 574
const-string v2, ""
.line 576
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->tailStack:Ljava/util/Vector;
if-nez v0, :cond_31
move v0, v1
:goto_8
move-object v3, v2
move v2, v1
.line 585
:goto_a
iget v4, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
add-int/lit8 v4, v4, 0x8
add-int/2addr v4, v0
if-ge v2, v4, :cond_38
.line 587
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {p0}, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->getStatInt()[I
move-result-object v4
aget v4, v4, v2
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)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 585
add-int/lit8 v2, v2, 0x1
goto :goto_a
.line 582
:cond_31
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->tailStack:Ljava/util/Vector;
invoke-virtual {v0}, Ljava/util/Vector;->size()I
move-result v0
goto :goto_8
.line 589
:cond_38
:goto_38
iget v2, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
add-int/lit8 v2, v2, 0x1
add-int/2addr v2, v0
if-ge v1, v2, :cond_68
.line 591
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
new-instance v3, Ljava/lang/String;
invoke-virtual {p0}, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->getStatByte()[[B
move-result-object v4
aget-object v4, v4, v1
invoke-static {v4}, Lorg/spongycastle/util/encoders/Hex;->encode([B)[B
move-result-object v4
invoke-direct {v3, v4}, Ljava/lang/String;-><init>([B)V
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
const-string 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 v3
.line 589
add-int/lit8 v1, v1, 0x1
goto :goto_38
.line 593
:cond_68
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, " "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v1, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->digestProvider:Lorg/spongycastle/pqc/crypto/gmss/GMSSDigestProvider;
invoke-interface {v1}, Lorg/spongycastle/pqc/crypto/gmss/GMSSDigestProvider;->get()Lorg/spongycastle/crypto/Digest;
move-result-object v1
invoke-interface {v1}, Lorg/spongycastle/crypto/Digest;->getDigestSize()I
move-result v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 594
return-object v0
.end method
.method public update([B)V
.registers 11
.prologue
const/4 v8, 0x1
const/4 v7, 0x3
const/4 v3, 0x0
.line 271
iget-boolean v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->isFinished:Z
if-eqz v0, :cond_f
.line 273
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
const-string v1, "Too much updates for Tree!!"
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->print(Ljava/lang/String;)V
.line 394
:cond_e
:goto_e
return-void
.line 276
:cond_f
iget-boolean v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->isInitialized:Z
if-nez v0, :cond_1b
.line 278
sget-object v0, Ljava/lang/System;->err:Ljava/io/PrintStream;
const-string v1, "GMSSRootCalc not initialized!"
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
goto :goto_e
.line 283
:cond_1b
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->index:[I
aget v1, v0, v3
add-int/lit8 v1, v1, 0x1
aput v1, v0, v3
.line 286
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->index:[I
aget v0, v0, v3
if-ne v0, v8, :cond_64
.line 288
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->AuthPath:[[B
aget-object v0, v0, v3
iget v1, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->mdLength:I
invoke-static {p1, v3, v0, v3, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 299
:cond_32
:goto_32
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->index:[I
aget v0, v0, v3
add-int/lit8 v0, v0, -0x3
rem-int/lit8 v0, v0, 0x2
if-nez v0, :cond_4f
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->index:[I
aget v0, v0, v3
if-lt v0, v7, :cond_4f
.line 302
iget v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
iget v1, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->K:I
if-ne v0, v1, :cond_4f
.line 305
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->retain:[Ljava/util/Vector;
aget-object v0, v0, v3
invoke-virtual {v0, p1, v3}, Ljava/util/Vector;->insertElementAt(Ljava/lang/Object;I)V
.line 310
:cond_4f
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->index:[I
aget v0, v0, v3
if-nez v0, :cond_78
.line 312
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->tailStack:Ljava/util/Vector;
invoke-virtual {v0, p1}, Ljava/util/Vector;->addElement(Ljava/lang/Object;)V
.line 313
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfNodes:Ljava/util/Vector;
invoke-static {v3}, Lorg/spongycastle/util/Integers;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/util/Vector;->addElement(Ljava/lang/Object;)V
goto :goto_e
.line 290
:cond_64
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->index:[I
aget v0, v0, v3
if-ne v0, v7, :cond_32
.line 293
iget v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
iget v1, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->K:I
if-le v0, v1, :cond_32
.line 295
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->treehash:[Lorg/spongycastle/pqc/crypto/gmss/Treehash;
aget-object v0, v0, v3
invoke-virtual {v0, p1}, Lorg/spongycastle/pqc/crypto/gmss/Treehash;->setFirstNode([B)V
goto :goto_32
.line 318
:cond_78
iget v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->mdLength:I
new-array v0, v0, [B
.line 319
iget v1, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->mdLength:I
shl-int/lit8 v1, v1, 0x1
new-array v4, v1, [B
.line 322
iget v1, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->mdLength:I
invoke-static {p1, v3, v0, v3, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
move-object v1, v0
move v2, v3
.line 325
:goto_89
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->tailStack:Ljava/util/Vector;
invoke-virtual {v0}, Ljava/util/Vector;->size()I
move-result v0
if-lez v0, :cond_13e
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfNodes:Ljava/util/Vector;
.line 326
invoke-virtual {v0}, Ljava/util/Vector;->lastElement()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Integer;
.line 327
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v0
if-ne v2, v0, :cond_13e
.line 331
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->tailStack:Ljava/util/Vector;
invoke-virtual {v0}, Ljava/util/Vector;->lastElement()Ljava/lang/Object;
move-result-object v0
iget v5, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->mdLength:I
invoke-static {v0, v3, v4, v3, v5}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 333
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->tailStack:Ljava/util/Vector;
iget-object v5, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->tailStack:Ljava/util/Vector;
invoke-virtual {v5}, Ljava/util/Vector;->size()I
move-result v5
add-int/lit8 v5, v5, -0x1
invoke-virtual {v0, v5}, Ljava/util/Vector;->removeElementAt(I)V
.line 334
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfNodes:Ljava/util/Vector;
iget-object v5, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfNodes:Ljava/util/Vector;
invoke-virtual {v5}, Ljava/util/Vector;->size()I
move-result v5
add-int/lit8 v5, v5, -0x1
invoke-virtual {v0, v5}, Ljava/util/Vector;->removeElementAt(I)V
.line 335
iget v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->mdLength:I
iget v5, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->mdLength:I
invoke-static {v1, v3, v4, v0, v5}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 337
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->messDigestTree:Lorg/spongycastle/crypto/Digest;
array-length v1, v4
invoke-interface {v0, v4, v3, v1}, Lorg/spongycastle/crypto/Digest;->update([BII)V
.line 338
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->messDigestTree:Lorg/spongycastle/crypto/Digest;
invoke-interface {v0}, Lorg/spongycastle/crypto/Digest;->getDigestSize()I
move-result v0
new-array v0, v0, [B
.line 339
iget-object v1, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->messDigestTree:Lorg/spongycastle/crypto/Digest;
invoke-interface {v1, v0, v3}, Lorg/spongycastle/crypto/Digest;->doFinal([BI)I
.line 342
add-int/lit8 v1, v2, 0x1
.line 343
iget v2, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
if-ge v1, v2, :cond_160
.line 345
iget-object v2, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->index:[I
aget v5, v2, v1
add-int/lit8 v5, v5, 0x1
aput v5, v2, v1
.line 348
iget-object v2, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->index:[I
aget v2, v2, v1
if-ne v2, v8, :cond_fb
.line 350
iget-object v2, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->AuthPath:[[B
aget-object v2, v2, v1
iget v5, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->mdLength:I
invoke-static {v0, v3, v2, v3, v5}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 354
:cond_fb
iget v2, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
iget v5, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->K:I
sub-int/2addr v2, v5
if-lt v1, v2, :cond_12d
.line 356
if-nez v1, :cond_10b
.line 358
sget-object v2, Ljava/lang/System;->out:Ljava/io/PrintStream;
const-string v5, "M\ufffd\ufffd\ufffdP"
invoke-virtual {v2, v5}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
.line 363
:cond_10b
iget-object v2, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->index:[I
aget v2, v2, v1
add-int/lit8 v2, v2, -0x3
rem-int/lit8 v2, v2, 0x2
if-nez v2, :cond_160
iget-object v2, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->index:[I
aget v2, v2, v1
if-lt v2, v7, :cond_160
.line 367
iget-object v2, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->retain:[Ljava/util/Vector;
iget v5, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
iget v6, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->K:I
sub-int/2addr v5, v6
sub-int v5, v1, v5
aget-object v2, v2, v5
.line 368
invoke-virtual {v2, v0, v3}, Ljava/util/Vector;->insertElementAt(Ljava/lang/Object;I)V
move v2, v1
move-object v1, v0
goto/16 :goto_89
.line 374
:cond_12d
iget-object v2, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->index:[I
aget v2, v2, v1
if-ne v2, v7, :cond_160
.line 376
iget-object v2, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->treehash:[Lorg/spongycastle/pqc/crypto/gmss/Treehash;
aget-object v2, v2, v1
invoke-virtual {v2, v0}, Lorg/spongycastle/pqc/crypto/gmss/Treehash;->setFirstNode([B)V
move v2, v1
move-object v1, v0
goto/16 :goto_89
.line 382
:cond_13e
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->tailStack:Ljava/util/Vector;
invoke-virtual {v0, v1}, Ljava/util/Vector;->addElement(Ljava/lang/Object;)V
.line 383
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfNodes:Ljava/util/Vector;
invoke-static {v2}, Lorg/spongycastle/util/Integers;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/util/Vector;->addElement(Ljava/lang/Object;)V
.line 386
iget v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
if-ne v2, v0, :cond_e
.line 388
iput-boolean v8, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->isFinished:Z
.line 389
iput-boolean v3, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->isInitialized:Z
.line 390
iget-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->tailStack:Ljava/util/Vector;
invoke-virtual {v0}, Ljava/util/Vector;->lastElement()Ljava/lang/Object;
move-result-object v0
check-cast v0, [B
iput-object v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->root:[B
goto/16 :goto_e
:cond_160
move v2, v1
move-object v1, v0
goto/16 :goto_89
.end method
.method public update([B[B)V
.registers 6
.prologue
.line 253
iget v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfNextSeed:I
iget v1, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfTree:I
iget v2, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->K:I
sub-int/2addr v1, v2
if-ge v0, v1, :cond_25
iget v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->indexForNextSeed:I
add-int/lit8 v0, v0, -0x2
iget-object v1, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->index:[I
const/4 v2, 0x0
aget v1, v1, v2
if-ne v0, v1, :cond_25
.line 256
iget v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfNextSeed:I
invoke-virtual {p0, p1, v0}, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->initializeTreehashSeed([BI)V
.line 257
iget v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfNextSeed:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->heightOfNextSeed:I
.line 258
iget v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->indexForNextSeed:I
shl-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->indexForNextSeed:I
.line 261
:cond_25
invoke-virtual {p0, p2}, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->update([B)V
.line 262
return-void
.end method
.method public wasFinished()Z
.registers 2
.prologue
.line 425
iget-boolean v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->isFinished:Z
return v0
.end method
.method public wasInitialized()Z
.registers 2
.prologue
.line 415
iget-boolean v0, p0, Lorg/spongycastle/pqc/crypto/gmss/GMSSRootCalc;->isInitialized:Z
return v0
.end method