public class org.bouncycastle.crypto.engines.IESEngine
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.crypto.engines.IESEngine
super_class: java.lang.Object
{
org.bouncycastle.crypto.BasicAgreement agree;
descriptor: Lorg/bouncycastle/crypto/BasicAgreement;
flags: (0x0000)
org.bouncycastle.crypto.DerivationFunction kdf;
descriptor: Lorg/bouncycastle/crypto/DerivationFunction;
flags: (0x0000)
org.bouncycastle.crypto.Mac mac;
descriptor: Lorg/bouncycastle/crypto/Mac;
flags: (0x0000)
org.bouncycastle.crypto.BufferedBlockCipher cipher;
descriptor: Lorg/bouncycastle/crypto/BufferedBlockCipher;
flags: (0x0000)
byte[] macBuf;
descriptor: [B
flags: (0x0000)
boolean forEncryption;
descriptor: Z
flags: (0x0000)
org.bouncycastle.crypto.CipherParameters privParam;
descriptor: Lorg/bouncycastle/crypto/CipherParameters;
flags: (0x0000)
org.bouncycastle.crypto.CipherParameters pubParam;
descriptor: Lorg/bouncycastle/crypto/CipherParameters;
flags: (0x0000)
org.bouncycastle.crypto.params.IESParameters param;
descriptor: Lorg/bouncycastle/crypto/params/IESParameters;
flags: (0x0000)
public void <init>(org.bouncycastle.crypto.BasicAgreement, org.bouncycastle.crypto.DerivationFunction, org.bouncycastle.crypto.Mac);
descriptor: (Lorg/bouncycastle/crypto/BasicAgreement;Lorg/bouncycastle/crypto/DerivationFunction;Lorg/bouncycastle/crypto/Mac;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.bouncycastle.crypto.engines.IESEngine.agree:Lorg/bouncycastle/crypto/BasicAgreement;
2: aload 0
aload 2
putfield org.bouncycastle.crypto.engines.IESEngine.kdf:Lorg/bouncycastle/crypto/DerivationFunction;
3: aload 0
aload 3
putfield org.bouncycastle.crypto.engines.IESEngine.mac:Lorg/bouncycastle/crypto/Mac;
4: aload 0
aload 3
invokeinterface org.bouncycastle.crypto.Mac.getMacSize:()I
newarray 8
putfield org.bouncycastle.crypto.engines.IESEngine.macBuf:[B
5: aload 0
aconst_null
putfield org.bouncycastle.crypto.engines.IESEngine.cipher:Lorg/bouncycastle/crypto/BufferedBlockCipher;
6: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/bouncycastle/crypto/engines/IESEngine;
0 7 1 agree Lorg/bouncycastle/crypto/BasicAgreement;
0 7 2 kdf Lorg/bouncycastle/crypto/DerivationFunction;
0 7 3 mac Lorg/bouncycastle/crypto/Mac;
MethodParameters:
Name Flags
agree
kdf
mac
public void <init>(org.bouncycastle.crypto.BasicAgreement, org.bouncycastle.crypto.DerivationFunction, org.bouncycastle.crypto.Mac, org.bouncycastle.crypto.BufferedBlockCipher);
descriptor: (Lorg/bouncycastle/crypto/BasicAgreement;Lorg/bouncycastle/crypto/DerivationFunction;Lorg/bouncycastle/crypto/Mac;Lorg/bouncycastle/crypto/BufferedBlockCipher;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.bouncycastle.crypto.engines.IESEngine.agree:Lorg/bouncycastle/crypto/BasicAgreement;
2: aload 0
aload 2
putfield org.bouncycastle.crypto.engines.IESEngine.kdf:Lorg/bouncycastle/crypto/DerivationFunction;
3: aload 0
aload 3
putfield org.bouncycastle.crypto.engines.IESEngine.mac:Lorg/bouncycastle/crypto/Mac;
4: aload 0
aload 3
invokeinterface org.bouncycastle.crypto.Mac.getMacSize:()I
newarray 8
putfield org.bouncycastle.crypto.engines.IESEngine.macBuf:[B
5: aload 0
aload 4
putfield org.bouncycastle.crypto.engines.IESEngine.cipher:Lorg/bouncycastle/crypto/BufferedBlockCipher;
6: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/bouncycastle/crypto/engines/IESEngine;
0 7 1 agree Lorg/bouncycastle/crypto/BasicAgreement;
0 7 2 kdf Lorg/bouncycastle/crypto/DerivationFunction;
0 7 3 mac Lorg/bouncycastle/crypto/Mac;
0 7 4 cipher Lorg/bouncycastle/crypto/BufferedBlockCipher;
MethodParameters:
Name Flags
agree
kdf
mac
cipher
public void init(boolean, org.bouncycastle.crypto.CipherParameters, org.bouncycastle.crypto.CipherParameters, org.bouncycastle.crypto.CipherParameters);
descriptor: (ZLorg/bouncycastle/crypto/CipherParameters;Lorg/bouncycastle/crypto/CipherParameters;Lorg/bouncycastle/crypto/CipherParameters;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
iload 1
putfield org.bouncycastle.crypto.engines.IESEngine.forEncryption:Z
1: aload 0
aload 2
putfield org.bouncycastle.crypto.engines.IESEngine.privParam:Lorg/bouncycastle/crypto/CipherParameters;
2: aload 0
aload 3
putfield org.bouncycastle.crypto.engines.IESEngine.pubParam:Lorg/bouncycastle/crypto/CipherParameters;
3: aload 0
aload 4
checkcast org.bouncycastle.crypto.params.IESParameters
putfield org.bouncycastle.crypto.engines.IESEngine.param:Lorg/bouncycastle/crypto/params/IESParameters;
4: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/bouncycastle/crypto/engines/IESEngine;
0 5 1 forEncryption Z
0 5 2 privParam Lorg/bouncycastle/crypto/CipherParameters;
0 5 3 pubParam Lorg/bouncycastle/crypto/CipherParameters;
0 5 4 param Lorg/bouncycastle/crypto/CipherParameters;
MethodParameters:
Name Flags
forEncryption
privParam
pubParam
param
private byte[] decryptBlock(byte[], int, int, byte[]);
descriptor: ([BII[B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=13, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aconst_null
astore 5
start local 5 1: aconst_null
astore 6
start local 6 2: new org.bouncycastle.crypto.params.KDFParameters
dup
aload 4
aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.param:Lorg/bouncycastle/crypto/params/IESParameters;
invokevirtual org.bouncycastle.crypto.params.IESParameters.getDerivationV:()[B
invokespecial org.bouncycastle.crypto.params.KDFParameters.<init>:([B[B)V
astore 7
start local 7 3: aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.param:Lorg/bouncycastle/crypto/params/IESParameters;
invokevirtual org.bouncycastle.crypto.params.IESParameters.getMacKeySize:()I
istore 8
start local 8 4: aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.kdf:Lorg/bouncycastle/crypto/DerivationFunction;
aload 7
invokeinterface org.bouncycastle.crypto.DerivationFunction.init:(Lorg/bouncycastle/crypto/DerivationParameters;)V
5: iload 3
aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.mac:Lorg/bouncycastle/crypto/Mac;
invokeinterface org.bouncycastle.crypto.Mac.getMacSize:()I
isub
istore 3
6: aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.cipher:Lorg/bouncycastle/crypto/BufferedBlockCipher;
ifnonnull 16
7: aload 0
aload 7
iload 3
iload 8
bipush 8
idiv
iadd
invokevirtual org.bouncycastle.crypto.engines.IESEngine.generateKdfBytes:(Lorg/bouncycastle/crypto/params/KDFParameters;I)[B
astore 9
start local 9 8: iload 3
newarray 8
astore 5
9: iconst_0
istore 10
start local 10 10: goto 13
11: StackMap locals: org.bouncycastle.crypto.engines.IESEngine byte[] int int byte[] byte[] org.bouncycastle.crypto.params.KeyParameter org.bouncycastle.crypto.params.KDFParameters int byte[] int
StackMap stack:
aload 5
iload 10
aload 1
iload 2
iload 10
iadd
baload
aload 9
iload 10
baload
ixor
i2b
bastore
12: iinc 10 1
StackMap locals:
StackMap stack:
13: iload 10
iload 3
if_icmpne 11
end local 10 14: new org.bouncycastle.crypto.params.KeyParameter
dup
aload 9
iload 3
iload 8
bipush 8
idiv
invokespecial org.bouncycastle.crypto.params.KeyParameter.<init>:([BII)V
astore 6
end local 9 15: goto 25
16: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.param:Lorg/bouncycastle/crypto/params/IESParameters;
checkcast org.bouncycastle.crypto.params.IESWithCipherParameters
invokevirtual org.bouncycastle.crypto.params.IESWithCipherParameters.getCipherKeySize:()I
istore 9
start local 9 17: aload 0
aload 7
iload 9
bipush 8
idiv
iload 8
bipush 8
idiv
iadd
invokevirtual org.bouncycastle.crypto.engines.IESEngine.generateKdfBytes:(Lorg/bouncycastle/crypto/params/KDFParameters;I)[B
astore 10
start local 10 18: aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.cipher:Lorg/bouncycastle/crypto/BufferedBlockCipher;
iconst_0
new org.bouncycastle.crypto.params.KeyParameter
dup
aload 10
iconst_0
iload 9
bipush 8
idiv
invokespecial org.bouncycastle.crypto.params.KeyParameter.<init>:([BII)V
invokevirtual org.bouncycastle.crypto.BufferedBlockCipher.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
19: aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.cipher:Lorg/bouncycastle/crypto/BufferedBlockCipher;
iload 3
invokevirtual org.bouncycastle.crypto.BufferedBlockCipher.getOutputSize:(I)I
newarray 8
astore 11
start local 11 20: aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.cipher:Lorg/bouncycastle/crypto/BufferedBlockCipher;
aload 1
iload 2
iload 3
aload 11
iconst_0
invokevirtual org.bouncycastle.crypto.BufferedBlockCipher.processBytes:([BII[BI)I
istore 12
start local 12 21: iload 12
aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.cipher:Lorg/bouncycastle/crypto/BufferedBlockCipher;
aload 11
iload 12
invokevirtual org.bouncycastle.crypto.BufferedBlockCipher.doFinal:([BI)I
iadd
istore 12
22: iload 12
newarray 8
astore 5
23: aload 11
iconst_0
aload 5
iconst_0
iload 12
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
24: new org.bouncycastle.crypto.params.KeyParameter
dup
aload 10
iload 9
bipush 8
idiv
iload 8
bipush 8
idiv
invokespecial org.bouncycastle.crypto.params.KeyParameter.<init>:([BII)V
astore 6
end local 12 end local 11 end local 10 end local 9 25: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.param:Lorg/bouncycastle/crypto/params/IESParameters;
invokevirtual org.bouncycastle.crypto.params.IESParameters.getEncodingV:()[B
astore 9
start local 9 26: aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.mac:Lorg/bouncycastle/crypto/Mac;
aload 6
invokeinterface org.bouncycastle.crypto.Mac.init:(Lorg/bouncycastle/crypto/CipherParameters;)V
27: aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.mac:Lorg/bouncycastle/crypto/Mac;
aload 1
iload 2
iload 3
invokeinterface org.bouncycastle.crypto.Mac.update:([BII)V
28: aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.mac:Lorg/bouncycastle/crypto/Mac;
aload 9
iconst_0
aload 9
arraylength
invokeinterface org.bouncycastle.crypto.Mac.update:([BII)V
29: aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.mac:Lorg/bouncycastle/crypto/Mac;
aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.macBuf:[B
iconst_0
invokeinterface org.bouncycastle.crypto.Mac.doFinal:([BI)I
pop
30: iload 2
iload 3
iadd
istore 2
31: iconst_0
istore 10
start local 10 32: goto 36
33: StackMap locals: byte[] int
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.macBuf:[B
iload 10
baload
aload 1
iload 2
iload 10
iadd
baload
if_icmpeq 35
34: new org.bouncycastle.crypto.InvalidCipherTextException
dup
ldc "Mac codes failed to equal."
invokespecial org.bouncycastle.crypto.InvalidCipherTextException.<init>:(Ljava/lang/String;)V
athrow
35: StackMap locals:
StackMap stack:
iinc 10 1
StackMap locals:
StackMap stack:
36: iload 10
aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.macBuf:[B
arraylength
if_icmplt 33
end local 10 37: aload 5
areturn
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 38 0 this Lorg/bouncycastle/crypto/engines/IESEngine;
0 38 1 in_enc [B
0 38 2 inOff I
0 38 3 inLen I
0 38 4 z [B
1 38 5 M [B
2 38 6 macKey Lorg/bouncycastle/crypto/params/KeyParameter;
3 38 7 kParam Lorg/bouncycastle/crypto/params/KDFParameters;
4 38 8 macKeySize I
8 15 9 buf [B
10 14 10 i I
17 25 9 cipherKeySize I
18 25 10 buf [B
20 25 11 tmp [B
21 25 12 len I
26 38 9 macIV [B
32 37 10 t I
Exceptions:
throws org.bouncycastle.crypto.InvalidCipherTextException
MethodParameters:
Name Flags
in_enc
inOff
inLen
z
private byte[] encryptBlock(byte[], int, int, byte[]);
descriptor: ([BII[B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=14, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aconst_null
astore 5
start local 5 1: aconst_null
astore 6
start local 6 2: new org.bouncycastle.crypto.params.KDFParameters
dup
aload 4
aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.param:Lorg/bouncycastle/crypto/params/IESParameters;
invokevirtual org.bouncycastle.crypto.params.IESParameters.getDerivationV:()[B
invokespecial org.bouncycastle.crypto.params.KDFParameters.<init>:([B[B)V
astore 7
start local 7 3: iconst_0
istore 8
start local 8 4: aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.param:Lorg/bouncycastle/crypto/params/IESParameters;
invokevirtual org.bouncycastle.crypto.params.IESParameters.getMacKeySize:()I
istore 9
start local 9 5: aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.cipher:Lorg/bouncycastle/crypto/BufferedBlockCipher;
ifnonnull 16
6: aload 0
aload 7
iload 3
iload 9
bipush 8
idiv
iadd
invokevirtual org.bouncycastle.crypto.engines.IESEngine.generateKdfBytes:(Lorg/bouncycastle/crypto/params/KDFParameters;I)[B
astore 10
start local 10 7: iload 3
aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.mac:Lorg/bouncycastle/crypto/Mac;
invokeinterface org.bouncycastle.crypto.Mac.getMacSize:()I
iadd
newarray 8
astore 5
8: iload 3
istore 8
9: iconst_0
istore 11
start local 11 10: goto 13
11: StackMap locals: org.bouncycastle.crypto.engines.IESEngine byte[] int int byte[] byte[] org.bouncycastle.crypto.params.KeyParameter org.bouncycastle.crypto.params.KDFParameters int int byte[] int
StackMap stack:
aload 5
iload 11
aload 1
iload 2
iload 11
iadd
baload
aload 10
iload 11
baload
ixor
i2b
bastore
12: iinc 11 1
StackMap locals:
StackMap stack:
13: iload 11
iload 3
if_icmpne 11
end local 11 14: new org.bouncycastle.crypto.params.KeyParameter
dup
aload 10
iload 3
iload 9
bipush 8
idiv
invokespecial org.bouncycastle.crypto.params.KeyParameter.<init>:([BII)V
astore 6
end local 10 15: goto 27
16: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.param:Lorg/bouncycastle/crypto/params/IESParameters;
checkcast org.bouncycastle.crypto.params.IESWithCipherParameters
invokevirtual org.bouncycastle.crypto.params.IESWithCipherParameters.getCipherKeySize:()I
istore 10
start local 10 17: aload 0
aload 7
iload 10
bipush 8
idiv
iload 9
bipush 8
idiv
iadd
invokevirtual org.bouncycastle.crypto.engines.IESEngine.generateKdfBytes:(Lorg/bouncycastle/crypto/params/KDFParameters;I)[B
astore 11
start local 11 18: aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.cipher:Lorg/bouncycastle/crypto/BufferedBlockCipher;
iconst_1
new org.bouncycastle.crypto.params.KeyParameter
dup
aload 11
iconst_0
iload 10
bipush 8
idiv
invokespecial org.bouncycastle.crypto.params.KeyParameter.<init>:([BII)V
invokevirtual org.bouncycastle.crypto.BufferedBlockCipher.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
19: aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.cipher:Lorg/bouncycastle/crypto/BufferedBlockCipher;
iload 3
invokevirtual org.bouncycastle.crypto.BufferedBlockCipher.getOutputSize:(I)I
istore 8
20: iload 8
newarray 8
astore 12
start local 12 21: aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.cipher:Lorg/bouncycastle/crypto/BufferedBlockCipher;
aload 1
iload 2
iload 3
aload 12
iconst_0
invokevirtual org.bouncycastle.crypto.BufferedBlockCipher.processBytes:([BII[BI)I
istore 13
start local 13 22: iload 13
aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.cipher:Lorg/bouncycastle/crypto/BufferedBlockCipher;
aload 12
iload 13
invokevirtual org.bouncycastle.crypto.BufferedBlockCipher.doFinal:([BI)I
iadd
istore 13
23: iload 13
aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.mac:Lorg/bouncycastle/crypto/Mac;
invokeinterface org.bouncycastle.crypto.Mac.getMacSize:()I
iadd
newarray 8
astore 5
24: iload 13
istore 8
25: aload 12
iconst_0
aload 5
iconst_0
iload 13
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
26: new org.bouncycastle.crypto.params.KeyParameter
dup
aload 11
iload 10
bipush 8
idiv
iload 9
bipush 8
idiv
invokespecial org.bouncycastle.crypto.params.KeyParameter.<init>:([BII)V
astore 6
end local 13 end local 12 end local 11 end local 10 27: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.param:Lorg/bouncycastle/crypto/params/IESParameters;
invokevirtual org.bouncycastle.crypto.params.IESParameters.getEncodingV:()[B
astore 10
start local 10 28: aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.mac:Lorg/bouncycastle/crypto/Mac;
aload 6
invokeinterface org.bouncycastle.crypto.Mac.init:(Lorg/bouncycastle/crypto/CipherParameters;)V
29: aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.mac:Lorg/bouncycastle/crypto/Mac;
aload 5
iconst_0
iload 8
invokeinterface org.bouncycastle.crypto.Mac.update:([BII)V
30: aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.mac:Lorg/bouncycastle/crypto/Mac;
aload 10
iconst_0
aload 10
arraylength
invokeinterface org.bouncycastle.crypto.Mac.update:([BII)V
31: aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.mac:Lorg/bouncycastle/crypto/Mac;
aload 5
iload 8
invokeinterface org.bouncycastle.crypto.Mac.doFinal:([BI)I
pop
32: aload 5
areturn
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 33 0 this Lorg/bouncycastle/crypto/engines/IESEngine;
0 33 1 in [B
0 33 2 inOff I
0 33 3 inLen I
0 33 4 z [B
1 33 5 C [B
2 33 6 macKey Lorg/bouncycastle/crypto/params/KeyParameter;
3 33 7 kParam Lorg/bouncycastle/crypto/params/KDFParameters;
4 33 8 c_text_length I
5 33 9 macKeySize I
7 15 10 buf [B
10 14 11 i I
17 27 10 cipherKeySize I
18 27 11 buf [B
21 27 12 tmp [B
22 27 13 len I
28 33 10 macIV [B
Exceptions:
throws org.bouncycastle.crypto.InvalidCipherTextException
MethodParameters:
Name Flags
in
inOff
inLen
z
private byte[] generateKdfBytes(org.bouncycastle.crypto.params.KDFParameters, int);
descriptor: (Lorg/bouncycastle/crypto/params/KDFParameters;I)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iload 2
newarray 8
astore 3
start local 3 1: aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.kdf:Lorg/bouncycastle/crypto/DerivationFunction;
aload 1
invokeinterface org.bouncycastle.crypto.DerivationFunction.init:(Lorg/bouncycastle/crypto/DerivationParameters;)V
2: aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.kdf:Lorg/bouncycastle/crypto/DerivationFunction;
aload 3
iconst_0
aload 3
arraylength
invokeinterface org.bouncycastle.crypto.DerivationFunction.generateBytes:([BII)I
pop
3: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/crypto/engines/IESEngine;
0 4 1 kParam Lorg/bouncycastle/crypto/params/KDFParameters;
0 4 2 length I
1 4 3 buf [B
MethodParameters:
Name Flags
kParam
length
public byte[] processBlock(byte[], int, int);
descriptor: ([BII)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.agree:Lorg/bouncycastle/crypto/BasicAgreement;
aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.privParam:Lorg/bouncycastle/crypto/CipherParameters;
invokeinterface org.bouncycastle.crypto.BasicAgreement.init:(Lorg/bouncycastle/crypto/CipherParameters;)V
1: aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.agree:Lorg/bouncycastle/crypto/BasicAgreement;
aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.pubParam:Lorg/bouncycastle/crypto/CipherParameters;
invokeinterface org.bouncycastle.crypto.BasicAgreement.calculateAgreement:(Lorg/bouncycastle/crypto/CipherParameters;)Ljava/math/BigInteger;
astore 4
start local 4 2: aload 0
getfield org.bouncycastle.crypto.engines.IESEngine.forEncryption:Z
ifeq 4
3: aload 0
aload 1
iload 2
iload 3
aload 4
invokevirtual java.math.BigInteger.toByteArray:()[B
invokevirtual org.bouncycastle.crypto.engines.IESEngine.encryptBlock:([BII[B)[B
areturn
4: StackMap locals: java.math.BigInteger
StackMap stack:
aload 0
aload 1
iload 2
iload 3
aload 4
invokevirtual java.math.BigInteger.toByteArray:()[B
invokevirtual org.bouncycastle.crypto.engines.IESEngine.decryptBlock:([BII[B)[B
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/bouncycastle/crypto/engines/IESEngine;
0 5 1 in [B
0 5 2 inOff I
0 5 3 inLen I
2 5 4 z Ljava/math/BigInteger;
Exceptions:
throws org.bouncycastle.crypto.InvalidCipherTextException
MethodParameters:
Name Flags
in
inOff
inLen
}
SourceFile: "IESEngine.java"