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 37
            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 38
            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 40
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 42
            aload 3 /* ivGenerator */
            invokeinterface org.springframework.security.crypto.keygen.BytesKeyGenerator.getKeyLength:()I
            bipush 16
            if_icmpeq 3
         2: .line 43
            new java.lang.IllegalArgumentException
            dup
            ldc "ivGenerator key length != block size 16"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 45
      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 46
            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 48
            aload 1 /* password */
            invokevirtual java.lang.String.toCharArray:()[C
            invokestatic org.bouncycastle.crypto.PBEParametersGenerator.PKCS5PasswordToUTF8Bytes:([C)[B
         6: .line 47
            astore 5 /* pkcs12PasswordBytes */
        start local 5 // byte[] pkcs12PasswordBytes
         7: .line 49
            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
         8: .line 50
            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;
         9: .line 51
            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   10     0                 this  Lorg/springframework/security/crypto/encrypt/BouncyCastleAesBytesEncryptor;
            0   10     1             password  Ljava/lang/String;
            0   10     2                 salt  Ljava/lang/CharSequence;
            0   10     3          ivGenerator  Lorg/springframework/security/crypto/keygen/BytesKeyGenerator;
            5   10     4         keyGenerator  Lorg/bouncycastle/crypto/PBEParametersGenerator;
            7   10     5  pkcs12PasswordBytes  [B
    MethodParameters:
             Name  Flags
      password     
      salt         
      ivGenerator  
}
SourceFile: "BouncyCastleAesBytesEncryptor.java"