public class org.bouncycastle.crypto.macs.GOST28147Mac implements org.bouncycastle.crypto.Mac
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.crypto.macs.GOST28147Mac
super_class: java.lang.Object
{
private int blockSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int macSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int bufOff;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private byte[] buf;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private byte[] mac;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private boolean firstStep;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int[] workingKey;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private byte[] S;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
bipush 8
putfield org.bouncycastle.crypto.macs.GOST28147Mac.blockSize:I
2: aload 0
iconst_4
putfield org.bouncycastle.crypto.macs.GOST28147Mac.macSize:I
3: aload 0
iconst_1
putfield org.bouncycastle.crypto.macs.GOST28147Mac.firstStep:Z
4: aload 0
aconst_null
putfield org.bouncycastle.crypto.macs.GOST28147Mac.workingKey:[I
5: aload 0
sipush 128
newarray 8
dup
iconst_0
6: bipush 9
bastore
dup
iconst_1
bipush 6
bastore
dup
iconst_2
iconst_3
bastore
dup
iconst_3
iconst_2
bastore
dup
iconst_4
bipush 8
bastore
dup
iconst_5
bipush 11
bastore
dup
bipush 6
iconst_1
bastore
dup
bipush 7
bipush 7
bastore
dup
bipush 8
bipush 10
bastore
dup
bipush 9
iconst_4
bastore
dup
bipush 10
bipush 14
bastore
dup
bipush 11
bipush 15
bastore
dup
bipush 12
bipush 12
bastore
dup
bipush 14
bipush 13
bastore
dup
bipush 15
iconst_5
bastore
dup
bipush 16
7: iconst_3
bastore
dup
bipush 17
bipush 7
bastore
dup
bipush 18
bipush 14
bastore
dup
bipush 19
bipush 9
bastore
dup
bipush 20
bipush 8
bastore
dup
bipush 21
bipush 10
bastore
dup
bipush 22
bipush 15
bastore
dup
bipush 24
iconst_5
bastore
dup
bipush 25
iconst_2
bastore
dup
bipush 26
bipush 6
bastore
dup
bipush 27
bipush 12
bastore
dup
bipush 28
bipush 11
bastore
dup
bipush 29
iconst_4
bastore
dup
bipush 30
bipush 13
bastore
dup
bipush 31
iconst_1
bastore
dup
bipush 32
8: bipush 14
bastore
dup
bipush 33
iconst_4
bastore
dup
bipush 34
bipush 6
bastore
dup
bipush 35
iconst_2
bastore
dup
bipush 36
bipush 11
bastore
dup
bipush 37
iconst_3
bastore
dup
bipush 38
bipush 13
bastore
dup
bipush 39
bipush 8
bastore
dup
bipush 40
bipush 12
bastore
dup
bipush 41
bipush 15
bastore
dup
bipush 42
iconst_5
bastore
dup
bipush 43
bipush 10
bastore
dup
bipush 45
bipush 7
bastore
dup
bipush 46
iconst_1
bastore
dup
bipush 47
bipush 9
bastore
dup
bipush 48
9: bipush 14
bastore
dup
bipush 49
bipush 7
bastore
dup
bipush 50
bipush 10
bastore
dup
bipush 51
bipush 12
bastore
dup
bipush 52
bipush 13
bastore
dup
bipush 53
iconst_1
bastore
dup
bipush 54
iconst_3
bastore
dup
bipush 55
bipush 9
bastore
dup
bipush 57
iconst_2
bastore
dup
bipush 58
bipush 11
bastore
dup
bipush 59
iconst_4
bastore
dup
bipush 60
bipush 15
bastore
dup
bipush 61
bipush 8
bastore
dup
bipush 62
iconst_5
bastore
dup
bipush 63
bipush 6
bastore
dup
bipush 64
10: bipush 11
bastore
dup
bipush 65
iconst_5
bastore
dup
bipush 66
iconst_1
bastore
dup
bipush 67
bipush 9
bastore
dup
bipush 68
bipush 8
bastore
dup
bipush 69
bipush 13
bastore
dup
bipush 70
bipush 15
bastore
dup
bipush 72
bipush 14
bastore
dup
bipush 73
iconst_4
bastore
dup
bipush 74
iconst_2
bastore
dup
bipush 75
iconst_3
bastore
dup
bipush 76
bipush 12
bastore
dup
bipush 77
bipush 7
bastore
dup
bipush 78
bipush 10
bastore
dup
bipush 79
bipush 6
bastore
dup
bipush 80
11: iconst_3
bastore
dup
bipush 81
bipush 10
bastore
dup
bipush 82
bipush 13
bastore
dup
bipush 83
bipush 12
bastore
dup
bipush 84
iconst_1
bastore
dup
bipush 85
iconst_2
bastore
dup
bipush 87
bipush 11
bastore
dup
bipush 88
bipush 7
bastore
dup
bipush 89
iconst_5
bastore
dup
bipush 90
bipush 9
bastore
dup
bipush 91
iconst_4
bastore
dup
bipush 92
bipush 8
bastore
dup
bipush 93
bipush 15
bastore
dup
bipush 94
bipush 14
bastore
dup
bipush 95
bipush 6
bastore
dup
bipush 96
12: iconst_1
bastore
dup
bipush 97
bipush 13
bastore
dup
bipush 98
iconst_2
bastore
dup
bipush 99
bipush 9
bastore
dup
bipush 100
bipush 7
bastore
dup
bipush 101
bipush 10
bastore
dup
bipush 102
bipush 6
bastore
dup
bipush 104
bipush 8
bastore
dup
bipush 105
bipush 12
bastore
dup
bipush 106
iconst_4
bastore
dup
bipush 107
iconst_5
bastore
dup
bipush 108
bipush 15
bastore
dup
bipush 109
iconst_3
bastore
dup
bipush 110
bipush 11
bastore
dup
bipush 111
bipush 14
bastore
dup
bipush 112
13: bipush 11
bastore
dup
bipush 113
bipush 10
bastore
dup
bipush 114
bipush 15
bastore
dup
bipush 115
iconst_5
bastore
dup
bipush 117
bipush 12
bastore
dup
bipush 118
bipush 14
bastore
dup
bipush 119
bipush 8
bastore
dup
bipush 120
bipush 6
bastore
dup
bipush 121
iconst_2
bastore
dup
bipush 122
iconst_3
bastore
dup
bipush 123
bipush 9
bastore
dup
bipush 124
iconst_1
bastore
dup
bipush 125
bipush 7
bastore
dup
bipush 126
bipush 13
bastore
dup
bipush 127
iconst_4
bastore
putfield org.bouncycastle.crypto.macs.GOST28147Mac.S:[B
14: aload 0
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.blockSize:I
newarray 8
putfield org.bouncycastle.crypto.macs.GOST28147Mac.mac:[B
15: aload 0
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.blockSize:I
newarray 8
putfield org.bouncycastle.crypto.macs.GOST28147Mac.buf:[B
16: aload 0
iconst_0
putfield org.bouncycastle.crypto.macs.GOST28147Mac.bufOff:I
17: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/bouncycastle/crypto/macs/GOST28147Mac;
private int[] generateWorkingKey(byte[]);
descriptor: ([B)[I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=2
start local 0 start local 1 0: aload 1
arraylength
bipush 32
if_icmpeq 2
1: new java.lang.IllegalArgumentException
dup
ldc "Key length invalid. Key needs to be 32 byte - 256 bit!!!"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
bipush 8
newarray 10
astore 2
start local 2 3: iconst_0
istore 3
start local 3 4: goto 7
5: StackMap locals: int[] int
StackMap stack:
aload 2
iload 3
aload 0
aload 1
iload 3
iconst_4
imul
invokevirtual org.bouncycastle.crypto.macs.GOST28147Mac.bytesToint:([BI)I
iastore
6: iinc 3 1
StackMap locals:
StackMap stack:
7: iload 3
bipush 8
if_icmpne 5
end local 3 8: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/bouncycastle/crypto/macs/GOST28147Mac;
0 9 1 userKey [B
3 9 2 key [I
4 8 3 i I
MethodParameters:
Name Flags
userKey
public void init(org.bouncycastle.crypto.CipherParameters);
descriptor: (Lorg/bouncycastle/crypto/CipherParameters;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.bouncycastle.crypto.macs.GOST28147Mac.reset:()V
1: aload 0
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.blockSize:I
newarray 8
putfield org.bouncycastle.crypto.macs.GOST28147Mac.buf:[B
2: aload 1
instanceof org.bouncycastle.crypto.params.ParametersWithSBox
ifeq 8
3: aload 1
checkcast org.bouncycastle.crypto.params.ParametersWithSBox
astore 2
start local 2 4: aload 2
invokevirtual org.bouncycastle.crypto.params.ParametersWithSBox.getSBox:()[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.S:[B
iconst_0
aload 2
invokevirtual org.bouncycastle.crypto.params.ParametersWithSBox.getSBox:()[B
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
5: aload 2
invokevirtual org.bouncycastle.crypto.params.ParametersWithSBox.getParameters:()Lorg/bouncycastle/crypto/CipherParameters;
ifnull 12
6: aload 0
aload 0
aload 2
invokevirtual org.bouncycastle.crypto.params.ParametersWithSBox.getParameters:()Lorg/bouncycastle/crypto/CipherParameters;
checkcast org.bouncycastle.crypto.params.KeyParameter
invokevirtual org.bouncycastle.crypto.params.KeyParameter.getKey:()[B
invokevirtual org.bouncycastle.crypto.macs.GOST28147Mac.generateWorkingKey:([B)[I
putfield org.bouncycastle.crypto.macs.GOST28147Mac.workingKey:[I
end local 2 7: goto 12
8: StackMap locals:
StackMap stack:
aload 1
instanceof org.bouncycastle.crypto.params.KeyParameter
ifeq 11
9: aload 0
aload 0
aload 1
checkcast org.bouncycastle.crypto.params.KeyParameter
invokevirtual org.bouncycastle.crypto.params.KeyParameter.getKey:()[B
invokevirtual org.bouncycastle.crypto.macs.GOST28147Mac.generateWorkingKey:([B)[I
putfield org.bouncycastle.crypto.macs.GOST28147Mac.workingKey:[I
10: goto 12
11: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "invalid parameter passed to GOST28147 init - "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/bouncycastle/crypto/macs/GOST28147Mac;
0 13 1 params Lorg/bouncycastle/crypto/CipherParameters;
4 7 2 param Lorg/bouncycastle/crypto/params/ParametersWithSBox;
Exceptions:
throws java.lang.IllegalArgumentException
MethodParameters:
Name Flags
params
public java.lang.String getAlgorithmName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "GOST28147Mac"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/macs/GOST28147Mac;
public int getMacSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.macSize:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/macs/GOST28147Mac;
private int gost28147_mainStep(int, int);
descriptor: (II)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iload 2
iload 1
iadd
istore 3
start local 3 1: aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.S:[B
iconst_0
iload 3
iconst_0
ishr
bipush 15
iand
iadd
baload
iconst_0
ishl
istore 4
start local 4 2: iload 4
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.S:[B
bipush 16
iload 3
iconst_4
ishr
bipush 15
iand
iadd
baload
iconst_4
ishl
iadd
istore 4
3: iload 4
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.S:[B
bipush 32
iload 3
bipush 8
ishr
bipush 15
iand
iadd
baload
bipush 8
ishl
iadd
istore 4
4: iload 4
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.S:[B
bipush 48
iload 3
bipush 12
ishr
bipush 15
iand
iadd
baload
bipush 12
ishl
iadd
istore 4
5: iload 4
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.S:[B
bipush 64
iload 3
bipush 16
ishr
bipush 15
iand
iadd
baload
bipush 16
ishl
iadd
istore 4
6: iload 4
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.S:[B
bipush 80
iload 3
bipush 20
ishr
bipush 15
iand
iadd
baload
bipush 20
ishl
iadd
istore 4
7: iload 4
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.S:[B
bipush 96
iload 3
bipush 24
ishr
bipush 15
iand
iadd
baload
bipush 24
ishl
iadd
istore 4
8: iload 4
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.S:[B
bipush 112
iload 3
bipush 28
ishr
bipush 15
iand
iadd
baload
bipush 28
ishl
iadd
istore 4
9: iload 4
bipush 11
ishl
iload 4
bipush 21
iushr
ior
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/bouncycastle/crypto/macs/GOST28147Mac;
0 10 1 n1 I
0 10 2 key I
1 10 3 cm I
2 10 4 om I
MethodParameters:
Name Flags
n1
key
private void gost28147MacFunc(int[], byte[], int, byte[], int);
descriptor: ([I[BI[BI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=11, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 2
iload 3
invokevirtual org.bouncycastle.crypto.macs.GOST28147Mac.bytesToint:([BI)I
istore 6
start local 6 1: aload 0
aload 2
iload 3
iconst_4
iadd
invokevirtual org.bouncycastle.crypto.macs.GOST28147Mac.bytesToint:([BI)I
istore 7
start local 7 2: iconst_0
istore 9
start local 9 3: goto 12
4: StackMap locals: org.bouncycastle.crypto.macs.GOST28147Mac int[] byte[] int byte[] int int int top int
StackMap stack:
iconst_0
istore 10
start local 10 5: goto 10
6: StackMap locals: int
StackMap stack:
iload 6
istore 8
start local 8 7: iload 7
aload 0
iload 6
aload 1
iload 10
iaload
invokevirtual org.bouncycastle.crypto.macs.GOST28147Mac.gost28147_mainStep:(II)I
ixor
istore 6
8: iload 8
istore 7
9: iinc 10 1
end local 8 StackMap locals:
StackMap stack:
10: iload 10
bipush 8
if_icmplt 6
end local 10 11: iinc 9 1
StackMap locals:
StackMap stack:
12: iload 9
iconst_2
if_icmplt 4
end local 9 13: aload 0
iload 6
aload 4
iload 5
invokevirtual org.bouncycastle.crypto.macs.GOST28147Mac.intTobytes:(I[BI)V
14: aload 0
iload 7
aload 4
iload 5
iconst_4
iadd
invokevirtual org.bouncycastle.crypto.macs.GOST28147Mac.intTobytes:(I[BI)V
15: return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/bouncycastle/crypto/macs/GOST28147Mac;
0 16 1 workingKey [I
0 16 2 in [B
0 16 3 inOff I
0 16 4 out [B
0 16 5 outOff I
1 16 6 N1 I
2 16 7 N2 I
7 10 8 tmp I
3 13 9 k I
5 11 10 j I
MethodParameters:
Name Flags
workingKey
in
inOff
out
outOff
private int bytesToint(byte[], int);
descriptor: ([BI)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
iload 2
iconst_3
iadd
baload
bipush 24
ishl
ldc -16777216
iand
aload 1
iload 2
iconst_2
iadd
baload
bipush 16
ishl
ldc 16711680
iand
iadd
1: aload 1
iload 2
iconst_1
iadd
baload
bipush 8
ishl
ldc 65280
iand
2: iadd
3: aload 1
iload 2
baload
sipush 255
iand
4: iadd
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/bouncycastle/crypto/macs/GOST28147Mac;
0 5 1 in [B
0 5 2 inOff I
MethodParameters:
Name Flags
in
inOff
private void intTobytes(int, byte[], int);
descriptor: (I[BI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
iload 3
iconst_3
iadd
iload 1
bipush 24
iushr
i2b
bastore
1: aload 2
iload 3
iconst_2
iadd
iload 1
bipush 16
iushr
i2b
bastore
2: aload 2
iload 3
iconst_1
iadd
iload 1
bipush 8
iushr
i2b
bastore
3: aload 2
iload 3
iload 1
i2b
bastore
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/bouncycastle/crypto/macs/GOST28147Mac;
0 5 1 num I
0 5 2 out [B
0 5 3 outOff I
MethodParameters:
Name Flags
num
out
outOff
private byte[] CM5func(byte[], int, byte[]);
descriptor: ([BI[B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
arraylength
iload 2
isub
newarray 8
astore 4
start local 4 1: aload 1
iload 2
aload 4
iconst_0
aload 3
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
2: iconst_0
istore 5
start local 5 3: goto 6
4: StackMap locals: byte[] int
StackMap stack:
aload 4
iload 5
aload 4
iload 5
baload
aload 3
iload 5
baload
ixor
i2b
bastore
5: iinc 5 1
StackMap locals:
StackMap stack:
6: iload 5
aload 3
arraylength
if_icmpne 4
end local 5 7: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/bouncycastle/crypto/macs/GOST28147Mac;
0 8 1 buf [B
0 8 2 bufOff I
0 8 3 mac [B
1 8 4 sum [B
3 7 5 i I
MethodParameters:
Name Flags
buf
bufOff
mac
public void update(byte);
descriptor: (B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.bufOff:I
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.buf:[B
arraylength
if_icmpne 9
1: aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.buf:[B
arraylength
newarray 8
astore 2
start local 2 2: aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.buf:[B
iconst_0
aload 2
iconst_0
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.mac:[B
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
3: aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.firstStep:Z
ifeq 6
4: aload 0
iconst_0
putfield org.bouncycastle.crypto.macs.GOST28147Mac.firstStep:Z
5: goto 7
6: StackMap locals: byte[]
StackMap stack:
aload 0
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.buf:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.mac:[B
invokevirtual org.bouncycastle.crypto.macs.GOST28147Mac.CM5func:([BI[B)[B
astore 2
7: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.workingKey:[I
aload 2
iconst_0
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.mac:[B
iconst_0
invokevirtual org.bouncycastle.crypto.macs.GOST28147Mac.gost28147MacFunc:([I[BI[BI)V
8: aload 0
iconst_0
putfield org.bouncycastle.crypto.macs.GOST28147Mac.bufOff:I
end local 2 9: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.buf:[B
aload 0
dup
getfield org.bouncycastle.crypto.macs.GOST28147Mac.bufOff:I
dup_x1
iconst_1
iadd
putfield org.bouncycastle.crypto.macs.GOST28147Mac.bufOff:I
iload 1
bastore
10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/bouncycastle/crypto/macs/GOST28147Mac;
0 11 1 in B
2 9 2 sumbuf [B
Exceptions:
throws java.lang.IllegalStateException
MethodParameters:
Name Flags
in
public void update(byte[], int, int);
descriptor: ([BII)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 3
ifge 2
1: new java.lang.IllegalArgumentException
dup
ldc "Can't have a negative input length!"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.blockSize:I
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.bufOff:I
isub
istore 4
start local 4 3: iload 3
iload 4
if_icmple 21
4: aload 1
iload 2
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.buf:[B
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.bufOff:I
iload 4
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
5: aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.buf:[B
arraylength
newarray 8
astore 5
start local 5 6: aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.buf:[B
iconst_0
aload 5
iconst_0
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.mac:[B
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
7: aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.firstStep:Z
ifeq 10
8: aload 0
iconst_0
putfield org.bouncycastle.crypto.macs.GOST28147Mac.firstStep:Z
9: goto 11
10: StackMap locals: int byte[]
StackMap stack:
aload 0
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.buf:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.mac:[B
invokevirtual org.bouncycastle.crypto.macs.GOST28147Mac.CM5func:([BI[B)[B
astore 5
11: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.workingKey:[I
aload 5
iconst_0
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.mac:[B
iconst_0
invokevirtual org.bouncycastle.crypto.macs.GOST28147Mac.gost28147MacFunc:([I[BI[BI)V
12: aload 0
iconst_0
putfield org.bouncycastle.crypto.macs.GOST28147Mac.bufOff:I
13: iload 3
iload 4
isub
istore 3
14: iload 2
iload 4
iadd
istore 2
15: goto 20
16: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.mac:[B
invokevirtual org.bouncycastle.crypto.macs.GOST28147Mac.CM5func:([BI[B)[B
astore 5
17: aload 0
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.workingKey:[I
aload 5
iconst_0
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.mac:[B
iconst_0
invokevirtual org.bouncycastle.crypto.macs.GOST28147Mac.gost28147MacFunc:([I[BI[BI)V
18: iload 3
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.blockSize:I
isub
istore 3
19: iload 2
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.blockSize:I
iadd
istore 2
20: StackMap locals:
StackMap stack:
iload 3
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.blockSize:I
if_icmpgt 16
end local 5 21: StackMap locals:
StackMap stack:
aload 1
iload 2
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.buf:[B
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.bufOff:I
iload 3
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
22: aload 0
dup
getfield org.bouncycastle.crypto.macs.GOST28147Mac.bufOff:I
iload 3
iadd
putfield org.bouncycastle.crypto.macs.GOST28147Mac.bufOff:I
23: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/bouncycastle/crypto/macs/GOST28147Mac;
0 24 1 in [B
0 24 2 inOff I
0 24 3 len I
3 24 4 gapLen I
6 21 5 sumbuf [B
Exceptions:
throws org.bouncycastle.crypto.DataLengthException, java.lang.IllegalStateException
MethodParameters:
Name Flags
in
inOff
len
public int doFinal(byte[], int);
descriptor: ([BI)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: goto 3
1: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.buf:[B
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.bufOff:I
iconst_0
bastore
2: aload 0
dup
getfield org.bouncycastle.crypto.macs.GOST28147Mac.bufOff:I
iconst_1
iadd
putfield org.bouncycastle.crypto.macs.GOST28147Mac.bufOff:I
3: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.bufOff:I
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.blockSize:I
if_icmplt 1
4: aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.buf:[B
arraylength
newarray 8
astore 3
start local 3 5: aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.buf:[B
iconst_0
aload 3
iconst_0
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.mac:[B
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
6: aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.firstStep:Z
ifeq 9
7: aload 0
iconst_0
putfield org.bouncycastle.crypto.macs.GOST28147Mac.firstStep:Z
8: goto 10
9: StackMap locals: byte[]
StackMap stack:
aload 0
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.buf:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.mac:[B
invokevirtual org.bouncycastle.crypto.macs.GOST28147Mac.CM5func:([BI[B)[B
astore 3
10: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.workingKey:[I
aload 3
iconst_0
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.mac:[B
iconst_0
invokevirtual org.bouncycastle.crypto.macs.GOST28147Mac.gost28147MacFunc:([I[BI[BI)V
11: aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.mac:[B
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.mac:[B
arraylength
iconst_2
idiv
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.macSize:I
isub
aload 1
iload 2
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.macSize:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
12: aload 0
invokevirtual org.bouncycastle.crypto.macs.GOST28147Mac.reset:()V
13: aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.macSize:I
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/bouncycastle/crypto/macs/GOST28147Mac;
0 14 1 out [B
0 14 2 outOff I
5 14 3 sumbuf [B
Exceptions:
throws org.bouncycastle.crypto.DataLengthException, java.lang.IllegalStateException
MethodParameters:
Name Flags
out
outOff
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: goto 4
2: StackMap locals: int
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.buf:[B
iload 1
iconst_0
bastore
3: iinc 1 1
StackMap locals:
StackMap stack:
4: iload 1
aload 0
getfield org.bouncycastle.crypto.macs.GOST28147Mac.buf:[B
arraylength
if_icmplt 2
end local 1 5: aload 0
iconst_0
putfield org.bouncycastle.crypto.macs.GOST28147Mac.bufOff:I
6: aload 0
iconst_1
putfield org.bouncycastle.crypto.macs.GOST28147Mac.firstStep:Z
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/bouncycastle/crypto/macs/GOST28147Mac;
1 5 1 i I
}
SourceFile: "GOST28147Mac.java"