public class sun.security.rsa.RSAPSSSignature extends java.security.SignatureSpi
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.security.rsa.RSAPSSSignature
super_class: java.security.SignatureSpi
{
private static final boolean DEBUG;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final byte[] EIGHT_BYTES_OF_ZEROS;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.Hashtable<java.lang.String, java.lang.Integer> DIGEST_LENGTHS;
descriptor: Ljava/util/Hashtable;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Integer;>;
private java.security.MessageDigest md;
descriptor: Ljava/security/MessageDigest;
flags: (0x0002) ACC_PRIVATE
private boolean digestReset;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.security.interfaces.RSAPrivateKey privKey;
descriptor: Ljava/security/interfaces/RSAPrivateKey;
flags: (0x0002) ACC_PRIVATE
private java.security.interfaces.RSAPublicKey pubKey;
descriptor: Ljava/security/interfaces/RSAPublicKey;
flags: (0x0002) ACC_PRIVATE
private java.security.spec.PSSParameterSpec sigParams;
descriptor: Ljava/security/spec/PSSParameterSpec;
flags: (0x0002) ACC_PRIVATE
private java.security.SecureRandom random;
descriptor: Ljava/security/SecureRandom;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: bipush 8
newarray 8
putstatic sun.security.rsa.RSAPSSSignature.EIGHT_BYTES_OF_ZEROS:[B
1: new java.util.Hashtable
dup
invokespecial java.util.Hashtable.<init>:()V
2: putstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
3: getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
ldc "SHA-1"
bipush 20
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
ldc "SHA"
bipush 20
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
ldc "SHA1"
bipush 20
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
ldc "SHA-224"
bipush 28
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
ldc "SHA224"
bipush 28
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
ldc "SHA-256"
bipush 32
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
9: getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
ldc "SHA256"
bipush 32
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
10: getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
ldc "SHA-384"
bipush 48
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
11: getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
ldc "SHA384"
bipush 48
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
12: getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
ldc "SHA-512"
bipush 64
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
13: getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
ldc "SHA512"
bipush 64
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
14: getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
ldc "SHA-512/224"
bipush 28
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
15: getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
ldc "SHA512/224"
bipush 28
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
16: getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
ldc "SHA-512/256"
bipush 32
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
17: getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
ldc "SHA512/256"
bipush 32
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
18: return
LocalVariableTable:
Start End Slot Name Signature
private boolean isDigestEqual(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnull 1
aload 2
ifnonnull 2
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 2
ldc "-"
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
iconst_m1
if_icmpeq 4
3: aload 1
aload 2
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ireturn
4: StackMap locals:
StackMap stack:
aload 1
ldc "SHA-1"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 9
5: aload 2
ldc "SHA"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 8
6: aload 2
ldc "SHA1"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 8
7: iconst_0
ireturn
StackMap locals:
StackMap stack:
8: iconst_1
ireturn
9: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 2
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 3
start local 3 10: aload 2
iconst_1
iconst_0
ldc "SHA"
iconst_0
iconst_3
invokevirtual java.lang.String.regionMatches:(ZILjava/lang/String;II)Z
ifeq 13
11: aload 3
iconst_3
ldc "-"
invokevirtual java.lang.StringBuilder.insert:(ILjava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
12: aload 1
aload 2
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ireturn
13: StackMap locals: java.lang.StringBuilder
StackMap stack:
new java.security.ProviderException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported digest algorithm "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
14: aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
15: invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lsun/security/rsa/RSAPSSSignature;
0 16 1 stdAlg Ljava/lang/String;
0 16 2 givenAlg Ljava/lang/String;
10 16 3 sb Ljava/lang/StringBuilder;
MethodParameters:
Name Flags
stdAlg
givenAlg
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.security.SignatureSpi.<init>:()V
1: aload 0
iconst_1
putfield sun.security.rsa.RSAPSSSignature.digestReset:Z
2: aload 0
aconst_null
putfield sun.security.rsa.RSAPSSSignature.privKey:Ljava/security/interfaces/RSAPrivateKey;
3: aload 0
aconst_null
putfield sun.security.rsa.RSAPSSSignature.pubKey:Ljava/security/interfaces/RSAPublicKey;
4: aload 0
aconst_null
putfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
5: aload 0
aconst_null
putfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/rsa/RSAPSSSignature;
protected void engineInitVerify(java.security.PublicKey);
descriptor: (Ljava/security/PublicKey;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
instanceof java.security.interfaces.RSAPublicKey
ifne 2
1: new java.security.InvalidKeyException
dup
ldc "key must be RSAPublicKey"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 0
aload 1
checkcast java.security.interfaces.RSAKey
invokevirtual sun.security.rsa.RSAPSSSignature.isValid:(Ljava/security/interfaces/RSAKey;)Ljava/security/interfaces/RSAKey;
checkcast java.security.interfaces.RSAPublicKey
putfield sun.security.rsa.RSAPSSSignature.pubKey:Ljava/security/interfaces/RSAPublicKey;
3: aload 0
aconst_null
putfield sun.security.rsa.RSAPSSSignature.privKey:Ljava/security/interfaces/RSAPrivateKey;
4: aload 0
invokevirtual sun.security.rsa.RSAPSSSignature.resetDigest:()V
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/rsa/RSAPSSSignature;
0 6 1 publicKey Ljava/security/PublicKey;
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=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
invokevirtual sun.security.rsa.RSAPSSSignature.engineInitSign:(Ljava/security/PrivateKey;Ljava/security/SecureRandom;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/rsa/RSAPSSSignature;
0 2 1 privateKey Ljava/security/PrivateKey;
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
privateKey
protected void engineInitSign(java.security.PrivateKey, java.security.SecureRandom);
descriptor: (Ljava/security/PrivateKey;Ljava/security/SecureRandom;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
instanceof java.security.interfaces.RSAPrivateKey
ifne 2
1: new java.security.InvalidKeyException
dup
ldc "key must be RSAPrivateKey"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 0
aload 1
checkcast java.security.interfaces.RSAKey
invokevirtual sun.security.rsa.RSAPSSSignature.isValid:(Ljava/security/interfaces/RSAKey;)Ljava/security/interfaces/RSAKey;
checkcast java.security.interfaces.RSAPrivateKey
putfield sun.security.rsa.RSAPSSSignature.privKey:Ljava/security/interfaces/RSAPrivateKey;
3: aload 0
aconst_null
putfield sun.security.rsa.RSAPSSSignature.pubKey:Ljava/security/interfaces/RSAPublicKey;
4: aload 0
5: aload 2
ifnonnull 6
invokestatic sun.security.jca.JCAUtil.getSecureRandom:()Ljava/security/SecureRandom;
goto 7
StackMap locals:
StackMap stack: sun.security.rsa.RSAPSSSignature
6: aload 2
7: StackMap locals: sun.security.rsa.RSAPSSSignature java.security.PrivateKey java.security.SecureRandom
StackMap stack: sun.security.rsa.RSAPSSSignature java.security.SecureRandom
putfield sun.security.rsa.RSAPSSSignature.random:Ljava/security/SecureRandom;
8: aload 0
invokevirtual sun.security.rsa.RSAPSSSignature.resetDigest:()V
9: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/security/rsa/RSAPSSSignature;
0 10 1 privateKey Ljava/security/PrivateKey;
0 10 2 random Ljava/security/SecureRandom;
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
privateKey
random
private static boolean isCompatible(java.security.spec.AlgorithmParameterSpec, java.security.spec.PSSParameterSpec);
descriptor: (Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/spec/PSSParameterSpec;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=7, args_size=2
start local 0 start local 1 0: aload 0
ifnonnull 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
instanceof java.security.spec.PSSParameterSpec
ifne 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 1
ifnonnull 6
5: iconst_1
ireturn
6: StackMap locals:
StackMap stack:
aload 0
checkcast java.security.spec.PSSParameterSpec
astore 2
start local 2 7: aload 2
invokevirtual java.security.spec.PSSParameterSpec.getSaltLength:()I
aload 1
invokevirtual java.security.spec.PSSParameterSpec.getSaltLength:()I
if_icmple 9
8: iconst_0
ireturn
9: StackMap locals: java.security.spec.PSSParameterSpec
StackMap stack:
new java.security.spec.PSSParameterSpec
dup
aload 2
invokevirtual java.security.spec.PSSParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
10: aload 2
invokevirtual java.security.spec.PSSParameterSpec.getMGFAlgorithm:()Ljava/lang/String;
11: aload 2
invokevirtual java.security.spec.PSSParameterSpec.getMGFParameters:()Ljava/security/spec/AlgorithmParameterSpec;
12: aload 1
invokevirtual java.security.spec.PSSParameterSpec.getSaltLength:()I
13: aload 2
invokevirtual java.security.spec.PSSParameterSpec.getTrailerField:()I
14: invokespecial java.security.spec.PSSParameterSpec.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;II)V
15: astore 3
start local 3 16: new sun.security.rsa.PSSParameters
dup
invokespecial sun.security.rsa.PSSParameters.<init>:()V
astore 4
start local 4 17: aload 4
aload 3
invokevirtual sun.security.rsa.PSSParameters.engineInit:(Ljava/security/spec/AlgorithmParameterSpec;)V
18: aload 4
invokevirtual sun.security.rsa.PSSParameters.engineGetEncoded:()[B
astore 5
start local 5 19: aload 4
aload 1
invokevirtual sun.security.rsa.PSSParameters.engineInit:(Ljava/security/spec/AlgorithmParameterSpec;)V
20: aload 4
invokevirtual sun.security.rsa.PSSParameters.engineGetEncoded:()[B
astore 6
start local 6 21: aload 5
aload 6
invokestatic java.util.Arrays.equals:([B[B)Z
22: ireturn
end local 6 end local 5 23: StackMap locals: java.security.spec.AlgorithmParameterSpec java.security.spec.PSSParameterSpec java.security.spec.PSSParameterSpec java.security.spec.PSSParameterSpec sun.security.rsa.PSSParameters
StackMap stack: java.lang.Exception
astore 5
start local 5 24: iconst_0
ireturn
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 25 0 keyParams Ljava/security/spec/AlgorithmParameterSpec;
0 25 1 sigParams Ljava/security/spec/PSSParameterSpec;
7 25 2 pssKeyParams Ljava/security/spec/PSSParameterSpec;
16 25 3 keyParams2 Ljava/security/spec/PSSParameterSpec;
17 25 4 ap Lsun/security/rsa/PSSParameters;
19 23 5 encoded [B
21 23 6 encoded2 [B
24 25 5 e Ljava/lang/Exception;
Exception table:
from to target type
17 22 23 Class java.lang.Exception
MethodParameters:
Name Flags
keyParams
sigParams
private java.security.interfaces.RSAKey isValid(java.security.interfaces.RSAKey);
descriptor: (Ljava/security/interfaces/RSAKey;)Ljava/security/interfaces/RSAKey;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.security.interfaces.RSAKey.getParams:()Ljava/security/spec/AlgorithmParameterSpec;
pop
1: aload 1
invokeinterface java.security.interfaces.RSAKey.getParams:()Ljava/security/spec/AlgorithmParameterSpec;
aload 0
getfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
invokestatic sun.security.rsa.RSAPSSSignature.isCompatible:(Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/spec/PSSParameterSpec;)Z
ifne 5
2: new java.security.InvalidKeyException
dup
3: ldc "Key contains incompatible PSS parameter values"
4: invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
ifnull 13
6: getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
aload 0
getfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
invokevirtual java.security.spec.PSSParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
7: astore 2
start local 2 8: aload 2
ifnonnull 12
9: new java.security.ProviderException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported digest algo: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
10: aload 0
getfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
invokevirtual java.security.spec.PSSParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
11: invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals: java.lang.Integer
StackMap stack:
aload 1
aload 2
invokevirtual java.lang.Integer.intValue:()I
aload 0
getfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
invokevirtual java.security.spec.PSSParameterSpec.getSaltLength:()I
invokestatic sun.security.rsa.RSAPSSSignature.checkKeyLength:(Ljava/security/interfaces/RSAKey;II)V
end local 2 13: StackMap locals:
StackMap stack:
aload 1
14: areturn
15: StackMap locals:
StackMap stack: java.security.SignatureException
astore 2
start local 2 16: new java.security.InvalidKeyException
dup
aload 2
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/security/rsa/RSAPSSSignature;
0 17 1 rsaKey Ljava/security/interfaces/RSAKey;
8 13 2 hLen Ljava/lang/Integer;
16 17 2 e Ljava/security/SignatureException;
Exception table:
from to target type
0 14 15 Class java.security.SignatureException
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
rsaKey
private java.security.spec.PSSParameterSpec validateSigParams(java.security.spec.AlgorithmParameterSpec);
descriptor: (Ljava/security/spec/AlgorithmParameterSpec;)Ljava/security/spec/PSSParameterSpec;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 4
1: new java.security.InvalidAlgorithmParameterException
dup
2: ldc "Parameters cannot be null"
3: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 1
instanceof java.security.spec.PSSParameterSpec
ifne 8
5: new java.security.InvalidAlgorithmParameterException
dup
6: ldc "parameters must be type PSSParameterSpec"
7: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
aload 1
checkcast java.security.spec.PSSParameterSpec
astore 2
start local 2 9: aload 2
aload 0
getfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
if_acmpne 10
aload 2
areturn
10: StackMap locals: java.security.spec.PSSParameterSpec
StackMap stack:
aload 0
getfield sun.security.rsa.RSAPSSSignature.privKey:Ljava/security/interfaces/RSAPrivateKey;
ifnonnull 11
aload 0
getfield sun.security.rsa.RSAPSSSignature.pubKey:Ljava/security/interfaces/RSAPublicKey;
goto 12
StackMap locals:
StackMap stack:
11: aload 0
getfield sun.security.rsa.RSAPSSSignature.privKey:Ljava/security/interfaces/RSAPrivateKey;
StackMap locals:
StackMap stack: java.security.interfaces.RSAKey
12: astore 3
start local 3 13: aload 3
ifnull 18
14: aload 3
invokeinterface java.security.interfaces.RSAKey.getParams:()Ljava/security/spec/AlgorithmParameterSpec;
aload 2
invokestatic sun.security.rsa.RSAPSSSignature.isCompatible:(Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/spec/PSSParameterSpec;)Z
ifne 18
15: new java.security.InvalidAlgorithmParameterException
dup
16: ldc "Signature parameters does not match key parameters"
17: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
18: StackMap locals: java.security.interfaces.RSAKey
StackMap stack:
aload 2
invokevirtual java.security.spec.PSSParameterSpec.getMGFAlgorithm:()Ljava/lang/String;
ldc "MGF1"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 20
19: new java.security.InvalidAlgorithmParameterException
dup
ldc "Only supports MGF1"
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
20: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.security.spec.PSSParameterSpec.getTrailerField:()I
iconst_1
if_icmpeq 24
21: new java.security.InvalidAlgorithmParameterException
dup
22: ldc "Only supports TrailerFieldBC(1)"
23: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
24: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.security.spec.PSSParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
astore 4
start local 4 25: aload 3
ifnull 31
26: getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
aload 4
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 5
start local 5 27: aload 3
iload 5
aload 2
invokevirtual java.security.spec.PSSParameterSpec.getSaltLength:()I
invokestatic sun.security.rsa.RSAPSSSignature.checkKeyLength:(Ljava/security/interfaces/RSAKey;II)V
end local 5 28: goto 31
StackMap locals: sun.security.rsa.RSAPSSSignature java.security.spec.AlgorithmParameterSpec java.security.spec.PSSParameterSpec java.security.interfaces.RSAKey java.lang.String
StackMap stack: java.security.SignatureException
29: astore 5
start local 5 30: new java.security.InvalidAlgorithmParameterException
dup
aload 5
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 5 31: StackMap locals:
StackMap stack:
aload 2
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lsun/security/rsa/RSAPSSSignature;
0 32 1 p Ljava/security/spec/AlgorithmParameterSpec;
9 32 2 params Ljava/security/spec/PSSParameterSpec;
13 32 3 key Ljava/security/interfaces/RSAKey;
25 32 4 digestAlgo Ljava/lang/String;
27 28 5 hLen I
30 31 5 e Ljava/security/SignatureException;
Exception table:
from to target type
26 28 29 Class java.security.SignatureException
Exceptions:
throws java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
p
private void ensureInit();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.security.rsa.RSAPSSSignature.privKey:Ljava/security/interfaces/RSAPrivateKey;
ifnonnull 1
aload 0
getfield sun.security.rsa.RSAPSSSignature.pubKey:Ljava/security/interfaces/RSAPublicKey;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield sun.security.rsa.RSAPSSSignature.privKey:Ljava/security/interfaces/RSAPrivateKey;
StackMap locals:
StackMap stack: java.security.interfaces.RSAKey
2: astore 1
start local 1 3: aload 1
ifnonnull 5
4: new java.security.SignatureException
dup
ldc "Missing key"
invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: java.security.interfaces.RSAKey
StackMap stack:
aload 0
getfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
ifnonnull 9
6: new java.security.SignatureException
dup
7: ldc "Parameters required for RSASSA-PSS signatures"
8: invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/security/rsa/RSAPSSSignature;
3 10 1 key Ljava/security/interfaces/RSAKey;
Exceptions:
throws java.security.SignatureException
private static void checkKeyLength(java.security.interfaces.RSAKey, int, int);
descriptor: (Ljava/security/interfaces/RSAKey;II)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
ifnull 7
1: aload 0
invokestatic sun.security.rsa.RSAPSSSignature.getKeyLengthInBits:(Ljava/security/interfaces/RSAKey;)I
bipush 7
iadd
iconst_3
ishr
istore 3
start local 3 2: iload 1
iload 2
invokestatic java.lang.Math.addExact:(II)I
iconst_2
invokestatic java.lang.Math.addExact:(II)I
istore 4
start local 4 3: iload 3
iload 4
if_icmpge 7
4: new java.security.SignatureException
dup
5: new java.lang.StringBuilder
dup
ldc "Key is too short, need min "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " bytes"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
athrow
end local 4 end local 3 7: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 key Ljava/security/interfaces/RSAKey;
0 8 1 digestLen I
0 8 2 saltLen I
2 7 3 keyLength I
3 7 4 minLength I
Exceptions:
throws java.security.SignatureException
MethodParameters:
Name Flags
key
digestLen
saltLen
private void resetDigest();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.rsa.RSAPSSSignature.digestReset:Z
ifne 3
1: aload 0
getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
invokevirtual java.security.MessageDigest.reset:()V
2: aload 0
iconst_1
putfield sun.security.rsa.RSAPSSSignature.digestReset:Z
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/rsa/RSAPSSSignature;
private byte[] getDigestValue();
descriptor: ()[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield sun.security.rsa.RSAPSSSignature.digestReset:Z
1: aload 0
getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
invokevirtual java.security.MessageDigest.digest:()[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/rsa/RSAPSSSignature;
protected void engineUpdate(byte);
descriptor: (B)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.security.rsa.RSAPSSSignature.ensureInit:()V
1: aload 0
getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
iload 1
invokevirtual java.security.MessageDigest.update:(B)V
2: aload 0
iconst_0
putfield sun.security.rsa.RSAPSSSignature.digestReset:Z
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/rsa/RSAPSSSignature;
0 4 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=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual sun.security.rsa.RSAPSSSignature.ensureInit:()V
1: aload 0
getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
aload 1
iload 2
iload 3
invokevirtual java.security.MessageDigest.update:([BII)V
2: aload 0
iconst_0
putfield sun.security.rsa.RSAPSSSignature.digestReset:Z
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/rsa/RSAPSSSignature;
0 4 1 b [B
0 4 2 off I
0 4 3 len I
Exceptions:
throws java.security.SignatureException
MethodParameters:
Name Flags
b
off
len
protected void engineUpdate(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.security.rsa.RSAPSSSignature.ensureInit:()V
1: goto 4
StackMap locals:
StackMap stack: java.security.SignatureException
2: astore 2
start local 2 3: new java.lang.RuntimeException
dup
aload 2
invokevirtual java.security.SignatureException.getMessage:()Ljava/lang/String;
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
end local 2 4: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
aload 1
invokevirtual java.security.MessageDigest.update:(Ljava/nio/ByteBuffer;)V
5: aload 0
iconst_0
putfield sun.security.rsa.RSAPSSSignature.digestReset:Z
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/rsa/RSAPSSSignature;
0 7 1 b Ljava/nio/ByteBuffer;
3 4 2 se Ljava/security/SignatureException;
Exception table:
from to target type
0 1 2 Class java.security.SignatureException
MethodParameters:
Name Flags
b
protected byte[] engineSign();
descriptor: ()[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual sun.security.rsa.RSAPSSSignature.ensureInit:()V
1: aload 0
invokevirtual sun.security.rsa.RSAPSSSignature.getDigestValue:()[B
astore 1
start local 1 2: aload 0
aload 1
invokevirtual sun.security.rsa.RSAPSSSignature.encodeSignature:([B)[B
astore 2
start local 2 3: aload 2
aload 0
getfield sun.security.rsa.RSAPSSSignature.privKey:Ljava/security/interfaces/RSAPrivateKey;
iconst_1
invokestatic sun.security.rsa.RSACore.rsa:([BLjava/security/interfaces/RSAPrivateKey;Z)[B
astore 3
start local 3 4: aload 3
5: areturn
end local 3 end local 2 6: StackMap locals: sun.security.rsa.RSAPSSSignature byte[]
StackMap stack: java.security.GeneralSecurityException
astore 2
start local 2 7: new java.security.SignatureException
dup
ldc "Could not sign data"
aload 2
invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 8: StackMap locals:
StackMap stack: java.io.IOException
astore 2
start local 2 9: new java.security.SignatureException
dup
ldc "Could not encode data"
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 10 0 this Lsun/security/rsa/RSAPSSSignature;
2 10 1 mHash [B
3 6 2 encoded [B
4 6 3 encrypted [B
7 8 2 e Ljava/security/GeneralSecurityException;
9 10 2 e Ljava/io/IOException;
Exception table:
from to target type
2 5 6 Class java.security.GeneralSecurityException
2 5 8 Class java.io.IOException
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.rsa.RSAPSSSignature.ensureInit:()V
1: aload 1
arraylength
aload 0
getfield sun.security.rsa.RSAPSSSignature.pubKey:Ljava/security/interfaces/RSAPublicKey;
invokestatic sun.security.rsa.RSACore.getByteLength:(Ljava/security/interfaces/RSAKey;)I
if_icmpeq 8
2: new java.security.SignatureException
dup
3: new java.lang.StringBuilder
dup
ldc "Signature length not correct: got "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
4: aload 1
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " but was expecting "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
5: aload 0
getfield sun.security.rsa.RSAPSSSignature.pubKey:Ljava/security/interfaces/RSAPublicKey;
invokestatic sun.security.rsa.RSACore.getByteLength:(Ljava/security/interfaces/RSAKey;)I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
6: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.rsa.RSAPSSSignature.getDigestValue:()[B
astore 2
start local 2 9: aload 1
aload 0
getfield sun.security.rsa.RSAPSSSignature.pubKey:Ljava/security/interfaces/RSAPublicKey;
invokestatic sun.security.rsa.RSACore.rsa:([BLjava/security/interfaces/RSAPublicKey;)[B
astore 3
start local 3 10: aload 0
aload 2
aload 3
invokevirtual sun.security.rsa.RSAPSSSignature.decodeSignature:([B[B)Z
istore 5
11: aload 0
invokevirtual sun.security.rsa.RSAPSSSignature.resetDigest:()V
12: iload 5
ireturn
end local 3 end local 2 13: StackMap locals:
StackMap stack: javax.crypto.BadPaddingException
pop
14: aload 0
invokevirtual sun.security.rsa.RSAPSSSignature.resetDigest:()V
15: iconst_0
ireturn
16: StackMap locals:
StackMap stack: java.io.IOException
astore 2
start local 2 17: new java.security.SignatureException
dup
ldc "Signature encoding error"
aload 2
invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 18: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
19: aload 0
invokevirtual sun.security.rsa.RSAPSSSignature.resetDigest:()V
20: aload 4
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lsun/security/rsa/RSAPSSSignature;
0 21 1 sigBytes [B
9 13 2 mHash [B
10 13 3 decrypted [B
17 18 2 e Ljava/io/IOException;
Exception table:
from to target type
1 11 13 Class javax.crypto.BadPaddingException
1 11 16 Class java.io.IOException
1 11 18 any
13 14 18 any
16 18 18 any
Exceptions:
throws java.security.SignatureException
MethodParameters:
Name Flags
sigBytes
private static int getKeyLengthInBits(java.security.interfaces.RSAKey);
descriptor: (Ljava/security/interfaces/RSAKey;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
ifnull 2
1: aload 0
invokeinterface java.security.interfaces.RSAKey.getModulus:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.bitLength:()I
ireturn
2: StackMap locals:
StackMap stack:
iconst_m1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 k Ljava/security/interfaces/RSAKey;
MethodParameters:
Name Flags
k
private byte[] encodeSignature(byte[]);
descriptor: ([B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=13, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
invokevirtual java.security.spec.PSSParameterSpec.getMGFParameters:()Ljava/security/spec/AlgorithmParameterSpec;
astore 2
start local 2 1: aload 2
ifnull 5
2: aload 2
checkcast java.security.spec.MGF1ParameterSpec
invokevirtual java.security.spec.MGF1ParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
3: astore 3
start local 3 4: goto 6
end local 3 5: StackMap locals: java.security.spec.AlgorithmParameterSpec
StackMap stack:
aload 0
getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
invokevirtual java.security.MessageDigest.getAlgorithm:()Ljava/lang/String;
astore 3
start local 3 6: StackMap locals: java.lang.String
StackMap stack:
aload 0
getfield sun.security.rsa.RSAPSSSignature.privKey:Ljava/security/interfaces/RSAPrivateKey;
invokestatic sun.security.rsa.RSAPSSSignature.getKeyLengthInBits:(Ljava/security/interfaces/RSAKey;)I
iconst_1
isub
istore 4
start local 4 7: iload 4
bipush 7
iadd
iconst_3
ishr
istore 5
start local 5 8: aload 0
getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
invokevirtual java.security.MessageDigest.getDigestLength:()I
istore 6
start local 6 9: iload 5
iload 6
isub
iconst_1
isub
istore 7
start local 7 10: aload 0
getfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
invokevirtual java.security.spec.PSSParameterSpec.getSaltLength:()I
istore 8
start local 8 11: iload 5
newarray 8
astore 9
start local 9 12: aload 9
iload 7
iload 8
isub
iconst_1
isub
iconst_1
bastore
13: aload 9
aload 9
arraylength
iconst_1
isub
bipush -68
bastore
14: aload 0
getfield sun.security.rsa.RSAPSSSignature.digestReset:Z
ifne 16
15: new java.security.ProviderException
dup
ldc "Digest should be reset"
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
athrow
16: StackMap locals: sun.security.rsa.RSAPSSSignature byte[] java.security.spec.AlgorithmParameterSpec java.lang.String int int int int int byte[]
StackMap stack:
aload 0
getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
getstatic sun.security.rsa.RSAPSSSignature.EIGHT_BYTES_OF_ZEROS:[B
invokevirtual java.security.MessageDigest.update:([B)V
17: aload 0
iconst_0
putfield sun.security.rsa.RSAPSSSignature.digestReset:Z
18: aload 0
getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
aload 1
invokevirtual java.security.MessageDigest.update:([B)V
19: iload 8
ifeq 24
20: iload 8
newarray 8
astore 10
start local 10 21: aload 0
getfield sun.security.rsa.RSAPSSSignature.random:Ljava/security/SecureRandom;
aload 10
invokevirtual java.security.SecureRandom.nextBytes:([B)V
22: aload 0
getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
aload 10
invokevirtual java.security.MessageDigest.update:([B)V
23: aload 10
iconst_0
aload 9
iload 7
iload 8
isub
iload 8
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
end local 10 24: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
aload 9
iload 7
iload 6
invokevirtual java.security.MessageDigest.digest:([BII)I
pop
25: aload 0
iconst_1
putfield sun.security.rsa.RSAPSSSignature.digestReset:Z
26: new sun.security.rsa.MGF1
dup
aload 3
invokespecial sun.security.rsa.MGF1.<init>:(Ljava/lang/String;)V
astore 10
start local 10 27: aload 10
aload 9
iload 7
iload 6
iload 7
aload 9
iconst_0
invokevirtual sun.security.rsa.MGF1.generateAndXor:([BIII[BI)V
28: iload 5
iconst_3
ishl
iload 4
isub
istore 11
start local 11 29: iload 11
ifeq 32
30: sipush 255
iload 11
iushr
i2b
istore 12
start local 12 31: aload 9
iconst_0
aload 9
iconst_0
baload
iload 12
iand
i2b
bastore
end local 12 32: StackMap locals: sun.security.rsa.MGF1 int
StackMap stack:
aload 9
33: areturn
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 34: StackMap locals: sun.security.rsa.RSAPSSSignature byte[] java.security.spec.AlgorithmParameterSpec java.lang.String
StackMap stack: java.security.NoSuchAlgorithmException
astore 4
start local 4 35: new java.io.IOException
dup
aload 4
invokevirtual java.security.NoSuchAlgorithmException.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lsun/security/rsa/RSAPSSSignature;
0 36 1 mHash [B
1 36 2 mgfParams Ljava/security/spec/AlgorithmParameterSpec;
4 5 3 mgfDigestAlgo Ljava/lang/String;
6 36 3 mgfDigestAlgo Ljava/lang/String;
7 34 4 emBits I
8 34 5 emLen I
9 34 6 hLen I
10 34 7 dbLen I
11 34 8 sLen I
12 34 9 em [B
21 24 10 salt [B
27 34 10 mgf1 Lsun/security/rsa/MGF1;
29 34 11 numZeroBits I
31 32 12 MASK B
35 36 4 e Ljava/security/NoSuchAlgorithmException;
Exception table:
from to target type
6 33 34 Class java.security.NoSuchAlgorithmException
Exceptions:
throws java.io.IOException, java.security.DigestException
MethodParameters:
Name Flags
mHash
private boolean decodeSignature(byte[], byte[]);
descriptor: ([B[B)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=15, args_size=3
start local 0 start local 1 start local 2 0: aload 1
arraylength
istore 3
start local 3 1: aload 0
getfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
invokevirtual java.security.spec.PSSParameterSpec.getSaltLength:()I
istore 4
start local 4 2: aload 0
getfield sun.security.rsa.RSAPSSSignature.pubKey:Ljava/security/interfaces/RSAPublicKey;
invokestatic sun.security.rsa.RSAPSSSignature.getKeyLengthInBits:(Ljava/security/interfaces/RSAKey;)I
iconst_1
isub
istore 5
start local 5 3: iload 5
bipush 7
iadd
iconst_3
ishr
istore 6
start local 6 4: aload 2
arraylength
iload 6
isub
istore 7
start local 7 5: iload 7
iconst_1
if_icmpne 7
aload 2
iconst_0
baload
ifeq 7
6: iconst_0
ireturn
7: StackMap locals: sun.security.rsa.RSAPSSSignature byte[] byte[] int int int int int
StackMap stack:
iload 6
iload 3
iload 4
iadd
iconst_2
iadd
if_icmpge 9
8: iconst_0
ireturn
9: StackMap locals:
StackMap stack:
aload 2
iload 7
iload 6
iadd
iconst_1
isub
baload
bipush -68
if_icmpeq 11
10: iconst_0
ireturn
11: StackMap locals:
StackMap stack:
iload 6
iconst_3
ishl
iload 5
isub
istore 8
start local 8 12: iload 8
ifeq 16
13: sipush 255
bipush 8
iload 8
isub
ishl
i2b
istore 9
start local 9 14: aload 2
iload 7
baload
iload 9
iand
ifeq 16
15: iconst_0
ireturn
end local 9 16: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
invokevirtual java.security.spec.PSSParameterSpec.getMGFParameters:()Ljava/security/spec/AlgorithmParameterSpec;
astore 10
start local 10 17: aload 10
ifnull 21
18: aload 10
checkcast java.security.spec.MGF1ParameterSpec
invokevirtual java.security.spec.MGF1ParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
19: astore 9
start local 9 20: goto 22
end local 9 21: StackMap locals: sun.security.rsa.RSAPSSSignature byte[] byte[] int int int int int int top java.security.spec.AlgorithmParameterSpec
StackMap stack:
aload 0
getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
invokevirtual java.security.MessageDigest.getAlgorithm:()Ljava/lang/String;
astore 9
start local 9 22: StackMap locals: sun.security.rsa.RSAPSSSignature byte[] byte[] int int int int int int java.lang.String java.security.spec.AlgorithmParameterSpec
StackMap stack:
iload 6
iload 3
isub
iconst_1
isub
istore 11
start local 11 23: new sun.security.rsa.MGF1
dup
aload 9
invokespecial sun.security.rsa.MGF1.<init>:(Ljava/lang/String;)V
astore 12
start local 12 24: aload 12
aload 2
iload 7
iload 11
iadd
iload 3
iload 11
25: aload 2
iload 7
26: invokevirtual sun.security.rsa.MGF1.generateAndXor:([BIII[BI)V
end local 12 27: goto 30
StackMap locals: sun.security.rsa.RSAPSSSignature byte[] byte[] int int int int int int java.lang.String java.security.spec.AlgorithmParameterSpec int
StackMap stack: java.security.NoSuchAlgorithmException
28: astore 12
start local 12 29: new java.io.IOException
dup
aload 12
invokevirtual java.security.NoSuchAlgorithmException.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 12 30: StackMap locals:
StackMap stack:
iload 8
ifeq 33
31: sipush 255
iload 8
iushr
i2b
istore 12
start local 12 32: aload 2
iload 7
aload 2
iload 7
baload
iload 12
iand
i2b
bastore
end local 12 33: StackMap locals:
StackMap stack:
iload 7
istore 12
start local 12 34: goto 38
35: StackMap locals: int
StackMap stack:
aload 2
iload 12
baload
ifeq 37
36: iconst_0
ireturn
37: StackMap locals:
StackMap stack:
iinc 12 1
StackMap locals:
StackMap stack:
38: iload 12
iload 7
iload 11
iload 4
isub
iconst_1
isub
iadd
if_icmplt 35
39: aload 2
iload 12
baload
iconst_1
if_icmpeq 41
40: iconst_0
ireturn
41: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
getstatic sun.security.rsa.RSAPSSSignature.EIGHT_BYTES_OF_ZEROS:[B
invokevirtual java.security.MessageDigest.update:([B)V
42: aload 0
iconst_0
putfield sun.security.rsa.RSAPSSSignature.digestReset:Z
43: aload 0
getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
aload 1
invokevirtual java.security.MessageDigest.update:([B)V
44: iload 4
ifle 46
45: aload 0
getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
aload 2
iload 7
iload 11
iload 4
isub
iadd
iload 4
invokevirtual java.security.MessageDigest.update:([BII)V
46: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
invokevirtual java.security.MessageDigest.digest:()[B
astore 13
start local 13 47: aload 0
iconst_1
putfield sun.security.rsa.RSAPSSSignature.digestReset:Z
48: aload 2
iload 7
iload 11
iadd
49: iload 7
iload 6
iadd
iconst_1
isub
50: invokestatic java.util.Arrays.copyOfRange:([BII)[B
astore 14
start local 14 51: aload 13
aload 14
invokestatic java.security.MessageDigest.isEqual:([B[B)Z
ireturn
end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 52 0 this Lsun/security/rsa/RSAPSSSignature;
0 52 1 mHash [B
0 52 2 em [B
1 52 3 hLen I
2 52 4 sLen I
3 52 5 emBits I
4 52 6 emLen I
5 52 7 emOfs I
12 52 8 numZeroBits I
14 16 9 MASK B
20 21 9 mgfDigestAlgo Ljava/lang/String;
22 52 9 mgfDigestAlgo Ljava/lang/String;
17 52 10 mgfParams Ljava/security/spec/AlgorithmParameterSpec;
23 52 11 dbLen I
24 27 12 mgf1 Lsun/security/rsa/MGF1;
29 30 12 nsae Ljava/security/NoSuchAlgorithmException;
32 33 12 MASK B
34 52 12 i I
47 52 13 digest2 [B
51 52 14 digestInEM [B
Exception table:
from to target type
23 27 28 Class java.security.NoSuchAlgorithmException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mHash
em
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/rsa/RSAPSSSignature;
0 1 1 param Ljava/lang/String;
0 1 2 value Ljava/lang/Object;
Exceptions:
throws java.security.InvalidParameterException
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
param
value
protected void engineSetParameter(java.security.spec.AlgorithmParameterSpec);
descriptor: (Ljava/security/spec/AlgorithmParameterSpec;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 0
aload 1
invokevirtual sun.security.rsa.RSAPSSSignature.validateSigParams:(Ljava/security/spec/AlgorithmParameterSpec;)Ljava/security/spec/PSSParameterSpec;
putfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
1: aload 0
getfield sun.security.rsa.RSAPSSSignature.digestReset:Z
ifne 5
2: new java.security.ProviderException
dup
3: ldc "Cannot set parameters during operations"
4: invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
invokevirtual java.security.spec.PSSParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
astore 2
start local 2 6: aload 0
getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
ifnull 8
7: aload 0
getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
invokevirtual java.security.MessageDigest.getAlgorithm:()Ljava/lang/String;
aload 2
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 17
8: StackMap locals: java.lang.String
StackMap stack:
aload 0
aload 2
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
putfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
9: goto 17
StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
10: astore 3
start local 3 11: new java.security.InvalidAlgorithmParameterException
dup
12: new java.lang.StringBuilder
dup
ldc "Unsupported digest algorithm "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
13: aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
14: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
15: aload 3
16: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 17: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lsun/security/rsa/RSAPSSSignature;
0 18 1 params Ljava/security/spec/AlgorithmParameterSpec;
6 18 2 newHashAlg Ljava/lang/String;
11 17 3 nsae Ljava/security/NoSuchAlgorithmException;
Exception table:
from to target type
8 9 10 Class java.security.NoSuchAlgorithmException
Exceptions:
throws java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
params
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/rsa/RSAPSSSignature;
0 1 1 param Ljava/lang/String;
Exceptions:
throws java.security.InvalidParameterException
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
param
protected java.security.AlgorithmParameters engineGetParameters();
descriptor: ()Ljava/security/AlgorithmParameters;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: aload 0
getfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
ifnull 7
2: ldc "RSASSA-PSS"
invokestatic java.security.AlgorithmParameters.getInstance:(Ljava/lang/String;)Ljava/security/AlgorithmParameters;
astore 1
3: aload 1
aload 0
getfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
invokevirtual java.security.AlgorithmParameters.init:(Ljava/security/spec/AlgorithmParameterSpec;)V
4: goto 7
StackMap locals: sun.security.rsa.RSAPSSSignature java.security.AlgorithmParameters
StackMap stack: java.security.GeneralSecurityException
5: astore 2
start local 2 6: new java.security.ProviderException
dup
aload 2
invokevirtual java.security.GeneralSecurityException.getMessage:()Ljava/lang/String;
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
athrow
end local 2 7: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/rsa/RSAPSSSignature;
1 8 1 ap Ljava/security/AlgorithmParameters;
6 7 2 gse Ljava/security/GeneralSecurityException;
Exception table:
from to target type
2 4 5 Class java.security.GeneralSecurityException
}
SourceFile: "RSAPSSSignature.java"