final class sun.security.pkcs11.P11Signature extends java.security.SignatureSpi
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.pkcs11.P11Signature
super_class: java.security.SignatureSpi
{
private final sun.security.pkcs11.Token token;
descriptor: Lsun/security/pkcs11/Token;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String algorithm;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String keyAlgorithm;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long mechanism;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final sun.security.util.ObjectIdentifier digestOID;
descriptor: Lsun/security/util/ObjectIdentifier;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int type;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private sun.security.pkcs11.P11Key p11Key;
descriptor: Lsun/security/pkcs11/P11Key;
flags: (0x0002) ACC_PRIVATE
private final java.security.MessageDigest md;
descriptor: Ljava/security/MessageDigest;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private sun.security.pkcs11.Session session;
descriptor: Lsun/security/pkcs11/Session;
flags: (0x0002) ACC_PRIVATE
private int mode;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean initialized;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final byte[] buffer;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int bytesProcessed;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private static final int M_SIGN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int M_VERIFY;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int T_DIGEST;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int T_UPDATE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int T_RAW;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int RAW_ECDSA_MAX;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 128
void <init>(sun.security.pkcs11.Token, java.lang.String, long);
descriptor: (Lsun/security/pkcs11/Token;Ljava/lang/String;J)V
flags: (0x0000)
Code:
stack=5, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.security.SignatureSpi.<init>:()V
1: aload 0
aload 1
putfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
2: aload 0
aload 2
putfield sun.security.pkcs11.P11Signature.algorithm:Ljava/lang/String;
3: aload 0
lload 3
putfield sun.security.pkcs11.P11Signature.mechanism:J
4: aconst_null
astore 5
start local 5 5: aconst_null
astore 6
start local 6 6: aconst_null
astore 7
start local 7 7: lload 3
l2i
lookupswitch { // 13
1: 54
3: 54
4: 8
5: 8
6: 8
17: 20
18: 12
64: 8
65: 8
66: 8
70: 8
4161: 30
4162: 16
default: 85
}
8: StackMap locals: sun.security.pkcs11.P11Signature sun.security.pkcs11.Token java.lang.String long byte[] sun.security.util.ObjectIdentifier java.security.MessageDigest
StackMap stack:
aload 0
ldc "RSA"
putfield sun.security.pkcs11.P11Signature.keyAlgorithm:Ljava/lang/String;
9: aload 0
iconst_2
putfield sun.security.pkcs11.P11Signature.type:I
10: iconst_1
newarray 8
astore 5
11: goto 86
12: StackMap locals:
StackMap stack:
aload 0
ldc "DSA"
putfield sun.security.pkcs11.P11Signature.keyAlgorithm:Ljava/lang/String;
13: aload 0
iconst_2
putfield sun.security.pkcs11.P11Signature.type:I
14: iconst_1
newarray 8
astore 5
15: goto 86
16: StackMap locals:
StackMap stack:
aload 0
ldc "EC"
putfield sun.security.pkcs11.P11Signature.keyAlgorithm:Ljava/lang/String;
17: aload 0
iconst_2
putfield sun.security.pkcs11.P11Signature.type:I
18: iconst_1
newarray 8
astore 5
19: goto 86
20: StackMap locals:
StackMap stack:
aload 0
ldc "DSA"
putfield sun.security.pkcs11.P11Signature.keyAlgorithm:Ljava/lang/String;
21: aload 2
ldc "DSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 25
22: aload 0
iconst_1
putfield sun.security.pkcs11.P11Signature.type:I
23: ldc "SHA-1"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 7
24: goto 86
StackMap locals:
StackMap stack:
25: aload 2
ldc "RawDSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 29
26: aload 0
iconst_3
putfield sun.security.pkcs11.P11Signature.type:I
27: bipush 20
newarray 8
astore 5
28: goto 86
29: StackMap locals:
StackMap stack:
new java.security.ProviderException
dup
aload 2
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
athrow
30: StackMap locals:
StackMap stack:
aload 0
ldc "EC"
putfield sun.security.pkcs11.P11Signature.keyAlgorithm:Ljava/lang/String;
31: aload 2
ldc "NONEwithECDSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 35
32: aload 0
iconst_3
putfield sun.security.pkcs11.P11Signature.type:I
33: sipush 128
newarray 8
astore 5
34: goto 86
35: StackMap locals:
StackMap stack:
aload 2
ldc "SHA1withECDSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 38
36: ldc "SHA-1"
astore 8
start local 8 37: goto 51
end local 8 StackMap locals:
StackMap stack:
38: aload 2
ldc "SHA224withECDSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 41
39: ldc "SHA-224"
astore 8
start local 8 40: goto 51
end local 8 StackMap locals:
StackMap stack:
41: aload 2
ldc "SHA256withECDSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 44
42: ldc "SHA-256"
astore 8
start local 8 43: goto 51
end local 8 StackMap locals:
StackMap stack:
44: aload 2
ldc "SHA384withECDSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 47
45: ldc "SHA-384"
astore 8
start local 8 46: goto 51
end local 8 StackMap locals:
StackMap stack:
47: aload 2
ldc "SHA512withECDSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 50
48: ldc "SHA-512"
astore 8
start local 8 49: goto 51
end local 8 50: StackMap locals:
StackMap stack:
new java.security.ProviderException
dup
aload 2
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
athrow
start local 8 51: StackMap locals: java.lang.String
StackMap stack:
aload 0
iconst_1
putfield sun.security.pkcs11.P11Signature.type:I
52: aload 8
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 7
end local 8 53: goto 86
54: StackMap locals:
StackMap stack:
aload 0
ldc "RSA"
putfield sun.security.pkcs11.P11Signature.keyAlgorithm:Ljava/lang/String;
55: aload 0
iconst_1
putfield sun.security.pkcs11.P11Signature.type:I
56: aload 2
ldc "MD5withRSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 60
57: ldc "MD5"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 7
58: getstatic sun.security.x509.AlgorithmId.MD5_oid:Lsun/security/util/ObjectIdentifier;
astore 6
59: goto 86
StackMap locals:
StackMap stack:
60: aload 2
ldc "SHA1withRSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 64
61: ldc "SHA-1"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 7
62: getstatic sun.security.x509.AlgorithmId.SHA_oid:Lsun/security/util/ObjectIdentifier;
astore 6
63: goto 86
StackMap locals:
StackMap stack:
64: aload 2
ldc "MD2withRSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 68
65: ldc "MD2"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 7
66: getstatic sun.security.x509.AlgorithmId.MD2_oid:Lsun/security/util/ObjectIdentifier;
astore 6
67: goto 86
StackMap locals:
StackMap stack:
68: aload 2
ldc "SHA224withRSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 72
69: ldc "SHA-224"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 7
70: getstatic sun.security.x509.AlgorithmId.SHA224_oid:Lsun/security/util/ObjectIdentifier;
astore 6
71: goto 86
StackMap locals:
StackMap stack:
72: aload 2
ldc "SHA256withRSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 76
73: ldc "SHA-256"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 7
74: getstatic sun.security.x509.AlgorithmId.SHA256_oid:Lsun/security/util/ObjectIdentifier;
astore 6
75: goto 86
StackMap locals:
StackMap stack:
76: aload 2
ldc "SHA384withRSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 80
77: ldc "SHA-384"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 7
78: getstatic sun.security.x509.AlgorithmId.SHA384_oid:Lsun/security/util/ObjectIdentifier;
astore 6
79: goto 86
StackMap locals:
StackMap stack:
80: aload 2
ldc "SHA512withRSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 84
81: ldc "SHA-512"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 7
82: getstatic sun.security.x509.AlgorithmId.SHA512_oid:Lsun/security/util/ObjectIdentifier;
astore 6
83: goto 86
84: StackMap locals:
StackMap stack:
new java.security.ProviderException
dup
new java.lang.StringBuilder
dup
ldc "Unknown signature: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
athrow
85: StackMap locals:
StackMap stack:
new java.security.ProviderException
dup
new java.lang.StringBuilder
dup
ldc "Unknown mechanism: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 3
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
athrow
86: StackMap locals:
StackMap stack:
aload 0
aload 5
putfield sun.security.pkcs11.P11Signature.buffer:[B
87: aload 0
aload 6
putfield sun.security.pkcs11.P11Signature.digestOID:Lsun/security/util/ObjectIdentifier;
88: aload 0
aload 7
putfield sun.security.pkcs11.P11Signature.md:Ljava/security/MessageDigest;
89: return
end local 7 end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 90 0 this Lsun/security/pkcs11/P11Signature;
0 90 1 token Lsun/security/pkcs11/Token;
0 90 2 algorithm Ljava/lang/String;
0 90 3 mechanism J
5 90 5 buffer [B
6 90 6 digestOID Lsun/security/util/ObjectIdentifier;
7 90 7 md Ljava/security/MessageDigest;
37 38 8 digestAlg Ljava/lang/String;
40 41 8 digestAlg Ljava/lang/String;
43 44 8 digestAlg Ljava/lang/String;
46 47 8 digestAlg Ljava/lang/String;
49 50 8 digestAlg Ljava/lang/String;
51 53 8 digestAlg Ljava/lang/String;
Exceptions:
throws java.security.NoSuchAlgorithmException, sun.security.pkcs11.wrapper.PKCS11Exception
MethodParameters:
Name Flags
token
algorithm
mechanism
private void ensureInitialized();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
invokevirtual sun.security.pkcs11.Token.ensureValid:()V
1: aload 0
getfield sun.security.pkcs11.P11Signature.initialized:Z
ifne 3
2: aload 0
invokevirtual sun.security.pkcs11.P11Signature.initialize:()V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/pkcs11/P11Signature;
private void cancelOperation();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=1
start local 0 0: aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
invokevirtual sun.security.pkcs11.Token.ensureValid:()V
1: aload 0
getfield sun.security.pkcs11.P11Signature.initialized:Z
ifne 3
2: return
3: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.security.pkcs11.P11Signature.initialized:Z
4: aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
ifnull 5
aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.explicitCancel:Z
ifne 6
5: StackMap locals:
StackMap stack:
return
6: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.hasObjects:()Z
ifne 9
7: aload 0
aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Token.killSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
putfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
8: return
9: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.mode:I
iconst_1
if_icmpne 21
10: aload 0
getfield sun.security.pkcs11.P11Signature.type:I
iconst_2
if_icmpne 13
11: aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
iconst_0
invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_SignFinal:(JI)[B
pop
12: goto 39
13: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.type:I
iconst_1
if_icmpne 16
14: aload 0
getfield sun.security.pkcs11.P11Signature.md:Ljava/security/MessageDigest;
invokevirtual java.security.MessageDigest.digest:()[B
astore 1
start local 1 15: goto 17
end local 1 16: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.buffer:[B
astore 1
start local 1 17: StackMap locals: byte[]
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
aload 1
invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_Sign:(J[B)[B
pop
end local 1 18: goto 39
StackMap locals: sun.security.pkcs11.P11Signature
StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
19: astore 1
start local 1 20: new java.security.ProviderException
dup
ldc "cancel failed"
aload 1
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 1 21: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.keyAlgorithm:Ljava/lang/String;
ldc "DSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 24
22: bipush 40
newarray 8
astore 1
start local 1 23: goto 25
end local 1 24: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.p11Key:Lsun/security/pkcs11/P11Key;
invokevirtual sun.security.pkcs11.P11Key.length:()I
bipush 7
iadd
iconst_3
ishr
newarray 8
astore 1
start local 1 25: StackMap locals: byte[]
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.type:I
iconst_2
if_icmpne 28
26: aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
aload 1
invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_VerifyFinal:(J[B)V
27: goto 39
28: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.type:I
iconst_1
if_icmpne 31
29: aload 0
getfield sun.security.pkcs11.P11Signature.md:Ljava/security/MessageDigest;
invokevirtual java.security.MessageDigest.digest:()[B
astore 2
start local 2 30: goto 32
end local 2 31: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.buffer:[B
astore 2
start local 2 32: StackMap locals: byte[]
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
aload 2
aload 1
invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_Verify:(J[B[B)V
end local 2 end local 1 33: goto 39
StackMap locals: sun.security.pkcs11.P11Signature
StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
34: pop
35: goto 39
StackMap locals:
StackMap stack: java.lang.Throwable
36: astore 3
37: aload 0
aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
putfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
38: aload 3
athrow
39: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
putfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
40: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 41 0 this Lsun/security/pkcs11/P11Signature;
15 16 1 digest [B
17 18 1 digest [B
20 21 1 e Lsun/security/pkcs11/wrapper/PKCS11Exception;
23 24 1 signature [B
25 33 1 signature [B
30 31 2 digest [B
32 33 2 digest [B
Exception table:
from to target type
10 18 19 Class sun.security.pkcs11.wrapper.PKCS11Exception
21 33 34 Class sun.security.pkcs11.wrapper.PKCS11Exception
9 36 36 any
private void initialize();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
ifnonnull 2
1: aload 0
aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
invokevirtual sun.security.pkcs11.Token.getOpSession:()Lsun/security/pkcs11/Session;
putfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.mode:I
iconst_1
if_icmpne 7
3: aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
4: new sun.security.pkcs11.wrapper.CK_MECHANISM
dup
aload 0
getfield sun.security.pkcs11.P11Signature.mechanism:J
invokespecial sun.security.pkcs11.wrapper.CK_MECHANISM.<init>:(J)V
aload 0
getfield sun.security.pkcs11.P11Signature.p11Key:Lsun/security/pkcs11/P11Key;
getfield sun.security.pkcs11.P11Key.keyID:J
5: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_SignInit:(JLsun/security/pkcs11/wrapper/CK_MECHANISM;J)V
6: goto 10
7: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
8: new sun.security.pkcs11.wrapper.CK_MECHANISM
dup
aload 0
getfield sun.security.pkcs11.P11Signature.mechanism:J
invokespecial sun.security.pkcs11.wrapper.CK_MECHANISM.<init>:(J)V
aload 0
getfield sun.security.pkcs11.P11Signature.p11Key:Lsun/security/pkcs11/P11Key;
getfield sun.security.pkcs11.P11Key.keyID:J
9: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_VerifyInit:(JLsun/security/pkcs11/wrapper/CK_MECHANISM;J)V
10: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.security.pkcs11.P11Signature.initialized:Z
11: goto 15
StackMap locals:
StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
12: astore 1
start local 1 13: aload 0
aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
putfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
14: new java.security.ProviderException
dup
ldc "Initialization failed"
aload 1
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 1 15: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.bytesProcessed:I
ifeq 19
16: aload 0
iconst_0
putfield sun.security.pkcs11.P11Signature.bytesProcessed:I
17: aload 0
getfield sun.security.pkcs11.P11Signature.md:Ljava/security/MessageDigest;
ifnull 19
18: aload 0
getfield sun.security.pkcs11.P11Signature.md:Ljava/security/MessageDigest;
invokevirtual java.security.MessageDigest.reset:()V
19: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lsun/security/pkcs11/P11Signature;
13 15 1 e Lsun/security/pkcs11/wrapper/PKCS11Exception;
Exception table:
from to target type
0 11 12 Class sun.security.pkcs11.wrapper.PKCS11Exception
private void checkRSAKeyLength(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: iconst_1
iload 1
bipush 7
iadd
iconst_3
ishr
1: invokestatic sun.security.rsa.RSAPadding.getInstance:(II)Lsun/security/rsa/RSAPadding;
astore 2
start local 2 2: goto 5
end local 2 StackMap locals:
StackMap stack: java.security.InvalidAlgorithmParameterException
3: astore 3
start local 3 4: new java.security.InvalidKeyException
dup
aload 3
invokevirtual java.security.InvalidAlgorithmParameterException.getMessage:()Ljava/lang/String;
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
end local 3 start local 2 5: StackMap locals: sun.security.rsa.RSAPadding
StackMap stack:
aload 2
invokevirtual sun.security.rsa.RSAPadding.getMaxDataSize:()I
istore 3
start local 3 6: aload 0
getfield sun.security.pkcs11.P11Signature.algorithm:Ljava/lang/String;
ldc "MD5withRSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 8
7: aload 0
getfield sun.security.pkcs11.P11Signature.algorithm:Ljava/lang/String;
ldc "MD2withRSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 10
8: StackMap locals: int
StackMap stack:
bipush 34
istore 4
start local 4 9: goto 26
end local 4 StackMap locals:
StackMap stack:
10: aload 0
getfield sun.security.pkcs11.P11Signature.algorithm:Ljava/lang/String;
ldc "SHA1withRSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 13
11: bipush 35
istore 4
start local 4 12: goto 26
end local 4 StackMap locals:
StackMap stack:
13: aload 0
getfield sun.security.pkcs11.P11Signature.algorithm:Ljava/lang/String;
ldc "SHA224withRSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 16
14: bipush 47
istore 4
start local 4 15: goto 26
end local 4 StackMap locals:
StackMap stack:
16: aload 0
getfield sun.security.pkcs11.P11Signature.algorithm:Ljava/lang/String;
ldc "SHA256withRSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 19
17: bipush 51
istore 4
start local 4 18: goto 26
end local 4 StackMap locals:
StackMap stack:
19: aload 0
getfield sun.security.pkcs11.P11Signature.algorithm:Ljava/lang/String;
ldc "SHA384withRSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 22
20: bipush 67
istore 4
start local 4 21: goto 26
end local 4 StackMap locals:
StackMap stack:
22: aload 0
getfield sun.security.pkcs11.P11Signature.algorithm:Ljava/lang/String;
ldc "SHA512withRSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 25
23: bipush 83
istore 4
start local 4 24: goto 26
end local 4 25: StackMap locals:
StackMap stack:
new java.security.ProviderException
dup
new java.lang.StringBuilder
dup
ldc "Unknown signature algo: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.pkcs11.P11Signature.algorithm:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
athrow
start local 4 26: StackMap locals: int
StackMap stack:
iload 4
iload 3
if_icmple 30
27: new java.security.InvalidKeyException
dup
28: ldc "Key is too short for this signature algorithm"
29: invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
30: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lsun/security/pkcs11/P11Signature;
0 31 1 len I
2 3 2 padding Lsun/security/rsa/RSAPadding;
5 31 2 padding Lsun/security/rsa/RSAPadding;
4 5 3 iape Ljava/security/InvalidAlgorithmParameterException;
6 31 3 maxDataSize I
9 10 4 encodedLength I
12 13 4 encodedLength I
15 16 4 encodedLength I
18 19 4 encodedLength I
21 22 4 encodedLength I
24 25 4 encodedLength I
26 31 4 encodedLength I
Exception table:
from to target type
0 2 3 Class java.security.InvalidAlgorithmParameterException
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
len
protected void engineInitVerify(java.security.PublicKey);
descriptor: (Ljava/security/PublicKey;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.security.InvalidKeyException
dup
ldc "Key must not be null"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.keyAlgorithm:Ljava/lang/String;
ldc "RSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 8
aload 1
aload 0
getfield sun.security.pkcs11.P11Signature.p11Key:Lsun/security/pkcs11/P11Key;
if_acmpeq 8
3: aload 1
instanceof sun.security.pkcs11.P11Key
ifeq 6
4: aload 1
checkcast sun.security.pkcs11.P11Key
invokevirtual sun.security.pkcs11.P11Key.length:()I
istore 2
start local 2 5: goto 7
end local 2 6: StackMap locals:
StackMap stack:
aload 1
checkcast java.security.interfaces.RSAKey
invokeinterface java.security.interfaces.RSAKey.getModulus:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.bitLength:()I
istore 2
start local 2 7: StackMap locals: int
StackMap stack:
aload 0
iload 2
invokevirtual sun.security.pkcs11.P11Signature.checkRSAKeyLength:(I)V
end local 2 8: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.pkcs11.P11Signature.cancelOperation:()V
9: aload 0
iconst_2
putfield sun.security.pkcs11.P11Signature.mode:I
10: aload 0
aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
aload 1
aload 0
getfield sun.security.pkcs11.P11Signature.keyAlgorithm:Ljava/lang/String;
invokestatic sun.security.pkcs11.P11KeyFactory.convertKey:(Lsun/security/pkcs11/Token;Ljava/security/Key;Ljava/lang/String;)Lsun/security/pkcs11/P11Key;
putfield sun.security.pkcs11.P11Signature.p11Key:Lsun/security/pkcs11/P11Key;
11: aload 0
invokevirtual sun.security.pkcs11.P11Signature.initialize:()V
12: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/security/pkcs11/P11Signature;
0 13 1 publicKey Ljava/security/PublicKey;
5 6 2 keyLen I
7 8 2 keyLen I
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
publicKey
protected void engineInitSign(java.security.PrivateKey);
descriptor: (Ljava/security/PrivateKey;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.security.InvalidKeyException
dup
ldc "Key must not be null"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.keyAlgorithm:Ljava/lang/String;
ldc "RSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 8
aload 1
aload 0
getfield sun.security.pkcs11.P11Signature.p11Key:Lsun/security/pkcs11/P11Key;
if_acmpeq 8
3: aload 1
instanceof sun.security.pkcs11.P11Key
ifeq 6
4: aload 1
checkcast sun.security.pkcs11.P11Key
getfield sun.security.pkcs11.P11Key.keyLength:I
istore 2
start local 2 5: goto 7
end local 2 6: StackMap locals:
StackMap stack:
aload 1
checkcast java.security.interfaces.RSAKey
invokeinterface java.security.interfaces.RSAKey.getModulus:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.bitLength:()I
istore 2
start local 2 7: StackMap locals: int
StackMap stack:
aload 0
iload 2
invokevirtual sun.security.pkcs11.P11Signature.checkRSAKeyLength:(I)V
end local 2 8: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.pkcs11.P11Signature.cancelOperation:()V
9: aload 0
iconst_1
putfield sun.security.pkcs11.P11Signature.mode:I
10: aload 0
aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
aload 1
aload 0
getfield sun.security.pkcs11.P11Signature.keyAlgorithm:Ljava/lang/String;
invokestatic sun.security.pkcs11.P11KeyFactory.convertKey:(Lsun/security/pkcs11/Token;Ljava/security/Key;Ljava/lang/String;)Lsun/security/pkcs11/P11Key;
putfield sun.security.pkcs11.P11Signature.p11Key:Lsun/security/pkcs11/P11Key;
11: aload 0
invokevirtual sun.security.pkcs11.P11Signature.initialize:()V
12: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/security/pkcs11/P11Signature;
0 13 1 privateKey Ljava/security/PrivateKey;
5 6 2 keyLen I
7 8 2 keyLen I
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
privateKey
protected void engineUpdate(byte);
descriptor: (B)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.security.pkcs11.P11Signature.ensureInitialized:()V
1: aload 0
getfield sun.security.pkcs11.P11Signature.type:I
tableswitch { // 1 - 3
1: 5
2: 2
3: 8
default: 13
}
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.buffer:[B
iconst_0
iload 1
bastore
3: aload 0
aload 0
getfield sun.security.pkcs11.P11Signature.buffer:[B
iconst_0
iconst_1
invokevirtual sun.security.pkcs11.P11Signature.engineUpdate:([BII)V
4: goto 14
5: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.md:Ljava/security/MessageDigest;
iload 1
invokevirtual java.security.MessageDigest.update:(B)V
6: aload 0
dup
getfield sun.security.pkcs11.P11Signature.bytesProcessed:I
iconst_1
iadd
putfield sun.security.pkcs11.P11Signature.bytesProcessed:I
7: goto 14
8: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.bytesProcessed:I
aload 0
getfield sun.security.pkcs11.P11Signature.buffer:[B
arraylength
if_icmplt 11
9: aload 0
aload 0
getfield sun.security.pkcs11.P11Signature.buffer:[B
arraylength
iconst_1
iadd
putfield sun.security.pkcs11.P11Signature.bytesProcessed:I
10: return
11: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.buffer:[B
aload 0
dup
getfield sun.security.pkcs11.P11Signature.bytesProcessed:I
dup_x1
iconst_1
iadd
putfield sun.security.pkcs11.P11Signature.bytesProcessed:I
iload 1
bastore
12: goto 14
13: StackMap locals:
StackMap stack:
new java.security.ProviderException
dup
ldc "Internal error"
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/security/pkcs11/P11Signature;
0 15 1 b B
Exceptions:
throws java.security.SignatureException
MethodParameters:
Name Flags
b
protected void engineUpdate(byte[], int, int);
descriptor: ([BII)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=8, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual sun.security.pkcs11.P11Signature.ensureInitialized:()V
1: iload 3
ifne 3
2: return
3: StackMap locals:
StackMap stack:
iload 3
aload 0
getfield sun.security.pkcs11.P11Signature.bytesProcessed:I
iadd
ifge 5
4: new java.security.ProviderException
dup
ldc "Processed bytes limits exceeded."
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.type:I
tableswitch { // 1 - 3
1: 16
2: 6
3: 19
default: 25
}
6: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.mode:I
iconst_1
if_icmpne 9
7: aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
lconst_0
aload 1
iload 2
iload 3
invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_SignUpdate:(JJ[BII)V
8: goto 10
9: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
lconst_0
aload 1
iload 2
iload 3
invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_VerifyUpdate:(JJ[BII)V
10: StackMap locals:
StackMap stack:
aload 0
dup
getfield sun.security.pkcs11.P11Signature.bytesProcessed:I
iload 3
iadd
putfield sun.security.pkcs11.P11Signature.bytesProcessed:I
11: goto 26
StackMap locals:
StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
12: astore 4
start local 4 13: aload 0
iconst_0
putfield sun.security.pkcs11.P11Signature.initialized:Z
14: aload 0
aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
putfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
15: new java.security.ProviderException
dup
aload 4
invokespecial java.security.ProviderException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 16: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.md:Ljava/security/MessageDigest;
aload 1
iload 2
iload 3
invokevirtual java.security.MessageDigest.update:([BII)V
17: aload 0
dup
getfield sun.security.pkcs11.P11Signature.bytesProcessed:I
iload 3
iadd
putfield sun.security.pkcs11.P11Signature.bytesProcessed:I
18: goto 26
19: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.bytesProcessed:I
iload 3
iadd
aload 0
getfield sun.security.pkcs11.P11Signature.buffer:[B
arraylength
if_icmple 22
20: aload 0
aload 0
getfield sun.security.pkcs11.P11Signature.buffer:[B
arraylength
iconst_1
iadd
putfield sun.security.pkcs11.P11Signature.bytesProcessed:I
21: return
22: StackMap locals:
StackMap stack:
aload 1
iload 2
aload 0
getfield sun.security.pkcs11.P11Signature.buffer:[B
aload 0
getfield sun.security.pkcs11.P11Signature.bytesProcessed:I
iload 3
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
23: aload 0
dup
getfield sun.security.pkcs11.P11Signature.bytesProcessed:I
iload 3
iadd
putfield sun.security.pkcs11.P11Signature.bytesProcessed:I
24: goto 26
25: StackMap locals:
StackMap stack:
new java.security.ProviderException
dup
ldc "Internal error"
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
athrow
26: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lsun/security/pkcs11/P11Signature;
0 27 1 b [B
0 27 2 ofs I
0 27 3 len I
13 16 4 e Lsun/security/pkcs11/wrapper/PKCS11Exception;
Exception table:
from to target type
6 11 12 Class sun.security.pkcs11.wrapper.PKCS11Exception
Exceptions:
throws java.security.SignatureException
MethodParameters:
Name Flags
b
ofs
len
protected void engineUpdate(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=8, locals=7, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.security.pkcs11.P11Signature.ensureInitialized:()V
1: aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 2
start local 2 2: iload 2
ifgt 4
3: return
4: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.type:I
tableswitch { // 1 - 3
1: 25
2: 5
3: 28
default: 34
}
5: StackMap locals:
StackMap stack:
aload 1
instanceof sun.nio.ch.DirectBuffer
ifne 8
6: aload 0
aload 1
invokespecial java.security.SignatureSpi.engineUpdate:(Ljava/nio/ByteBuffer;)V
7: return
8: StackMap locals:
StackMap stack:
aload 1
checkcast sun.nio.ch.DirectBuffer
invokeinterface sun.nio.ch.DirectBuffer.address:()J
lstore 3
start local 3 9: aload 1
invokevirtual java.nio.ByteBuffer.position:()I
istore 5
start local 5 10: aload 0
getfield sun.security.pkcs11.P11Signature.mode:I
iconst_1
if_icmpne 15
11: aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
12: aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
lload 3
iload 5
i2l
ladd
aconst_null
iconst_0
iload 2
13: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_SignUpdate:(JJ[BII)V
14: goto 18
15: StackMap locals: long int
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
16: aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
lload 3
iload 5
i2l
ladd
aconst_null
iconst_0
iload 2
17: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_VerifyUpdate:(JJ[BII)V
18: StackMap locals:
StackMap stack:
aload 0
dup
getfield sun.security.pkcs11.P11Signature.bytesProcessed:I
iload 2
iadd
putfield sun.security.pkcs11.P11Signature.bytesProcessed:I
19: aload 1
iload 5
iload 2
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
20: goto 35
StackMap locals:
StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
21: astore 6
start local 6 22: aload 0
iconst_0
putfield sun.security.pkcs11.P11Signature.initialized:Z
23: aload 0
aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
putfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
24: new java.security.ProviderException
dup
ldc "Update failed"
aload 6
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 6 end local 5 end local 3 25: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.md:Ljava/security/MessageDigest;
aload 1
invokevirtual java.security.MessageDigest.update:(Ljava/nio/ByteBuffer;)V
26: aload 0
dup
getfield sun.security.pkcs11.P11Signature.bytesProcessed:I
iload 2
iadd
putfield sun.security.pkcs11.P11Signature.bytesProcessed:I
27: goto 35
28: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.bytesProcessed:I
iload 2
iadd
aload 0
getfield sun.security.pkcs11.P11Signature.buffer:[B
arraylength
if_icmple 31
29: aload 0
aload 0
getfield sun.security.pkcs11.P11Signature.buffer:[B
arraylength
iconst_1
iadd
putfield sun.security.pkcs11.P11Signature.bytesProcessed:I
30: return
31: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield sun.security.pkcs11.P11Signature.buffer:[B
aload 0
getfield sun.security.pkcs11.P11Signature.bytesProcessed:I
iload 2
invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
pop
32: aload 0
dup
getfield sun.security.pkcs11.P11Signature.bytesProcessed:I
iload 2
iadd
putfield sun.security.pkcs11.P11Signature.bytesProcessed:I
33: goto 35
34: StackMap locals:
StackMap stack:
new java.security.ProviderException
dup
ldc "Internal error"
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
athrow
35: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lsun/security/pkcs11/P11Signature;
0 36 1 byteBuffer Ljava/nio/ByteBuffer;
2 36 2 len I
9 25 3 addr J
10 25 5 ofs I
22 25 6 e Lsun/security/pkcs11/wrapper/PKCS11Exception;
Exception table:
from to target type
10 20 21 Class sun.security.pkcs11.wrapper.PKCS11Exception
MethodParameters:
Name Flags
byteBuffer
protected byte[] engineSign();
descriptor: ()[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=6, args_size=1
start local 0 0: aload 0
invokevirtual sun.security.pkcs11.P11Signature.ensureInitialized:()V
1: aload 0
getfield sun.security.pkcs11.P11Signature.type:I
iconst_2
if_icmpne 7
2: aload 0
getfield sun.security.pkcs11.P11Signature.keyAlgorithm:Ljava/lang/String;
ldc "DSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 3
bipush 40
goto 4
StackMap locals:
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: istore 2
start local 2 5: aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
iload 2
invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_SignFinal:(JI)[B
astore 1
end local 2 start local 1 6: goto 28
end local 1 7: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.type:I
iconst_1
if_icmpne 10
8: aload 0
getfield sun.security.pkcs11.P11Signature.md:Ljava/security/MessageDigest;
invokevirtual java.security.MessageDigest.digest:()[B
astore 2
start local 2 9: goto 21
end local 2 10: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.mechanism:J
ldc 17
lcmp
ifne 17
11: aload 0
getfield sun.security.pkcs11.P11Signature.bytesProcessed:I
aload 0
getfield sun.security.pkcs11.P11Signature.buffer:[B
arraylength
if_icmpeq 15
12: new java.security.SignatureException
dup
13: ldc "Data for RawDSA must be exactly 20 bytes long"
14: invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.buffer:[B
astore 2
start local 2 16: goto 21
end local 2 17: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.bytesProcessed:I
aload 0
getfield sun.security.pkcs11.P11Signature.buffer:[B
arraylength
if_icmple 19
18: new java.security.SignatureException
dup
ldc "Data for NONEwithECDSA must be at most 128 bytes long"
invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
athrow
19: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.bytesProcessed:I
newarray 8
astore 2
start local 2 20: aload 0
getfield sun.security.pkcs11.P11Signature.buffer:[B
iconst_0
aload 2
iconst_0
aload 0
getfield sun.security.pkcs11.P11Signature.bytesProcessed:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
21: StackMap locals: sun.security.pkcs11.P11Signature top byte[]
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.keyAlgorithm:Ljava/lang/String;
ldc "RSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 24
22: aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
aload 2
invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_Sign:(J[B)[B
astore 1
start local 1 23: goto 28
end local 1 24: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual sun.security.pkcs11.P11Signature.encodeSignature:([B)[B
astore 3
start local 3 25: aload 0
getfield sun.security.pkcs11.P11Signature.mechanism:J
ldc 3
lcmp
ifne 27
26: aload 0
aload 3
invokevirtual sun.security.pkcs11.P11Signature.pkcs1Pad:([B)[B
astore 3
27: StackMap locals: byte[]
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
aload 3
invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_Sign:(J[B)[B
astore 1
end local 3 end local 2 start local 1 28: StackMap locals: sun.security.pkcs11.P11Signature byte[]
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.keyAlgorithm:Ljava/lang/String;
ldc "RSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 33
29: aload 1
invokestatic sun.security.pkcs11.P11Signature.dsaToASN1:([B)[B
astore 5
30: aload 0
iconst_0
putfield sun.security.pkcs11.P11Signature.initialized:Z
31: aload 0
aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
putfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
32: aload 5
areturn
33: StackMap locals:
StackMap stack:
aload 1
astore 5
34: aload 0
iconst_0
putfield sun.security.pkcs11.P11Signature.initialized:Z
35: aload 0
aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
putfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
36: aload 5
areturn
end local 1 37: StackMap locals: sun.security.pkcs11.P11Signature
StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
astore 1
start local 1 38: new java.security.ProviderException
dup
aload 1
invokespecial java.security.ProviderException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 39: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
40: aload 0
iconst_0
putfield sun.security.pkcs11.P11Signature.initialized:Z
41: aload 0
aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
putfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
42: aload 4
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Lsun/security/pkcs11/P11Signature;
6 7 1 signature [B
23 24 1 signature [B
28 37 1 signature [B
5 6 2 len I
9 10 2 digest [B
16 17 2 digest [B
20 28 2 digest [B
25 28 3 data [B
38 39 1 e Lsun/security/pkcs11/wrapper/PKCS11Exception;
Exception table:
from to target type
1 30 37 Class sun.security.pkcs11.wrapper.PKCS11Exception
33 34 37 Class sun.security.pkcs11.wrapper.PKCS11Exception
1 30 39 any
33 34 39 any
37 39 39 any
Exceptions:
throws java.security.SignatureException
protected boolean engineVerify(byte[]);
descriptor: ([B)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.security.pkcs11.P11Signature.ensureInitialized:()V
1: aload 0
getfield sun.security.pkcs11.P11Signature.keyAlgorithm:Ljava/lang/String;
ldc "DSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
2: aload 1
invokestatic sun.security.pkcs11.P11Signature.asn1ToDSA:([B)[B
astore 1
3: goto 6
StackMap locals:
StackMap stack:
4: aload 0
getfield sun.security.pkcs11.P11Signature.keyAlgorithm:Ljava/lang/String;
ldc "EC"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 6
5: aload 0
aload 1
invokevirtual sun.security.pkcs11.P11Signature.asn1ToECDSA:([B)[B
astore 1
6: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.type:I
iconst_2
if_icmpne 9
7: aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
aload 1
invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_VerifyFinal:(J[B)V
8: goto 30
9: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.type:I
iconst_1
if_icmpne 12
10: aload 0
getfield sun.security.pkcs11.P11Signature.md:Ljava/security/MessageDigest;
invokevirtual java.security.MessageDigest.digest:()[B
astore 2
start local 2 11: goto 23
end local 2 12: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.mechanism:J
ldc 17
lcmp
ifne 19
13: aload 0
getfield sun.security.pkcs11.P11Signature.bytesProcessed:I
aload 0
getfield sun.security.pkcs11.P11Signature.buffer:[B
arraylength
if_icmpeq 17
14: new java.security.SignatureException
dup
15: ldc "Data for RawDSA must be exactly 20 bytes long"
16: invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.buffer:[B
astore 2
start local 2 18: goto 23
end local 2 19: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.bytesProcessed:I
aload 0
getfield sun.security.pkcs11.P11Signature.buffer:[B
arraylength
if_icmple 21
20: new java.security.SignatureException
dup
ldc "Data for NONEwithECDSA must be at most 128 bytes long"
invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
athrow
21: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.bytesProcessed:I
newarray 8
astore 2
start local 2 22: aload 0
getfield sun.security.pkcs11.P11Signature.buffer:[B
iconst_0
aload 2
iconst_0
aload 0
getfield sun.security.pkcs11.P11Signature.bytesProcessed:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
23: StackMap locals: byte[]
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.keyAlgorithm:Ljava/lang/String;
ldc "RSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 26
24: aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
aload 2
aload 1
invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_Verify:(J[B[B)V
25: goto 30
26: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual sun.security.pkcs11.P11Signature.encodeSignature:([B)[B
astore 3
start local 3 27: aload 0
getfield sun.security.pkcs11.P11Signature.mechanism:J
ldc 3
lcmp
ifne 29
28: aload 0
aload 3
invokevirtual sun.security.pkcs11.P11Signature.pkcs1Pad:([B)[B
astore 3
29: StackMap locals: byte[]
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
aload 3
aload 1
invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_Verify:(J[B[B)V
end local 3 end local 2 30: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.security.pkcs11.P11Signature.initialized:Z
31: aload 0
aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
putfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
32: iconst_1
ireturn
33: StackMap locals:
StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
astore 2
start local 2 34: aload 2
invokevirtual sun.security.pkcs11.wrapper.PKCS11Exception.getErrorCode:()J
lstore 3
start local 3 35: lload 3
ldc 192
lcmp
ifne 39
36: aload 0
iconst_0
putfield sun.security.pkcs11.P11Signature.initialized:Z
37: aload 0
aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
putfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
38: iconst_0
ireturn
39: StackMap locals: sun.security.pkcs11.wrapper.PKCS11Exception long
StackMap stack:
lload 3
ldc 193
lcmp
ifne 43
40: aload 0
iconst_0
putfield sun.security.pkcs11.P11Signature.initialized:Z
41: aload 0
aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
putfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
42: iconst_0
ireturn
43: StackMap locals:
StackMap stack:
lload 3
ldc 33
lcmp
ifne 47
44: aload 0
iconst_0
putfield sun.security.pkcs11.P11Signature.initialized:Z
45: aload 0
aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
putfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
46: iconst_0
ireturn
47: StackMap locals:
StackMap stack:
new java.security.ProviderException
dup
aload 2
invokespecial java.security.ProviderException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 end local 2 48: StackMap locals: sun.security.pkcs11.P11Signature byte[]
StackMap stack: java.lang.Throwable
astore 5
49: aload 0
iconst_0
putfield sun.security.pkcs11.P11Signature.initialized:Z
50: aload 0
aload 0
getfield sun.security.pkcs11.P11Signature.token:Lsun/security/pkcs11/Token;
aload 0
getfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
putfield sun.security.pkcs11.P11Signature.session:Lsun/security/pkcs11/Session;
51: aload 5
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 52 0 this Lsun/security/pkcs11/P11Signature;
0 52 1 signature [B
11 12 2 digest [B
18 19 2 digest [B
22 30 2 digest [B
27 30 3 data [B
34 48 2 e Lsun/security/pkcs11/wrapper/PKCS11Exception;
35 48 3 errorCode J
Exception table:
from to target type
1 30 33 Class sun.security.pkcs11.wrapper.PKCS11Exception
1 30 48 any
33 36 48 any
39 40 48 any
43 44 48 any
47 48 48 any
Exceptions:
throws java.security.SignatureException
MethodParameters:
Name Flags
signature
private byte[] pkcs1Pad(byte[]);
descriptor: ([B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.pkcs11.P11Signature.p11Key:Lsun/security/pkcs11/P11Key;
invokevirtual sun.security.pkcs11.P11Key.length:()I
bipush 7
iadd
iconst_3
ishr
istore 2
start local 2 1: iconst_1
iload 2
2: invokestatic sun.security.rsa.RSAPadding.getInstance:(II)Lsun/security/rsa/RSAPadding;
astore 3
start local 3 3: aload 3
aload 1
invokevirtual sun.security.rsa.RSAPadding.pad:([B)[B
astore 4
start local 4 4: aload 4
5: areturn
end local 4 end local 3 end local 2 6: StackMap locals:
StackMap stack: java.security.GeneralSecurityException
astore 2
start local 2 7: new java.security.ProviderException
dup
aload 2
invokespecial java.security.ProviderException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/pkcs11/P11Signature;
0 8 1 data [B
1 6 2 len I
3 6 3 padding Lsun/security/rsa/RSAPadding;
4 6 4 padded [B
7 8 2 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
0 5 6 Class java.security.GeneralSecurityException
MethodParameters:
Name Flags
data
private byte[] encodeSignature(byte[]);
descriptor: ([B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.pkcs11.P11Signature.digestOID:Lsun/security/util/ObjectIdentifier;
aload 1
invokestatic sun.security.rsa.RSASignature.encodeSignature:(Lsun/security/util/ObjectIdentifier;[B)[B
1: areturn
2: StackMap locals:
StackMap stack: java.io.IOException
astore 2
start local 2 3: new java.security.SignatureException
dup
ldc "Invalid encoding"
aload 2
invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/pkcs11/P11Signature;
0 4 1 digest [B
3 4 2 e Ljava/io/IOException;
Exception table:
from to target type
0 1 2 Class java.io.IOException
Exceptions:
throws java.security.SignatureException
MethodParameters:
Name Flags
digest
private static byte[] dsaToASN1(byte[]);
descriptor: ([B)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=6, args_size=1
start local 0 0: aload 0
arraylength
iconst_1
ishr
istore 1
start local 1 1: new java.math.BigInteger
dup
iconst_1
aload 0
iconst_0
iload 1
invokestatic sun.security.pkcs11.P11Util.subarray:([BII)[B
invokespecial java.math.BigInteger.<init>:(I[B)V
astore 2
start local 2 2: new java.math.BigInteger
dup
iconst_1
aload 0
iload 1
iload 1
invokestatic sun.security.pkcs11.P11Util.subarray:([BII)[B
invokespecial java.math.BigInteger.<init>:(I[B)V
astore 3
start local 3 3: new sun.security.util.DerOutputStream
dup
bipush 100
invokespecial sun.security.util.DerOutputStream.<init>:(I)V
astore 4
start local 4 4: aload 4
aload 2
invokevirtual sun.security.util.DerOutputStream.putInteger:(Ljava/math/BigInteger;)V
5: aload 4
aload 3
invokevirtual sun.security.util.DerOutputStream.putInteger:(Ljava/math/BigInteger;)V
6: new sun.security.util.DerValue
dup
bipush 48
7: aload 4
invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
8: invokespecial sun.security.util.DerValue.<init>:(B[B)V
astore 5
start local 5 9: aload 5
invokevirtual sun.security.util.DerValue.toByteArray:()[B
10: areturn
end local 5 end local 4 11: StackMap locals: byte[] int java.math.BigInteger java.math.BigInteger
StackMap stack: java.io.IOException
astore 4
start local 4 12: new java.lang.RuntimeException
dup
ldc "Internal error"
aload 4
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 signature [B
1 13 1 n I
2 13 2 r Ljava/math/BigInteger;
3 13 3 s Ljava/math/BigInteger;
4 11 4 outseq Lsun/security/util/DerOutputStream;
9 11 5 result Lsun/security/util/DerValue;
12 13 4 e Ljava/io/IOException;
Exception table:
from to target type
3 10 11 Class java.io.IOException
MethodParameters:
Name Flags
signature
private static byte[] asn1ToDSA(byte[]);
descriptor: ([B)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=7, args_size=1
start local 0 0: new sun.security.util.DerInputStream
dup
aload 0
iconst_0
aload 0
arraylength
iconst_0
invokespecial sun.security.util.DerInputStream.<init>:([BIIZ)V
astore 1
start local 1 1: aload 1
iconst_2
invokevirtual sun.security.util.DerInputStream.getSequence:(I)[Lsun/security/util/DerValue;
astore 2
start local 2 2: aload 2
arraylength
iconst_2
if_icmpne 3
aload 1
invokevirtual sun.security.util.DerInputStream.available:()I
ifeq 4
3: StackMap locals: sun.security.util.DerInputStream sun.security.util.DerValue[]
StackMap stack:
new java.io.IOException
dup
ldc "Invalid encoding for signature"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 2
iconst_0
aaload
invokevirtual sun.security.util.DerValue.getPositiveBigInteger:()Ljava/math/BigInteger;
astore 3
start local 3 5: aload 2
iconst_1
aaload
invokevirtual sun.security.util.DerValue.getPositiveBigInteger:()Ljava/math/BigInteger;
astore 4
start local 4 6: aload 3
bipush 20
invokestatic sun.security.pkcs11.P11Signature.toByteArray:(Ljava/math/BigInteger;I)[B
astore 5
start local 5 7: aload 4
bipush 20
invokestatic sun.security.pkcs11.P11Signature.toByteArray:(Ljava/math/BigInteger;I)[B
astore 6
start local 6 8: aload 5
ifnull 9
aload 6
ifnonnull 10
9: StackMap locals: byte[] sun.security.util.DerInputStream sun.security.util.DerValue[] java.math.BigInteger java.math.BigInteger byte[] byte[]
StackMap stack:
new java.security.SignatureException
dup
ldc "Out of range value for R or S"
invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
aload 5
aload 6
invokestatic sun.security.pkcs11.P11Util.concat:([B[B)[B
11: areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 12: StackMap locals: byte[]
StackMap stack: java.security.SignatureException
astore 1
start local 1 13: aload 1
athrow
end local 1 14: StackMap locals:
StackMap stack: java.lang.Exception
astore 1
start local 1 15: new java.security.SignatureException
dup
ldc "Invalid encoding for signature"
aload 1
invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 sig [B
1 12 1 in Lsun/security/util/DerInputStream;
2 12 2 values [Lsun/security/util/DerValue;
5 12 3 r Ljava/math/BigInteger;
6 12 4 s Ljava/math/BigInteger;
7 12 5 br [B
8 12 6 bs [B
13 14 1 e Ljava/security/SignatureException;
15 16 1 e Ljava/lang/Exception;
Exception table:
from to target type
0 11 12 Class java.security.SignatureException
0 11 14 Class java.lang.Exception
Exceptions:
throws java.security.SignatureException
MethodParameters:
Name Flags
sig
private byte[] asn1ToECDSA(byte[]);
descriptor: ([B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=10, args_size=2
start local 0 start local 1 0: new sun.security.util.DerInputStream
dup
aload 1
iconst_0
aload 1
arraylength
iconst_0
invokespecial sun.security.util.DerInputStream.<init>:([BIIZ)V
astore 2
start local 2 1: aload 2
iconst_2
invokevirtual sun.security.util.DerInputStream.getSequence:(I)[Lsun/security/util/DerValue;
astore 3
start local 3 2: aload 3
arraylength
iconst_2
if_icmpne 3
aload 2
invokevirtual sun.security.util.DerInputStream.available:()I
ifeq 4
3: StackMap locals: sun.security.util.DerInputStream sun.security.util.DerValue[]
StackMap stack:
new java.io.IOException
dup
ldc "Invalid encoding for signature"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 3
iconst_0
aaload
invokevirtual sun.security.util.DerValue.getPositiveBigInteger:()Ljava/math/BigInteger;
astore 4
start local 4 5: aload 3
iconst_1
aaload
invokevirtual sun.security.util.DerValue.getPositiveBigInteger:()Ljava/math/BigInteger;
astore 5
start local 5 6: aload 4
invokevirtual java.math.BigInteger.toByteArray:()[B
invokestatic sun.security.util.KeyUtil.trimZeroes:([B)[B
astore 6
start local 6 7: aload 5
invokevirtual java.math.BigInteger.toByteArray:()[B
invokestatic sun.security.util.KeyUtil.trimZeroes:([B)[B
astore 7
start local 7 8: aload 6
arraylength
aload 7
arraylength
invokestatic java.lang.Math.max:(II)I
istore 8
start local 8 9: iload 8
iconst_1
ishl
newarray 8
astore 9
start local 9 10: aload 6
iconst_0
aload 9
iload 8
aload 6
arraylength
isub
aload 6
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
11: aload 7
iconst_0
aload 9
aload 9
arraylength
aload 7
arraylength
isub
aload 7
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
12: aload 9
13: 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 14: StackMap locals: sun.security.pkcs11.P11Signature byte[]
StackMap stack: java.lang.Exception
astore 2
start local 2 15: new java.security.SignatureException
dup
ldc "Invalid encoding for signature"
aload 2
invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lsun/security/pkcs11/P11Signature;
0 16 1 sig [B
1 14 2 in Lsun/security/util/DerInputStream;
2 14 3 values [Lsun/security/util/DerValue;
5 14 4 r Ljava/math/BigInteger;
6 14 5 s Ljava/math/BigInteger;
7 14 6 br [B
8 14 7 bs [B
9 14 8 k I
10 14 9 res [B
15 16 2 e Ljava/lang/Exception;
Exception table:
from to target type
0 13 14 Class java.lang.Exception
Exceptions:
throws java.security.SignatureException
MethodParameters:
Name Flags
sig
private static byte[] toByteArray(java.math.BigInteger, int);
descriptor: (Ljava/math/BigInteger;I)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.math.BigInteger.toByteArray:()[B
astore 2
start local 2 1: aload 2
arraylength
istore 3
start local 3 2: iload 3
iload 1
if_icmpne 4
3: aload 2
areturn
4: StackMap locals: byte[] int
StackMap stack:
iload 3
iload 1
iconst_1
iadd
if_icmpne 8
aload 2
iconst_0
baload
ifne 8
5: iload 1
newarray 8
astore 4
start local 4 6: aload 2
iconst_1
aload 4
iconst_0
iload 1
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
7: aload 4
areturn
end local 4 8: StackMap locals:
StackMap stack:
iload 3
iload 1
if_icmple 10
9: aconst_null
areturn
10: StackMap locals:
StackMap stack:
iload 1
newarray 8
astore 4
start local 4 11: aload 2
iconst_0
aload 4
iload 1
iload 3
isub
iload 3
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
12: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 bi Ljava/math/BigInteger;
0 13 1 len I
1 13 2 b [B
2 13 3 n I
6 8 4 t [B
11 13 4 t [B
MethodParameters:
Name Flags
bi
len
protected void engineSetParameter(java.lang.String, java.lang.Object);
descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new java.lang.UnsupportedOperationException
dup
ldc "setParameter() not supported"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/pkcs11/P11Signature;
0 1 1 param Ljava/lang/String;
0 1 2 value Ljava/lang/Object;
Exceptions:
throws java.security.InvalidParameterException
MethodParameters:
Name Flags
param
value
protected java.lang.Object engineGetParameter(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new java.lang.UnsupportedOperationException
dup
ldc "getParameter() not supported"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/pkcs11/P11Signature;
0 1 1 param Ljava/lang/String;
Exceptions:
throws java.security.InvalidParameterException
MethodParameters:
Name Flags
param
}
SourceFile: "P11Signature.java"