public class org.bouncycastle.crypto.modes.PGPCFBBlockCipher implements org.bouncycastle.crypto.BlockCipher
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.crypto.modes.PGPCFBBlockCipher
super_class: java.lang.Object
{
private byte[] IV;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private byte[] FR;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private byte[] FRE;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private byte[] tmp;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private org.bouncycastle.crypto.BlockCipher cipher;
descriptor: Lorg/bouncycastle/crypto/BlockCipher;
flags: (0x0002) ACC_PRIVATE
private int count;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int blockSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean forEncryption;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean inlineIv;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
public void <init>(org.bouncycastle.crypto.BlockCipher, boolean);
descriptor: (Lorg/bouncycastle/crypto/BlockCipher;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.cipher:Lorg/bouncycastle/crypto/BlockCipher;
2: aload 0
iload 2
putfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.inlineIv:Z
3: aload 0
aload 1
invokeinterface org.bouncycastle.crypto.BlockCipher.getBlockSize:()I
putfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
4: aload 0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
newarray 8
putfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.IV:[B
5: aload 0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
newarray 8
putfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FR:[B
6: aload 0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
newarray 8
putfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FRE:[B
7: aload 0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
newarray 8
putfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.tmp:[B
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/bouncycastle/crypto/modes/PGPCFBBlockCipher;
0 9 1 cipher Lorg/bouncycastle/crypto/BlockCipher;
0 9 2 inlineIv Z
MethodParameters:
Name Flags
cipher
inlineIv
public org.bouncycastle.crypto.BlockCipher getUnderlyingCipher();
descriptor: ()Lorg/bouncycastle/crypto/BlockCipher;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.cipher:Lorg/bouncycastle/crypto/BlockCipher;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/modes/PGPCFBBlockCipher;
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: aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.inlineIv:Z
ifeq 2
1: new java.lang.StringBuilder
dup
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.cipher:Lorg/bouncycastle/crypto/BlockCipher;
invokeinterface org.bouncycastle.crypto.BlockCipher.getAlgorithmName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "/PGPCFBwithIV"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.cipher:Lorg/bouncycastle/crypto/BlockCipher;
invokeinterface org.bouncycastle.crypto.BlockCipher.getAlgorithmName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "/PGPCFB"
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 3 0 this Lorg/bouncycastle/crypto/modes/PGPCFBBlockCipher;
public int getBlockSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.cipher:Lorg/bouncycastle/crypto/BlockCipher;
invokeinterface org.bouncycastle.crypto.BlockCipher.getBlockSize:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/modes/PGPCFBBlockCipher;
public int processBlock(byte[], int, byte[], int);
descriptor: ([BI[BI)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.inlineIv:Z
ifeq 4
1: aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.forEncryption:Z
ifeq 2
aload 0
aload 1
iload 2
aload 3
iload 4
invokevirtual org.bouncycastle.crypto.modes.PGPCFBBlockCipher.encryptBlockWithIV:([BI[BI)I
goto 3
StackMap locals:
StackMap stack:
2: aload 0
aload 1
iload 2
aload 3
iload 4
invokevirtual org.bouncycastle.crypto.modes.PGPCFBBlockCipher.decryptBlockWithIV:([BI[BI)I
StackMap locals:
StackMap stack: int
3: ireturn
4: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.forEncryption:Z
ifeq 5
aload 0
aload 1
iload 2
aload 3
iload 4
invokevirtual org.bouncycastle.crypto.modes.PGPCFBBlockCipher.encryptBlock:([BI[BI)I
goto 6
StackMap locals:
StackMap stack:
5: aload 0
aload 1
iload 2
aload 3
iload 4
invokevirtual org.bouncycastle.crypto.modes.PGPCFBBlockCipher.decryptBlock:([BI[BI)I
StackMap locals:
StackMap stack: int
6: ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/bouncycastle/crypto/modes/PGPCFBBlockCipher;
0 7 1 in [B
0 7 2 inOff I
0 7 3 out [B
0 7 4 outOff I
Exceptions:
throws org.bouncycastle.crypto.DataLengthException, java.lang.IllegalStateException
MethodParameters:
Name Flags
in
inOff
out
outOff
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
iconst_0
putfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.count:I
1: iconst_0
istore 1
start local 1 2: goto 8
3: StackMap locals: int
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.inlineIv:Z
ifeq 6
4: aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FR:[B
iload 1
iconst_0
bastore
5: goto 7
6: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FR:[B
iload 1
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.IV:[B
iload 1
baload
bastore
7: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
8: iload 1
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FR:[B
arraylength
if_icmpne 3
end local 1 9: aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.cipher:Lorg/bouncycastle/crypto/BlockCipher;
invokeinterface org.bouncycastle.crypto.BlockCipher.reset:()V
10: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/bouncycastle/crypto/modes/PGPCFBBlockCipher;
2 9 1 i I
public void init(boolean, org.bouncycastle.crypto.CipherParameters);
descriptor: (ZLorg/bouncycastle/crypto/CipherParameters;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
putfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.forEncryption:Z
1: aload 2
instanceof org.bouncycastle.crypto.params.ParametersWithIV
ifeq 16
2: aload 2
checkcast org.bouncycastle.crypto.params.ParametersWithIV
astore 3
start local 3 3: aload 3
invokevirtual org.bouncycastle.crypto.params.ParametersWithIV.getIV:()[B
astore 4
start local 4 4: aload 4
arraylength
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.IV:[B
arraylength
if_icmpge 12
5: aload 4
iconst_0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.IV:[B
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.IV:[B
arraylength
aload 4
arraylength
isub
aload 4
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
6: iconst_0
istore 5
start local 5 7: goto 10
8: StackMap locals: org.bouncycastle.crypto.params.ParametersWithIV byte[] int
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.IV:[B
iload 5
iconst_0
bastore
9: iinc 5 1
StackMap locals:
StackMap stack:
10: iload 5
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.IV:[B
arraylength
aload 4
arraylength
isub
if_icmplt 8
end local 5 11: goto 13
12: StackMap locals:
StackMap stack:
aload 4
iconst_0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.IV:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.IV:[B
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
13: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.bouncycastle.crypto.modes.PGPCFBBlockCipher.reset:()V
14: aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.cipher:Lorg/bouncycastle/crypto/BlockCipher;
iconst_1
aload 3
invokevirtual org.bouncycastle.crypto.params.ParametersWithIV.getParameters:()Lorg/bouncycastle/crypto/CipherParameters;
invokeinterface org.bouncycastle.crypto.BlockCipher.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
end local 4 end local 3 15: goto 18
16: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.bouncycastle.crypto.modes.PGPCFBBlockCipher.reset:()V
17: aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.cipher:Lorg/bouncycastle/crypto/BlockCipher;
iconst_1
aload 2
invokeinterface org.bouncycastle.crypto.BlockCipher.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
18: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/bouncycastle/crypto/modes/PGPCFBBlockCipher;
0 19 1 forEncryption Z
0 19 2 params Lorg/bouncycastle/crypto/CipherParameters;
3 15 3 ivParam Lorg/bouncycastle/crypto/params/ParametersWithIV;
4 15 4 iv [B
7 11 5 i I
Exceptions:
throws java.lang.IllegalArgumentException
MethodParameters:
Name Flags
forEncryption
params
private byte encryptByte(byte, int);
descriptor: (BI)B
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FRE:[B
iload 2
baload
iload 1
ixor
i2b
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/modes/PGPCFBBlockCipher;
0 1 1 data B
0 1 2 blockOff I
MethodParameters:
Name Flags
data
blockOff
private int encryptBlockWithIV(byte[], int, byte[], int);
descriptor: ([BI[BI)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 2
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
iadd
aload 1
arraylength
if_icmple 2
1: new org.bouncycastle.crypto.DataLengthException
dup
ldc "input buffer too short"
invokespecial org.bouncycastle.crypto.DataLengthException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 4
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
iadd
aload 3
arraylength
if_icmple 4
3: new org.bouncycastle.crypto.DataLengthException
dup
ldc "output buffer too short"
invokespecial org.bouncycastle.crypto.DataLengthException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.count:I
ifne 25
5: aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.cipher:Lorg/bouncycastle/crypto/BlockCipher;
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FR:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FRE:[B
iconst_0
invokeinterface org.bouncycastle.crypto.BlockCipher.processBlock:([BI[BI)I
pop
6: iconst_0
istore 5
start local 5 7: goto 10
8: StackMap locals: int
StackMap stack:
aload 3
iload 4
iload 5
iadd
aload 0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.IV:[B
iload 5
baload
iload 5
invokevirtual org.bouncycastle.crypto.modes.PGPCFBBlockCipher.encryptByte:(BI)B
bastore
9: iinc 5 1
StackMap locals:
StackMap stack:
10: iload 5
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
if_icmplt 8
end local 5 11: aload 3
iload 4
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FR:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
12: aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.cipher:Lorg/bouncycastle/crypto/BlockCipher;
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FR:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FRE:[B
iconst_0
invokeinterface org.bouncycastle.crypto.BlockCipher.processBlock:([BI[BI)I
pop
13: aload 3
iload 4
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
iadd
aload 0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.IV:[B
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
iconst_2
isub
baload
iconst_0
invokevirtual org.bouncycastle.crypto.modes.PGPCFBBlockCipher.encryptByte:(BI)B
bastore
14: aload 3
iload 4
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
iadd
iconst_1
iadd
aload 0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.IV:[B
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
iconst_1
isub
baload
iconst_1
invokevirtual org.bouncycastle.crypto.modes.PGPCFBBlockCipher.encryptByte:(BI)B
bastore
15: aload 3
iload 4
iconst_2
iadd
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FR:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
16: aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.cipher:Lorg/bouncycastle/crypto/BlockCipher;
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FR:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FRE:[B
iconst_0
invokeinterface org.bouncycastle.crypto.BlockCipher.processBlock:([BI[BI)I
pop
17: iconst_0
istore 5
start local 5 18: goto 21
19: StackMap locals:
StackMap stack:
aload 3
iload 4
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
iadd
iconst_2
iadd
iload 5
iadd
aload 0
aload 1
iload 2
iload 5
iadd
baload
iload 5
invokevirtual org.bouncycastle.crypto.modes.PGPCFBBlockCipher.encryptByte:(BI)B
bastore
20: iinc 5 1
StackMap locals:
StackMap stack:
21: iload 5
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
if_icmplt 19
end local 5 22: aload 3
iload 4
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
iadd
iconst_2
iadd
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FR:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
23: aload 0
dup
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.count:I
iconst_2
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
imul
iconst_2
iadd
iadd
putfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.count:I
24: iconst_2
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
imul
iconst_2
iadd
ireturn
25: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.count:I
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
iconst_2
iadd
if_icmplt 33
26: aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.cipher:Lorg/bouncycastle/crypto/BlockCipher;
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FR:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FRE:[B
iconst_0
invokeinterface org.bouncycastle.crypto.BlockCipher.processBlock:([BI[BI)I
pop
27: iconst_0
istore 5
start local 5 28: goto 31
29: StackMap locals: int
StackMap stack:
aload 3
iload 4
iload 5
iadd
aload 0
aload 1
iload 2
iload 5
iadd
baload
iload 5
invokevirtual org.bouncycastle.crypto.modes.PGPCFBBlockCipher.encryptByte:(BI)B
bastore
30: iinc 5 1
StackMap locals:
StackMap stack:
31: iload 5
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
if_icmplt 29
end local 5 32: aload 3
iload 4
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FR:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
33: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lorg/bouncycastle/crypto/modes/PGPCFBBlockCipher;
0 34 1 in [B
0 34 2 inOff I
0 34 3 out [B
0 34 4 outOff I
7 11 5 n I
18 22 5 n I
28 32 5 n I
Exceptions:
throws org.bouncycastle.crypto.DataLengthException, java.lang.IllegalStateException
MethodParameters:
Name Flags
in
inOff
out
outOff
private int decryptBlockWithIV(byte[], int, byte[], int);
descriptor: ([BI[BI)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 2
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
iadd
aload 1
arraylength
if_icmple 2
1: new org.bouncycastle.crypto.DataLengthException
dup
ldc "input buffer too short"
invokespecial org.bouncycastle.crypto.DataLengthException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 4
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
iadd
aload 3
arraylength
if_icmple 4
3: new org.bouncycastle.crypto.DataLengthException
dup
ldc "output buffer too short"
invokespecial org.bouncycastle.crypto.DataLengthException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.count:I
ifne 13
5: iconst_0
istore 5
start local 5 6: goto 9
7: StackMap locals: int
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FR:[B
iload 5
aload 1
iload 2
iload 5
iadd
baload
bastore
8: iinc 5 1
StackMap locals:
StackMap stack:
9: iload 5
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
if_icmplt 7
end local 5 10: aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.cipher:Lorg/bouncycastle/crypto/BlockCipher;
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FR:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FRE:[B
iconst_0
invokeinterface org.bouncycastle.crypto.BlockCipher.processBlock:([BI[BI)I
pop
11: aload 0
dup
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.count:I
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
iadd
putfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.count:I
12: iconst_0
ireturn
13: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.count:I
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
if_icmpne 27
14: aload 1
iload 2
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.tmp:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
15: aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FR:[B
iconst_2
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FR:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
iconst_2
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
16: aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FR:[B
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
iconst_2
isub
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.tmp:[B
iconst_0
baload
bastore
17: aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FR:[B
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
iconst_1
isub
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.tmp:[B
iconst_1
baload
bastore
18: aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.cipher:Lorg/bouncycastle/crypto/BlockCipher;
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FR:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FRE:[B
iconst_0
invokeinterface org.bouncycastle.crypto.BlockCipher.processBlock:([BI[BI)I
pop
19: iconst_0
istore 5
start local 5 20: goto 23
21: StackMap locals: int
StackMap stack:
aload 3
iload 4
iload 5
iadd
aload 0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.tmp:[B
iload 5
iconst_2
iadd
baload
iload 5
invokevirtual org.bouncycastle.crypto.modes.PGPCFBBlockCipher.encryptByte:(BI)B
bastore
22: iinc 5 1
StackMap locals:
StackMap stack:
23: iload 5
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
iconst_2
isub
if_icmplt 21
end local 5 24: aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.tmp:[B
iconst_2
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FR:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
iconst_2
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
25: aload 0
dup
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.count:I
iconst_2
iadd
putfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.count:I
26: aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
iconst_2
isub
ireturn
27: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.count:I
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
iconst_2
iadd
if_icmplt 39
28: aload 1
iload 2
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.tmp:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
29: aload 3
iload 4
iconst_0
iadd
aload 0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.tmp:[B
iconst_0
baload
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
iconst_2
isub
invokevirtual org.bouncycastle.crypto.modes.PGPCFBBlockCipher.encryptByte:(BI)B
bastore
30: aload 3
iload 4
iconst_1
iadd
aload 0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.tmp:[B
iconst_1
baload
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
iconst_1
isub
invokevirtual org.bouncycastle.crypto.modes.PGPCFBBlockCipher.encryptByte:(BI)B
bastore
31: aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.tmp:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FR:[B
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
iconst_2
isub
iconst_2
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
32: aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.cipher:Lorg/bouncycastle/crypto/BlockCipher;
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FR:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FRE:[B
iconst_0
invokeinterface org.bouncycastle.crypto.BlockCipher.processBlock:([BI[BI)I
pop
33: iconst_0
istore 5
start local 5 34: goto 37
35: StackMap locals: int
StackMap stack:
aload 3
iload 4
iload 5
iadd
iconst_2
iadd
aload 0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.tmp:[B
iload 5
iconst_2
iadd
baload
iload 5
invokevirtual org.bouncycastle.crypto.modes.PGPCFBBlockCipher.encryptByte:(BI)B
bastore
36: iinc 5 1
StackMap locals:
StackMap stack:
37: iload 5
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
iconst_2
isub
if_icmplt 35
end local 5 38: aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.tmp:[B
iconst_2
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FR:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
iconst_2
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
39: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Lorg/bouncycastle/crypto/modes/PGPCFBBlockCipher;
0 40 1 in [B
0 40 2 inOff I
0 40 3 out [B
0 40 4 outOff I
6 10 5 n I
20 24 5 n I
34 38 5 n I
Exceptions:
throws org.bouncycastle.crypto.DataLengthException, java.lang.IllegalStateException
MethodParameters:
Name Flags
in
inOff
out
outOff
private int encryptBlock(byte[], int, byte[], int);
descriptor: ([BI[BI)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 2
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
iadd
aload 1
arraylength
if_icmple 2
1: new org.bouncycastle.crypto.DataLengthException
dup
ldc "input buffer too short"
invokespecial org.bouncycastle.crypto.DataLengthException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 4
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
iadd
aload 3
arraylength
if_icmple 4
3: new org.bouncycastle.crypto.DataLengthException
dup
ldc "output buffer too short"
invokespecial org.bouncycastle.crypto.DataLengthException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.cipher:Lorg/bouncycastle/crypto/BlockCipher;
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FR:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FRE:[B
iconst_0
invokeinterface org.bouncycastle.crypto.BlockCipher.processBlock:([BI[BI)I
pop
5: iconst_0
istore 5
start local 5 6: goto 9
7: StackMap locals: int
StackMap stack:
aload 3
iload 4
iload 5
iadd
aload 0
aload 1
iload 2
iload 5
iadd
baload
iload 5
invokevirtual org.bouncycastle.crypto.modes.PGPCFBBlockCipher.encryptByte:(BI)B
bastore
8: iinc 5 1
StackMap locals:
StackMap stack:
9: iload 5
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
if_icmplt 7
end local 5 10: iconst_0
istore 5
start local 5 11: goto 14
12: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FR:[B
iload 5
aload 3
iload 4
iload 5
iadd
baload
bastore
13: iinc 5 1
StackMap locals:
StackMap stack:
14: iload 5
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
if_icmplt 12
end local 5 15: aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
ireturn
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/modes/PGPCFBBlockCipher;
0 16 1 in [B
0 16 2 inOff I
0 16 3 out [B
0 16 4 outOff I
6 10 5 n I
11 15 5 n I
Exceptions:
throws org.bouncycastle.crypto.DataLengthException, java.lang.IllegalStateException
MethodParameters:
Name Flags
in
inOff
out
outOff
private int decryptBlock(byte[], int, byte[], int);
descriptor: ([BI[BI)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 2
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
iadd
aload 1
arraylength
if_icmple 2
1: new org.bouncycastle.crypto.DataLengthException
dup
ldc "input buffer too short"
invokespecial org.bouncycastle.crypto.DataLengthException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 4
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
iadd
aload 3
arraylength
if_icmple 4
3: new org.bouncycastle.crypto.DataLengthException
dup
ldc "output buffer too short"
invokespecial org.bouncycastle.crypto.DataLengthException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.cipher:Lorg/bouncycastle/crypto/BlockCipher;
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FR:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FRE:[B
iconst_0
invokeinterface org.bouncycastle.crypto.BlockCipher.processBlock:([BI[BI)I
pop
5: iconst_0
istore 5
start local 5 6: goto 9
7: StackMap locals: int
StackMap stack:
aload 3
iload 4
iload 5
iadd
aload 0
aload 1
iload 2
iload 5
iadd
baload
iload 5
invokevirtual org.bouncycastle.crypto.modes.PGPCFBBlockCipher.encryptByte:(BI)B
bastore
8: iinc 5 1
StackMap locals:
StackMap stack:
9: iload 5
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
if_icmplt 7
end local 5 10: iconst_0
istore 5
start local 5 11: goto 14
12: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.FR:[B
iload 5
aload 1
iload 2
iload 5
iadd
baload
bastore
13: iinc 5 1
StackMap locals:
StackMap stack:
14: iload 5
aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
if_icmplt 12
end local 5 15: aload 0
getfield org.bouncycastle.crypto.modes.PGPCFBBlockCipher.blockSize:I
ireturn
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/modes/PGPCFBBlockCipher;
0 16 1 in [B
0 16 2 inOff I
0 16 3 out [B
0 16 4 outOff I
6 10 5 n I
11 15 5 n I
Exceptions:
throws org.bouncycastle.crypto.DataLengthException, java.lang.IllegalStateException
MethodParameters:
Name Flags
in
inOff
out
outOff
}
SourceFile: "PGPCFBBlockCipher.java"