public class org.bouncycastle.crypto.signers.ISO9796d2Signer implements org.bouncycastle.crypto.SignerWithRecovery
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.crypto.signers.ISO9796d2Signer
super_class: java.lang.Object
{
public static final int TRAILER_IMPLICIT;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 188
public static final int TRAILER_RIPEMD160;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 12748
public static final int TRAILER_RIPEMD128;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 13004
public static final int TRAILER_SHA1;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 13260
public static final int TRAILER_SHA256;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 13516
public static final int TRAILER_SHA512;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 13772
public static final int TRAILER_SHA384;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 14028
public static final int TRAILER_WHIRLPOOL;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 14284
private static java.util.Hashtable trailerMap;
descriptor: Ljava/util/Hashtable;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private org.bouncycastle.crypto.Digest digest;
descriptor: Lorg/bouncycastle/crypto/Digest;
flags: (0x0002) ACC_PRIVATE
private org.bouncycastle.crypto.AsymmetricBlockCipher cipher;
descriptor: Lorg/bouncycastle/crypto/AsymmetricBlockCipher;
flags: (0x0002) ACC_PRIVATE
private int trailer;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int keyBits;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private byte[] block;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private byte[] mBuf;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private int messageLength;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean fullMessage;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private byte[] recoveredMessage;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private byte[] preSig;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private byte[] preBlock;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=0, args_size=0
0: new java.util.Hashtable
dup
invokespecial java.util.Hashtable.<init>:()V
putstatic org.bouncycastle.crypto.signers.ISO9796d2Signer.trailerMap:Ljava/util/Hashtable;
1: getstatic org.bouncycastle.crypto.signers.ISO9796d2Signer.trailerMap:Ljava/util/Hashtable;
ldc "RIPEMD128"
new java.lang.Integer
dup
sipush 13004
invokespecial java.lang.Integer.<init>:(I)V
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: getstatic org.bouncycastle.crypto.signers.ISO9796d2Signer.trailerMap:Ljava/util/Hashtable;
ldc "RIPEMD160"
new java.lang.Integer
dup
sipush 12748
invokespecial java.lang.Integer.<init>:(I)V
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: getstatic org.bouncycastle.crypto.signers.ISO9796d2Signer.trailerMap:Ljava/util/Hashtable;
ldc "SHA-1"
new java.lang.Integer
dup
sipush 13260
invokespecial java.lang.Integer.<init>:(I)V
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: getstatic org.bouncycastle.crypto.signers.ISO9796d2Signer.trailerMap:Ljava/util/Hashtable;
ldc "SHA-256"
new java.lang.Integer
dup
sipush 13516
invokespecial java.lang.Integer.<init>:(I)V
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: getstatic org.bouncycastle.crypto.signers.ISO9796d2Signer.trailerMap:Ljava/util/Hashtable;
ldc "SHA-384"
new java.lang.Integer
dup
sipush 14028
invokespecial java.lang.Integer.<init>:(I)V
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: getstatic org.bouncycastle.crypto.signers.ISO9796d2Signer.trailerMap:Ljava/util/Hashtable;
ldc "SHA-512"
new java.lang.Integer
dup
sipush 13772
invokespecial java.lang.Integer.<init>:(I)V
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: getstatic org.bouncycastle.crypto.signers.ISO9796d2Signer.trailerMap:Ljava/util/Hashtable;
ldc "Whirlpool"
new java.lang.Integer
dup
sipush 14284
invokespecial java.lang.Integer.<init>:(I)V
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.bouncycastle.crypto.AsymmetricBlockCipher, org.bouncycastle.crypto.Digest, boolean);
descriptor: (Lorg/bouncycastle/crypto/AsymmetricBlockCipher;Lorg/bouncycastle/crypto/Digest;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, 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.signers.ISO9796d2Signer.cipher:Lorg/bouncycastle/crypto/AsymmetricBlockCipher;
2: aload 0
aload 2
putfield org.bouncycastle.crypto.signers.ISO9796d2Signer.digest:Lorg/bouncycastle/crypto/Digest;
3: iload 3
ifeq 6
4: aload 0
sipush 188
putfield org.bouncycastle.crypto.signers.ISO9796d2Signer.trailer:I
5: goto 11
6: StackMap locals: org.bouncycastle.crypto.signers.ISO9796d2Signer org.bouncycastle.crypto.AsymmetricBlockCipher org.bouncycastle.crypto.Digest int
StackMap stack:
getstatic org.bouncycastle.crypto.signers.ISO9796d2Signer.trailerMap:Ljava/util/Hashtable;
aload 2
invokeinterface org.bouncycastle.crypto.Digest.getAlgorithmName:()Ljava/lang/String;
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
astore 4
start local 4 7: aload 4
ifnull 10
8: aload 0
aload 4
invokevirtual java.lang.Integer.intValue:()I
putfield org.bouncycastle.crypto.signers.ISO9796d2Signer.trailer:I
9: goto 11
10: StackMap locals: java.lang.Integer
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "no valid trailer for digest"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 4 11: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/bouncycastle/crypto/signers/ISO9796d2Signer;
0 12 1 cipher Lorg/bouncycastle/crypto/AsymmetricBlockCipher;
0 12 2 digest Lorg/bouncycastle/crypto/Digest;
0 12 3 implicit Z
7 11 4 trailerObj Ljava/lang/Integer;
MethodParameters:
Name Flags
cipher
digest
implicit
public void <init>(org.bouncycastle.crypto.AsymmetricBlockCipher, org.bouncycastle.crypto.Digest);
descriptor: (Lorg/bouncycastle/crypto/AsymmetricBlockCipher;Lorg/bouncycastle/crypto/Digest;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
iconst_0
invokespecial org.bouncycastle.crypto.signers.ISO9796d2Signer.<init>:(Lorg/bouncycastle/crypto/AsymmetricBlockCipher;Lorg/bouncycastle/crypto/Digest;Z)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/crypto/signers/ISO9796d2Signer;
0 2 1 cipher Lorg/bouncycastle/crypto/AsymmetricBlockCipher;
0 2 2 digest Lorg/bouncycastle/crypto/Digest;
MethodParameters:
Name Flags
cipher
digest
public void init(boolean, org.bouncycastle.crypto.CipherParameters);
descriptor: (ZLorg/bouncycastle/crypto/CipherParameters;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
checkcast org.bouncycastle.crypto.params.RSAKeyParameters
astore 3
start local 3 1: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.cipher:Lorg/bouncycastle/crypto/AsymmetricBlockCipher;
iload 1
aload 3
invokeinterface org.bouncycastle.crypto.AsymmetricBlockCipher.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
2: aload 0
aload 3
invokevirtual org.bouncycastle.crypto.params.RSAKeyParameters.getModulus:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.bitLength:()I
putfield org.bouncycastle.crypto.signers.ISO9796d2Signer.keyBits:I
3: aload 0
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.keyBits:I
bipush 7
iadd
bipush 8
idiv
newarray 8
putfield org.bouncycastle.crypto.signers.ISO9796d2Signer.block:[B
4: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.trailer:I
sipush 188
if_icmpne 7
5: aload 0
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.block:[B
arraylength
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.digest:Lorg/bouncycastle/crypto/Digest;
invokeinterface org.bouncycastle.crypto.Digest.getDigestSize:()I
isub
iconst_2
isub
newarray 8
putfield org.bouncycastle.crypto.signers.ISO9796d2Signer.mBuf:[B
6: goto 8
7: StackMap locals: org.bouncycastle.crypto.params.RSAKeyParameters
StackMap stack:
aload 0
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.block:[B
arraylength
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.digest:Lorg/bouncycastle/crypto/Digest;
invokeinterface org.bouncycastle.crypto.Digest.getDigestSize:()I
isub
iconst_3
isub
newarray 8
putfield org.bouncycastle.crypto.signers.ISO9796d2Signer.mBuf:[B
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.bouncycastle.crypto.signers.ISO9796d2Signer.reset:()V
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/bouncycastle/crypto/signers/ISO9796d2Signer;
0 10 1 forSigning Z
0 10 2 param Lorg/bouncycastle/crypto/CipherParameters;
1 10 3 kParam Lorg/bouncycastle/crypto/params/RSAKeyParameters;
MethodParameters:
Name Flags
forSigning
param
private boolean isSameAs(byte[], byte[]);
descriptor: ([B[B)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iconst_1
istore 3
start local 3 1: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.messageLength:I
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.mBuf:[B
arraylength
if_icmple 11
2: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.mBuf:[B
arraylength
aload 2
arraylength
if_icmple 4
3: iconst_0
istore 3
4: StackMap locals: int
StackMap stack:
iconst_0
istore 4
start local 4 5: goto 9
6: StackMap locals: int
StackMap stack:
aload 1
iload 4
baload
aload 2
iload 4
baload
if_icmpeq 8
7: iconst_0
istore 3
8: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
9: iload 4
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.mBuf:[B
arraylength
if_icmpne 6
end local 4 10: goto 19
11: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.messageLength:I
aload 2
arraylength
if_icmpeq 13
12: iconst_0
istore 3
13: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 14: goto 18
15: StackMap locals: int
StackMap stack:
aload 1
iload 4
baload
aload 2
iload 4
baload
if_icmpeq 17
16: iconst_0
istore 3
17: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
18: iload 4
aload 2
arraylength
if_icmpne 15
end local 4 19: StackMap locals:
StackMap stack:
iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/bouncycastle/crypto/signers/ISO9796d2Signer;
0 20 1 a [B
0 20 2 b [B
1 20 3 isOkay Z
5 10 4 i I
14 19 4 i I
MethodParameters:
Name Flags
a
b
private void clearBlock(byte[]);
descriptor: ([B)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: goto 4
2: StackMap locals: int
StackMap stack:
aload 1
iload 2
iconst_0
bastore
3: iinc 2 1
StackMap locals:
StackMap stack:
4: iload 2
aload 1
arraylength
if_icmpne 2
end local 2 5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/bouncycastle/crypto/signers/ISO9796d2Signer;
0 6 1 block [B
1 5 2 i I
MethodParameters:
Name Flags
block
public void updateWithRecoveredMessage(byte[]);
descriptor: ([B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.cipher:Lorg/bouncycastle/crypto/AsymmetricBlockCipher;
aload 1
iconst_0
aload 1
arraylength
invokeinterface org.bouncycastle.crypto.AsymmetricBlockCipher.processBlock:([BII)[B
astore 2
start local 2 1: aload 2
iconst_0
baload
sipush 192
iand
bipush 64
ixor
ifeq 3
2: new org.bouncycastle.crypto.InvalidCipherTextException
dup
ldc "malformed signature"
invokespecial org.bouncycastle.crypto.InvalidCipherTextException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: byte[]
StackMap stack:
aload 2
aload 2
arraylength
iconst_1
isub
baload
bipush 15
iand
bipush 12
ixor
ifeq 5
4: new org.bouncycastle.crypto.InvalidCipherTextException
dup
ldc "malformed signature"
invokespecial org.bouncycastle.crypto.InvalidCipherTextException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 6: aload 2
aload 2
arraylength
iconst_1
isub
baload
sipush 255
iand
sipush 188
ixor
ifne 9
7: iconst_1
istore 3
8: goto 16
9: StackMap locals: int
StackMap stack:
aload 2
aload 2
arraylength
iconst_2
isub
baload
sipush 255
iand
bipush 8
ishl
aload 2
aload 2
arraylength
iconst_1
isub
baload
sipush 255
iand
ior
istore 4
start local 4 10: getstatic org.bouncycastle.crypto.signers.ISO9796d2Signer.trailerMap:Ljava/util/Hashtable;
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.digest:Lorg/bouncycastle/crypto/Digest;
invokeinterface org.bouncycastle.crypto.Digest.getAlgorithmName:()Ljava/lang/String;
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
astore 5
start local 5 11: aload 5
ifnull 14
12: iload 4
aload 5
invokevirtual java.lang.Integer.intValue:()I
if_icmpeq 15
13: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "signer initialised with wrong digest for trailer "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals: int java.lang.Integer
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "unrecognised hash in signature"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack:
iconst_2
istore 3
end local 5 end local 4 16: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 17: iconst_0
istore 4
goto 21
18: StackMap locals: int
StackMap stack:
aload 2
iload 4
baload
bipush 15
iand
bipush 10
ixor
ifne 20
19: goto 22
20: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
21: iload 4
aload 2
arraylength
if_icmpne 18
22: StackMap locals:
StackMap stack:
iinc 4 1
23: aload 2
arraylength
iload 3
isub
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.digest:Lorg/bouncycastle/crypto/Digest;
invokeinterface org.bouncycastle.crypto.Digest.getDigestSize:()I
isub
istore 5
start local 5 24: iload 5
iload 4
isub
ifgt 26
25: new org.bouncycastle.crypto.InvalidCipherTextException
dup
ldc "malformed block"
invokespecial org.bouncycastle.crypto.InvalidCipherTextException.<init>:(Ljava/lang/String;)V
athrow
26: StackMap locals: int
StackMap stack:
aload 2
iconst_0
baload
bipush 32
iand
ifne 31
27: aload 0
iconst_1
putfield org.bouncycastle.crypto.signers.ISO9796d2Signer.fullMessage:Z
28: aload 0
iload 5
iload 4
isub
newarray 8
putfield org.bouncycastle.crypto.signers.ISO9796d2Signer.recoveredMessage:[B
29: aload 2
iload 4
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.recoveredMessage:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.recoveredMessage:[B
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
30: goto 34
31: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield org.bouncycastle.crypto.signers.ISO9796d2Signer.fullMessage:Z
32: aload 0
iload 5
iload 4
isub
newarray 8
putfield org.bouncycastle.crypto.signers.ISO9796d2Signer.recoveredMessage:[B
33: aload 2
iload 4
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.recoveredMessage:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.recoveredMessage:[B
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
34: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield org.bouncycastle.crypto.signers.ISO9796d2Signer.preSig:[B
35: aload 0
aload 2
putfield org.bouncycastle.crypto.signers.ISO9796d2Signer.preBlock:[B
36: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.digest:Lorg/bouncycastle/crypto/Digest;
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.recoveredMessage:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.recoveredMessage:[B
arraylength
invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
37: aload 0
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.recoveredMessage:[B
arraylength
putfield org.bouncycastle.crypto.signers.ISO9796d2Signer.messageLength:I
38: return
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 39 0 this Lorg/bouncycastle/crypto/signers/ISO9796d2Signer;
0 39 1 signature [B
1 39 2 block [B
6 39 3 delta I
10 16 4 sigTrail I
11 16 5 trailerObj Ljava/lang/Integer;
17 39 4 mStart I
24 39 5 off I
Exceptions:
throws org.bouncycastle.crypto.InvalidCipherTextException
MethodParameters:
Name Flags
signature
public void update(byte);
descriptor: (B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.digest:Lorg/bouncycastle/crypto/Digest;
iload 1
invokeinterface org.bouncycastle.crypto.Digest.update:(B)V
1: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.preSig:[B
ifnonnull 3
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.messageLength:I
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.mBuf:[B
arraylength
if_icmpge 3
2: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.mBuf:[B
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.messageLength:I
iload 1
bastore
3: StackMap locals:
StackMap stack:
aload 0
dup
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.messageLength:I
iconst_1
iadd
putfield org.bouncycastle.crypto.signers.ISO9796d2Signer.messageLength:I
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/bouncycastle/crypto/signers/ISO9796d2Signer;
0 5 1 b B
MethodParameters:
Name Flags
b
public void update(byte[], int, int);
descriptor: ([BII)V
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.signers.ISO9796d2Signer.digest:Lorg/bouncycastle/crypto/Digest;
aload 1
iload 2
iload 3
invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
1: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.preSig:[B
ifnonnull 7
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.messageLength:I
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.mBuf:[B
arraylength
if_icmpge 7
2: iconst_0
istore 4
start local 4 3: goto 6
4: StackMap locals: int
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.mBuf:[B
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.messageLength:I
iload 4
iadd
aload 1
iload 2
iload 4
iadd
baload
bastore
5: iinc 4 1
StackMap locals:
StackMap stack:
6: iload 4
iload 3
if_icmpge 7
iload 4
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.messageLength:I
iadd
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.mBuf:[B
arraylength
if_icmplt 4
end local 4 7: StackMap locals:
StackMap stack:
aload 0
dup
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.messageLength:I
iload 3
iadd
putfield org.bouncycastle.crypto.signers.ISO9796d2Signer.messageLength:I
8: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/bouncycastle/crypto/signers/ISO9796d2Signer;
0 9 1 in [B
0 9 2 off I
0 9 3 len I
3 7 4 i I
MethodParameters:
Name Flags
in
off
len
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.digest:Lorg/bouncycastle/crypto/Digest;
invokeinterface org.bouncycastle.crypto.Digest.reset:()V
1: aload 0
iconst_0
putfield org.bouncycastle.crypto.signers.ISO9796d2Signer.messageLength:I
2: aload 0
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.mBuf:[B
invokevirtual org.bouncycastle.crypto.signers.ISO9796d2Signer.clearBlock:([B)V
3: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.recoveredMessage:[B
ifnull 5
4: aload 0
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.recoveredMessage:[B
invokevirtual org.bouncycastle.crypto.signers.ISO9796d2Signer.clearBlock:([B)V
5: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield org.bouncycastle.crypto.signers.ISO9796d2Signer.recoveredMessage:[B
6: aload 0
iconst_0
putfield org.bouncycastle.crypto.signers.ISO9796d2Signer.fullMessage:Z
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/bouncycastle/crypto/signers/ISO9796d2Signer;
public byte[] generateSignature();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.digest:Lorg/bouncycastle/crypto/Digest;
invokeinterface org.bouncycastle.crypto.Digest.getDigestSize:()I
istore 1
start local 1 1: iconst_0
istore 2
start local 2 2: iconst_0
istore 3
start local 3 3: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.trailer:I
sipush 188
if_icmpne 9
4: bipush 8
istore 2
5: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.block:[B
arraylength
iload 1
isub
iconst_1
isub
istore 3
6: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.digest:Lorg/bouncycastle/crypto/Digest;
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.block:[B
iload 3
invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
pop
7: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.block:[B
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.block:[B
arraylength
iconst_1
isub
bipush -68
bastore
8: goto 14
9: StackMap locals: int int int
StackMap stack:
bipush 16
istore 2
10: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.block:[B
arraylength
iload 1
isub
iconst_2
isub
istore 3
11: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.digest:Lorg/bouncycastle/crypto/Digest;
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.block:[B
iload 3
invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
pop
12: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.block:[B
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.block:[B
arraylength
iconst_2
isub
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.trailer:I
bipush 8
iushr
i2b
bastore
13: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.block:[B
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.block:[B
arraylength
iconst_1
isub
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.trailer:I
i2b
bastore
14: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 15: iload 1
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.messageLength:I
iadd
bipush 8
imul
iload 2
iadd
iconst_4
iadd
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.keyBits:I
isub
istore 5
start local 5 16: iload 5
ifle 22
17: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.messageLength:I
iload 5
bipush 7
iadd
bipush 8
idiv
isub
istore 6
start local 6 18: bipush 96
istore 4
19: iload 3
iload 6
isub
istore 3
20: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.mBuf:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.block:[B
iload 3
iload 6
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
end local 6 21: goto 25
22: StackMap locals: int int
StackMap stack:
bipush 64
istore 4
23: iload 3
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.messageLength:I
isub
istore 3
24: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.mBuf:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.block:[B
iload 3
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.messageLength:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
25: StackMap locals:
StackMap stack:
iload 3
iconst_1
isub
ifle 35
26: iload 3
iconst_1
isub
istore 6
start local 6 27: goto 30
28: StackMap locals: int
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.block:[B
iload 6
bipush -69
bastore
29: iinc 6 -1
StackMap locals:
StackMap stack:
30: iload 6
ifne 28
end local 6 31: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.block:[B
iload 3
iconst_1
isub
dup2
baload
iconst_1
ixor
i2b
bastore
32: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.block:[B
iconst_0
bipush 11
bastore
33: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.block:[B
iconst_0
dup2
baload
iload 4
ior
i2b
bastore
34: goto 37
35: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.block:[B
iconst_0
bipush 10
bastore
36: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.block:[B
iconst_0
dup2
baload
iload 4
ior
i2b
bastore
37: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.cipher:Lorg/bouncycastle/crypto/AsymmetricBlockCipher;
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.block:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.block:[B
arraylength
invokeinterface org.bouncycastle.crypto.AsymmetricBlockCipher.processBlock:([BII)[B
astore 6
start local 6 38: aload 0
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.mBuf:[B
invokevirtual org.bouncycastle.crypto.signers.ISO9796d2Signer.clearBlock:([B)V
39: aload 0
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.block:[B
invokevirtual org.bouncycastle.crypto.signers.ISO9796d2Signer.clearBlock:([B)V
40: aload 6
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 41 0 this Lorg/bouncycastle/crypto/signers/ISO9796d2Signer;
1 41 1 digSize I
2 41 2 t I
3 41 3 delta I
15 41 4 header B
16 41 5 x I
18 21 6 mR I
27 31 6 i I
38 41 6 b [B
Exceptions:
throws org.bouncycastle.crypto.CryptoException
public boolean verifySignature(byte[]);
descriptor: ([B)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=10, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.preSig:[B
ifnonnull 7
2: iconst_0
istore 3
start local 3 3: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.cipher:Lorg/bouncycastle/crypto/AsymmetricBlockCipher;
aload 1
iconst_0
aload 1
arraylength
invokeinterface org.bouncycastle.crypto.AsymmetricBlockCipher.processBlock:([BII)[B
astore 2
4: goto 13
5: StackMap locals: org.bouncycastle.crypto.signers.ISO9796d2Signer byte[] byte[] int
StackMap stack: java.lang.Exception
pop
6: iconst_0
ireturn
end local 3 7: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.preSig:[B
aload 1
invokestatic org.bouncycastle.util.Arrays.areEqual:([B[B)Z
ifne 9
8: new java.lang.IllegalStateException
dup
ldc "updateWithRecoveredMessage called on different signature"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
iconst_1
istore 3
start local 3 10: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.preBlock:[B
astore 2
11: aload 0
aconst_null
putfield org.bouncycastle.crypto.signers.ISO9796d2Signer.preSig:[B
12: aload 0
aconst_null
putfield org.bouncycastle.crypto.signers.ISO9796d2Signer.preBlock:[B
13: StackMap locals: int
StackMap stack:
aload 2
iconst_0
baload
sipush 192
iand
bipush 64
ixor
ifeq 15
14: aload 0
aload 2
invokevirtual org.bouncycastle.crypto.signers.ISO9796d2Signer.returnFalse:([B)Z
ireturn
15: StackMap locals:
StackMap stack:
aload 2
aload 2
arraylength
iconst_1
isub
baload
bipush 15
iand
bipush 12
ixor
ifeq 17
16: aload 0
aload 2
invokevirtual org.bouncycastle.crypto.signers.ISO9796d2Signer.returnFalse:([B)Z
ireturn
17: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 18: aload 2
aload 2
arraylength
iconst_1
isub
baload
sipush 255
iand
sipush 188
ixor
ifne 21
19: iconst_1
istore 4
20: goto 28
21: StackMap locals: int
StackMap stack:
aload 2
aload 2
arraylength
iconst_2
isub
baload
sipush 255
iand
bipush 8
ishl
aload 2
aload 2
arraylength
iconst_1
isub
baload
sipush 255
iand
ior
istore 5
start local 5 22: getstatic org.bouncycastle.crypto.signers.ISO9796d2Signer.trailerMap:Ljava/util/Hashtable;
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.digest:Lorg/bouncycastle/crypto/Digest;
invokeinterface org.bouncycastle.crypto.Digest.getAlgorithmName:()Ljava/lang/String;
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
astore 6
start local 6 23: aload 6
ifnull 26
24: iload 5
aload 6
invokevirtual java.lang.Integer.intValue:()I
if_icmpeq 27
25: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "signer initialised with wrong digest for trailer "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
26: StackMap locals: int java.lang.Integer
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "unrecognised hash in signature"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
27: StackMap locals:
StackMap stack:
iconst_2
istore 4
end local 6 end local 5 28: StackMap locals:
StackMap stack:
iconst_0
istore 5
start local 5 29: iconst_0
istore 5
goto 33
30: StackMap locals: int
StackMap stack:
aload 2
iload 5
baload
bipush 15
iand
bipush 10
ixor
ifne 32
31: goto 34
32: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
33: iload 5
aload 2
arraylength
if_icmpne 30
34: StackMap locals:
StackMap stack:
iinc 5 1
35: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.digest:Lorg/bouncycastle/crypto/Digest;
invokeinterface org.bouncycastle.crypto.Digest.getDigestSize:()I
newarray 8
astore 6
start local 6 36: aload 2
arraylength
iload 4
isub
aload 6
arraylength
isub
istore 7
start local 7 37: iload 7
iload 5
isub
ifgt 39
38: aload 0
aload 2
invokevirtual org.bouncycastle.crypto.signers.ISO9796d2Signer.returnFalse:([B)Z
ireturn
39: StackMap locals: byte[] int
StackMap stack:
aload 2
iconst_0
baload
bipush 32
iand
ifne 59
40: aload 0
iconst_1
putfield org.bouncycastle.crypto.signers.ISO9796d2Signer.fullMessage:Z
41: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.messageLength:I
iload 7
iload 5
isub
if_icmple 43
42: aload 0
aload 2
invokevirtual org.bouncycastle.crypto.signers.ISO9796d2Signer.returnFalse:([B)Z
ireturn
43: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.digest:Lorg/bouncycastle/crypto/Digest;
invokeinterface org.bouncycastle.crypto.Digest.reset:()V
44: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.digest:Lorg/bouncycastle/crypto/Digest;
aload 2
iload 5
iload 7
iload 5
isub
invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
45: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.digest:Lorg/bouncycastle/crypto/Digest;
aload 6
iconst_0
invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
pop
46: iconst_1
istore 8
start local 8 47: iconst_0
istore 9
start local 9 48: goto 53
49: StackMap locals: int int
StackMap stack:
aload 2
iload 7
iload 9
iadd
dup2
baload
aload 6
iload 9
baload
ixor
i2b
bastore
50: aload 2
iload 7
iload 9
iadd
baload
ifeq 52
51: iconst_0
istore 8
52: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
53: iload 9
aload 6
arraylength
if_icmpne 49
end local 9 54: iload 8
ifne 56
55: aload 0
aload 2
invokevirtual org.bouncycastle.crypto.signers.ISO9796d2Signer.returnFalse:([B)Z
ireturn
56: StackMap locals:
StackMap stack:
aload 0
iload 7
iload 5
isub
newarray 8
putfield org.bouncycastle.crypto.signers.ISO9796d2Signer.recoveredMessage:[B
57: aload 2
iload 5
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.recoveredMessage:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.recoveredMessage:[B
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
end local 8 58: goto 73
59: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield org.bouncycastle.crypto.signers.ISO9796d2Signer.fullMessage:Z
60: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.digest:Lorg/bouncycastle/crypto/Digest;
aload 6
iconst_0
invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
pop
61: iconst_1
istore 8
start local 8 62: iconst_0
istore 9
start local 9 63: goto 68
64: StackMap locals: int int
StackMap stack:
aload 2
iload 7
iload 9
iadd
dup2
baload
aload 6
iload 9
baload
ixor
i2b
bastore
65: aload 2
iload 7
iload 9
iadd
baload
ifeq 67
66: iconst_0
istore 8
67: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
68: iload 9
aload 6
arraylength
if_icmpne 64
end local 9 69: iload 8
ifne 71
70: aload 0
aload 2
invokevirtual org.bouncycastle.crypto.signers.ISO9796d2Signer.returnFalse:([B)Z
ireturn
71: StackMap locals:
StackMap stack:
aload 0
iload 7
iload 5
isub
newarray 8
putfield org.bouncycastle.crypto.signers.ISO9796d2Signer.recoveredMessage:[B
72: aload 2
iload 5
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.recoveredMessage:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.recoveredMessage:[B
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
end local 8 73: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.messageLength:I
ifeq 76
iload 3
ifne 76
74: aload 0
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.mBuf:[B
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.recoveredMessage:[B
invokevirtual org.bouncycastle.crypto.signers.ISO9796d2Signer.isSameAs:([B[B)Z
ifne 76
75: aload 0
aload 2
invokevirtual org.bouncycastle.crypto.signers.ISO9796d2Signer.returnFalse:([B)Z
ireturn
76: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.mBuf:[B
invokevirtual org.bouncycastle.crypto.signers.ISO9796d2Signer.clearBlock:([B)V
77: aload 0
aload 2
invokevirtual org.bouncycastle.crypto.signers.ISO9796d2Signer.clearBlock:([B)V
78: iconst_1
ireturn
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 79 0 this Lorg/bouncycastle/crypto/signers/ISO9796d2Signer;
0 79 1 signature [B
1 79 2 block [B
3 7 3 updateWithRecoveredCalled Z
10 79 3 updateWithRecoveredCalled Z
18 79 4 delta I
22 28 5 sigTrail I
23 28 6 trailerObj Ljava/lang/Integer;
29 79 5 mStart I
36 79 6 hash [B
37 79 7 off I
47 58 8 isOkay Z
48 54 9 i I
62 73 8 isOkay Z
63 69 9 i I
Exception table:
from to target type
3 4 5 Class java.lang.Exception
MethodParameters:
Name Flags
signature
private boolean returnFalse(byte[]);
descriptor: ([B)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.mBuf:[B
invokevirtual org.bouncycastle.crypto.signers.ISO9796d2Signer.clearBlock:([B)V
1: aload 0
aload 1
invokevirtual org.bouncycastle.crypto.signers.ISO9796d2Signer.clearBlock:([B)V
2: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/crypto/signers/ISO9796d2Signer;
0 3 1 block [B
MethodParameters:
Name Flags
block
public boolean hasFullMessage();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.fullMessage:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/signers/ISO9796d2Signer;
public byte[] getRecoveredMessage();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.crypto.signers.ISO9796d2Signer.recoveredMessage:[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/signers/ISO9796d2Signer;
}
SourceFile: "ISO9796d2Signer.java"