abstract class org.springframework.security.crypto.encrypt.BouncyCastleAesBytesEncryptor implements org.springframework.security.crypto.encrypt.BytesEncryptor
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: org.springframework.security.crypto.encrypt.BouncyCastleAesBytesEncryptor
super_class: java.lang.Object
{
final org.bouncycastle.crypto.params.KeyParameter secretKey;
descriptor: Lorg/bouncycastle/crypto/params/KeyParameter;
flags: (0x0010) ACC_FINAL
final org.springframework.security.crypto.keygen.BytesKeyGenerator ivGenerator;
descriptor: Lorg/springframework/security/crypto/keygen/BytesKeyGenerator;
flags: (0x0010) ACC_FINAL
void <init>(java.lang.String, java.lang.CharSequence);
descriptor: (Ljava/lang/String;Ljava/lang/CharSequence;)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=3
start local 0 // org.springframework.security.crypto.encrypt.BouncyCastleAesBytesEncryptor this
start local 1 // java.lang.String password
start local 2 // java.lang.CharSequence salt
0: .line 40
aload 0 /* this */
aload 1 /* password */
aload 2 /* salt */
bipush 16
invokestatic org.springframework.security.crypto.keygen.KeyGenerators.secureRandom:(I)Lorg/springframework/security/crypto/keygen/BytesKeyGenerator;
invokespecial org.springframework.security.crypto.encrypt.BouncyCastleAesBytesEncryptor.<init>:(Ljava/lang/String;Ljava/lang/CharSequence;Lorg/springframework/security/crypto/keygen/BytesKeyGenerator;)V
1: .line 41
return
end local 2 // java.lang.CharSequence salt
end local 1 // java.lang.String password
end local 0 // org.springframework.security.crypto.encrypt.BouncyCastleAesBytesEncryptor this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/security/crypto/encrypt/BouncyCastleAesBytesEncryptor;
0 2 1 password Ljava/lang/String;
0 2 2 salt Ljava/lang/CharSequence;
MethodParameters:
Name Flags
password
salt
void <init>(java.lang.String, java.lang.CharSequence, org.springframework.security.crypto.keygen.BytesKeyGenerator);
descriptor: (Ljava/lang/String;Ljava/lang/CharSequence;Lorg/springframework/security/crypto/keygen/BytesKeyGenerator;)V
flags: (0x0000)
Code:
stack=4, locals=6, args_size=4
start local 0 // org.springframework.security.crypto.encrypt.BouncyCastleAesBytesEncryptor this
start local 1 // java.lang.String password
start local 2 // java.lang.CharSequence salt
start local 3 // org.springframework.security.crypto.keygen.BytesKeyGenerator ivGenerator
0: .line 43
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 44
aload 3 /* ivGenerator */
invokeinterface org.springframework.security.crypto.keygen.BytesKeyGenerator.getKeyLength:()I
bipush 16
if_icmpeq 3
2: .line 45
new java.lang.IllegalArgumentException
dup
ldc "ivGenerator key length != block size 16"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: .line 47
StackMap locals: org.springframework.security.crypto.encrypt.BouncyCastleAesBytesEncryptor java.lang.String java.lang.CharSequence org.springframework.security.crypto.keygen.BytesKeyGenerator
StackMap stack:
aload 0 /* this */
aload 3 /* ivGenerator */
putfield org.springframework.security.crypto.encrypt.BouncyCastleAesBytesEncryptor.ivGenerator:Lorg/springframework/security/crypto/keygen/BytesKeyGenerator;
4: .line 48
new org.bouncycastle.crypto.generators.PKCS5S2ParametersGenerator
dup
invokespecial org.bouncycastle.crypto.generators.PKCS5S2ParametersGenerator.<init>:()V
astore 4 /* keyGenerator */
start local 4 // org.bouncycastle.crypto.PBEParametersGenerator keyGenerator
5: .line 49
aload 1 /* password */
invokevirtual java.lang.String.toCharArray:()[C
invokestatic org.bouncycastle.crypto.PBEParametersGenerator.PKCS5PasswordToUTF8Bytes:([C)[B
astore 5 /* pkcs12PasswordBytes */
start local 5 // byte[] pkcs12PasswordBytes
6: .line 50
aload 4 /* keyGenerator */
aload 5 /* pkcs12PasswordBytes */
aload 2 /* salt */
invokestatic org.springframework.security.crypto.codec.Hex.decode:(Ljava/lang/CharSequence;)[B
sipush 1024
invokevirtual org.bouncycastle.crypto.PBEParametersGenerator.init:([B[BI)V
7: .line 51
aload 0 /* this */
aload 4 /* keyGenerator */
sipush 256
invokevirtual org.bouncycastle.crypto.PBEParametersGenerator.generateDerivedParameters:(I)Lorg/bouncycastle/crypto/CipherParameters;
checkcast org.bouncycastle.crypto.params.KeyParameter
putfield org.springframework.security.crypto.encrypt.BouncyCastleAesBytesEncryptor.secretKey:Lorg/bouncycastle/crypto/params/KeyParameter;
8: .line 52
return
end local 5 // byte[] pkcs12PasswordBytes
end local 4 // org.bouncycastle.crypto.PBEParametersGenerator keyGenerator
end local 3 // org.springframework.security.crypto.keygen.BytesKeyGenerator ivGenerator
end local 2 // java.lang.CharSequence salt
end local 1 // java.lang.String password
end local 0 // org.springframework.security.crypto.encrypt.BouncyCastleAesBytesEncryptor this
LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/springframework/security/crypto/encrypt/BouncyCastleAesBytesEncryptor;
0 9 1 password Ljava/lang/String;
0 9 2 salt Ljava/lang/CharSequence;
0 9 3 ivGenerator Lorg/springframework/security/crypto/keygen/BytesKeyGenerator;
5 9 4 keyGenerator Lorg/bouncycastle/crypto/PBEParametersGenerator;
6 9 5 pkcs12PasswordBytes [B
MethodParameters:
Name Flags
password
salt
ivGenerator
}
SourceFile: "BouncyCastleAesBytesEncryptor.java"