public class org.bouncycastle.crypto.digests.SHA512tDigest extends org.bouncycastle.crypto.digests.LongDigest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.crypto.digests.SHA512tDigest
super_class: org.bouncycastle.crypto.digests.LongDigest
{
private int digestLength;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private long H1t;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long H2t;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long H3t;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long H4t;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long H5t;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long H6t;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long H7t;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long H8t;
descriptor: J
flags: (0x0002) ACC_PRIVATE
public void <init>(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial org.bouncycastle.crypto.digests.LongDigest.<init>:()V
1: iload 1
sipush 512
if_icmplt 3
2: new java.lang.IllegalArgumentException
dup
ldc "bitLength cannot be >= 512"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: org.bouncycastle.crypto.digests.SHA512tDigest int
StackMap stack:
iload 1
bipush 8
irem
ifeq 5
4: new java.lang.IllegalArgumentException
dup
ldc "bitLength needs to be a multiple of 8"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
iload 1
sipush 384
if_icmpne 7
6: new java.lang.IllegalArgumentException
dup
ldc "bitLength cannot be 384 use SHA384 instead"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 0
iload 1
bipush 8
idiv
putfield org.bouncycastle.crypto.digests.SHA512tDigest.digestLength:I
8: aload 0
aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.digestLength:I
bipush 8
imul
invokevirtual org.bouncycastle.crypto.digests.SHA512tDigest.tIvGenerate:(I)V
9: aload 0
invokevirtual org.bouncycastle.crypto.digests.SHA512tDigest.reset:()V
10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/bouncycastle/crypto/digests/SHA512tDigest;
0 11 1 bitLength I
MethodParameters:
Name Flags
bitLength
public void <init>(org.bouncycastle.crypto.digests.SHA512tDigest);
descriptor: (Lorg/bouncycastle/crypto/digests/SHA512tDigest;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial org.bouncycastle.crypto.digests.LongDigest.<init>:(Lorg/bouncycastle/crypto/digests/LongDigest;)V
1: aload 0
aload 1
getfield org.bouncycastle.crypto.digests.SHA512tDigest.digestLength:I
putfield org.bouncycastle.crypto.digests.SHA512tDigest.digestLength:I
2: aload 0
aload 1
invokevirtual org.bouncycastle.crypto.digests.SHA512tDigest.reset:(Lorg/bouncycastle/util/Memoable;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/crypto/digests/SHA512tDigest;
0 4 1 t Lorg/bouncycastle/crypto/digests/SHA512tDigest;
MethodParameters:
Name Flags
t
public void <init>(byte[]);
descriptor: ([B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic org.bouncycastle.crypto.digests.SHA512tDigest.readDigestLength:([B)I
invokespecial org.bouncycastle.crypto.digests.SHA512tDigest.<init>:(I)V
1: aload 0
aload 1
invokevirtual org.bouncycastle.crypto.digests.SHA512tDigest.restoreState:([B)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/crypto/digests/SHA512tDigest;
0 3 1 encodedState [B
MethodParameters:
Name Flags
encodedState
private static int readDigestLength(byte[]);
descriptor: ([B)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
aload 0
arraylength
iconst_4
isub
invokestatic org.bouncycastle.util.Pack.bigEndianToInt:([BI)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 encodedState [B
MethodParameters:
Name Flags
encodedState
public java.lang.String getAlgorithmName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "SHA-512/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.digestLength:I
bipush 8
imul
invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/digests/SHA512tDigest;
public int getDigestSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.digestLength:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/digests/SHA512tDigest;
public int doFinal(byte[], int);
descriptor: ([BI)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.bouncycastle.crypto.digests.SHA512tDigest.finish:()V
1: aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H1:J
aload 1
iload 2
aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.digestLength:I
invokestatic org.bouncycastle.crypto.digests.SHA512tDigest.longToBigEndian:(J[BII)V
2: aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H2:J
aload 1
iload 2
bipush 8
iadd
aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.digestLength:I
bipush 8
isub
invokestatic org.bouncycastle.crypto.digests.SHA512tDigest.longToBigEndian:(J[BII)V
3: aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H3:J
aload 1
iload 2
bipush 16
iadd
aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.digestLength:I
bipush 16
isub
invokestatic org.bouncycastle.crypto.digests.SHA512tDigest.longToBigEndian:(J[BII)V
4: aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H4:J
aload 1
iload 2
bipush 24
iadd
aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.digestLength:I
bipush 24
isub
invokestatic org.bouncycastle.crypto.digests.SHA512tDigest.longToBigEndian:(J[BII)V
5: aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H5:J
aload 1
iload 2
bipush 32
iadd
aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.digestLength:I
bipush 32
isub
invokestatic org.bouncycastle.crypto.digests.SHA512tDigest.longToBigEndian:(J[BII)V
6: aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H6:J
aload 1
iload 2
bipush 40
iadd
aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.digestLength:I
bipush 40
isub
invokestatic org.bouncycastle.crypto.digests.SHA512tDigest.longToBigEndian:(J[BII)V
7: aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H7:J
aload 1
iload 2
bipush 48
iadd
aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.digestLength:I
bipush 48
isub
invokestatic org.bouncycastle.crypto.digests.SHA512tDigest.longToBigEndian:(J[BII)V
8: aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H8:J
aload 1
iload 2
bipush 56
iadd
aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.digestLength:I
bipush 56
isub
invokestatic org.bouncycastle.crypto.digests.SHA512tDigest.longToBigEndian:(J[BII)V
9: aload 0
invokevirtual org.bouncycastle.crypto.digests.SHA512tDigest.reset:()V
10: aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.digestLength:I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/bouncycastle/crypto/digests/SHA512tDigest;
0 11 1 out [B
0 11 2 outOff I
MethodParameters:
Name Flags
out
outOff
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.bouncycastle.crypto.digests.LongDigest.reset:()V
1: aload 0
aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H1t:J
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H1:J
2: aload 0
aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H2t:J
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H2:J
3: aload 0
aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H3t:J
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H3:J
4: aload 0
aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H4t:J
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H4:J
5: aload 0
aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H5t:J
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H5:J
6: aload 0
aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H6t:J
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H6:J
7: aload 0
aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H7t:J
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H7:J
8: aload 0
aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H8t:J
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H8:J
9: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/bouncycastle/crypto/digests/SHA512tDigest;
private void tIvGenerate(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ldc -3482333909917012819
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H1:J
1: aload 0
ldc 2216346199247487646
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H2:J
2: aload 0
ldc -7364697282686394994
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H3:J
3: aload 0
ldc 65953792586715988
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H4:J
4: aload 0
ldc -816286391624063116
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H5:J
5: aload 0
ldc 4512832404995164602
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H6:J
6: aload 0
ldc -5033199132376557362
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H7:J
7: aload 0
ldc -124578254951840548
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H8:J
8: aload 0
bipush 83
invokevirtual org.bouncycastle.crypto.digests.SHA512tDigest.update:(B)V
9: aload 0
bipush 72
invokevirtual org.bouncycastle.crypto.digests.SHA512tDigest.update:(B)V
10: aload 0
bipush 65
invokevirtual org.bouncycastle.crypto.digests.SHA512tDigest.update:(B)V
11: aload 0
bipush 45
invokevirtual org.bouncycastle.crypto.digests.SHA512tDigest.update:(B)V
12: aload 0
bipush 53
invokevirtual org.bouncycastle.crypto.digests.SHA512tDigest.update:(B)V
13: aload 0
bipush 49
invokevirtual org.bouncycastle.crypto.digests.SHA512tDigest.update:(B)V
14: aload 0
bipush 50
invokevirtual org.bouncycastle.crypto.digests.SHA512tDigest.update:(B)V
15: aload 0
bipush 47
invokevirtual org.bouncycastle.crypto.digests.SHA512tDigest.update:(B)V
16: iload 1
bipush 100
if_icmple 23
17: aload 0
iload 1
bipush 100
idiv
bipush 48
iadd
i2b
invokevirtual org.bouncycastle.crypto.digests.SHA512tDigest.update:(B)V
18: iload 1
bipush 100
irem
istore 1
19: aload 0
iload 1
bipush 10
idiv
bipush 48
iadd
i2b
invokevirtual org.bouncycastle.crypto.digests.SHA512tDigest.update:(B)V
20: iload 1
bipush 10
irem
istore 1
21: aload 0
iload 1
bipush 48
iadd
i2b
invokevirtual org.bouncycastle.crypto.digests.SHA512tDigest.update:(B)V
22: goto 29
23: StackMap locals:
StackMap stack:
iload 1
bipush 10
if_icmple 28
24: aload 0
iload 1
bipush 10
idiv
bipush 48
iadd
i2b
invokevirtual org.bouncycastle.crypto.digests.SHA512tDigest.update:(B)V
25: iload 1
bipush 10
irem
istore 1
26: aload 0
iload 1
bipush 48
iadd
i2b
invokevirtual org.bouncycastle.crypto.digests.SHA512tDigest.update:(B)V
27: goto 29
28: StackMap locals:
StackMap stack:
aload 0
iload 1
bipush 48
iadd
i2b
invokevirtual org.bouncycastle.crypto.digests.SHA512tDigest.update:(B)V
29: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.bouncycastle.crypto.digests.SHA512tDigest.finish:()V
30: aload 0
aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H1:J
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H1t:J
31: aload 0
aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H2:J
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H2t:J
32: aload 0
aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H3:J
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H3t:J
33: aload 0
aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H4:J
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H4t:J
34: aload 0
aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H5:J
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H5t:J
35: aload 0
aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H6:J
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H6t:J
36: aload 0
aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H7:J
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H7t:J
37: aload 0
aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H8:J
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H8t:J
38: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Lorg/bouncycastle/crypto/digests/SHA512tDigest;
0 39 1 bitLength I
MethodParameters:
Name Flags
bitLength
private static void longToBigEndian(long, byte[], int, int);
descriptor: (J[BII)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=5, args_size=4
start local 0 start local 2 start local 3 start local 4 0: iload 4
ifle 4
1: lload 0
bipush 32
lushr
l2i
aload 2
iload 3
iload 4
invokestatic org.bouncycastle.crypto.digests.SHA512tDigest.intToBigEndian:(I[BII)V
2: iload 4
iconst_4
if_icmple 4
3: lload 0
ldc 4294967295
land
l2i
aload 2
iload 3
iconst_4
iadd
iload 4
iconst_4
isub
invokestatic org.bouncycastle.crypto.digests.SHA512tDigest.intToBigEndian:(I[BII)V
4: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 n J
0 5 2 bs [B
0 5 3 off I
0 5 4 max I
MethodParameters:
Name Flags
n
bs
off
max
private static void intToBigEndian(int, byte[], int, int);
descriptor: (I[BII)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_4
iload 3
invokestatic java.lang.Math.min:(II)I
istore 4
start local 4 1: goto 4
2: StackMap locals: int
StackMap stack:
bipush 8
iconst_3
iload 4
isub
imul
istore 5
start local 5 3: aload 1
iload 2
iload 4
iadd
iload 0
iload 5
iushr
i2b
bastore
end local 5 4: StackMap locals:
StackMap stack:
iinc 4 -1
iload 4
ifge 2
5: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 n I
0 6 1 bs [B
0 6 2 off I
0 6 3 max I
1 6 4 num I
3 4 5 shift I
MethodParameters:
Name Flags
n
bs
off
max
public org.bouncycastle.util.Memoable copy();
descriptor: ()Lorg/bouncycastle/util/Memoable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new org.bouncycastle.crypto.digests.SHA512tDigest
dup
aload 0
invokespecial org.bouncycastle.crypto.digests.SHA512tDigest.<init>:(Lorg/bouncycastle/crypto/digests/SHA512tDigest;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/digests/SHA512tDigest;
public void reset(org.bouncycastle.util.Memoable);
descriptor: (Lorg/bouncycastle/util/Memoable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
checkcast org.bouncycastle.crypto.digests.SHA512tDigest
astore 2
start local 2 1: aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.digestLength:I
aload 2
getfield org.bouncycastle.crypto.digests.SHA512tDigest.digestLength:I
if_icmpeq 3
2: new org.bouncycastle.util.MemoableResetException
dup
ldc "digestLength inappropriate in other"
invokespecial org.bouncycastle.util.MemoableResetException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: org.bouncycastle.crypto.digests.SHA512tDigest
StackMap stack:
aload 0
aload 2
invokespecial org.bouncycastle.crypto.digests.LongDigest.copyIn:(Lorg/bouncycastle/crypto/digests/LongDigest;)V
4: aload 0
aload 2
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H1t:J
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H1t:J
5: aload 0
aload 2
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H2t:J
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H2t:J
6: aload 0
aload 2
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H3t:J
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H3t:J
7: aload 0
aload 2
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H4t:J
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H4t:J
8: aload 0
aload 2
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H5t:J
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H5t:J
9: aload 0
aload 2
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H6t:J
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H6t:J
10: aload 0
aload 2
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H7t:J
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H7t:J
11: aload 0
aload 2
getfield org.bouncycastle.crypto.digests.SHA512tDigest.H8t:J
putfield org.bouncycastle.crypto.digests.SHA512tDigest.H8t:J
12: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/bouncycastle/crypto/digests/SHA512tDigest;
0 13 1 other Lorg/bouncycastle/util/Memoable;
1 13 2 t Lorg/bouncycastle/crypto/digests/SHA512tDigest;
MethodParameters:
Name Flags
other
public byte[] getEncodedState();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual org.bouncycastle.crypto.digests.SHA512tDigest.getEncodedStateSize:()I
istore 1
start local 1 1: iload 1
iconst_4
iadd
newarray 8
astore 2
start local 2 2: aload 0
aload 2
invokevirtual org.bouncycastle.crypto.digests.SHA512tDigest.populateState:([B)V
3: aload 0
getfield org.bouncycastle.crypto.digests.SHA512tDigest.digestLength:I
bipush 8
imul
aload 2
iload 1
invokestatic org.bouncycastle.util.Pack.intToBigEndian:(I[BI)V
4: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/bouncycastle/crypto/digests/SHA512tDigest;
1 5 1 baseSize I
2 5 2 encoded [B
}
SourceFile: "SHA512tDigest.java"