class org.bouncycastle.openssl.bc.PEMUtilities
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.bouncycastle.openssl.bc.PEMUtilities
super_class: java.lang.Object
{
private static final java.util.Map KEYSIZES;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.Set PKCS5_SCHEME_1;
descriptor: Ljava/util/Set;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.Set PKCS5_SCHEME_2;
descriptor: Ljava/util/Set;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putstatic org.bouncycastle.openssl.bc.PEMUtilities.KEYSIZES:Ljava/util/Map;
1: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putstatic org.bouncycastle.openssl.bc.PEMUtilities.PKCS5_SCHEME_1:Ljava/util/Set;
2: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putstatic org.bouncycastle.openssl.bc.PEMUtilities.PKCS5_SCHEME_2:Ljava/util/Set;
3: getstatic org.bouncycastle.openssl.bc.PEMUtilities.PKCS5_SCHEME_1:Ljava/util/Set;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.pbeWithMD2AndDES_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
4: getstatic org.bouncycastle.openssl.bc.PEMUtilities.PKCS5_SCHEME_1:Ljava/util/Set;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.pbeWithMD2AndRC2_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
5: getstatic org.bouncycastle.openssl.bc.PEMUtilities.PKCS5_SCHEME_1:Ljava/util/Set;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.pbeWithMD5AndDES_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
6: getstatic org.bouncycastle.openssl.bc.PEMUtilities.PKCS5_SCHEME_1:Ljava/util/Set;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.pbeWithMD5AndRC2_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
7: getstatic org.bouncycastle.openssl.bc.PEMUtilities.PKCS5_SCHEME_1:Ljava/util/Set;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.pbeWithSHA1AndDES_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
8: getstatic org.bouncycastle.openssl.bc.PEMUtilities.PKCS5_SCHEME_1:Ljava/util/Set;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.pbeWithSHA1AndRC2_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
9: getstatic org.bouncycastle.openssl.bc.PEMUtilities.PKCS5_SCHEME_2:Ljava/util/Set;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_PBES2:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
10: getstatic org.bouncycastle.openssl.bc.PEMUtilities.PKCS5_SCHEME_2:Ljava/util/Set;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.des_EDE3_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
11: getstatic org.bouncycastle.openssl.bc.PEMUtilities.PKCS5_SCHEME_2:Ljava/util/Set;
getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_aes128_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
12: getstatic org.bouncycastle.openssl.bc.PEMUtilities.PKCS5_SCHEME_2:Ljava/util/Set;
getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_aes192_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
13: getstatic org.bouncycastle.openssl.bc.PEMUtilities.PKCS5_SCHEME_2:Ljava/util/Set;
getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_aes256_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
14: getstatic org.bouncycastle.openssl.bc.PEMUtilities.KEYSIZES:Ljava/util/Map;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.des_EDE3_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
sipush 192
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
15: getstatic org.bouncycastle.openssl.bc.PEMUtilities.KEYSIZES:Ljava/util/Map;
getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_aes128_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
sipush 128
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
16: getstatic org.bouncycastle.openssl.bc.PEMUtilities.KEYSIZES:Ljava/util/Map;
getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_aes192_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
sipush 192
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
17: getstatic org.bouncycastle.openssl.bc.PEMUtilities.KEYSIZES:Ljava/util/Map;
getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_aes256_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
sipush 256
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
18: getstatic org.bouncycastle.openssl.bc.PEMUtilities.KEYSIZES:Ljava/util/Map;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.pbeWithSHAAnd128BitRC4:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
sipush 128
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
19: getstatic org.bouncycastle.openssl.bc.PEMUtilities.KEYSIZES:Ljava/util/Map;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.pbeWithSHAAnd40BitRC4:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
bipush 40
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
20: getstatic org.bouncycastle.openssl.bc.PEMUtilities.KEYSIZES:Ljava/util/Map;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.pbeWithSHAAnd2_KeyTripleDES_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
sipush 128
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
21: getstatic org.bouncycastle.openssl.bc.PEMUtilities.KEYSIZES:Ljava/util/Map;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.pbeWithSHAAnd3_KeyTripleDES_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
sipush 192
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
22: getstatic org.bouncycastle.openssl.bc.PEMUtilities.KEYSIZES:Ljava/util/Map;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.pbeWithSHAAnd128BitRC2_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
sipush 128
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
23: getstatic org.bouncycastle.openssl.bc.PEMUtilities.KEYSIZES:Ljava/util/Map;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.pbeWithSHAAnd40BitRC2_CBC:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
bipush 40
invokestatic org.bouncycastle.util.Integers.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
24: return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/openssl/bc/PEMUtilities;
static int getKeySize(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: getstatic org.bouncycastle.openssl.bc.PEMUtilities.KEYSIZES:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 2
1: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "no key size for algorithm: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
getstatic org.bouncycastle.openssl.bc.PEMUtilities.KEYSIZES:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 algorithm Ljava/lang/String;
MethodParameters:
Name Flags
algorithm
static boolean isPKCS5Scheme1(org.bouncycastle.asn1.ASN1ObjectIdentifier);
descriptor: (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic org.bouncycastle.openssl.bc.PEMUtilities.PKCS5_SCHEME_1:Ljava/util/Set;
aload 0
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 algOid Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
MethodParameters:
Name Flags
algOid
static boolean isPKCS5Scheme2(org.bouncycastle.asn1.ASN1ObjectIdentifier);
descriptor: (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic org.bouncycastle.openssl.bc.PEMUtilities.PKCS5_SCHEME_2:Ljava/util/Set;
aload 0
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 algOid Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
MethodParameters:
Name Flags
algOid
public static boolean isPKCS12(org.bouncycastle.asn1.ASN1ObjectIdentifier);
descriptor: (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.pkcs_12PbeIds:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 algOid Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
MethodParameters:
Name Flags
algOid
public static org.bouncycastle.crypto.params.KeyParameter generateSecretKeyForPKCS5Scheme2(java.lang.String, char[], byte[], int);
descriptor: (Ljava/lang/String;[C[BI)Lorg/bouncycastle/crypto/params/KeyParameter;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new org.bouncycastle.crypto.generators.PKCS5S2ParametersGenerator
dup
new org.bouncycastle.crypto.digests.SHA1Digest
dup
invokespecial org.bouncycastle.crypto.digests.SHA1Digest.<init>:()V
invokespecial org.bouncycastle.crypto.generators.PKCS5S2ParametersGenerator.<init>:(Lorg/bouncycastle/crypto/Digest;)V
astore 4
start local 4 1: aload 4
aload 1
invokestatic org.bouncycastle.crypto.PBEParametersGenerator.PKCS5PasswordToBytes:([C)[B
aload 2
iload 3
invokevirtual org.bouncycastle.crypto.PBEParametersGenerator.init:([B[BI)V
2: aload 4
aload 0
invokestatic org.bouncycastle.openssl.bc.PEMUtilities.getKeySize:(Ljava/lang/String;)I
invokevirtual org.bouncycastle.crypto.PBEParametersGenerator.generateDerivedParameters:(I)Lorg/bouncycastle/crypto/CipherParameters;
checkcast org.bouncycastle.crypto.params.KeyParameter
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 algorithm Ljava/lang/String;
0 3 1 password [C
0 3 2 salt [B
0 3 3 iterationCount I
1 3 4 paramsGen Lorg/bouncycastle/crypto/PBEParametersGenerator;
MethodParameters:
Name Flags
algorithm
password
salt
iterationCount
static byte[] crypt(boolean, byte[], char[], java.lang.String, byte[]);
descriptor: (Z[B[CLjava/lang/String;[B)[B
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=14, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 4
astore 5
start local 5 1: ldc "CBC"
astore 6
start local 6 2: new org.bouncycastle.crypto.paddings.PKCS7Padding
dup
invokespecial org.bouncycastle.crypto.paddings.PKCS7Padding.<init>:()V
astore 8
start local 8 3: aload 3
ldc "-CFB"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 6
4: ldc "CFB"
astore 6
5: aconst_null
astore 8
6: StackMap locals: int byte[] char[] java.lang.String byte[] byte[] java.lang.String top org.bouncycastle.crypto.paddings.BlockCipherPadding
StackMap stack:
aload 3
ldc "-ECB"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifne 9
7: ldc "DES-EDE"
aload 3
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 9
8: ldc "DES-EDE3"
aload 3
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 11
9: StackMap locals:
StackMap stack:
ldc "ECB"
astore 6
10: aconst_null
astore 5
11: StackMap locals:
StackMap stack:
aload 3
ldc "-OFB"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 14
12: ldc "OFB"
astore 6
13: aconst_null
astore 8
14: StackMap locals:
StackMap stack:
aload 3
ldc "DES-EDE"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 21
15: aload 3
ldc "DES-EDE3"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 16
iconst_0
goto 17
StackMap locals:
StackMap stack:
16: iconst_1
StackMap locals:
StackMap stack: int
17: istore 10
start local 10 18: aload 2
bipush 24
aload 4
iload 10
invokestatic org.bouncycastle.openssl.bc.PEMUtilities.getKey:([CI[BZ)Lorg/bouncycastle/crypto/params/KeyParameter;
astore 9
start local 9 19: new org.bouncycastle.crypto.engines.DESedeEngine
dup
invokespecial org.bouncycastle.crypto.engines.DESedeEngine.<init>:()V
astore 7
end local 10 start local 7 20: goto 58
end local 9 end local 7 21: StackMap locals:
StackMap stack:
aload 3
ldc "DES-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 25
22: aload 2
bipush 8
aload 4
invokestatic org.bouncycastle.openssl.bc.PEMUtilities.getKey:([CI[B)Lorg/bouncycastle/crypto/params/KeyParameter;
astore 9
start local 9 23: new org.bouncycastle.crypto.engines.DESEngine
dup
invokespecial org.bouncycastle.crypto.engines.DESEngine.<init>:()V
astore 7
start local 7 24: goto 58
end local 9 end local 7 25: StackMap locals:
StackMap stack:
aload 3
ldc "BF-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 29
26: aload 2
bipush 16
aload 4
invokestatic org.bouncycastle.openssl.bc.PEMUtilities.getKey:([CI[B)Lorg/bouncycastle/crypto/params/KeyParameter;
astore 9
start local 9 27: new org.bouncycastle.crypto.engines.BlowfishEngine
dup
invokespecial org.bouncycastle.crypto.engines.BlowfishEngine.<init>:()V
astore 7
start local 7 28: goto 58
end local 9 end local 7 29: StackMap locals:
StackMap stack:
aload 3
ldc "RC2-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 39
30: sipush 128
istore 10
start local 10 31: aload 3
ldc "RC2-40-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 34
32: bipush 40
istore 10
33: goto 36
34: StackMap locals: int byte[] char[] java.lang.String byte[] byte[] java.lang.String top org.bouncycastle.crypto.paddings.BlockCipherPadding top int
StackMap stack:
aload 3
ldc "RC2-64-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 36
35: bipush 64
istore 10
36: StackMap locals:
StackMap stack:
new org.bouncycastle.crypto.params.RC2Parameters
dup
aload 2
iload 10
bipush 8
idiv
aload 4
invokestatic org.bouncycastle.openssl.bc.PEMUtilities.getKey:([CI[B)Lorg/bouncycastle/crypto/params/KeyParameter;
invokevirtual org.bouncycastle.crypto.params.KeyParameter.getKey:()[B
iload 10
invokespecial org.bouncycastle.crypto.params.RC2Parameters.<init>:([BI)V
astore 9
start local 9 37: new org.bouncycastle.crypto.engines.RC2Engine
dup
invokespecial org.bouncycastle.crypto.engines.RC2Engine.<init>:()V
astore 7
end local 10 start local 7 38: goto 58
end local 9 end local 7 39: StackMap locals: int byte[] char[] java.lang.String byte[] byte[] java.lang.String top org.bouncycastle.crypto.paddings.BlockCipherPadding
StackMap stack:
aload 3
ldc "AES-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 57
40: aload 4
astore 10
start local 10 41: aload 10
arraylength
bipush 8
if_icmple 44
42: bipush 8
newarray 8
astore 10
43: aload 4
iconst_0
aload 10
iconst_0
bipush 8
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
44: StackMap locals: int byte[] char[] java.lang.String byte[] byte[] java.lang.String top org.bouncycastle.crypto.paddings.BlockCipherPadding top byte[]
StackMap stack:
aload 3
ldc "AES-128-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 47
45: sipush 128
istore 11
start local 11 46: goto 54
end local 11 47: StackMap locals:
StackMap stack:
aload 3
ldc "AES-192-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 50
48: sipush 192
istore 11
start local 11 49: goto 54
end local 11 50: StackMap locals:
StackMap stack:
aload 3
ldc "AES-256-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 53
51: sipush 256
istore 11
start local 11 52: goto 54
end local 11 53: StackMap locals:
StackMap stack:
new org.bouncycastle.openssl.EncryptionException
dup
new java.lang.StringBuilder
dup
ldc "unknown AES encryption with private key: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.bouncycastle.openssl.EncryptionException.<init>:(Ljava/lang/String;)V
athrow
start local 11 54: StackMap locals: int
StackMap stack:
aload 2
iload 11
bipush 8
idiv
aload 10
invokestatic org.bouncycastle.openssl.bc.PEMUtilities.getKey:([CI[B)Lorg/bouncycastle/crypto/params/KeyParameter;
astore 9
start local 9 55: new org.bouncycastle.crypto.engines.AESEngine
dup
invokespecial org.bouncycastle.crypto.engines.AESEngine.<init>:()V
astore 7
end local 11 end local 10 start local 7 56: goto 58
end local 9 end local 7 57: StackMap locals: int byte[] char[] java.lang.String byte[] byte[] java.lang.String top org.bouncycastle.crypto.paddings.BlockCipherPadding
StackMap stack:
new org.bouncycastle.openssl.EncryptionException
dup
new java.lang.StringBuilder
dup
ldc "unknown encryption with private key: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.bouncycastle.openssl.EncryptionException.<init>:(Ljava/lang/String;)V
athrow
start local 7 start local 9 58: StackMap locals: int byte[] char[] java.lang.String byte[] byte[] java.lang.String org.bouncycastle.crypto.BlockCipher org.bouncycastle.crypto.paddings.BlockCipherPadding org.bouncycastle.crypto.params.KeyParameter
StackMap stack:
aload 6
ldc "CBC"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 61
59: new org.bouncycastle.crypto.modes.CBCBlockCipher
dup
aload 7
invokespecial org.bouncycastle.crypto.modes.CBCBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
astore 7
60: goto 66
61: StackMap locals:
StackMap stack:
aload 6
ldc "CFB"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 64
62: new org.bouncycastle.crypto.modes.CFBBlockCipher
dup
aload 7
aload 7
invokeinterface org.bouncycastle.crypto.BlockCipher.getBlockSize:()I
bipush 8
imul
invokespecial org.bouncycastle.crypto.modes.CFBBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;I)V
astore 7
63: goto 66
64: StackMap locals:
StackMap stack:
aload 6
ldc "OFB"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 66
65: new org.bouncycastle.crypto.modes.OFBBlockCipher
dup
aload 7
aload 7
invokeinterface org.bouncycastle.crypto.BlockCipher.getBlockSize:()I
bipush 8
imul
invokespecial org.bouncycastle.crypto.modes.OFBBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;I)V
astore 7
66: StackMap locals:
StackMap stack:
aload 8
ifnonnull 69
67: new org.bouncycastle.crypto.BufferedBlockCipher
dup
aload 7
invokespecial org.bouncycastle.crypto.BufferedBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
astore 10
start local 10 68: goto 70
end local 10 69: StackMap locals:
StackMap stack:
new org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher
dup
aload 7
aload 8
invokespecial org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;Lorg/bouncycastle/crypto/paddings/BlockCipherPadding;)V
astore 10
start local 10 70: StackMap locals: org.bouncycastle.crypto.BufferedBlockCipher
StackMap stack:
aload 5
ifnonnull 73
71: aload 10
iload 0
aload 9
invokevirtual org.bouncycastle.crypto.BufferedBlockCipher.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
72: goto 74
73: StackMap locals:
StackMap stack:
aload 10
iload 0
new org.bouncycastle.crypto.params.ParametersWithIV
dup
aload 9
aload 5
invokespecial org.bouncycastle.crypto.params.ParametersWithIV.<init>:(Lorg/bouncycastle/crypto/CipherParameters;[B)V
invokevirtual org.bouncycastle.crypto.BufferedBlockCipher.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
74: StackMap locals:
StackMap stack:
aload 10
aload 1
arraylength
invokevirtual org.bouncycastle.crypto.BufferedBlockCipher.getOutputSize:(I)I
newarray 8
astore 11
start local 11 75: aload 10
aload 1
iconst_0
aload 1
arraylength
aload 11
iconst_0
invokevirtual org.bouncycastle.crypto.BufferedBlockCipher.processBytes:([BII[BI)I
istore 12
start local 12 76: iload 12
aload 10
aload 11
iload 12
invokevirtual org.bouncycastle.crypto.BufferedBlockCipher.doFinal:([BI)I
iadd
istore 12
77: iload 12
aload 11
arraylength
if_icmpne 80
78: aload 11
79: areturn
80: StackMap locals: byte[] int
StackMap stack:
iload 12
newarray 8
astore 13
start local 13 81: aload 11
iconst_0
aload 13
iconst_0
iload 12
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
82: aload 13
83: areturn
end local 13 end local 12 end local 11 end local 10 84: StackMap locals: int byte[] char[] java.lang.String byte[] byte[] java.lang.String org.bouncycastle.crypto.BlockCipher org.bouncycastle.crypto.paddings.BlockCipherPadding org.bouncycastle.crypto.params.KeyParameter
StackMap stack: java.lang.Exception
astore 10
start local 10 85: new org.bouncycastle.openssl.EncryptionException
dup
ldc "exception using cipher - please check password and data."
aload 10
invokespecial org.bouncycastle.openssl.EncryptionException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 10 end local 9 end local 8 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 86 0 encrypt Z
0 86 1 bytes [B
0 86 2 password [C
0 86 3 dekAlgName Ljava/lang/String;
0 86 4 iv [B
1 86 5 ivValue [B
2 86 6 blockMode Ljava/lang/String;
20 21 7 engine Lorg/bouncycastle/crypto/BlockCipher;
24 25 7 engine Lorg/bouncycastle/crypto/BlockCipher;
28 29 7 engine Lorg/bouncycastle/crypto/BlockCipher;
38 39 7 engine Lorg/bouncycastle/crypto/BlockCipher;
56 57 7 engine Lorg/bouncycastle/crypto/BlockCipher;
58 86 7 engine Lorg/bouncycastle/crypto/BlockCipher;
3 86 8 padding Lorg/bouncycastle/crypto/paddings/BlockCipherPadding;
19 21 9 sKey Lorg/bouncycastle/crypto/params/KeyParameter;
23 25 9 sKey Lorg/bouncycastle/crypto/params/KeyParameter;
27 29 9 sKey Lorg/bouncycastle/crypto/params/KeyParameter;
37 39 9 sKey Lorg/bouncycastle/crypto/params/KeyParameter;
55 57 9 sKey Lorg/bouncycastle/crypto/params/KeyParameter;
58 86 9 sKey Lorg/bouncycastle/crypto/params/KeyParameter;
18 20 10 des2 Z
31 38 10 keyBits I
41 56 10 salt [B
46 47 11 keyBits I
49 50 11 keyBits I
52 53 11 keyBits I
54 56 11 keyBits I
68 69 10 c Lorg/bouncycastle/crypto/BufferedBlockCipher;
70 84 10 c Lorg/bouncycastle/crypto/BufferedBlockCipher;
75 84 11 out [B
76 84 12 procLen I
81 84 13 rv [B
85 86 10 e Ljava/lang/Exception;
Exception table:
from to target type
66 79 84 Class java.lang.Exception
80 83 84 Class java.lang.Exception
Exceptions:
throws org.bouncycastle.openssl.PEMException
MethodParameters:
Name Flags
encrypt
bytes
password
dekAlgName
iv
private static org.bouncycastle.crypto.params.KeyParameter getKey(char[], int, byte[]);
descriptor: ([CI[B)Lorg/bouncycastle/crypto/params/KeyParameter;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
aload 2
iconst_0
invokestatic org.bouncycastle.openssl.bc.PEMUtilities.getKey:([CI[BZ)Lorg/bouncycastle/crypto/params/KeyParameter;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 password [C
0 1 1 keyLength I
0 1 2 salt [B
Exceptions:
throws org.bouncycastle.openssl.PEMException
MethodParameters:
Name Flags
password
keyLength
salt
private static org.bouncycastle.crypto.params.KeyParameter getKey(char[], int, byte[], boolean);
descriptor: ([CI[BZ)Lorg/bouncycastle/crypto/params/KeyParameter;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new org.bouncycastle.crypto.generators.OpenSSLPBEParametersGenerator
dup
invokespecial org.bouncycastle.crypto.generators.OpenSSLPBEParametersGenerator.<init>:()V
astore 4
start local 4 1: aload 4
aload 0
invokestatic org.bouncycastle.crypto.PBEParametersGenerator.PKCS5PasswordToBytes:([C)[B
aload 2
iconst_1
invokevirtual org.bouncycastle.crypto.PBEParametersGenerator.init:([B[BI)V
2: aload 4
iload 1
bipush 8
imul
invokevirtual org.bouncycastle.crypto.PBEParametersGenerator.generateDerivedParameters:(I)Lorg/bouncycastle/crypto/CipherParameters;
checkcast org.bouncycastle.crypto.params.KeyParameter
astore 5
start local 5 3: iload 3
ifeq 7
aload 5
invokevirtual org.bouncycastle.crypto.params.KeyParameter.getKey:()[B
arraylength
bipush 24
if_icmpne 7
4: aload 5
invokevirtual org.bouncycastle.crypto.params.KeyParameter.getKey:()[B
astore 6
start local 6 5: aload 6
iconst_0
aload 6
bipush 16
bipush 8
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
6: new org.bouncycastle.crypto.params.KeyParameter
dup
aload 6
invokespecial org.bouncycastle.crypto.params.KeyParameter.<init>:([B)V
areturn
end local 6 7: StackMap locals: org.bouncycastle.crypto.PBEParametersGenerator org.bouncycastle.crypto.params.KeyParameter
StackMap stack:
aload 5
areturn
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 8 0 password [C
0 8 1 keyLength I
0 8 2 salt [B
0 8 3 des2 Z
1 8 4 paramsGen Lorg/bouncycastle/crypto/PBEParametersGenerator;
3 8 5 kp Lorg/bouncycastle/crypto/params/KeyParameter;
5 7 6 key [B
Exceptions:
throws org.bouncycastle.openssl.PEMException
MethodParameters:
Name Flags
password
keyLength
salt
des2
}
SourceFile: "PEMUtilities.java"