public class org.bouncycastle.jce.provider.JCEBlockCipher extends org.bouncycastle.jce.provider.WrapCipherSpi implements org.bouncycastle.jce.provider.PBE
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.jce.provider.JCEBlockCipher
super_class: org.bouncycastle.jce.provider.WrapCipherSpi
{
private java.lang.Class[] availableSpecs;
descriptor: [Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
private org.bouncycastle.crypto.BlockCipher baseEngine;
descriptor: Lorg/bouncycastle/crypto/BlockCipher;
flags: (0x0002) ACC_PRIVATE
private org.bouncycastle.jce.provider.JCEBlockCipher$GenericBlockCipher cipher;
descriptor: Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
flags: (0x0002) ACC_PRIVATE
private org.bouncycastle.crypto.params.ParametersWithIV ivParam;
descriptor: Lorg/bouncycastle/crypto/params/ParametersWithIV;
flags: (0x0002) ACC_PRIVATE
private int ivLength;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean padded;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private javax.crypto.spec.PBEParameterSpec pbeSpec;
descriptor: Ljavax/crypto/spec/PBEParameterSpec;
flags: (0x0002) ACC_PRIVATE
private java.lang.String pbeAlgorithm;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String modeName;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
protected void <init>(org.bouncycastle.crypto.BlockCipher);
descriptor: (Lorg/bouncycastle/crypto/BlockCipher;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial org.bouncycastle.jce.provider.WrapCipherSpi.<init>:()V
1: aload 0
2: iconst_5
anewarray java.lang.Class
dup
iconst_0
3: ldc Ljavax/crypto/spec/RC2ParameterSpec;
aastore
dup
iconst_1
4: ldc Ljavax/crypto/spec/RC5ParameterSpec;
aastore
dup
iconst_2
5: ldc Ljavax/crypto/spec/IvParameterSpec;
aastore
dup
iconst_3
6: ldc Ljavax/crypto/spec/PBEParameterSpec;
aastore
dup
iconst_4
7: ldc Lorg/bouncycastle/jce/spec/GOST28147ParameterSpec;
aastore
putfield org.bouncycastle.jce.provider.JCEBlockCipher.availableSpecs:[Ljava/lang/Class;
8: aload 0
iconst_0
putfield org.bouncycastle.jce.provider.JCEBlockCipher.ivLength:I
9: aload 0
aconst_null
putfield org.bouncycastle.jce.provider.JCEBlockCipher.pbeSpec:Ljavax/crypto/spec/PBEParameterSpec;
10: aload 0
aconst_null
putfield org.bouncycastle.jce.provider.JCEBlockCipher.pbeAlgorithm:Ljava/lang/String;
11: aload 0
aconst_null
putfield org.bouncycastle.jce.provider.JCEBlockCipher.modeName:Ljava/lang/String;
12: aload 0
aload 1
putfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
13: aload 0
new org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher
dup
aload 1
invokespecial org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
putfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
14: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/bouncycastle/jce/provider/JCEBlockCipher;
0 15 1 engine Lorg/bouncycastle/crypto/BlockCipher;
MethodParameters:
Name Flags
engine
protected void <init>(org.bouncycastle.crypto.BlockCipher, int);
descriptor: (Lorg/bouncycastle/crypto/BlockCipher;I)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial org.bouncycastle.jce.provider.WrapCipherSpi.<init>:()V
1: aload 0
2: iconst_5
anewarray java.lang.Class
dup
iconst_0
3: ldc Ljavax/crypto/spec/RC2ParameterSpec;
aastore
dup
iconst_1
4: ldc Ljavax/crypto/spec/RC5ParameterSpec;
aastore
dup
iconst_2
5: ldc Ljavax/crypto/spec/IvParameterSpec;
aastore
dup
iconst_3
6: ldc Ljavax/crypto/spec/PBEParameterSpec;
aastore
dup
iconst_4
7: ldc Lorg/bouncycastle/jce/spec/GOST28147ParameterSpec;
aastore
putfield org.bouncycastle.jce.provider.JCEBlockCipher.availableSpecs:[Ljava/lang/Class;
8: aload 0
iconst_0
putfield org.bouncycastle.jce.provider.JCEBlockCipher.ivLength:I
9: aload 0
aconst_null
putfield org.bouncycastle.jce.provider.JCEBlockCipher.pbeSpec:Ljavax/crypto/spec/PBEParameterSpec;
10: aload 0
aconst_null
putfield org.bouncycastle.jce.provider.JCEBlockCipher.pbeAlgorithm:Ljava/lang/String;
11: aload 0
aconst_null
putfield org.bouncycastle.jce.provider.JCEBlockCipher.modeName:Ljava/lang/String;
12: aload 0
aload 1
putfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
13: aload 0
new org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher
dup
aload 1
invokespecial org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
putfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
14: aload 0
iload 2
bipush 8
idiv
putfield org.bouncycastle.jce.provider.JCEBlockCipher.ivLength:I
15: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/bouncycastle/jce/provider/JCEBlockCipher;
0 16 1 engine Lorg/bouncycastle/crypto/BlockCipher;
0 16 2 ivLength I
MethodParameters:
Name Flags
engine
ivLength
protected void <init>(org.bouncycastle.crypto.BufferedBlockCipher, int);
descriptor: (Lorg/bouncycastle/crypto/BufferedBlockCipher;I)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial org.bouncycastle.jce.provider.WrapCipherSpi.<init>:()V
1: aload 0
2: iconst_5
anewarray java.lang.Class
dup
iconst_0
3: ldc Ljavax/crypto/spec/RC2ParameterSpec;
aastore
dup
iconst_1
4: ldc Ljavax/crypto/spec/RC5ParameterSpec;
aastore
dup
iconst_2
5: ldc Ljavax/crypto/spec/IvParameterSpec;
aastore
dup
iconst_3
6: ldc Ljavax/crypto/spec/PBEParameterSpec;
aastore
dup
iconst_4
7: ldc Lorg/bouncycastle/jce/spec/GOST28147ParameterSpec;
aastore
putfield org.bouncycastle.jce.provider.JCEBlockCipher.availableSpecs:[Ljava/lang/Class;
8: aload 0
iconst_0
putfield org.bouncycastle.jce.provider.JCEBlockCipher.ivLength:I
9: aload 0
aconst_null
putfield org.bouncycastle.jce.provider.JCEBlockCipher.pbeSpec:Ljavax/crypto/spec/PBEParameterSpec;
10: aload 0
aconst_null
putfield org.bouncycastle.jce.provider.JCEBlockCipher.pbeAlgorithm:Ljava/lang/String;
11: aload 0
aconst_null
putfield org.bouncycastle.jce.provider.JCEBlockCipher.modeName:Ljava/lang/String;
12: aload 0
aload 1
invokevirtual org.bouncycastle.crypto.BufferedBlockCipher.getUnderlyingCipher:()Lorg/bouncycastle/crypto/BlockCipher;
putfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
13: aload 0
new org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher
dup
aload 1
invokespecial org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher.<init>:(Lorg/bouncycastle/crypto/BufferedBlockCipher;)V
putfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
14: aload 0
iload 2
bipush 8
idiv
putfield org.bouncycastle.jce.provider.JCEBlockCipher.ivLength:I
15: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/bouncycastle/jce/provider/JCEBlockCipher;
0 16 1 engine Lorg/bouncycastle/crypto/BufferedBlockCipher;
0 16 2 ivLength I
MethodParameters:
Name Flags
engine
ivLength
protected int engineGetBlockSize();
descriptor: ()I
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine: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/jce/provider/JCEBlockCipher;
protected byte[] engineGetIV();
descriptor: ()[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.ivParam:Lorg/bouncycastle/crypto/params/ParametersWithIV;
ifnull 1
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.ivParam:Lorg/bouncycastle/crypto/params/ParametersWithIV;
invokevirtual org.bouncycastle.crypto.params.ParametersWithIV.getIV:()[B
goto 2
StackMap locals:
StackMap stack:
1: aconst_null
StackMap locals:
StackMap stack: byte[]
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/jce/provider/JCEBlockCipher;
protected int engineGetKeySize(java.security.Key);
descriptor: (Ljava/security/Key;)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.security.Key.getEncoded:()[B
arraylength
bipush 8
imul
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/jce/provider/JCEBlockCipher;
0 1 1 key Ljava/security/Key;
MethodParameters:
Name Flags
key
protected int engineGetOutputSize(int);
descriptor: (I)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
iload 1
invokeinterface org.bouncycastle.jce.provider.JCEBlockCipher$GenericBlockCipher.getOutputSize:(I)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/jce/provider/JCEBlockCipher;
0 1 1 inputLen I
MethodParameters:
Name Flags
inputLen
protected java.security.AlgorithmParameters engineGetParameters();
descriptor: ()Ljava/security/AlgorithmParameters;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.engineParams:Ljava/security/AlgorithmParameters;
ifnonnull 16
1: aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.pbeSpec:Ljavax/crypto/spec/PBEParameterSpec;
ifnull 7
2: aload 0
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.pbeAlgorithm:Ljava/lang/String;
getstatic org.bouncycastle.jce.provider.BouncyCastleProvider.PROVIDER_NAME:Ljava/lang/String;
invokestatic java.security.AlgorithmParameters.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/AlgorithmParameters;
putfield org.bouncycastle.jce.provider.JCEBlockCipher.engineParams:Ljava/security/AlgorithmParameters;
3: aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.engineParams:Ljava/security/AlgorithmParameters;
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.pbeSpec:Ljavax/crypto/spec/PBEParameterSpec;
invokevirtual java.security.AlgorithmParameters.init:(Ljava/security/spec/AlgorithmParameterSpec;)V
4: goto 16
5: StackMap locals:
StackMap stack: java.lang.Exception
pop
6: aconst_null
areturn
7: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.ivParam:Lorg/bouncycastle/crypto/params/ParametersWithIV;
ifnull 16
8: aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
invokeinterface org.bouncycastle.jce.provider.JCEBlockCipher$GenericBlockCipher.getUnderlyingCipher:()Lorg/bouncycastle/crypto/BlockCipher;
invokeinterface org.bouncycastle.crypto.BlockCipher.getAlgorithmName:()Ljava/lang/String;
astore 1
start local 1 9: aload 1
bipush 47
invokevirtual java.lang.String.indexOf:(I)I
iflt 11
10: aload 1
iconst_0
aload 1
bipush 47
invokevirtual java.lang.String.indexOf:(I)I
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 1
11: StackMap locals: java.lang.String
StackMap stack:
aload 0
aload 1
getstatic org.bouncycastle.jce.provider.BouncyCastleProvider.PROVIDER_NAME:Ljava/lang/String;
invokestatic java.security.AlgorithmParameters.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/AlgorithmParameters;
putfield org.bouncycastle.jce.provider.JCEBlockCipher.engineParams:Ljava/security/AlgorithmParameters;
12: aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.engineParams:Ljava/security/AlgorithmParameters;
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.ivParam:Lorg/bouncycastle/crypto/params/ParametersWithIV;
invokevirtual org.bouncycastle.crypto.params.ParametersWithIV.getIV:()[B
invokevirtual java.security.AlgorithmParameters.init:([B)V
13: goto 16
14: StackMap locals:
StackMap stack: java.lang.Exception
astore 2
start local 2 15: new java.lang.RuntimeException
dup
aload 2
invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 16: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.engineParams:Ljava/security/AlgorithmParameters;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/bouncycastle/jce/provider/JCEBlockCipher;
9 16 1 name Ljava/lang/String;
15 16 2 e Ljava/lang/Exception;
Exception table:
from to target type
2 4 5 Class java.lang.Exception
11 13 14 Class java.lang.Exception
protected void engineSetMode(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=8, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic org.bouncycastle.util.Strings.toUpperCase:(Ljava/lang/String;)Ljava/lang/String;
putfield org.bouncycastle.jce.provider.JCEBlockCipher.modeName:Ljava/lang/String;
1: aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.modeName:Ljava/lang/String;
ldc "ECB"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 5
2: aload 0
iconst_0
putfield org.bouncycastle.jce.provider.JCEBlockCipher.ivLength:I
3: aload 0
new org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher
dup
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
invokespecial org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
putfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
4: goto 85
5: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.modeName:Ljava/lang/String;
ldc "CBC"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 11
6: aload 0
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
invokeinterface org.bouncycastle.crypto.BlockCipher.getBlockSize:()I
putfield org.bouncycastle.jce.provider.JCEBlockCipher.ivLength:I
7: aload 0
new org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher
dup
8: new org.bouncycastle.crypto.modes.CBCBlockCipher
dup
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
invokespecial org.bouncycastle.crypto.modes.CBCBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
invokespecial org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
9: putfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
10: goto 85
11: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.modeName:Ljava/lang/String;
ldc "OFB"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 23
12: aload 0
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
invokeinterface org.bouncycastle.crypto.BlockCipher.getBlockSize:()I
putfield org.bouncycastle.jce.provider.JCEBlockCipher.ivLength:I
13: aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.modeName:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
iconst_3
if_icmpeq 19
14: aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.modeName:Ljava/lang/String;
iconst_3
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 2
start local 2 15: aload 0
new org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher
dup
16: new org.bouncycastle.crypto.modes.OFBBlockCipher
dup
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
iload 2
invokespecial org.bouncycastle.crypto.modes.OFBBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;I)V
invokespecial org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
17: putfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
end local 2 18: goto 85
19: StackMap locals:
StackMap stack:
aload 0
new org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher
dup
20: new org.bouncycastle.crypto.modes.OFBBlockCipher
dup
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
bipush 8
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
invokeinterface org.bouncycastle.crypto.BlockCipher.getBlockSize:()I
imul
invokespecial org.bouncycastle.crypto.modes.OFBBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;I)V
invokespecial org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
21: putfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
22: goto 85
23: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.modeName:Ljava/lang/String;
ldc "CFB"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 35
24: aload 0
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
invokeinterface org.bouncycastle.crypto.BlockCipher.getBlockSize:()I
putfield org.bouncycastle.jce.provider.JCEBlockCipher.ivLength:I
25: aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.modeName:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
iconst_3
if_icmpeq 31
26: aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.modeName:Ljava/lang/String;
iconst_3
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 2
start local 2 27: aload 0
new org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher
dup
28: new org.bouncycastle.crypto.modes.CFBBlockCipher
dup
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
iload 2
invokespecial org.bouncycastle.crypto.modes.CFBBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;I)V
invokespecial org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
29: putfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
end local 2 30: goto 85
31: StackMap locals:
StackMap stack:
aload 0
new org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher
dup
32: new org.bouncycastle.crypto.modes.CFBBlockCipher
dup
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
bipush 8
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
invokeinterface org.bouncycastle.crypto.BlockCipher.getBlockSize:()I
imul
invokespecial org.bouncycastle.crypto.modes.CFBBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;I)V
invokespecial org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
33: putfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
34: goto 85
35: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.modeName:Ljava/lang/String;
ldc "PGP"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 42
36: aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.modeName:Ljava/lang/String;
ldc "PGPCFBwithIV"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
istore 2
start local 2 37: aload 0
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
invokeinterface org.bouncycastle.crypto.BlockCipher.getBlockSize:()I
putfield org.bouncycastle.jce.provider.JCEBlockCipher.ivLength:I
38: aload 0
new org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher
dup
39: new org.bouncycastle.crypto.modes.PGPCFBBlockCipher
dup
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
iload 2
invokespecial org.bouncycastle.crypto.modes.PGPCFBBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;Z)V
invokespecial org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
40: putfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
end local 2 41: goto 85
42: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.modeName:Ljava/lang/String;
ldc "OpenPGPCFB"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 48
43: aload 0
iconst_0
putfield org.bouncycastle.jce.provider.JCEBlockCipher.ivLength:I
44: aload 0
new org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher
dup
45: new org.bouncycastle.crypto.modes.OpenPGPCFBBlockCipher
dup
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
invokespecial org.bouncycastle.crypto.modes.OpenPGPCFBBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
invokespecial org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
46: putfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
47: goto 85
48: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.modeName:Ljava/lang/String;
ldc "SIC"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 56
49: aload 0
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
invokeinterface org.bouncycastle.crypto.BlockCipher.getBlockSize:()I
putfield org.bouncycastle.jce.provider.JCEBlockCipher.ivLength:I
50: aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.ivLength:I
bipush 16
if_icmpge 52
51: new java.lang.IllegalArgumentException
dup
ldc "Warning: SIC-Mode can become a twotime-pad if the blocksize of the cipher is too small. Use a cipher with a block size of at least 128 bits (e.g. AES)"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
52: StackMap locals:
StackMap stack:
aload 0
new org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher
dup
new org.bouncycastle.crypto.BufferedBlockCipher
dup
53: new org.bouncycastle.crypto.modes.SICBlockCipher
dup
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
invokespecial org.bouncycastle.crypto.modes.SICBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
invokespecial org.bouncycastle.crypto.BufferedBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
invokespecial org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher.<init>:(Lorg/bouncycastle/crypto/BufferedBlockCipher;)V
54: putfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
55: goto 85
56: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.modeName:Ljava/lang/String;
ldc "CTR"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 62
57: aload 0
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
invokeinterface org.bouncycastle.crypto.BlockCipher.getBlockSize:()I
putfield org.bouncycastle.jce.provider.JCEBlockCipher.ivLength:I
58: aload 0
new org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher
dup
new org.bouncycastle.crypto.BufferedBlockCipher
dup
59: new org.bouncycastle.crypto.modes.SICBlockCipher
dup
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
invokespecial org.bouncycastle.crypto.modes.SICBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
invokespecial org.bouncycastle.crypto.BufferedBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
invokespecial org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher.<init>:(Lorg/bouncycastle/crypto/BufferedBlockCipher;)V
60: putfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
61: goto 85
62: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.modeName:Ljava/lang/String;
ldc "GOFB"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 68
63: aload 0
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
invokeinterface org.bouncycastle.crypto.BlockCipher.getBlockSize:()I
putfield org.bouncycastle.jce.provider.JCEBlockCipher.ivLength:I
64: aload 0
new org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher
dup
new org.bouncycastle.crypto.BufferedBlockCipher
dup
65: new org.bouncycastle.crypto.modes.GOFBBlockCipher
dup
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
invokespecial org.bouncycastle.crypto.modes.GOFBBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
invokespecial org.bouncycastle.crypto.BufferedBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
invokespecial org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher.<init>:(Lorg/bouncycastle/crypto/BufferedBlockCipher;)V
66: putfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
67: goto 85
68: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.modeName:Ljava/lang/String;
ldc "CTS"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 72
69: aload 0
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
invokeinterface org.bouncycastle.crypto.BlockCipher.getBlockSize:()I
putfield org.bouncycastle.jce.provider.JCEBlockCipher.ivLength:I
70: aload 0
new org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher
dup
new org.bouncycastle.crypto.modes.CTSBlockCipher
dup
new org.bouncycastle.crypto.modes.CBCBlockCipher
dup
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
invokespecial org.bouncycastle.crypto.modes.CBCBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
invokespecial org.bouncycastle.crypto.modes.CTSBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
invokespecial org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher.<init>:(Lorg/bouncycastle/crypto/BufferedBlockCipher;)V
putfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
71: goto 85
72: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.modeName:Ljava/lang/String;
ldc "CCM"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 76
73: aload 0
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
invokeinterface org.bouncycastle.crypto.BlockCipher.getBlockSize:()I
putfield org.bouncycastle.jce.provider.JCEBlockCipher.ivLength:I
74: aload 0
new org.bouncycastle.jce.provider.JCEBlockCipher$AEADGenericBlockCipher
dup
new org.bouncycastle.crypto.modes.CCMBlockCipher
dup
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
invokespecial org.bouncycastle.crypto.modes.CCMBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
invokespecial org.bouncycastle.jce.provider.JCEBlockCipher$AEADGenericBlockCipher.<init>:(Lorg/bouncycastle/crypto/modes/AEADBlockCipher;)V
putfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
75: goto 85
76: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.modeName:Ljava/lang/String;
ldc "EAX"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 80
77: aload 0
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
invokeinterface org.bouncycastle.crypto.BlockCipher.getBlockSize:()I
putfield org.bouncycastle.jce.provider.JCEBlockCipher.ivLength:I
78: aload 0
new org.bouncycastle.jce.provider.JCEBlockCipher$AEADGenericBlockCipher
dup
new org.bouncycastle.crypto.modes.EAXBlockCipher
dup
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
invokespecial org.bouncycastle.crypto.modes.EAXBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
invokespecial org.bouncycastle.jce.provider.JCEBlockCipher$AEADGenericBlockCipher.<init>:(Lorg/bouncycastle/crypto/modes/AEADBlockCipher;)V
putfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
79: goto 85
80: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.modeName:Ljava/lang/String;
ldc "GCM"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 84
81: aload 0
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
invokeinterface org.bouncycastle.crypto.BlockCipher.getBlockSize:()I
putfield org.bouncycastle.jce.provider.JCEBlockCipher.ivLength:I
82: aload 0
new org.bouncycastle.jce.provider.JCEBlockCipher$AEADGenericBlockCipher
dup
new org.bouncycastle.crypto.modes.GCMBlockCipher
dup
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
invokespecial org.bouncycastle.crypto.modes.GCMBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
invokespecial org.bouncycastle.jce.provider.JCEBlockCipher$AEADGenericBlockCipher.<init>:(Lorg/bouncycastle/crypto/modes/AEADBlockCipher;)V
putfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
83: goto 85
84: StackMap locals:
StackMap stack:
new java.security.NoSuchAlgorithmException
dup
new java.lang.StringBuilder
dup
ldc "can't support mode "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
athrow
85: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 86 0 this Lorg/bouncycastle/jce/provider/JCEBlockCipher;
0 86 1 mode Ljava/lang/String;
15 18 2 wordSize I
27 30 2 wordSize I
37 41 2 inlineIV Z
Exceptions:
throws java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
mode
protected void engineSetPadding(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokestatic org.bouncycastle.util.Strings.toUpperCase:(Ljava/lang/String;)Ljava/lang/String;
astore 2
start local 2 1: aload 2
ldc "NOPADDING"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 5
2: aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
invokeinterface org.bouncycastle.jce.provider.JCEBlockCipher$GenericBlockCipher.wrapOnNoPadding:()Z
ifeq 30
3: aload 0
new org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher
dup
new org.bouncycastle.crypto.BufferedBlockCipher
dup
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
invokeinterface org.bouncycastle.jce.provider.JCEBlockCipher$GenericBlockCipher.getUnderlyingCipher:()Lorg/bouncycastle/crypto/BlockCipher;
invokespecial org.bouncycastle.crypto.BufferedBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
invokespecial org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher.<init>:(Lorg/bouncycastle/crypto/BufferedBlockCipher;)V
putfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
4: goto 30
5: StackMap locals: java.lang.String
StackMap stack:
aload 2
ldc "WITHCTS"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 8
6: aload 0
new org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher
dup
new org.bouncycastle.crypto.modes.CTSBlockCipher
dup
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
invokeinterface org.bouncycastle.jce.provider.JCEBlockCipher$GenericBlockCipher.getUnderlyingCipher:()Lorg/bouncycastle/crypto/BlockCipher;
invokespecial org.bouncycastle.crypto.modes.CTSBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
invokespecial org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher.<init>:(Lorg/bouncycastle/crypto/BufferedBlockCipher;)V
putfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
7: goto 30
8: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.bouncycastle.jce.provider.JCEBlockCipher.padded:Z
9: aload 0
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.modeName:Ljava/lang/String;
invokevirtual org.bouncycastle.jce.provider.JCEBlockCipher.isAEADModeName:(Ljava/lang/String;)Z
ifeq 11
10: new javax.crypto.NoSuchPaddingException
dup
ldc "Only NoPadding can be used with AEAD modes."
invokespecial javax.crypto.NoSuchPaddingException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
aload 2
ldc "PKCS5PADDING"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 12
aload 2
ldc "PKCS7PADDING"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 14
12: StackMap locals:
StackMap stack:
aload 0
new org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher
dup
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
invokeinterface org.bouncycastle.jce.provider.JCEBlockCipher$GenericBlockCipher.getUnderlyingCipher:()Lorg/bouncycastle/crypto/BlockCipher;
invokespecial org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
putfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
13: goto 30
14: StackMap locals:
StackMap stack:
aload 2
ldc "ZEROBYTEPADDING"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 17
15: aload 0
new org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher
dup
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
invokeinterface org.bouncycastle.jce.provider.JCEBlockCipher$GenericBlockCipher.getUnderlyingCipher:()Lorg/bouncycastle/crypto/BlockCipher;
new org.bouncycastle.crypto.paddings.ZeroBytePadding
dup
invokespecial org.bouncycastle.crypto.paddings.ZeroBytePadding.<init>:()V
invokespecial org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;Lorg/bouncycastle/crypto/paddings/BlockCipherPadding;)V
putfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
16: goto 30
17: StackMap locals:
StackMap stack:
aload 2
ldc "ISO10126PADDING"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 18
aload 2
ldc "ISO10126-2PADDING"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 20
18: StackMap locals:
StackMap stack:
aload 0
new org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher
dup
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
invokeinterface org.bouncycastle.jce.provider.JCEBlockCipher$GenericBlockCipher.getUnderlyingCipher:()Lorg/bouncycastle/crypto/BlockCipher;
new org.bouncycastle.crypto.paddings.ISO10126d2Padding
dup
invokespecial org.bouncycastle.crypto.paddings.ISO10126d2Padding.<init>:()V
invokespecial org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;Lorg/bouncycastle/crypto/paddings/BlockCipherPadding;)V
putfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
19: goto 30
20: StackMap locals:
StackMap stack:
aload 2
ldc "X9.23PADDING"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 21
aload 2
ldc "X923PADDING"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 23
21: StackMap locals:
StackMap stack:
aload 0
new org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher
dup
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
invokeinterface org.bouncycastle.jce.provider.JCEBlockCipher$GenericBlockCipher.getUnderlyingCipher:()Lorg/bouncycastle/crypto/BlockCipher;
new org.bouncycastle.crypto.paddings.X923Padding
dup
invokespecial org.bouncycastle.crypto.paddings.X923Padding.<init>:()V
invokespecial org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;Lorg/bouncycastle/crypto/paddings/BlockCipherPadding;)V
putfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
22: goto 30
23: StackMap locals:
StackMap stack:
aload 2
ldc "ISO7816-4PADDING"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 24
aload 2
ldc "ISO9797-1PADDING"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 26
24: StackMap locals:
StackMap stack:
aload 0
new org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher
dup
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
invokeinterface org.bouncycastle.jce.provider.JCEBlockCipher$GenericBlockCipher.getUnderlyingCipher:()Lorg/bouncycastle/crypto/BlockCipher;
new org.bouncycastle.crypto.paddings.ISO7816d4Padding
dup
invokespecial org.bouncycastle.crypto.paddings.ISO7816d4Padding.<init>:()V
invokespecial org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;Lorg/bouncycastle/crypto/paddings/BlockCipherPadding;)V
putfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
25: goto 30
26: StackMap locals:
StackMap stack:
aload 2
ldc "TBCPADDING"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 29
27: aload 0
new org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher
dup
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
invokeinterface org.bouncycastle.jce.provider.JCEBlockCipher$GenericBlockCipher.getUnderlyingCipher:()Lorg/bouncycastle/crypto/BlockCipher;
new org.bouncycastle.crypto.paddings.TBCPadding
dup
invokespecial org.bouncycastle.crypto.paddings.TBCPadding.<init>:()V
invokespecial org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;Lorg/bouncycastle/crypto/paddings/BlockCipherPadding;)V
putfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
28: goto 30
29: StackMap locals:
StackMap stack:
new javax.crypto.NoSuchPaddingException
dup
new java.lang.StringBuilder
dup
ldc "Padding "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " unknown."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial javax.crypto.NoSuchPaddingException.<init>:(Ljava/lang/String;)V
athrow
30: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lorg/bouncycastle/jce/provider/JCEBlockCipher;
0 31 1 padding Ljava/lang/String;
1 31 2 paddingName Ljava/lang/String;
Exceptions:
throws javax.crypto.NoSuchPaddingException
MethodParameters:
Name Flags
padding
protected void engineInit(int, java.security.Key, java.security.spec.AlgorithmParameterSpec, java.security.SecureRandom);
descriptor: (ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aconst_null
putfield org.bouncycastle.jce.provider.JCEBlockCipher.pbeSpec:Ljavax/crypto/spec/PBEParameterSpec;
1: aload 0
aconst_null
putfield org.bouncycastle.jce.provider.JCEBlockCipher.pbeAlgorithm:Ljava/lang/String;
2: aload 0
aconst_null
putfield org.bouncycastle.jce.provider.JCEBlockCipher.engineParams:Ljava/security/AlgorithmParameters;
3: aload 2
instanceof javax.crypto.SecretKey
ifne 5
4: new java.security.InvalidKeyException
dup
new java.lang.StringBuilder
dup
ldc "Key for algorithm "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokeinterface java.security.Key.getAlgorithm:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " not suitable for symmetric enryption."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 3
ifnonnull 7
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
invokeinterface org.bouncycastle.crypto.BlockCipher.getAlgorithmName:()Ljava/lang/String;
ldc "RC5-64"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 7
6: new java.security.InvalidAlgorithmParameterException
dup
ldc "RC5 requires an RC5ParametersSpec to be passed in."
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 2
instanceof org.bouncycastle.jce.provider.JCEPBEKey
ifeq 25
8: aload 2
checkcast org.bouncycastle.jce.provider.JCEPBEKey
astore 6
start local 6 9: aload 6
invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.getOID:()Lorg/bouncycastle/asn1/DERObjectIdentifier;
ifnull 12
10: aload 0
aload 6
invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.getOID:()Lorg/bouncycastle/asn1/DERObjectIdentifier;
invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.getId:()Ljava/lang/String;
putfield org.bouncycastle.jce.provider.JCEBlockCipher.pbeAlgorithm:Ljava/lang/String;
11: goto 13
12: StackMap locals: org.bouncycastle.jce.provider.JCEBlockCipher int java.security.Key java.security.spec.AlgorithmParameterSpec java.security.SecureRandom top org.bouncycastle.jce.provider.JCEPBEKey
StackMap stack:
aload 0
aload 6
invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.getAlgorithm:()Ljava/lang/String;
putfield org.bouncycastle.jce.provider.JCEBlockCipher.pbeAlgorithm:Ljava/lang/String;
13: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.getParam:()Lorg/bouncycastle/crypto/CipherParameters;
ifnull 17
14: aload 6
invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.getParam:()Lorg/bouncycastle/crypto/CipherParameters;
astore 5
start local 5 15: aload 0
new javax.crypto.spec.PBEParameterSpec
dup
aload 6
invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.getSalt:()[B
aload 6
invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.getIterationCount:()I
invokespecial javax.crypto.spec.PBEParameterSpec.<init>:([BI)V
putfield org.bouncycastle.jce.provider.JCEBlockCipher.pbeSpec:Ljavax/crypto/spec/PBEParameterSpec;
16: goto 22
end local 5 17: StackMap locals:
StackMap stack:
aload 3
instanceof javax.crypto.spec.PBEParameterSpec
ifeq 21
18: aload 0
aload 3
checkcast javax.crypto.spec.PBEParameterSpec
putfield org.bouncycastle.jce.provider.JCEBlockCipher.pbeSpec:Ljavax/crypto/spec/PBEParameterSpec;
19: aload 6
aload 3
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
invokeinterface org.bouncycastle.jce.provider.JCEBlockCipher$GenericBlockCipher.getUnderlyingCipher:()Lorg/bouncycastle/crypto/BlockCipher;
invokeinterface org.bouncycastle.crypto.BlockCipher.getAlgorithmName:()Ljava/lang/String;
invokestatic org.bouncycastle.jce.provider.PBE$Util.makePBEParameters:(Lorg/bouncycastle/jce/provider/JCEPBEKey;Ljava/security/spec/AlgorithmParameterSpec;Ljava/lang/String;)Lorg/bouncycastle/crypto/CipherParameters;
astore 5
start local 5 20: goto 22
end local 5 21: StackMap locals:
StackMap stack:
new java.security.InvalidAlgorithmParameterException
dup
ldc "PBE requires PBE parameters to be set."
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
start local 5 22: StackMap locals: org.bouncycastle.jce.provider.JCEBlockCipher int java.security.Key java.security.spec.AlgorithmParameterSpec java.security.SecureRandom org.bouncycastle.crypto.CipherParameters org.bouncycastle.jce.provider.JCEPBEKey
StackMap stack:
aload 5
instanceof org.bouncycastle.crypto.params.ParametersWithIV
ifeq 72
23: aload 0
aload 5
checkcast org.bouncycastle.crypto.params.ParametersWithIV
putfield org.bouncycastle.jce.provider.JCEBlockCipher.ivParam:Lorg/bouncycastle/crypto/params/ParametersWithIV;
end local 6 24: goto 72
end local 5 25: StackMap locals:
StackMap stack:
aload 3
ifnonnull 28
26: new org.bouncycastle.crypto.params.KeyParameter
dup
aload 2
invokeinterface java.security.Key.getEncoded:()[B
invokespecial org.bouncycastle.crypto.params.KeyParameter.<init>:([B)V
astore 5
start local 5 27: goto 72
end local 5 28: StackMap locals:
StackMap stack:
aload 3
instanceof javax.crypto.spec.IvParameterSpec
ifeq 40
29: aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.ivLength:I
ifeq 36
30: aload 3
checkcast javax.crypto.spec.IvParameterSpec
astore 6
start local 6 31: aload 6
invokevirtual javax.crypto.spec.IvParameterSpec.getIV:()[B
arraylength
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.ivLength:I
if_icmpeq 33
aload 0
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.modeName:Ljava/lang/String;
invokevirtual org.bouncycastle.jce.provider.JCEBlockCipher.isAEADModeName:(Ljava/lang/String;)Z
ifne 33
32: new java.security.InvalidAlgorithmParameterException
dup
new java.lang.StringBuilder
dup
ldc "IV must be "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.ivLength:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " bytes long."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
33: StackMap locals: org.bouncycastle.jce.provider.JCEBlockCipher int java.security.Key java.security.spec.AlgorithmParameterSpec java.security.SecureRandom top javax.crypto.spec.IvParameterSpec
StackMap stack:
new org.bouncycastle.crypto.params.ParametersWithIV
dup
new org.bouncycastle.crypto.params.KeyParameter
dup
aload 2
invokeinterface java.security.Key.getEncoded:()[B
invokespecial org.bouncycastle.crypto.params.KeyParameter.<init>:([B)V
aload 6
invokevirtual javax.crypto.spec.IvParameterSpec.getIV:()[B
invokespecial org.bouncycastle.crypto.params.ParametersWithIV.<init>:(Lorg/bouncycastle/crypto/CipherParameters;[B)V
astore 5
start local 5 34: aload 0
aload 5
checkcast org.bouncycastle.crypto.params.ParametersWithIV
putfield org.bouncycastle.jce.provider.JCEBlockCipher.ivParam:Lorg/bouncycastle/crypto/params/ParametersWithIV;
end local 6 35: goto 72
end local 5 36: StackMap locals: org.bouncycastle.jce.provider.JCEBlockCipher int java.security.Key java.security.spec.AlgorithmParameterSpec java.security.SecureRandom
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.modeName:Ljava/lang/String;
ifnull 38
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.modeName:Ljava/lang/String;
ldc "ECB"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 38
37: new java.security.InvalidAlgorithmParameterException
dup
ldc "ECB mode does not use an IV"
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
38: StackMap locals:
StackMap stack:
new org.bouncycastle.crypto.params.KeyParameter
dup
aload 2
invokeinterface java.security.Key.getEncoded:()[B
invokespecial org.bouncycastle.crypto.params.KeyParameter.<init>:([B)V
astore 5
start local 5 39: goto 72
end local 5 40: StackMap locals:
StackMap stack:
aload 3
instanceof org.bouncycastle.jce.spec.GOST28147ParameterSpec
ifeq 49
41: aload 3
checkcast org.bouncycastle.jce.spec.GOST28147ParameterSpec
astore 6
start local 6 42: new org.bouncycastle.crypto.params.ParametersWithSBox
dup
43: new org.bouncycastle.crypto.params.KeyParameter
dup
aload 2
invokeinterface java.security.Key.getEncoded:()[B
invokespecial org.bouncycastle.crypto.params.KeyParameter.<init>:([B)V
aload 3
checkcast org.bouncycastle.jce.spec.GOST28147ParameterSpec
invokevirtual org.bouncycastle.jce.spec.GOST28147ParameterSpec.getSbox:()[B
44: invokespecial org.bouncycastle.crypto.params.ParametersWithSBox.<init>:(Lorg/bouncycastle/crypto/CipherParameters;[B)V
astore 5
start local 5 45: aload 6
invokevirtual org.bouncycastle.jce.spec.GOST28147ParameterSpec.getIV:()[B
ifnull 72
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.ivLength:I
ifeq 72
46: new org.bouncycastle.crypto.params.ParametersWithIV
dup
aload 5
aload 6
invokevirtual org.bouncycastle.jce.spec.GOST28147ParameterSpec.getIV:()[B
invokespecial org.bouncycastle.crypto.params.ParametersWithIV.<init>:(Lorg/bouncycastle/crypto/CipherParameters;[B)V
astore 5
47: aload 0
aload 5
checkcast org.bouncycastle.crypto.params.ParametersWithIV
putfield org.bouncycastle.jce.provider.JCEBlockCipher.ivParam:Lorg/bouncycastle/crypto/params/ParametersWithIV;
end local 6 48: goto 72
end local 5 49: StackMap locals:
StackMap stack:
aload 3
instanceof javax.crypto.spec.RC2ParameterSpec
ifeq 56
50: aload 3
checkcast javax.crypto.spec.RC2ParameterSpec
astore 6
start local 6 51: new org.bouncycastle.crypto.params.RC2Parameters
dup
aload 2
invokeinterface java.security.Key.getEncoded:()[B
aload 3
checkcast javax.crypto.spec.RC2ParameterSpec
invokevirtual javax.crypto.spec.RC2ParameterSpec.getEffectiveKeyBits:()I
invokespecial org.bouncycastle.crypto.params.RC2Parameters.<init>:([BI)V
astore 5
start local 5 52: aload 6
invokevirtual javax.crypto.spec.RC2ParameterSpec.getIV:()[B
ifnull 72
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.ivLength:I
ifeq 72
53: new org.bouncycastle.crypto.params.ParametersWithIV
dup
aload 5
aload 6
invokevirtual javax.crypto.spec.RC2ParameterSpec.getIV:()[B
invokespecial org.bouncycastle.crypto.params.ParametersWithIV.<init>:(Lorg/bouncycastle/crypto/CipherParameters;[B)V
astore 5
54: aload 0
aload 5
checkcast org.bouncycastle.crypto.params.ParametersWithIV
putfield org.bouncycastle.jce.provider.JCEBlockCipher.ivParam:Lorg/bouncycastle/crypto/params/ParametersWithIV;
end local 6 55: goto 72
end local 5 56: StackMap locals:
StackMap stack:
aload 3
instanceof javax.crypto.spec.RC5ParameterSpec
ifeq 71
57: aload 3
checkcast javax.crypto.spec.RC5ParameterSpec
astore 6
start local 6 58: new org.bouncycastle.crypto.params.RC5Parameters
dup
aload 2
invokeinterface java.security.Key.getEncoded:()[B
aload 3
checkcast javax.crypto.spec.RC5ParameterSpec
invokevirtual javax.crypto.spec.RC5ParameterSpec.getRounds:()I
invokespecial org.bouncycastle.crypto.params.RC5Parameters.<init>:([BI)V
astore 5
start local 5 59: aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
invokeinterface org.bouncycastle.crypto.BlockCipher.getAlgorithmName:()Ljava/lang/String;
ldc "RC5"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 66
60: aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
invokeinterface org.bouncycastle.crypto.BlockCipher.getAlgorithmName:()Ljava/lang/String;
ldc "RC5-32"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 63
61: aload 6
invokevirtual javax.crypto.spec.RC5ParameterSpec.getWordSize:()I
bipush 32
if_icmpeq 67
62: new java.security.InvalidAlgorithmParameterException
dup
new java.lang.StringBuilder
dup
ldc "RC5 already set up for a word size of 32 not "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual javax.crypto.spec.RC5ParameterSpec.getWordSize:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
63: StackMap locals: org.bouncycastle.crypto.CipherParameters javax.crypto.spec.RC5ParameterSpec
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.baseEngine:Lorg/bouncycastle/crypto/BlockCipher;
invokeinterface org.bouncycastle.crypto.BlockCipher.getAlgorithmName:()Ljava/lang/String;
ldc "RC5-64"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 67
64: aload 6
invokevirtual javax.crypto.spec.RC5ParameterSpec.getWordSize:()I
bipush 64
if_icmpeq 67
65: new java.security.InvalidAlgorithmParameterException
dup
new java.lang.StringBuilder
dup
ldc "RC5 already set up for a word size of 64 not "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual javax.crypto.spec.RC5ParameterSpec.getWordSize:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
66: StackMap locals:
StackMap stack:
new java.security.InvalidAlgorithmParameterException
dup
ldc "RC5 parameters passed to a cipher that is not RC5."
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
67: StackMap locals:
StackMap stack:
aload 6
invokevirtual javax.crypto.spec.RC5ParameterSpec.getIV:()[B
ifnull 72
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.ivLength:I
ifeq 72
68: new org.bouncycastle.crypto.params.ParametersWithIV
dup
aload 5
aload 6
invokevirtual javax.crypto.spec.RC5ParameterSpec.getIV:()[B
invokespecial org.bouncycastle.crypto.params.ParametersWithIV.<init>:(Lorg/bouncycastle/crypto/CipherParameters;[B)V
astore 5
69: aload 0
aload 5
checkcast org.bouncycastle.crypto.params.ParametersWithIV
putfield org.bouncycastle.jce.provider.JCEBlockCipher.ivParam:Lorg/bouncycastle/crypto/params/ParametersWithIV;
end local 6 70: goto 72
end local 5 71: StackMap locals:
StackMap stack:
new java.security.InvalidAlgorithmParameterException
dup
ldc "unknown parameter type."
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
start local 5 72: StackMap locals: org.bouncycastle.crypto.CipherParameters
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.ivLength:I
ifeq 84
aload 5
instanceof org.bouncycastle.crypto.params.ParametersWithIV
ifne 84
73: aload 4
astore 6
start local 6 74: aload 6
ifnonnull 76
75: new java.security.SecureRandom
dup
invokespecial java.security.SecureRandom.<init>:()V
astore 6
76: StackMap locals: java.security.SecureRandom
StackMap stack:
iload 1
iconst_1
if_icmpeq 77
iload 1
iconst_3
if_icmpne 82
77: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.ivLength:I
newarray 8
astore 7
start local 7 78: aload 6
aload 7
invokevirtual java.security.SecureRandom.nextBytes:([B)V
79: new org.bouncycastle.crypto.params.ParametersWithIV
dup
aload 5
aload 7
invokespecial org.bouncycastle.crypto.params.ParametersWithIV.<init>:(Lorg/bouncycastle/crypto/CipherParameters;[B)V
astore 5
80: aload 0
aload 5
checkcast org.bouncycastle.crypto.params.ParametersWithIV
putfield org.bouncycastle.jce.provider.JCEBlockCipher.ivParam:Lorg/bouncycastle/crypto/params/ParametersWithIV;
end local 7 81: goto 84
82: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
invokeinterface org.bouncycastle.jce.provider.JCEBlockCipher$GenericBlockCipher.getUnderlyingCipher:()Lorg/bouncycastle/crypto/BlockCipher;
invokeinterface org.bouncycastle.crypto.BlockCipher.getAlgorithmName:()Ljava/lang/String;
ldc "PGPCFB"
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
ifge 84
83: new java.security.InvalidAlgorithmParameterException
dup
ldc "no IV set when one expected"
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
end local 6 84: StackMap locals:
StackMap stack:
aload 4
ifnull 86
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.padded:Z
ifeq 86
85: new org.bouncycastle.crypto.params.ParametersWithRandom
dup
aload 5
aload 4
invokespecial org.bouncycastle.crypto.params.ParametersWithRandom.<init>:(Lorg/bouncycastle/crypto/CipherParameters;Ljava/security/SecureRandom;)V
astore 5
86: StackMap locals:
StackMap stack:
iload 1
tableswitch { // 1 - 4
1: 87
2: 89
3: 87
4: 89
default: 91
}
87: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
iconst_1
aload 5
invokeinterface org.bouncycastle.jce.provider.JCEBlockCipher$GenericBlockCipher.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
88: goto 94
89: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
iconst_0
aload 5
invokeinterface org.bouncycastle.jce.provider.JCEBlockCipher$GenericBlockCipher.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
90: goto 94
91: StackMap locals:
StackMap stack:
new java.security.InvalidParameterException
dup
new java.lang.StringBuilder
dup
ldc "unknown opmode "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " passed"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.InvalidParameterException.<init>:(Ljava/lang/String;)V
athrow
92: StackMap locals:
StackMap stack: java.lang.Exception
astore 6
start local 6 93: new java.security.InvalidKeyException
dup
aload 6
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
end local 6 94: StackMap locals:
StackMap stack:
return
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 95 0 this Lorg/bouncycastle/jce/provider/JCEBlockCipher;
0 95 1 opmode I
0 95 2 key Ljava/security/Key;
0 95 3 params Ljava/security/spec/AlgorithmParameterSpec;
0 95 4 random Ljava/security/SecureRandom;
15 17 5 param Lorg/bouncycastle/crypto/CipherParameters;
20 21 5 param Lorg/bouncycastle/crypto/CipherParameters;
22 25 5 param Lorg/bouncycastle/crypto/CipherParameters;
27 28 5 param Lorg/bouncycastle/crypto/CipherParameters;
34 36 5 param Lorg/bouncycastle/crypto/CipherParameters;
39 40 5 param Lorg/bouncycastle/crypto/CipherParameters;
45 49 5 param Lorg/bouncycastle/crypto/CipherParameters;
52 56 5 param Lorg/bouncycastle/crypto/CipherParameters;
59 71 5 param Lorg/bouncycastle/crypto/CipherParameters;
72 95 5 param Lorg/bouncycastle/crypto/CipherParameters;
9 24 6 k Lorg/bouncycastle/jce/provider/JCEPBEKey;
31 35 6 p Ljavax/crypto/spec/IvParameterSpec;
42 48 6 gost28147Param Lorg/bouncycastle/jce/spec/GOST28147ParameterSpec;
51 55 6 rc2Param Ljavax/crypto/spec/RC2ParameterSpec;
58 70 6 rc5Param Ljavax/crypto/spec/RC5ParameterSpec;
74 84 6 ivRandom Ljava/security/SecureRandom;
78 81 7 iv [B
93 94 6 e Ljava/lang/Exception;
Exception table:
from to target type
86 92 92 Class java.lang.Exception
Exceptions:
throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
opmode
key
params
random
protected void engineInit(int, java.security.Key, java.security.AlgorithmParameters, java.security.SecureRandom);
descriptor: (ILjava/security/Key;Ljava/security/AlgorithmParameters;Ljava/security/SecureRandom;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aconst_null
astore 5
start local 5 1: aload 3
ifnull 11
2: iconst_0
istore 6
start local 6 3: goto 8
4: StackMap locals: java.security.spec.AlgorithmParameterSpec int
StackMap stack:
aload 3
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.availableSpecs:[Ljava/lang/Class;
iload 6
aaload
invokevirtual java.security.AlgorithmParameters.getParameterSpec:(Ljava/lang/Class;)Ljava/security/spec/AlgorithmParameterSpec;
astore 5
5: goto 9
6: StackMap locals:
StackMap stack: java.lang.Exception
pop
7: iinc 6 1
StackMap locals:
StackMap stack:
8: iload 6
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.availableSpecs:[Ljava/lang/Class;
arraylength
if_icmpne 4
end local 6 9: StackMap locals:
StackMap stack:
aload 5
ifnonnull 11
10: new java.security.InvalidAlgorithmParameterException
dup
new java.lang.StringBuilder
dup
ldc "can't handle parameter "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.security.AlgorithmParameters.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
aload 0
iload 1
aload 2
aload 5
aload 4
invokevirtual org.bouncycastle.jce.provider.JCEBlockCipher.engineInit:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
12: aload 0
aload 3
putfield org.bouncycastle.jce.provider.JCEBlockCipher.engineParams:Ljava/security/AlgorithmParameters;
13: return
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 14 0 this Lorg/bouncycastle/jce/provider/JCEBlockCipher;
0 14 1 opmode I
0 14 2 key Ljava/security/Key;
0 14 3 params Ljava/security/AlgorithmParameters;
0 14 4 random Ljava/security/SecureRandom;
1 14 5 paramSpec Ljava/security/spec/AlgorithmParameterSpec;
3 9 6 i I
Exception table:
from to target type
4 5 6 Class java.lang.Exception
Exceptions:
throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
opmode
key
params
random
protected void engineInit(int, java.security.Key, java.security.SecureRandom);
descriptor: (ILjava/security/Key;Ljava/security/SecureRandom;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 1
aload 2
aconst_null
aload 3
invokevirtual org.bouncycastle.jce.provider.JCEBlockCipher.engineInit:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
1: goto 4
2: StackMap locals:
StackMap stack: java.security.InvalidAlgorithmParameterException
astore 4
start local 4 3: new java.security.InvalidKeyException
dup
aload 4
invokevirtual java.security.InvalidAlgorithmParameterException.getMessage:()Ljava/lang/String;
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
end local 4 4: StackMap locals:
StackMap stack:
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/jce/provider/JCEBlockCipher;
0 5 1 opmode I
0 5 2 key Ljava/security/Key;
0 5 3 random Ljava/security/SecureRandom;
3 4 4 e Ljava/security/InvalidAlgorithmParameterException;
Exception table:
from to target type
0 1 2 Class java.security.InvalidAlgorithmParameterException
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
opmode
key
random
protected byte[] engineUpdate(byte[], int, int);
descriptor: ([BII)[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
iload 3
invokeinterface org.bouncycastle.jce.provider.JCEBlockCipher$GenericBlockCipher.getUpdateOutputSize:(I)I
istore 4
start local 4 1: iload 4
ifle 11
2: iload 4
newarray 8
astore 5
start local 5 3: aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
aload 1
iload 2
iload 3
aload 5
iconst_0
invokeinterface org.bouncycastle.jce.provider.JCEBlockCipher$GenericBlockCipher.processBytes:([BII[BI)I
istore 6
start local 6 4: iload 6
ifne 6
5: aconst_null
areturn
6: StackMap locals: int byte[] int
StackMap stack:
iload 6
aload 5
arraylength
if_icmpeq 10
7: iload 6
newarray 8
astore 7
start local 7 8: aload 5
iconst_0
aload 7
iconst_0
iload 6
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
9: aload 7
areturn
end local 7 10: StackMap locals:
StackMap stack:
aload 5
areturn
end local 6 end local 5 11: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
aload 1
iload 2
iload 3
aconst_null
iconst_0
invokeinterface org.bouncycastle.jce.provider.JCEBlockCipher$GenericBlockCipher.processBytes:([BII[BI)I
pop
12: aconst_null
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/bouncycastle/jce/provider/JCEBlockCipher;
0 13 1 input [B
0 13 2 inputOffset I
0 13 3 inputLen I
1 13 4 length I
3 11 5 out [B
4 11 6 len I
8 10 7 tmp [B
MethodParameters:
Name Flags
input
inputOffset
inputLen
protected int engineUpdate(byte[], int, int, byte[], int);
descriptor: ([BII[BI)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
aload 1
iload 2
iload 3
aload 4
iload 5
invokeinterface org.bouncycastle.jce.provider.JCEBlockCipher$GenericBlockCipher.processBytes:([BII[BI)I
1: ireturn
2: StackMap locals:
StackMap stack: org.bouncycastle.crypto.DataLengthException
astore 6
start local 6 3: new javax.crypto.ShortBufferException
dup
aload 6
invokevirtual org.bouncycastle.crypto.DataLengthException.getMessage:()Ljava/lang/String;
invokespecial javax.crypto.ShortBufferException.<init>:(Ljava/lang/String;)V
athrow
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 4 0 this Lorg/bouncycastle/jce/provider/JCEBlockCipher;
0 4 1 input [B
0 4 2 inputOffset I
0 4 3 inputLen I
0 4 4 output [B
0 4 5 outputOffset I
3 4 6 e Lorg/bouncycastle/crypto/DataLengthException;
Exception table:
from to target type
0 1 2 Class org.bouncycastle.crypto.DataLengthException
Exceptions:
throws javax.crypto.ShortBufferException
MethodParameters:
Name Flags
input
inputOffset
inputLen
output
outputOffset
protected byte[] engineDoFinal(byte[], int, int);
descriptor: ([BII)[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
istore 4
start local 4 1: aload 0
iload 3
invokevirtual org.bouncycastle.jce.provider.JCEBlockCipher.engineGetOutputSize:(I)I
newarray 8
astore 5
start local 5 2: iload 3
ifeq 4
3: aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
aload 1
iload 2
iload 3
aload 5
iconst_0
invokeinterface org.bouncycastle.jce.provider.JCEBlockCipher$GenericBlockCipher.processBytes:([BII[BI)I
istore 4
4: StackMap locals: int byte[]
StackMap stack:
iload 4
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
aload 5
iload 4
invokeinterface org.bouncycastle.jce.provider.JCEBlockCipher$GenericBlockCipher.doFinal:([BI)I
iadd
istore 4
5: goto 10
6: StackMap locals:
StackMap stack: org.bouncycastle.crypto.DataLengthException
astore 6
start local 6 7: new javax.crypto.IllegalBlockSizeException
dup
aload 6
invokevirtual org.bouncycastle.crypto.DataLengthException.getMessage:()Ljava/lang/String;
invokespecial javax.crypto.IllegalBlockSizeException.<init>:(Ljava/lang/String;)V
athrow
end local 6 8: StackMap locals:
StackMap stack: org.bouncycastle.crypto.InvalidCipherTextException
astore 6
start local 6 9: new javax.crypto.BadPaddingException
dup
aload 6
invokevirtual org.bouncycastle.crypto.InvalidCipherTextException.getMessage:()Ljava/lang/String;
invokespecial javax.crypto.BadPaddingException.<init>:(Ljava/lang/String;)V
athrow
end local 6 10: StackMap locals:
StackMap stack:
iload 4
aload 5
arraylength
if_icmpne 12
11: aload 5
areturn
12: StackMap locals:
StackMap stack:
iload 4
newarray 8
astore 6
start local 6 13: aload 5
iconst_0
aload 6
iconst_0
iload 4
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
14: aload 6
areturn
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 15 0 this Lorg/bouncycastle/jce/provider/JCEBlockCipher;
0 15 1 input [B
0 15 2 inputOffset I
0 15 3 inputLen I
1 15 4 len I
2 15 5 tmp [B
7 8 6 e Lorg/bouncycastle/crypto/DataLengthException;
9 10 6 e Lorg/bouncycastle/crypto/InvalidCipherTextException;
13 15 6 out [B
Exception table:
from to target type
4 5 6 Class org.bouncycastle.crypto.DataLengthException
4 5 8 Class org.bouncycastle.crypto.InvalidCipherTextException
Exceptions:
throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
MethodParameters:
Name Flags
input
inputOffset
inputLen
protected int engineDoFinal(byte[], int, int, byte[], int);
descriptor: ([BII[BI)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: iconst_0
istore 6
start local 6 1: iload 3
ifeq 3
2: aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
aload 1
iload 2
iload 3
aload 4
iload 5
invokeinterface org.bouncycastle.jce.provider.JCEBlockCipher$GenericBlockCipher.processBytes:([BII[BI)I
istore 6
3: StackMap locals: int
StackMap stack:
iload 6
aload 0
getfield org.bouncycastle.jce.provider.JCEBlockCipher.cipher:Lorg/bouncycastle/jce/provider/JCEBlockCipher$GenericBlockCipher;
aload 4
iload 5
iload 6
iadd
invokeinterface org.bouncycastle.jce.provider.JCEBlockCipher$GenericBlockCipher.doFinal:([BI)I
iadd
4: ireturn
5: StackMap locals:
StackMap stack: org.bouncycastle.crypto.DataLengthException
astore 7
start local 7 6: new javax.crypto.IllegalBlockSizeException
dup
aload 7
invokevirtual org.bouncycastle.crypto.DataLengthException.getMessage:()Ljava/lang/String;
invokespecial javax.crypto.IllegalBlockSizeException.<init>:(Ljava/lang/String;)V
athrow
end local 7 7: StackMap locals:
StackMap stack: org.bouncycastle.crypto.InvalidCipherTextException
astore 7
start local 7 8: new javax.crypto.BadPaddingException
dup
aload 7
invokevirtual org.bouncycastle.crypto.InvalidCipherTextException.getMessage:()Ljava/lang/String;
invokespecial javax.crypto.BadPaddingException.<init>:(Ljava/lang/String;)V
athrow
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 9 0 this Lorg/bouncycastle/jce/provider/JCEBlockCipher;
0 9 1 input [B
0 9 2 inputOffset I
0 9 3 inputLen I
0 9 4 output [B
0 9 5 outputOffset I
1 9 6 len I
6 7 7 e Lorg/bouncycastle/crypto/DataLengthException;
8 9 7 e Lorg/bouncycastle/crypto/InvalidCipherTextException;
Exception table:
from to target type
3 4 5 Class org.bouncycastle.crypto.DataLengthException
3 4 7 Class org.bouncycastle.crypto.InvalidCipherTextException
Exceptions:
throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
MethodParameters:
Name Flags
input
inputOffset
inputLen
output
outputOffset
private boolean isAEADModeName(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: ldc "CCM"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 1
ldc "EAX"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 1
ldc "GCM"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/jce/provider/JCEBlockCipher;
0 2 1 modeName Ljava/lang/String;
MethodParameters:
Name Flags
modeName
}
SourceFile: "JCEBlockCipher.java"
NestMembers:
org.bouncycastle.jce.provider.JCEBlockCipher$AEADGenericBlockCipher org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher org.bouncycastle.jce.provider.JCEBlockCipher$DES org.bouncycastle.jce.provider.JCEBlockCipher$DESCBC org.bouncycastle.jce.provider.JCEBlockCipher$GOST28147 org.bouncycastle.jce.provider.JCEBlockCipher$GOST28147cbc org.bouncycastle.jce.provider.JCEBlockCipher$GenericBlockCipher org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithAESCBC org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithMD5AndDES org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithMD5AndRC2 org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithSHA1AndDES org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithSHA1AndRC2 org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithSHAAnd128BitRC2 org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithSHAAnd40BitRC2 org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithSHAAndDES2Key org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithSHAAndDES3Key org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithSHAAndTwofish org.bouncycastle.jce.provider.JCEBlockCipher$RC2 org.bouncycastle.jce.provider.JCEBlockCipher$RC2CBC
InnerClasses:
private AEADGenericBlockCipher = org.bouncycastle.jce.provider.JCEBlockCipher$AEADGenericBlockCipher of org.bouncycastle.jce.provider.JCEBlockCipher
private BufferedGenericBlockCipher = org.bouncycastle.jce.provider.JCEBlockCipher$BufferedGenericBlockCipher of org.bouncycastle.jce.provider.JCEBlockCipher
public DES = org.bouncycastle.jce.provider.JCEBlockCipher$DES of org.bouncycastle.jce.provider.JCEBlockCipher
public DESCBC = org.bouncycastle.jce.provider.JCEBlockCipher$DESCBC of org.bouncycastle.jce.provider.JCEBlockCipher
public GOST28147 = org.bouncycastle.jce.provider.JCEBlockCipher$GOST28147 of org.bouncycastle.jce.provider.JCEBlockCipher
public GOST28147cbc = org.bouncycastle.jce.provider.JCEBlockCipher$GOST28147cbc of org.bouncycastle.jce.provider.JCEBlockCipher
private abstract GenericBlockCipher = org.bouncycastle.jce.provider.JCEBlockCipher$GenericBlockCipher of org.bouncycastle.jce.provider.JCEBlockCipher
public PBEWithAESCBC = org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithAESCBC of org.bouncycastle.jce.provider.JCEBlockCipher
public PBEWithMD5AndDES = org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithMD5AndDES of org.bouncycastle.jce.provider.JCEBlockCipher
public PBEWithMD5AndRC2 = org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithMD5AndRC2 of org.bouncycastle.jce.provider.JCEBlockCipher
public PBEWithSHA1AndDES = org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithSHA1AndDES of org.bouncycastle.jce.provider.JCEBlockCipher
public PBEWithSHA1AndRC2 = org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithSHA1AndRC2 of org.bouncycastle.jce.provider.JCEBlockCipher
public PBEWithSHAAnd128BitRC2 = org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithSHAAnd128BitRC2 of org.bouncycastle.jce.provider.JCEBlockCipher
public PBEWithSHAAnd40BitRC2 = org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithSHAAnd40BitRC2 of org.bouncycastle.jce.provider.JCEBlockCipher
public PBEWithSHAAndDES2Key = org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithSHAAndDES2Key of org.bouncycastle.jce.provider.JCEBlockCipher
public PBEWithSHAAndDES3Key = org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithSHAAndDES3Key of org.bouncycastle.jce.provider.JCEBlockCipher
public PBEWithSHAAndTwofish = org.bouncycastle.jce.provider.JCEBlockCipher$PBEWithSHAAndTwofish of org.bouncycastle.jce.provider.JCEBlockCipher
public RC2 = org.bouncycastle.jce.provider.JCEBlockCipher$RC2 of org.bouncycastle.jce.provider.JCEBlockCipher
public RC2CBC = org.bouncycastle.jce.provider.JCEBlockCipher$RC2CBC of org.bouncycastle.jce.provider.JCEBlockCipher
public Util = org.bouncycastle.jce.provider.PBE$Util of org.bouncycastle.jce.provider.PBE