public class org.springframework.security.crypto.encrypt.BouncyCastleAesCbcBytesEncryptor extends org.springframework.security.crypto.encrypt.BouncyCastleAesBytesEncryptor
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.security.crypto.encrypt.BouncyCastleAesCbcBytesEncryptor
super_class: org.springframework.security.crypto.encrypt.BouncyCastleAesBytesEncryptor
{
public void <init>(java.lang.String, java.lang.CharSequence);
descriptor: (Ljava/lang/String;Ljava/lang/CharSequence;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokespecial org.springframework.security.crypto.encrypt.BouncyCastleAesBytesEncryptor.<init>:(Ljava/lang/String;Ljava/lang/CharSequence;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/security/crypto/encrypt/BouncyCastleAesCbcBytesEncryptor;
0 2 1 password Ljava/lang/String;
0 2 2 salt Ljava/lang/CharSequence;
MethodParameters:
Name Flags
password
salt
public 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: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aload 3
invokespecial org.springframework.security.crypto.encrypt.BouncyCastleAesBytesEncryptor.<init>:(Ljava/lang/String;Ljava/lang/CharSequence;Lorg/springframework/security/crypto/keygen/BytesKeyGenerator;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/security/crypto/encrypt/BouncyCastleAesCbcBytesEncryptor;
0 2 1 password Ljava/lang/String;
0 2 2 salt Ljava/lang/CharSequence;
0 2 3 ivGenerator Lorg/springframework/security/crypto/keygen/BytesKeyGenerator;
MethodParameters:
Name Flags
password
salt
ivGenerator
public byte[] encrypt(byte[]);
descriptor: ([B)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.security.crypto.encrypt.BouncyCastleAesCbcBytesEncryptor.ivGenerator:Lorg/springframework/security/crypto/keygen/BytesKeyGenerator;
invokeinterface org.springframework.security.crypto.keygen.BytesKeyGenerator.generateKey:()[B
astore 2
start local 2 1: new org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher
dup
2: new org.bouncycastle.crypto.modes.CBCBlockCipher
dup
new org.bouncycastle.crypto.engines.AESFastEngine
dup
invokespecial org.bouncycastle.crypto.engines.AESFastEngine.<init>:()V
invokespecial org.bouncycastle.crypto.modes.CBCBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
new org.bouncycastle.crypto.paddings.PKCS7Padding
dup
invokespecial org.bouncycastle.crypto.paddings.PKCS7Padding.<init>:()V
3: invokespecial org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;Lorg/bouncycastle/crypto/paddings/BlockCipherPadding;)V
astore 3
start local 3 4: aload 3
iconst_1
new org.bouncycastle.crypto.params.ParametersWithIV
dup
aload 0
getfield org.springframework.security.crypto.encrypt.BouncyCastleAesCbcBytesEncryptor.secretKey:Lorg/bouncycastle/crypto/params/KeyParameter;
aload 2
invokespecial org.bouncycastle.crypto.params.ParametersWithIV.<init>:(Lorg/bouncycastle/crypto/CipherParameters;[B)V
invokevirtual org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
5: aload 0
aload 3
aload 1
invokevirtual org.springframework.security.crypto.encrypt.BouncyCastleAesCbcBytesEncryptor.process:(Lorg/bouncycastle/crypto/BufferedBlockCipher;[B)[B
astore 4
start local 4 6: aload 2
ifnull 7
iconst_2
anewarray byte[]
dup
iconst_0
aload 2
aastore
dup
iconst_1
aload 4
aastore
invokestatic org.springframework.security.crypto.util.EncodingUtils.concatenate:([[B)[B
goto 8
StackMap locals: byte[] org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher byte[]
StackMap stack:
7: aload 4
StackMap locals:
StackMap stack: byte[]
8: areturn
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/springframework/security/crypto/encrypt/BouncyCastleAesCbcBytesEncryptor;
0 9 1 bytes [B
1 9 2 iv [B
4 9 3 blockCipher Lorg/bouncycastle/crypto/paddings/PaddedBufferedBlockCipher;
6 9 4 encrypted [B
MethodParameters:
Name Flags
bytes
public byte[] decrypt(byte[]);
descriptor: ([B)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=2
start local 0 start local 1 0: aload 1
iconst_0
aload 0
getfield org.springframework.security.crypto.encrypt.BouncyCastleAesCbcBytesEncryptor.ivGenerator:Lorg/springframework/security/crypto/keygen/BytesKeyGenerator;
invokeinterface org.springframework.security.crypto.keygen.BytesKeyGenerator.getKeyLength:()I
invokestatic org.springframework.security.crypto.util.EncodingUtils.subArray:([BII)[B
astore 2
start local 2 1: aload 1
aload 0
getfield org.springframework.security.crypto.encrypt.BouncyCastleAesCbcBytesEncryptor.ivGenerator:Lorg/springframework/security/crypto/keygen/BytesKeyGenerator;
invokeinterface org.springframework.security.crypto.keygen.BytesKeyGenerator.getKeyLength:()I
aload 1
arraylength
invokestatic org.springframework.security.crypto.util.EncodingUtils.subArray:([BII)[B
astore 1
2: new org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher
dup
3: new org.bouncycastle.crypto.modes.CBCBlockCipher
dup
new org.bouncycastle.crypto.engines.AESFastEngine
dup
invokespecial org.bouncycastle.crypto.engines.AESFastEngine.<init>:()V
invokespecial org.bouncycastle.crypto.modes.CBCBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;)V
new org.bouncycastle.crypto.paddings.PKCS7Padding
dup
invokespecial org.bouncycastle.crypto.paddings.PKCS7Padding.<init>:()V
4: invokespecial org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher.<init>:(Lorg/bouncycastle/crypto/BlockCipher;Lorg/bouncycastle/crypto/paddings/BlockCipherPadding;)V
astore 3
start local 3 5: aload 3
iconst_0
new org.bouncycastle.crypto.params.ParametersWithIV
dup
aload 0
getfield org.springframework.security.crypto.encrypt.BouncyCastleAesCbcBytesEncryptor.secretKey:Lorg/bouncycastle/crypto/params/KeyParameter;
aload 2
invokespecial org.bouncycastle.crypto.params.ParametersWithIV.<init>:(Lorg/bouncycastle/crypto/CipherParameters;[B)V
invokevirtual org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
6: aload 0
aload 3
aload 1
invokevirtual org.springframework.security.crypto.encrypt.BouncyCastleAesCbcBytesEncryptor.process:(Lorg/bouncycastle/crypto/BufferedBlockCipher;[B)[B
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/springframework/security/crypto/encrypt/BouncyCastleAesCbcBytesEncryptor;
0 7 1 encryptedBytes [B
1 7 2 iv [B
5 7 3 blockCipher Lorg/bouncycastle/crypto/paddings/PaddedBufferedBlockCipher;
MethodParameters:
Name Flags
encryptedBytes
private byte[] process(org.bouncycastle.crypto.BufferedBlockCipher, byte[]);
descriptor: (Lorg/bouncycastle/crypto/BufferedBlockCipher;[B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
arraylength
invokevirtual org.bouncycastle.crypto.BufferedBlockCipher.getOutputSize:(I)I
newarray 8
astore 3
start local 3 1: aload 1
aload 2
iconst_0
aload 2
arraylength
aload 3
iconst_0
invokevirtual org.bouncycastle.crypto.BufferedBlockCipher.processBytes:([BII[BI)I
istore 4
start local 4 2: iload 4
aload 1
aload 3
iload 4
invokevirtual org.bouncycastle.crypto.BufferedBlockCipher.doFinal:([BI)I
iadd
istore 4
3: goto 6
4: StackMap locals: org.springframework.security.crypto.encrypt.BouncyCastleAesCbcBytesEncryptor org.bouncycastle.crypto.BufferedBlockCipher byte[] byte[] int
StackMap stack: org.bouncycastle.crypto.InvalidCipherTextException
astore 5
start local 5 5: new java.lang.IllegalStateException
dup
ldc "unable to encrypt/decrypt"
aload 5
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 5 6: StackMap locals:
StackMap stack:
iload 4
aload 3
arraylength
if_icmpne 8
7: aload 3
areturn
8: StackMap locals:
StackMap stack:
iload 4
newarray 8
astore 5
start local 5 9: aload 3
iconst_0
aload 5
iconst_0
iload 4
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
10: 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 11 0 this Lorg/springframework/security/crypto/encrypt/BouncyCastleAesCbcBytesEncryptor;
0 11 1 blockCipher Lorg/bouncycastle/crypto/BufferedBlockCipher;
0 11 2 in [B
1 11 3 buf [B
2 11 4 bytesWritten I
5 6 5 ex Lorg/bouncycastle/crypto/InvalidCipherTextException;
9 11 5 out [B
Exception table:
from to target type
2 3 4 Class org.bouncycastle.crypto.InvalidCipherTextException
MethodParameters:
Name Flags
blockCipher
in
}
SourceFile: "BouncyCastleAesCbcBytesEncryptor.java"