final class org.bouncycastle.openssl.PEMUtilities
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.bouncycastle.openssl.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=5, locals=0, args_size=0
0: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putstatic org.bouncycastle.openssl.PEMUtilities.KEYSIZES:Ljava/util/Map;
1: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putstatic org.bouncycastle.openssl.PEMUtilities.PKCS5_SCHEME_1:Ljava/util/Set;
2: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putstatic org.bouncycastle.openssl.PEMUtilities.PKCS5_SCHEME_2:Ljava/util/Set;
3: getstatic org.bouncycastle.openssl.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.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.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.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.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.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.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.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.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.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.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.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;
new java.lang.Integer
dup
sipush 192
invokespecial java.lang.Integer.<init>:(I)V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
15: getstatic org.bouncycastle.openssl.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;
new java.lang.Integer
dup
sipush 128
invokespecial java.lang.Integer.<init>:(I)V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
16: getstatic org.bouncycastle.openssl.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;
new java.lang.Integer
dup
sipush 192
invokespecial java.lang.Integer.<init>:(I)V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
17: getstatic org.bouncycastle.openssl.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;
new java.lang.Integer
dup
sipush 256
invokespecial java.lang.Integer.<init>:(I)V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
18: 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/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.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.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.DERObjectIdentifier);
descriptor: (Lorg/bouncycastle/asn1/DERObjectIdentifier;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic org.bouncycastle.openssl.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/DERObjectIdentifier;
MethodParameters:
Name Flags
algOid
static boolean isPKCS5Scheme2(org.bouncycastle.asn1.DERObjectIdentifier);
descriptor: (Lorg/bouncycastle/asn1/DERObjectIdentifier;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic org.bouncycastle.openssl.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/DERObjectIdentifier;
MethodParameters:
Name Flags
algOid
static boolean isPKCS12(org.bouncycastle.asn1.DERObjectIdentifier);
descriptor: (Lorg/bouncycastle/asn1/DERObjectIdentifier;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.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/DERObjectIdentifier;
MethodParameters:
Name Flags
algOid
static javax.crypto.SecretKey generateSecretKeyForPKCS5Scheme2(java.lang.String, char[], byte[], int);
descriptor: (Ljava/lang/String;[C[BI)Ljavax/crypto/SecretKey;
flags: (0x0008) 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
invokespecial org.bouncycastle.crypto.generators.PKCS5S2ParametersGenerator.<init>:()V
astore 4
start local 4 1: aload 4
2: aload 1
invokestatic org.bouncycastle.crypto.PBEParametersGenerator.PKCS5PasswordToBytes:([C)[B
3: aload 2
4: iload 3
5: invokevirtual org.bouncycastle.crypto.PBEParametersGenerator.init:([B[BI)V
6: new javax.crypto.spec.SecretKeySpec
dup
aload 4
aload 0
invokestatic org.bouncycastle.openssl.PEMUtilities.getKeySize:(Ljava/lang/String;)I
invokevirtual org.bouncycastle.crypto.PBEParametersGenerator.generateDerivedParameters:(I)Lorg/bouncycastle/crypto/CipherParameters;
checkcast org.bouncycastle.crypto.params.KeyParameter
invokevirtual org.bouncycastle.crypto.params.KeyParameter.getKey:()[B
aload 0
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 algorithm Ljava/lang/String;
0 7 1 password [C
0 7 2 salt [B
0 7 3 iterationCount I
1 7 4 generator Lorg/bouncycastle/crypto/PBEParametersGenerator;
MethodParameters:
Name Flags
algorithm
password
salt
iterationCount
static byte[] crypt(boolean, java.lang.String, byte[], char[], java.lang.String, byte[]);
descriptor: (ZLjava/lang/String;[B[CLjava/lang/String;[B)[B
flags: (0x0008) ACC_STATIC
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: aconst_null
astore 6
start local 6 1: aload 1
ifnull 5
2: aload 1
invokestatic java.security.Security.getProvider:(Ljava/lang/String;)Ljava/security/Provider;
astore 6
3: aload 6
ifnonnull 5
4: new org.bouncycastle.openssl.EncryptionException
dup
new java.lang.StringBuilder
dup
ldc "cannot find provider: "
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 org.bouncycastle.openssl.EncryptionException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: java.security.Provider
StackMap stack:
iload 0
aload 6
aload 2
aload 3
aload 4
aload 5
invokestatic org.bouncycastle.openssl.PEMUtilities.crypt:(ZLjava/security/Provider;[B[CLjava/lang/String;[B)[B
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 6 0 encrypt Z
0 6 1 provider Ljava/lang/String;
0 6 2 bytes [B
0 6 3 password [C
0 6 4 dekAlgName Ljava/lang/String;
0 6 5 iv [B
1 6 6 prov Ljava/security/Provider;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
encrypt
provider
bytes
password
dekAlgName
iv
static byte[] crypt(boolean, java.security.Provider, byte[], char[], java.lang.String, byte[]);
descriptor: (ZLjava/security/Provider;[B[CLjava/lang/String;[B)[B
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=14, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: new javax.crypto.spec.IvParameterSpec
dup
aload 5
invokespecial javax.crypto.spec.IvParameterSpec.<init>:([B)V
astore 6
start local 6 1: ldc "CBC"
astore 8
start local 8 2: ldc "PKCS5Padding"
astore 9
start local 9 3: aload 4
ldc "-CFB"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 6
4: ldc "CFB"
astore 8
5: ldc "NoPadding"
astore 9
6: StackMap locals: int java.security.Provider byte[] char[] java.lang.String byte[] java.security.spec.AlgorithmParameterSpec top java.lang.String java.lang.String
StackMap stack:
aload 4
ldc "-ECB"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifne 9
7: ldc "DES-EDE"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 9
8: ldc "DES-EDE3"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 11
9: StackMap locals:
StackMap stack:
ldc "ECB"
astore 8
10: aconst_null
astore 6
11: StackMap locals:
StackMap stack:
aload 4
ldc "-OFB"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 14
12: ldc "OFB"
astore 8
13: ldc "NoPadding"
astore 9
14: StackMap locals:
StackMap stack:
aload 4
ldc "DES-EDE"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 21
15: ldc "DESede"
astore 7
start local 7 16: aload 4
ldc "DES-EDE3"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 17
iconst_0
goto 18
StackMap locals: int java.security.Provider byte[] char[] java.lang.String byte[] java.security.spec.AlgorithmParameterSpec java.lang.String java.lang.String java.lang.String
StackMap stack:
17: iconst_1
StackMap locals:
StackMap stack: int
18: istore 11
start local 11 19: aload 3
aload 7
bipush 24
aload 5
iload 11
invokestatic org.bouncycastle.openssl.PEMUtilities.getKey:([CLjava/lang/String;I[BZ)Ljavax/crypto/SecretKey;
astore 10
end local 11 start local 10 20: goto 62
end local 10 end local 7 21: StackMap locals: int java.security.Provider byte[] char[] java.lang.String byte[] java.security.spec.AlgorithmParameterSpec top java.lang.String java.lang.String
StackMap stack:
aload 4
ldc "DES-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 25
22: ldc "DES"
astore 7
start local 7 23: aload 3
aload 7
bipush 8
aload 5
invokestatic org.bouncycastle.openssl.PEMUtilities.getKey:([CLjava/lang/String;I[B)Ljavax/crypto/SecretKey;
astore 10
start local 10 24: goto 62
end local 10 end local 7 25: StackMap locals:
StackMap stack:
aload 4
ldc "BF-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 29
26: ldc "Blowfish"
astore 7
start local 7 27: aload 3
aload 7
bipush 16
aload 5
invokestatic org.bouncycastle.openssl.PEMUtilities.getKey:([CLjava/lang/String;I[B)Ljavax/crypto/SecretKey;
astore 10
start local 10 28: goto 62
end local 10 end local 7 29: StackMap locals:
StackMap stack:
aload 4
ldc "RC2-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 43
30: ldc "RC2"
astore 7
start local 7 31: sipush 128
istore 11
start local 11 32: aload 4
ldc "RC2-40-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 35
33: bipush 40
istore 11
34: goto 37
35: StackMap locals: int java.security.Provider byte[] char[] java.lang.String byte[] java.security.spec.AlgorithmParameterSpec java.lang.String java.lang.String java.lang.String top int
StackMap stack:
aload 4
ldc "RC2-64-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 37
36: bipush 64
istore 11
37: StackMap locals:
StackMap stack:
aload 3
aload 7
iload 11
bipush 8
idiv
aload 5
invokestatic org.bouncycastle.openssl.PEMUtilities.getKey:([CLjava/lang/String;I[B)Ljavax/crypto/SecretKey;
astore 10
start local 10 38: aload 6
ifnonnull 41
39: new javax.crypto.spec.RC2ParameterSpec
dup
iload 11
invokespecial javax.crypto.spec.RC2ParameterSpec.<init>:(I)V
astore 6
40: goto 62
41: StackMap locals: int java.security.Provider byte[] char[] java.lang.String byte[] java.security.spec.AlgorithmParameterSpec java.lang.String java.lang.String java.lang.String java.security.Key int
StackMap stack:
new javax.crypto.spec.RC2ParameterSpec
dup
iload 11
aload 5
invokespecial javax.crypto.spec.RC2ParameterSpec.<init>:(I[B)V
astore 6
end local 11 42: goto 62
end local 10 end local 7 43: StackMap locals: int java.security.Provider byte[] char[] java.lang.String byte[] java.security.spec.AlgorithmParameterSpec top java.lang.String java.lang.String
StackMap stack:
aload 4
ldc "AES-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 61
44: ldc "AES"
astore 7
start local 7 45: aload 5
astore 11
start local 11 46: aload 11
arraylength
bipush 8
if_icmple 49
47: bipush 8
newarray 8
astore 11
48: aload 5
iconst_0
aload 11
iconst_0
bipush 8
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
49: StackMap locals: int java.security.Provider byte[] char[] java.lang.String byte[] java.security.spec.AlgorithmParameterSpec java.lang.String java.lang.String java.lang.String top byte[]
StackMap stack:
aload 4
ldc "AES-128-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 52
50: sipush 128
istore 12
start local 12 51: goto 59
end local 12 52: StackMap locals:
StackMap stack:
aload 4
ldc "AES-192-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 55
53: sipush 192
istore 12
start local 12 54: goto 59
end local 12 55: StackMap locals:
StackMap stack:
aload 4
ldc "AES-256-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 58
56: sipush 256
istore 12
start local 12 57: goto 59
end local 12 58: StackMap locals:
StackMap stack:
new org.bouncycastle.openssl.EncryptionException
dup
ldc "unknown AES encryption with private key"
invokespecial org.bouncycastle.openssl.EncryptionException.<init>:(Ljava/lang/String;)V
athrow
start local 12 59: StackMap locals: int
StackMap stack:
aload 3
ldc "AES"
iload 12
bipush 8
idiv
aload 11
invokestatic org.bouncycastle.openssl.PEMUtilities.getKey:([CLjava/lang/String;I[B)Ljavax/crypto/SecretKey;
astore 10
end local 12 end local 11 start local 10 60: goto 62
end local 10 end local 7 61: StackMap locals: int java.security.Provider byte[] char[] java.lang.String byte[] java.security.spec.AlgorithmParameterSpec top java.lang.String java.lang.String
StackMap stack:
new org.bouncycastle.openssl.EncryptionException
dup
ldc "unknown encryption with private key"
invokespecial org.bouncycastle.openssl.EncryptionException.<init>:(Ljava/lang/String;)V
athrow
start local 7 start local 10 62: StackMap locals: int java.security.Provider byte[] char[] java.lang.String byte[] java.security.spec.AlgorithmParameterSpec java.lang.String java.lang.String java.lang.String java.security.Key
StackMap stack:
new java.lang.StringBuilder
dup
aload 7
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 11
start local 11 63: aload 11
aload 1
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/Cipher;
astore 12
start local 12 64: iload 0
ifeq 65
iconst_1
goto 66
StackMap locals: java.lang.String javax.crypto.Cipher
StackMap stack:
65: iconst_2
StackMap locals:
StackMap stack: int
66: istore 13
start local 13 67: aload 6
ifnonnull 70
68: aload 12
iload 13
aload 10
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
69: goto 71
70: StackMap locals: int
StackMap stack:
aload 12
iload 13
aload 10
aload 6
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
71: StackMap locals:
StackMap stack:
aload 12
aload 2
invokevirtual javax.crypto.Cipher.doFinal:([B)[B
72: areturn
end local 13 end local 12 73: StackMap locals: int java.security.Provider byte[] char[] java.lang.String byte[] java.security.spec.AlgorithmParameterSpec java.lang.String java.lang.String java.lang.String java.security.Key java.lang.String
StackMap stack: java.lang.Exception
astore 12
start local 12 74: new org.bouncycastle.openssl.EncryptionException
dup
ldc "exception using cipher - please check password and data."
aload 12
invokespecial org.bouncycastle.openssl.EncryptionException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 12 end local 11 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 75 0 encrypt Z
0 75 1 provider Ljava/security/Provider;
0 75 2 bytes [B
0 75 3 password [C
0 75 4 dekAlgName Ljava/lang/String;
0 75 5 iv [B
1 75 6 paramSpec Ljava/security/spec/AlgorithmParameterSpec;
16 21 7 alg Ljava/lang/String;
23 25 7 alg Ljava/lang/String;
27 29 7 alg Ljava/lang/String;
31 43 7 alg Ljava/lang/String;
45 61 7 alg Ljava/lang/String;
62 75 7 alg Ljava/lang/String;
2 75 8 blockMode Ljava/lang/String;
3 75 9 padding Ljava/lang/String;
20 21 10 sKey Ljava/security/Key;
24 25 10 sKey Ljava/security/Key;
28 29 10 sKey Ljava/security/Key;
38 43 10 sKey Ljava/security/Key;
60 61 10 sKey Ljava/security/Key;
62 75 10 sKey Ljava/security/Key;
19 20 11 des2 Z
32 42 11 keyBits I
46 60 11 salt [B
51 52 12 keyBits I
54 55 12 keyBits I
57 58 12 keyBits I
59 60 12 keyBits I
63 75 11 transformation Ljava/lang/String;
64 73 12 c Ljavax/crypto/Cipher;
67 73 13 mode I
74 75 12 e Ljava/lang/Exception;
Exception table:
from to target type
63 72 73 Class java.lang.Exception
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
encrypt
provider
bytes
password
dekAlgName
iv
private static javax.crypto.SecretKey getKey(char[], java.lang.String, int, byte[]);
descriptor: ([CLjava/lang/String;I[B)Ljavax/crypto/SecretKey;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
iload 2
aload 3
iconst_0
invokestatic org.bouncycastle.openssl.PEMUtilities.getKey:([CLjava/lang/String;I[BZ)Ljavax/crypto/SecretKey;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 password [C
0 1 1 algorithm Ljava/lang/String;
0 1 2 keyLength I
0 1 3 salt [B
MethodParameters:
Name Flags
password
algorithm
keyLength
salt
private static javax.crypto.SecretKey getKey(char[], java.lang.String, int, byte[], boolean);
descriptor: ([CLjava/lang/String;I[BZ)Ljavax/crypto/SecretKey;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: new org.bouncycastle.crypto.generators.OpenSSLPBEParametersGenerator
dup
invokespecial org.bouncycastle.crypto.generators.OpenSSLPBEParametersGenerator.<init>:()V
astore 5
start local 5 1: aload 5
aload 0
invokestatic org.bouncycastle.crypto.PBEParametersGenerator.PKCS5PasswordToBytes:([C)[B
aload 3
invokevirtual org.bouncycastle.crypto.generators.OpenSSLPBEParametersGenerator.init:([B[B)V
2: aload 5
iload 2
bipush 8
imul
invokevirtual org.bouncycastle.crypto.generators.OpenSSLPBEParametersGenerator.generateDerivedParameters:(I)Lorg/bouncycastle/crypto/CipherParameters;
checkcast org.bouncycastle.crypto.params.KeyParameter
astore 6
start local 6 3: aload 6
invokevirtual org.bouncycastle.crypto.params.KeyParameter.getKey:()[B
astore 7
start local 7 4: iload 4
ifeq 6
aload 7
arraylength
bipush 24
if_icmplt 6
5: aload 7
iconst_0
aload 7
bipush 16
bipush 8
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
6: StackMap locals: org.bouncycastle.crypto.generators.OpenSSLPBEParametersGenerator org.bouncycastle.crypto.params.KeyParameter byte[]
StackMap stack:
new javax.crypto.spec.SecretKeySpec
dup
aload 7
aload 1
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
areturn
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 7 0 password [C
0 7 1 algorithm Ljava/lang/String;
0 7 2 keyLength I
0 7 3 salt [B
0 7 4 des2 Z
1 7 5 pGen Lorg/bouncycastle/crypto/generators/OpenSSLPBEParametersGenerator;
3 7 6 keyParam Lorg/bouncycastle/crypto/params/KeyParameter;
4 7 7 key [B
MethodParameters:
Name Flags
password
algorithm
keyLength
salt
des2
}
SourceFile: "PEMUtilities.java"