public class org.bouncycastle.crypto.engines.RC6Engine implements org.bouncycastle.crypto.BlockCipher
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.crypto.engines.RC6Engine
super_class: java.lang.Object
{
private static final int wordSize;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 32
private static final int bytesPerWord;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int _noRounds;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 20
private int[] _S;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private static final int P32;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1209970333
private static final int Q32;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1640531527
private static final int LGW;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5
private boolean forEncryption;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 // org.bouncycastle.crypto.engines.RC6Engine this
0: .line 47
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 49
aload 0 /* this */
aconst_null
putfield org.bouncycastle.crypto.engines.RC6Engine._S:[I
2: .line 50
return
end local 0 // org.bouncycastle.crypto.engines.RC6Engine this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/crypto/engines/RC6Engine;
public java.lang.String getAlgorithmName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // org.bouncycastle.crypto.engines.RC6Engine this
0: .line 54
ldc "RC6"
areturn
end local 0 // org.bouncycastle.crypto.engines.RC6Engine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/engines/RC6Engine;
public int getBlockSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // org.bouncycastle.crypto.engines.RC6Engine this
0: .line 59
bipush 16
ireturn
end local 0 // org.bouncycastle.crypto.engines.RC6Engine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/engines/RC6Engine;
public void init(boolean, org.bouncycastle.crypto.CipherParameters);
descriptor: (ZLorg/bouncycastle/crypto/CipherParameters;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=3
start local 0 // org.bouncycastle.crypto.engines.RC6Engine this
start local 1 // boolean forEncryption
start local 2 // org.bouncycastle.crypto.CipherParameters params
0: .line 74
aload 2 /* params */
instanceof org.bouncycastle.crypto.params.KeyParameter
ifne 2
1: .line 76
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "invalid parameter passed to RC6 init - "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2 /* params */
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
2: .line 79
StackMap locals:
StackMap stack:
aload 2 /* params */
checkcast org.bouncycastle.crypto.params.KeyParameter
astore 3 /* p */
start local 3 // org.bouncycastle.crypto.params.KeyParameter p
3: .line 80
aload 0 /* this */
iload 1 /* forEncryption */
putfield org.bouncycastle.crypto.engines.RC6Engine.forEncryption:Z
4: .line 81
aload 0 /* this */
aload 3 /* p */
invokevirtual org.bouncycastle.crypto.params.KeyParameter.getKey:()[B
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.setKey:([B)V
5: .line 82
return
end local 3 // org.bouncycastle.crypto.params.KeyParameter p
end local 2 // org.bouncycastle.crypto.CipherParameters params
end local 1 // boolean forEncryption
end local 0 // org.bouncycastle.crypto.engines.RC6Engine this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/bouncycastle/crypto/engines/RC6Engine;
0 6 1 forEncryption Z
0 6 2 params Lorg/bouncycastle/crypto/CipherParameters;
3 6 3 p Lorg/bouncycastle/crypto/params/KeyParameter;
MethodParameters:
Name Flags
forEncryption
params
public int processBlock(byte[], int, byte[], int);
descriptor: ([BI[BI)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=5
start local 0 // org.bouncycastle.crypto.engines.RC6Engine this
start local 1 // byte[] in
start local 2 // int inOff
start local 3 // byte[] out
start local 4 // int outOff
0: .line 90
aload 0 /* this */
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.getBlockSize:()I
istore 5 /* blockSize */
start local 5 // int blockSize
1: .line 91
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.RC6Engine._S:[I
ifnonnull 3
2: .line 93
new java.lang.IllegalStateException
dup
ldc "RC6 engine not initialised"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
3: .line 95
StackMap locals: int
StackMap stack:
iload 2 /* inOff */
iload 5 /* blockSize */
iadd
aload 1 /* in */
arraylength
if_icmple 5
4: .line 97
new org.bouncycastle.crypto.DataLengthException
dup
ldc "input buffer too short"
invokespecial org.bouncycastle.crypto.DataLengthException.<init>:(Ljava/lang/String;)V
athrow
5: .line 99
StackMap locals:
StackMap stack:
iload 4 /* outOff */
iload 5 /* blockSize */
iadd
aload 3 /* out */
arraylength
if_icmple 7
6: .line 101
new org.bouncycastle.crypto.DataLengthException
dup
ldc "output buffer too short"
invokespecial org.bouncycastle.crypto.DataLengthException.<init>:(Ljava/lang/String;)V
athrow
7: .line 104
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.RC6Engine.forEncryption:Z
ifeq 9
8: .line 105
aload 0 /* this */
aload 1 /* in */
iload 2 /* inOff */
aload 3 /* out */
iload 4 /* outOff */
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.encryptBlock:([BI[BI)I
goto 10
9: .line 106
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* in */
iload 2 /* inOff */
aload 3 /* out */
iload 4 /* outOff */
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.decryptBlock:([BI[BI)I
10: .line 104
StackMap locals:
StackMap stack: int
ireturn
end local 5 // int blockSize
end local 4 // int outOff
end local 3 // byte[] out
end local 2 // int inOff
end local 1 // byte[] in
end local 0 // org.bouncycastle.crypto.engines.RC6Engine this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/bouncycastle/crypto/engines/RC6Engine;
0 11 1 in [B
0 11 2 inOff I
0 11 3 out [B
0 11 4 outOff I
1 11 5 blockSize I
MethodParameters:
Name Flags
in
inOff
out
outOff
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=1, args_size=1
start local 0 // org.bouncycastle.crypto.engines.RC6Engine this
0: .line 111
return
end local 0 // org.bouncycastle.crypto.engines.RC6Engine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/engines/RC6Engine;
private void setKey(byte[]);
descriptor: ([B)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=10, args_size=2
start local 0 // org.bouncycastle.crypto.engines.RC6Engine this
start local 1 // byte[] key
0: .line 135
aload 1 /* key */
arraylength
iconst_3
iadd
iconst_4
idiv
istore 2 /* c */
start local 2 // int c
1: .line 136
iload 2 /* c */
ifne 3
2: .line 138
iconst_1
istore 2 /* c */
3: .line 140
StackMap locals: int
StackMap stack:
aload 1 /* key */
arraylength
iconst_4
iadd
iconst_1
isub
iconst_4
idiv
newarray 10
astore 3 /* L */
start local 3 // int[] L
4: .line 143
aload 1 /* key */
arraylength
iconst_1
isub
istore 4 /* i */
start local 4 // int i
5: goto 8
6: .line 145
StackMap locals: int[] int
StackMap stack:
aload 3 /* L */
iload 4 /* i */
iconst_4
idiv
aload 3 /* L */
iload 4 /* i */
iconst_4
idiv
iaload
bipush 8
ishl
aload 1 /* key */
iload 4 /* i */
baload
sipush 255
iand
iadd
iastore
7: .line 143
iinc 4 /* i */ -1
StackMap locals:
StackMap stack:
8: iload 4 /* i */
ifge 6
end local 4 // int i
9: .line 155
aload 0 /* this */
bipush 44
newarray 10
putfield org.bouncycastle.crypto.engines.RC6Engine._S:[I
10: .line 157
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.RC6Engine._S:[I
iconst_0
ldc -1209970333
iastore
11: .line 158
iconst_1
istore 4 /* i */
start local 4 // int i
12: goto 15
13: .line 160
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.RC6Engine._S:[I
iload 4 /* i */
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.RC6Engine._S:[I
iload 4 /* i */
iconst_1
isub
iaload
ldc -1640531527
iadd
iastore
14: .line 158
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
15: iload 4 /* i */
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.RC6Engine._S:[I
arraylength
if_icmplt 13
end local 4 // int i
16: .line 170
aload 3 /* L */
arraylength
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.RC6Engine._S:[I
arraylength
if_icmple 19
17: .line 172
iconst_3
aload 3 /* L */
arraylength
imul
istore 4 /* iter */
start local 4 // int iter
18: .line 173
goto 20
end local 4 // int iter
19: .line 176
StackMap locals:
StackMap stack:
iconst_3
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.RC6Engine._S:[I
arraylength
imul
istore 4 /* iter */
start local 4 // int iter
20: .line 179
StackMap locals: int
StackMap stack:
iconst_0
istore 5 /* A */
start local 5 // int A
21: .line 180
iconst_0
istore 6 /* B */
start local 6 // int B
22: .line 181
iconst_0
istore 7 /* i */
start local 7 // int i
23: iconst_0
istore 8 /* j */
start local 8 // int j
24: .line 183
iconst_0
istore 9 /* k */
start local 9 // int k
25: goto 31
26: .line 185
StackMap locals: org.bouncycastle.crypto.engines.RC6Engine byte[] int int[] int int int int int int
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.RC6Engine._S:[I
iload 7 /* i */
aload 0 /* this */
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.RC6Engine._S:[I
iload 7 /* i */
iaload
iload 5 /* A */
iadd
iload 6 /* B */
iadd
iconst_3
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.rotateLeft:(II)I
dup_x2
iastore
istore 5 /* A */
27: .line 186
aload 3 /* L */
iload 8 /* j */
aload 0 /* this */
aload 3 /* L */
iload 8 /* j */
iaload
iload 5 /* A */
iadd
iload 6 /* B */
iadd
iload 5 /* A */
iload 6 /* B */
iadd
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.rotateLeft:(II)I
dup_x2
iastore
istore 6 /* B */
28: .line 187
iload 7 /* i */
iconst_1
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.RC6Engine._S:[I
arraylength
irem
istore 7 /* i */
29: .line 188
iload 8 /* j */
iconst_1
iadd
aload 3 /* L */
arraylength
irem
istore 8 /* j */
30: .line 183
iinc 9 /* k */ 1
StackMap locals:
StackMap stack:
31: iload 9 /* k */
iload 4 /* iter */
if_icmplt 26
end local 9 // int k
32: .line 190
return
end local 8 // int j
end local 7 // int i
end local 6 // int B
end local 5 // int A
end local 4 // int iter
end local 3 // int[] L
end local 2 // int c
end local 1 // byte[] key
end local 0 // org.bouncycastle.crypto.engines.RC6Engine this
LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lorg/bouncycastle/crypto/engines/RC6Engine;
0 33 1 key [B
1 33 2 c I
4 33 3 L [I
5 9 4 i I
12 16 4 i I
18 19 4 iter I
20 33 4 iter I
21 33 5 A I
22 33 6 B I
23 33 7 i I
24 33 8 j I
25 32 9 k I
MethodParameters:
Name Flags
key
private int encryptBlock(byte[], int, byte[], int);
descriptor: ([BI[BI)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=13, args_size=5
start local 0 // org.bouncycastle.crypto.engines.RC6Engine this
start local 1 // byte[] in
start local 2 // int inOff
start local 3 // byte[] out
start local 4 // int outOff
0: .line 199
aload 0 /* this */
aload 1 /* in */
iload 2 /* inOff */
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.bytesToWord:([BI)I
istore 5 /* A */
start local 5 // int A
1: .line 200
aload 0 /* this */
aload 1 /* in */
iload 2 /* inOff */
iconst_4
iadd
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.bytesToWord:([BI)I
istore 6 /* B */
start local 6 // int B
2: .line 201
aload 0 /* this */
aload 1 /* in */
iload 2 /* inOff */
bipush 8
iadd
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.bytesToWord:([BI)I
istore 7 /* C */
start local 7 // int C
3: .line 202
aload 0 /* this */
aload 1 /* in */
iload 2 /* inOff */
bipush 12
iadd
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.bytesToWord:([BI)I
istore 8 /* D */
start local 8 // int D
4: .line 205
iload 6 /* B */
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.RC6Engine._S:[I
iconst_0
iaload
iadd
istore 6 /* B */
5: .line 206
iload 8 /* D */
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.RC6Engine._S:[I
iconst_1
iaload
iadd
istore 8 /* D */
6: .line 209
iconst_1
istore 9 /* i */
start local 9 // int i
7: goto 26
8: .line 211
StackMap locals: org.bouncycastle.crypto.engines.RC6Engine byte[] int byte[] int int int int int int
StackMap stack:
iconst_0
istore 10 /* t */
start local 10 // int t
9: iconst_0
istore 11 /* u */
start local 11 // int u
10: .line 213
iload 6 /* B */
iconst_2
iload 6 /* B */
imul
iconst_1
iadd
imul
istore 10 /* t */
11: .line 214
aload 0 /* this */
iload 10 /* t */
iconst_5
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.rotateLeft:(II)I
istore 10 /* t */
12: .line 216
iload 8 /* D */
iconst_2
iload 8 /* D */
imul
iconst_1
iadd
imul
istore 11 /* u */
13: .line 217
aload 0 /* this */
iload 11 /* u */
iconst_5
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.rotateLeft:(II)I
istore 11 /* u */
14: .line 219
iload 5 /* A */
iload 10 /* t */
ixor
istore 5 /* A */
15: .line 220
aload 0 /* this */
iload 5 /* A */
iload 11 /* u */
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.rotateLeft:(II)I
istore 5 /* A */
16: .line 221
iload 5 /* A */
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.RC6Engine._S:[I
iconst_2
iload 9 /* i */
imul
iaload
iadd
istore 5 /* A */
17: .line 223
iload 7 /* C */
iload 11 /* u */
ixor
istore 7 /* C */
18: .line 224
aload 0 /* this */
iload 7 /* C */
iload 10 /* t */
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.rotateLeft:(II)I
istore 7 /* C */
19: .line 225
iload 7 /* C */
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.RC6Engine._S:[I
iconst_2
iload 9 /* i */
imul
iconst_1
iadd
iaload
iadd
istore 7 /* C */
20: .line 227
iload 5 /* A */
istore 12 /* temp */
start local 12 // int temp
21: .line 228
iload 6 /* B */
istore 5 /* A */
22: .line 229
iload 7 /* C */
istore 6 /* B */
23: .line 230
iload 8 /* D */
istore 7 /* C */
24: .line 231
iload 12 /* temp */
istore 8 /* D */
end local 12 // int temp
end local 11 // int u
end local 10 // int t
25: .line 209
iinc 9 /* i */ 1
StackMap locals:
StackMap stack:
26: iload 9 /* i */
bipush 20
if_icmple 8
end local 9 // int i
27: .line 234
iload 5 /* A */
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.RC6Engine._S:[I
bipush 42
iaload
iadd
istore 5 /* A */
28: .line 235
iload 7 /* C */
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.RC6Engine._S:[I
bipush 43
iaload
iadd
istore 7 /* C */
29: .line 238
aload 0 /* this */
iload 5 /* A */
aload 3 /* out */
iload 4 /* outOff */
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.wordToBytes:(I[BI)V
30: .line 239
aload 0 /* this */
iload 6 /* B */
aload 3 /* out */
iload 4 /* outOff */
iconst_4
iadd
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.wordToBytes:(I[BI)V
31: .line 240
aload 0 /* this */
iload 7 /* C */
aload 3 /* out */
iload 4 /* outOff */
bipush 8
iadd
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.wordToBytes:(I[BI)V
32: .line 241
aload 0 /* this */
iload 8 /* D */
aload 3 /* out */
iload 4 /* outOff */
bipush 12
iadd
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.wordToBytes:(I[BI)V
33: .line 243
bipush 16
ireturn
end local 8 // int D
end local 7 // int C
end local 6 // int B
end local 5 // int A
end local 4 // int outOff
end local 3 // byte[] out
end local 2 // int inOff
end local 1 // byte[] in
end local 0 // org.bouncycastle.crypto.engines.RC6Engine this
LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lorg/bouncycastle/crypto/engines/RC6Engine;
0 34 1 in [B
0 34 2 inOff I
0 34 3 out [B
0 34 4 outOff I
1 34 5 A I
2 34 6 B I
3 34 7 C I
4 34 8 D I
7 27 9 i I
9 25 10 t I
10 25 11 u I
21 25 12 temp I
MethodParameters:
Name Flags
in
inOff
out
outOff
private int decryptBlock(byte[], int, byte[], int);
descriptor: ([BI[BI)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=13, args_size=5
start local 0 // org.bouncycastle.crypto.engines.RC6Engine this
start local 1 // byte[] in
start local 2 // int inOff
start local 3 // byte[] out
start local 4 // int outOff
0: .line 253
aload 0 /* this */
aload 1 /* in */
iload 2 /* inOff */
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.bytesToWord:([BI)I
istore 5 /* A */
start local 5 // int A
1: .line 254
aload 0 /* this */
aload 1 /* in */
iload 2 /* inOff */
iconst_4
iadd
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.bytesToWord:([BI)I
istore 6 /* B */
start local 6 // int B
2: .line 255
aload 0 /* this */
aload 1 /* in */
iload 2 /* inOff */
bipush 8
iadd
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.bytesToWord:([BI)I
istore 7 /* C */
start local 7 // int C
3: .line 256
aload 0 /* this */
aload 1 /* in */
iload 2 /* inOff */
bipush 12
iadd
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.bytesToWord:([BI)I
istore 8 /* D */
start local 8 // int D
4: .line 259
iload 7 /* C */
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.RC6Engine._S:[I
bipush 43
iaload
isub
istore 7 /* C */
5: .line 260
iload 5 /* A */
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.RC6Engine._S:[I
bipush 42
iaload
isub
istore 5 /* A */
6: .line 263
bipush 20
istore 9 /* i */
start local 9 // int i
7: goto 26
8: .line 265
StackMap locals: org.bouncycastle.crypto.engines.RC6Engine byte[] int byte[] int int int int int int
StackMap stack:
iconst_0
istore 10 /* t */
start local 10 // int t
9: iconst_0
istore 11 /* u */
start local 11 // int u
10: .line 267
iload 8 /* D */
istore 12 /* temp */
start local 12 // int temp
11: .line 268
iload 7 /* C */
istore 8 /* D */
12: .line 269
iload 6 /* B */
istore 7 /* C */
13: .line 270
iload 5 /* A */
istore 6 /* B */
14: .line 271
iload 12 /* temp */
istore 5 /* A */
15: .line 273
iload 6 /* B */
iconst_2
iload 6 /* B */
imul
iconst_1
iadd
imul
istore 10 /* t */
16: .line 274
aload 0 /* this */
iload 10 /* t */
iconst_5
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.rotateLeft:(II)I
istore 10 /* t */
17: .line 276
iload 8 /* D */
iconst_2
iload 8 /* D */
imul
iconst_1
iadd
imul
istore 11 /* u */
18: .line 277
aload 0 /* this */
iload 11 /* u */
iconst_5
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.rotateLeft:(II)I
istore 11 /* u */
19: .line 279
iload 7 /* C */
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.RC6Engine._S:[I
iconst_2
iload 9 /* i */
imul
iconst_1
iadd
iaload
isub
istore 7 /* C */
20: .line 280
aload 0 /* this */
iload 7 /* C */
iload 10 /* t */
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.rotateRight:(II)I
istore 7 /* C */
21: .line 281
iload 7 /* C */
iload 11 /* u */
ixor
istore 7 /* C */
22: .line 283
iload 5 /* A */
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.RC6Engine._S:[I
iconst_2
iload 9 /* i */
imul
iaload
isub
istore 5 /* A */
23: .line 284
aload 0 /* this */
iload 5 /* A */
iload 11 /* u */
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.rotateRight:(II)I
istore 5 /* A */
24: .line 285
iload 5 /* A */
iload 10 /* t */
ixor
istore 5 /* A */
end local 12 // int temp
end local 11 // int u
end local 10 // int t
25: .line 263
iinc 9 /* i */ -1
StackMap locals:
StackMap stack:
26: iload 9 /* i */
iconst_1
if_icmpge 8
end local 9 // int i
27: .line 289
iload 8 /* D */
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.RC6Engine._S:[I
iconst_1
iaload
isub
istore 8 /* D */
28: .line 290
iload 6 /* B */
aload 0 /* this */
getfield org.bouncycastle.crypto.engines.RC6Engine._S:[I
iconst_0
iaload
isub
istore 6 /* B */
29: .line 292
aload 0 /* this */
iload 5 /* A */
aload 3 /* out */
iload 4 /* outOff */
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.wordToBytes:(I[BI)V
30: .line 293
aload 0 /* this */
iload 6 /* B */
aload 3 /* out */
iload 4 /* outOff */
iconst_4
iadd
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.wordToBytes:(I[BI)V
31: .line 294
aload 0 /* this */
iload 7 /* C */
aload 3 /* out */
iload 4 /* outOff */
bipush 8
iadd
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.wordToBytes:(I[BI)V
32: .line 295
aload 0 /* this */
iload 8 /* D */
aload 3 /* out */
iload 4 /* outOff */
bipush 12
iadd
invokevirtual org.bouncycastle.crypto.engines.RC6Engine.wordToBytes:(I[BI)V
33: .line 297
bipush 16
ireturn
end local 8 // int D
end local 7 // int C
end local 6 // int B
end local 5 // int A
end local 4 // int outOff
end local 3 // byte[] out
end local 2 // int inOff
end local 1 // byte[] in
end local 0 // org.bouncycastle.crypto.engines.RC6Engine this
LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lorg/bouncycastle/crypto/engines/RC6Engine;
0 34 1 in [B
0 34 2 inOff I
0 34 3 out [B
0 34 4 outOff I
1 34 5 A I
2 34 6 B I
3 34 7 C I
4 34 8 D I
7 27 9 i I
9 25 10 t I
10 25 11 u I
11 25 12 temp I
MethodParameters:
Name Flags
in
inOff
out
outOff
private int rotateLeft(int, int);
descriptor: (II)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 // org.bouncycastle.crypto.engines.RC6Engine this
start local 1 // int x
start local 2 // int y
0: .line 319
iload 1 /* x */
iload 2 /* y */
ishl
iload 1 /* x */
iload 2 /* y */
ineg
iushr
ior
ireturn
end local 2 // int y
end local 1 // int x
end local 0 // org.bouncycastle.crypto.engines.RC6Engine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/engines/RC6Engine;
0 1 1 x I
0 1 2 y I
MethodParameters:
Name Flags
x
y
private int rotateRight(int, int);
descriptor: (II)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 // org.bouncycastle.crypto.engines.RC6Engine this
start local 1 // int x
start local 2 // int y
0: .line 334
iload 1 /* x */
iload 2 /* y */
iushr
iload 1 /* x */
iload 2 /* y */
ineg
ishl
ior
ireturn
end local 2 // int y
end local 1 // int x
end local 0 // org.bouncycastle.crypto.engines.RC6Engine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/engines/RC6Engine;
0 1 1 x I
0 1 2 y I
MethodParameters:
Name Flags
x
y
private int bytesToWord(byte[], int);
descriptor: ([BI)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=3
start local 0 // org.bouncycastle.crypto.engines.RC6Engine this
start local 1 // byte[] src
start local 2 // int srcOff
0: .line 341
iconst_0
istore 3 /* word */
start local 3 // int word
1: .line 343
iconst_3
istore 4 /* i */
start local 4 // int i
2: goto 5
3: .line 345
StackMap locals: int int
StackMap stack:
iload 3 /* word */
bipush 8
ishl
aload 1 /* src */
iload 4 /* i */
iload 2 /* srcOff */
iadd
baload
sipush 255
iand
iadd
istore 3 /* word */
4: .line 343
iinc 4 /* i */ -1
StackMap locals:
StackMap stack:
5: iload 4 /* i */
ifge 3
end local 4 // int i
6: .line 348
iload 3 /* word */
ireturn
end local 3 // int word
end local 2 // int srcOff
end local 1 // byte[] src
end local 0 // org.bouncycastle.crypto.engines.RC6Engine this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/bouncycastle/crypto/engines/RC6Engine;
0 7 1 src [B
0 7 2 srcOff I
1 7 3 word I
2 6 4 i I
MethodParameters:
Name Flags
src
srcOff
private void wordToBytes(int, byte[], int);
descriptor: (I[BI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=4
start local 0 // org.bouncycastle.crypto.engines.RC6Engine this
start local 1 // int word
start local 2 // byte[] dst
start local 3 // int dstOff
0: .line 356
iconst_0
istore 4 /* i */
start local 4 // int i
1: goto 5
2: .line 358
StackMap locals: int
StackMap stack:
aload 2 /* dst */
iload 4 /* i */
iload 3 /* dstOff */
iadd
iload 1 /* word */
i2b
bastore
3: .line 359
iload 1 /* word */
bipush 8
iushr
istore 1 /* word */
4: .line 356
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
5: iload 4 /* i */
iconst_4
if_icmplt 2
end local 4 // int i
6: .line 361
return
end local 3 // int dstOff
end local 2 // byte[] dst
end local 1 // int word
end local 0 // org.bouncycastle.crypto.engines.RC6Engine this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/bouncycastle/crypto/engines/RC6Engine;
0 7 1 word I
0 7 2 dst [B
0 7 3 dstOff I
1 6 4 i I
MethodParameters:
Name Flags
word
dst
dstOff
}
SourceFile: "RC6Engine.java"