public class sun.security.pkcs.SignerInfo implements sun.security.util.DerEncoder
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.security.pkcs.SignerInfo
  super_class: java.lang.Object
{
  private static final java.util.Set<java.security.CryptoPrimitive> DIGEST_PRIMITIVE_SET;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/security/CryptoPrimitive;>;

  private static final java.util.Set<java.security.CryptoPrimitive> SIG_PRIMITIVE_SET;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/security/CryptoPrimitive;>;

  private static final sun.security.util.DisabledAlgorithmConstraints JAR_DISABLED_CHECK;
    descriptor: Lsun/security/util/DisabledAlgorithmConstraints;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  java.math.BigInteger version;
    descriptor: Ljava/math/BigInteger;
    flags: (0x0000) 

  sun.security.x509.X500Name issuerName;
    descriptor: Lsun/security/x509/X500Name;
    flags: (0x0000) 

  java.math.BigInteger certificateSerialNumber;
    descriptor: Ljava/math/BigInteger;
    flags: (0x0000) 

  sun.security.x509.AlgorithmId digestAlgorithmId;
    descriptor: Lsun/security/x509/AlgorithmId;
    flags: (0x0000) 

  sun.security.x509.AlgorithmId digestEncryptionAlgorithmId;
    descriptor: Lsun/security/x509/AlgorithmId;
    flags: (0x0000) 

  byte[] encryptedDigest;
    descriptor: [B
    flags: (0x0000) 

  java.security.Timestamp timestamp;
    descriptor: Ljava/security/Timestamp;
    flags: (0x0000) 

  private boolean hasTimestamp;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private static final sun.security.util.Debug debug;
    descriptor: Lsun/security/util/Debug;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  sun.security.pkcs.PKCS9Attributes authenticatedAttributes;
    descriptor: Lsun/security/pkcs/PKCS9Attributes;
    flags: (0x0000) 

  sun.security.pkcs.PKCS9Attributes unauthenticatedAttributes;
    descriptor: Lsun/security/pkcs/PKCS9Attributes;
    flags: (0x0000) 

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 68
            getstatic java.security.CryptoPrimitive.MESSAGE_DIGEST:Ljava/security/CryptoPrimitive;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;)Ljava/util/EnumSet;
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
         1: .line 67
            putstatic sun.security.pkcs.SignerInfo.DIGEST_PRIMITIVE_SET:Ljava/util/Set;
         2: .line 71
            getstatic java.security.CryptoPrimitive.SIGNATURE:Ljava/security/CryptoPrimitive;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;)Ljava/util/EnumSet;
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
         3: .line 70
            putstatic sun.security.pkcs.SignerInfo.SIG_PRIMITIVE_SET:Ljava/util/Set;
         4: .line 74
            new sun.security.util.DisabledAlgorithmConstraints
            dup
         5: .line 75
            ldc "jdk.jar.disabledAlgorithms"
         6: .line 74
            invokespecial sun.security.util.DisabledAlgorithmConstraints.<init>:(Ljava/lang/String;)V
         7: .line 73
            putstatic sun.security.pkcs.SignerInfo.JAR_DISABLED_CHECK:Lsun/security/util/DisabledAlgorithmConstraints;
         8: .line 85
            ldc "jar"
            invokestatic sun.security.util.Debug.getInstance:(Ljava/lang/String;)Lsun/security/util/Debug;
            putstatic sun.security.pkcs.SignerInfo.debug:Lsun/security/util/Debug;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(sun.security.x509.X500Name, java.math.BigInteger, sun.security.x509.AlgorithmId, sun.security.x509.AlgorithmId, byte[]);
    descriptor: (Lsun/security/x509/X500Name;Ljava/math/BigInteger;Lsun/security/x509/AlgorithmId;Lsun/security/x509/AlgorithmId;[B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=6
        start local 0 // sun.security.pkcs.SignerInfo this
        start local 1 // sun.security.x509.X500Name issuerName
        start local 2 // java.math.BigInteger serial
        start local 3 // sun.security.x509.AlgorithmId digestAlgorithmId
        start local 4 // sun.security.x509.AlgorithmId digestEncryptionAlgorithmId
        start local 5 // byte[] encryptedDigest
         0: .line 90
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 84
            aload 0 /* this */
            iconst_1
            putfield sun.security.pkcs.SignerInfo.hasTimestamp:Z
         2: .line 95
            aload 0 /* this */
            getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
            putfield sun.security.pkcs.SignerInfo.version:Ljava/math/BigInteger;
         3: .line 96
            aload 0 /* this */
            aload 1 /* issuerName */
            putfield sun.security.pkcs.SignerInfo.issuerName:Lsun/security/x509/X500Name;
         4: .line 97
            aload 0 /* this */
            aload 2 /* serial */
            putfield sun.security.pkcs.SignerInfo.certificateSerialNumber:Ljava/math/BigInteger;
         5: .line 98
            aload 0 /* this */
            aload 3 /* digestAlgorithmId */
            putfield sun.security.pkcs.SignerInfo.digestAlgorithmId:Lsun/security/x509/AlgorithmId;
         6: .line 99
            aload 0 /* this */
            aload 4 /* digestEncryptionAlgorithmId */
            putfield sun.security.pkcs.SignerInfo.digestEncryptionAlgorithmId:Lsun/security/x509/AlgorithmId;
         7: .line 100
            aload 0 /* this */
            aload 5 /* encryptedDigest */
            putfield sun.security.pkcs.SignerInfo.encryptedDigest:[B
         8: .line 101
            return
        end local 5 // byte[] encryptedDigest
        end local 4 // sun.security.x509.AlgorithmId digestEncryptionAlgorithmId
        end local 3 // sun.security.x509.AlgorithmId digestAlgorithmId
        end local 2 // java.math.BigInteger serial
        end local 1 // sun.security.x509.X500Name issuerName
        end local 0 // sun.security.pkcs.SignerInfo this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0    9     0                         this  Lsun/security/pkcs/SignerInfo;
            0    9     1                   issuerName  Lsun/security/x509/X500Name;
            0    9     2                       serial  Ljava/math/BigInteger;
            0    9     3            digestAlgorithmId  Lsun/security/x509/AlgorithmId;
            0    9     4  digestEncryptionAlgorithmId  Lsun/security/x509/AlgorithmId;
            0    9     5              encryptedDigest  [B
    MethodParameters:
                             Name  Flags
      issuerName                   
      serial                       
      digestAlgorithmId            
      digestEncryptionAlgorithmId  
      encryptedDigest              

  public void <init>(sun.security.x509.X500Name, java.math.BigInteger, sun.security.x509.AlgorithmId, sun.security.pkcs.PKCS9Attributes, sun.security.x509.AlgorithmId, byte[], sun.security.pkcs.PKCS9Attributes);
    descriptor: (Lsun/security/x509/X500Name;Ljava/math/BigInteger;Lsun/security/x509/AlgorithmId;Lsun/security/pkcs/PKCS9Attributes;Lsun/security/x509/AlgorithmId;[BLsun/security/pkcs/PKCS9Attributes;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=8, args_size=8
        start local 0 // sun.security.pkcs.SignerInfo this
        start local 1 // sun.security.x509.X500Name issuerName
        start local 2 // java.math.BigInteger serial
        start local 3 // sun.security.x509.AlgorithmId digestAlgorithmId
        start local 4 // sun.security.pkcs.PKCS9Attributes authenticatedAttributes
        start local 5 // sun.security.x509.AlgorithmId digestEncryptionAlgorithmId
        start local 6 // byte[] encryptedDigest
        start local 7 // sun.security.pkcs.PKCS9Attributes unauthenticatedAttributes
         0: .line 103
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 84
            aload 0 /* this */
            iconst_1
            putfield sun.security.pkcs.SignerInfo.hasTimestamp:Z
         2: .line 110
            aload 0 /* this */
            getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
            putfield sun.security.pkcs.SignerInfo.version:Ljava/math/BigInteger;
         3: .line 111
            aload 0 /* this */
            aload 1 /* issuerName */
            putfield sun.security.pkcs.SignerInfo.issuerName:Lsun/security/x509/X500Name;
         4: .line 112
            aload 0 /* this */
            aload 2 /* serial */
            putfield sun.security.pkcs.SignerInfo.certificateSerialNumber:Ljava/math/BigInteger;
         5: .line 113
            aload 0 /* this */
            aload 3 /* digestAlgorithmId */
            putfield sun.security.pkcs.SignerInfo.digestAlgorithmId:Lsun/security/x509/AlgorithmId;
         6: .line 114
            aload 0 /* this */
            aload 4 /* authenticatedAttributes */
            putfield sun.security.pkcs.SignerInfo.authenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
         7: .line 115
            aload 0 /* this */
            aload 5 /* digestEncryptionAlgorithmId */
            putfield sun.security.pkcs.SignerInfo.digestEncryptionAlgorithmId:Lsun/security/x509/AlgorithmId;
         8: .line 116
            aload 0 /* this */
            aload 6 /* encryptedDigest */
            putfield sun.security.pkcs.SignerInfo.encryptedDigest:[B
         9: .line 117
            aload 0 /* this */
            aload 7 /* unauthenticatedAttributes */
            putfield sun.security.pkcs.SignerInfo.unauthenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
        10: .line 118
            return
        end local 7 // sun.security.pkcs.PKCS9Attributes unauthenticatedAttributes
        end local 6 // byte[] encryptedDigest
        end local 5 // sun.security.x509.AlgorithmId digestEncryptionAlgorithmId
        end local 4 // sun.security.pkcs.PKCS9Attributes authenticatedAttributes
        end local 3 // sun.security.x509.AlgorithmId digestAlgorithmId
        end local 2 // java.math.BigInteger serial
        end local 1 // sun.security.x509.X500Name issuerName
        end local 0 // sun.security.pkcs.SignerInfo this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   11     0                         this  Lsun/security/pkcs/SignerInfo;
            0   11     1                   issuerName  Lsun/security/x509/X500Name;
            0   11     2                       serial  Ljava/math/BigInteger;
            0   11     3            digestAlgorithmId  Lsun/security/x509/AlgorithmId;
            0   11     4      authenticatedAttributes  Lsun/security/pkcs/PKCS9Attributes;
            0   11     5  digestEncryptionAlgorithmId  Lsun/security/x509/AlgorithmId;
            0   11     6              encryptedDigest  [B
            0   11     7    unauthenticatedAttributes  Lsun/security/pkcs/PKCS9Attributes;
    MethodParameters:
                             Name  Flags
      issuerName                   
      serial                       
      digestAlgorithmId            
      authenticatedAttributes      
      digestEncryptionAlgorithmId  
      encryptedDigest              
      unauthenticatedAttributes    

  public void <init>(sun.security.util.DerInputStream);
    descriptor: (Lsun/security/util/DerInputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.pkcs.SignerInfo this
        start local 1 // sun.security.util.DerInputStream derin
         0: .line 126
            aload 0 /* this */
            aload 1 /* derin */
            iconst_0
            invokespecial sun.security.pkcs.SignerInfo.<init>:(Lsun/security/util/DerInputStream;Z)V
         1: .line 127
            return
        end local 1 // sun.security.util.DerInputStream derin
        end local 0 // sun.security.pkcs.SignerInfo this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lsun/security/pkcs/SignerInfo;
            0    2     1  derin  Lsun/security/util/DerInputStream;
    Exceptions:
      throws java.io.IOException, sun.security.pkcs.ParsingException
    MethodParameters:
       Name  Flags
      derin  

  public void <init>(sun.security.util.DerInputStream, boolean);
    descriptor: (Lsun/security/util/DerInputStream;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=3
        start local 0 // sun.security.pkcs.SignerInfo this
        start local 1 // sun.security.util.DerInputStream derin
        start local 2 // boolean oldStyle
         0: .line 139
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 84
            aload 0 /* this */
            iconst_1
            putfield sun.security.pkcs.SignerInfo.hasTimestamp:Z
         2: .line 143
            aload 0 /* this */
            aload 1 /* derin */
            invokevirtual sun.security.util.DerInputStream.getBigInteger:()Ljava/math/BigInteger;
            putfield sun.security.pkcs.SignerInfo.version:Ljava/math/BigInteger;
         3: .line 146
            aload 1 /* derin */
            iconst_2
            invokevirtual sun.security.util.DerInputStream.getSequence:(I)[Lsun/security/util/DerValue;
            astore 3 /* issuerAndSerialNumber */
        start local 3 // sun.security.util.DerValue[] issuerAndSerialNumber
         4: .line 147
            aload 3 /* issuerAndSerialNumber */
            arraylength
            iconst_2
            if_icmpeq 6
         5: .line 148
            new sun.security.pkcs.ParsingException
            dup
            ldc "Invalid length for IssuerAndSerialNumber"
            invokespecial sun.security.pkcs.ParsingException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 150
      StackMap locals: sun.security.pkcs.SignerInfo sun.security.util.DerInputStream int sun.security.util.DerValue[]
      StackMap stack:
            aload 3 /* issuerAndSerialNumber */
            iconst_0
            aaload
            invokevirtual sun.security.util.DerValue.toByteArray:()[B
            astore 4 /* issuerBytes */
        start local 4 // byte[] issuerBytes
         7: .line 151
            aload 0 /* this */
            new sun.security.x509.X500Name
            dup
            new sun.security.util.DerValue
            dup
            bipush 48
         8: .line 152
            aload 4 /* issuerBytes */
            invokespecial sun.security.util.DerValue.<init>:(B[B)V
            invokespecial sun.security.x509.X500Name.<init>:(Lsun/security/util/DerValue;)V
         9: .line 151
            putfield sun.security.pkcs.SignerInfo.issuerName:Lsun/security/x509/X500Name;
        10: .line 153
            aload 0 /* this */
            aload 3 /* issuerAndSerialNumber */
            iconst_1
            aaload
            invokevirtual sun.security.util.DerValue.getBigInteger:()Ljava/math/BigInteger;
            putfield sun.security.pkcs.SignerInfo.certificateSerialNumber:Ljava/math/BigInteger;
        11: .line 156
            aload 1 /* derin */
            invokevirtual sun.security.util.DerInputStream.getDerValue:()Lsun/security/util/DerValue;
            astore 5 /* tmp */
        start local 5 // sun.security.util.DerValue tmp
        12: .line 158
            aload 0 /* this */
            aload 5 /* tmp */
            invokestatic sun.security.x509.AlgorithmId.parse:(Lsun/security/util/DerValue;)Lsun/security/x509/AlgorithmId;
            putfield sun.security.pkcs.SignerInfo.digestAlgorithmId:Lsun/security/x509/AlgorithmId;
        13: .line 161
            iload 2 /* oldStyle */
            ifeq 16
        14: .line 164
            aload 1 /* derin */
            iconst_0
            invokevirtual sun.security.util.DerInputStream.getSet:(I)[Lsun/security/util/DerValue;
            pop
        15: .line 165
            goto 18
        16: .line 168
      StackMap locals: byte[] sun.security.util.DerValue
      StackMap stack:
            aload 1 /* derin */
            invokevirtual sun.security.util.DerInputStream.peekByte:()I
            i2b
            bipush -96
            if_icmpne 18
        17: .line 169
            aload 0 /* this */
            new sun.security.pkcs.PKCS9Attributes
            dup
            aload 1 /* derin */
            invokespecial sun.security.pkcs.PKCS9Attributes.<init>:(Lsun/security/util/DerInputStream;)V
            putfield sun.security.pkcs.SignerInfo.authenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
        18: .line 175
      StackMap locals:
      StackMap stack:
            aload 1 /* derin */
            invokevirtual sun.security.util.DerInputStream.getDerValue:()Lsun/security/util/DerValue;
            astore 5 /* tmp */
        19: .line 177
            aload 0 /* this */
            aload 5 /* tmp */
            invokestatic sun.security.x509.AlgorithmId.parse:(Lsun/security/util/DerValue;)Lsun/security/x509/AlgorithmId;
            putfield sun.security.pkcs.SignerInfo.digestEncryptionAlgorithmId:Lsun/security/x509/AlgorithmId;
        20: .line 180
            aload 0 /* this */
            aload 1 /* derin */
            invokevirtual sun.security.util.DerInputStream.getOctetString:()[B
            putfield sun.security.pkcs.SignerInfo.encryptedDigest:[B
        21: .line 183
            iload 2 /* oldStyle */
            ifeq 24
        22: .line 186
            aload 1 /* derin */
            iconst_0
            invokevirtual sun.security.util.DerInputStream.getSet:(I)[Lsun/security/util/DerValue;
            pop
        23: .line 187
            goto 29
        24: .line 190
      StackMap locals:
      StackMap stack:
            aload 1 /* derin */
            invokevirtual sun.security.util.DerInputStream.available:()I
            ifeq 29
        25: .line 191
            aload 1 /* derin */
            invokevirtual sun.security.util.DerInputStream.peekByte:()I
            i2b
            bipush -95
            if_icmpne 29
        26: .line 192
            aload 0 /* this */
        27: .line 193
            new sun.security.pkcs.PKCS9Attributes
            dup
            aload 1 /* derin */
            iconst_1
            invokespecial sun.security.pkcs.PKCS9Attributes.<init>:(Lsun/security/util/DerInputStream;Z)V
        28: .line 192
            putfield sun.security.pkcs.SignerInfo.unauthenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
        29: .line 198
      StackMap locals:
      StackMap stack:
            aload 1 /* derin */
            invokevirtual sun.security.util.DerInputStream.available:()I
            ifeq 31
        30: .line 199
            new sun.security.pkcs.ParsingException
            dup
            ldc "extra data at the end"
            invokespecial sun.security.pkcs.ParsingException.<init>:(Ljava/lang/String;)V
            athrow
        31: .line 201
      StackMap locals:
      StackMap stack:
            return
        end local 5 // sun.security.util.DerValue tmp
        end local 4 // byte[] issuerBytes
        end local 3 // sun.security.util.DerValue[] issuerAndSerialNumber
        end local 2 // boolean oldStyle
        end local 1 // sun.security.util.DerInputStream derin
        end local 0 // sun.security.pkcs.SignerInfo this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   32     0                   this  Lsun/security/pkcs/SignerInfo;
            0   32     1                  derin  Lsun/security/util/DerInputStream;
            0   32     2               oldStyle  Z
            4   32     3  issuerAndSerialNumber  [Lsun/security/util/DerValue;
            7   32     4            issuerBytes  [B
           12   32     5                    tmp  Lsun/security/util/DerValue;
    Exceptions:
      throws java.io.IOException, sun.security.pkcs.ParsingException
    MethodParameters:
          Name  Flags
      derin     
      oldStyle  

  public void encode(sun.security.util.DerOutputStream);
    descriptor: (Lsun/security/util/DerOutputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.pkcs.SignerInfo this
        start local 1 // sun.security.util.DerOutputStream out
         0: .line 205
            aload 0 /* this */
            aload 1 /* out */
            invokevirtual sun.security.pkcs.SignerInfo.derEncode:(Ljava/io/OutputStream;)V
         1: .line 206
            return
        end local 1 // sun.security.util.DerOutputStream out
        end local 0 // sun.security.pkcs.SignerInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/pkcs/SignerInfo;
            0    2     1   out  Lsun/security/util/DerOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      out   

  public void derEncode(java.io.OutputStream);
    descriptor: (Ljava/io/OutputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // sun.security.pkcs.SignerInfo this
        start local 1 // java.io.OutputStream out
         0: .line 218
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 2 /* seq */
        start local 2 // sun.security.util.DerOutputStream seq
         1: .line 219
            aload 2 /* seq */
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.version:Ljava/math/BigInteger;
            invokevirtual sun.security.util.DerOutputStream.putInteger:(Ljava/math/BigInteger;)V
         2: .line 220
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 3 /* issuerAndSerialNumber */
        start local 3 // sun.security.util.DerOutputStream issuerAndSerialNumber
         3: .line 221
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.issuerName:Lsun/security/x509/X500Name;
            aload 3 /* issuerAndSerialNumber */
            invokevirtual sun.security.x509.X500Name.encode:(Lsun/security/util/DerOutputStream;)V
         4: .line 222
            aload 3 /* issuerAndSerialNumber */
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.certificateSerialNumber:Ljava/math/BigInteger;
            invokevirtual sun.security.util.DerOutputStream.putInteger:(Ljava/math/BigInteger;)V
         5: .line 223
            aload 2 /* seq */
            bipush 48
            aload 3 /* issuerAndSerialNumber */
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
         6: .line 225
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.digestAlgorithmId:Lsun/security/x509/AlgorithmId;
            aload 2 /* seq */
            invokevirtual sun.security.x509.AlgorithmId.encode:(Lsun/security/util/DerOutputStream;)V
         7: .line 228
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.authenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
            ifnull 9
         8: .line 229
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.authenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
            bipush -96
            aload 2 /* seq */
            invokevirtual sun.security.pkcs.PKCS9Attributes.encode:(BLjava/io/OutputStream;)V
         9: .line 231
      StackMap locals: sun.security.util.DerOutputStream sun.security.util.DerOutputStream
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.digestEncryptionAlgorithmId:Lsun/security/x509/AlgorithmId;
            aload 2 /* seq */
            invokevirtual sun.security.x509.AlgorithmId.encode:(Lsun/security/util/DerOutputStream;)V
        10: .line 233
            aload 2 /* seq */
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.encryptedDigest:[B
            invokevirtual sun.security.util.DerOutputStream.putOctetString:([B)V
        11: .line 236
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.unauthenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
            ifnull 13
        12: .line 237
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.unauthenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
            bipush -95
            aload 2 /* seq */
            invokevirtual sun.security.pkcs.PKCS9Attributes.encode:(BLjava/io/OutputStream;)V
        13: .line 239
      StackMap locals:
      StackMap stack:
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 4 /* tmp */
        start local 4 // sun.security.util.DerOutputStream tmp
        14: .line 240
            aload 4 /* tmp */
            bipush 48
            aload 2 /* seq */
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
        15: .line 242
            aload 1 /* out */
            aload 4 /* tmp */
            invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
            invokevirtual java.io.OutputStream.write:([B)V
        16: .line 243
            return
        end local 4 // sun.security.util.DerOutputStream tmp
        end local 3 // sun.security.util.DerOutputStream issuerAndSerialNumber
        end local 2 // sun.security.util.DerOutputStream seq
        end local 1 // java.io.OutputStream out
        end local 0 // sun.security.pkcs.SignerInfo this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   17     0                   this  Lsun/security/pkcs/SignerInfo;
            0   17     1                    out  Ljava/io/OutputStream;
            1   17     2                    seq  Lsun/security/util/DerOutputStream;
            3   17     3  issuerAndSerialNumber  Lsun/security/util/DerOutputStream;
           14   17     4                    tmp  Lsun/security/util/DerOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      out   

  public java.security.cert.X509Certificate getCertificate(sun.security.pkcs.PKCS7);
    descriptor: (Lsun/security/pkcs/PKCS7;)Ljava/security/cert/X509Certificate;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.pkcs.SignerInfo this
        start local 1 // sun.security.pkcs.PKCS7 block
         0: .line 253
            aload 1 /* block */
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.certificateSerialNumber:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.issuerName:Lsun/security/x509/X500Name;
            invokevirtual sun.security.pkcs.PKCS7.getCertificate:(Ljava/math/BigInteger;Lsun/security/x509/X500Name;)Ljava/security/cert/X509Certificate;
            areturn
        end local 1 // sun.security.pkcs.PKCS7 block
        end local 0 // sun.security.pkcs.SignerInfo this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lsun/security/pkcs/SignerInfo;
            0    1     1  block  Lsun/security/pkcs/PKCS7;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      block  

  public java.util.ArrayList<java.security.cert.X509Certificate> getCertificateChain(sun.security.pkcs.PKCS7);
    descriptor: (Lsun/security/pkcs/PKCS7;)Ljava/util/ArrayList;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=2
        start local 0 // sun.security.pkcs.SignerInfo this
        start local 1 // sun.security.pkcs.PKCS7 block
         0: .line 263
            aload 1 /* block */
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.certificateSerialNumber:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.issuerName:Lsun/security/x509/X500Name;
            invokevirtual sun.security.pkcs.PKCS7.getCertificate:(Ljava/math/BigInteger;Lsun/security/x509/X500Name;)Ljava/security/cert/X509Certificate;
            astore 2 /* userCert */
        start local 2 // java.security.cert.X509Certificate userCert
         1: .line 264
            aload 2 /* userCert */
            ifnonnull 3
         2: .line 265
            aconst_null
            areturn
         3: .line 267
      StackMap locals: java.security.cert.X509Certificate
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* certList */
        start local 3 // java.util.ArrayList certList
         4: .line 268
            aload 3 /* certList */
            aload 2 /* userCert */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         5: .line 270
            aload 1 /* block */
            invokevirtual sun.security.pkcs.PKCS7.getCertificates:()[Ljava/security/cert/X509Certificate;
            astore 4 /* pkcsCerts */
        start local 4 // java.security.cert.X509Certificate[] pkcsCerts
         6: .line 271
            aload 4 /* pkcsCerts */
            ifnull 8
         7: .line 272
            aload 2 /* userCert */
            invokevirtual java.security.cert.X509Certificate.getSubjectDN:()Ljava/security/Principal;
            aload 2 /* userCert */
            invokevirtual java.security.cert.X509Certificate.getIssuerDN:()Ljava/security/Principal;
            invokeinterface java.security.Principal.equals:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 273
      StackMap locals: java.util.ArrayList java.security.cert.X509Certificate[]
      StackMap stack:
            aload 3 /* certList */
            areturn
         9: .line 276
      StackMap locals:
      StackMap stack:
            aload 2 /* userCert */
            invokevirtual java.security.cert.X509Certificate.getIssuerDN:()Ljava/security/Principal;
            astore 5 /* issuer */
        start local 5 // java.security.Principal issuer
        10: .line 277
            iconst_0
            istore 6 /* start */
        start local 6 // int start
        11: .line 279
      StackMap locals: java.security.Principal int
      StackMap stack:
            iconst_0
            istore 7 /* match */
        start local 7 // boolean match
        12: .line 280
            iload 6 /* start */
            istore 8 /* i */
        start local 8 // int i
        13: .line 281
            goto 30
        14: .line 282
      StackMap locals: int int
      StackMap stack:
            aload 5 /* issuer */
            aload 4 /* pkcsCerts */
            iload 8 /* i */
            aaload
            invokevirtual java.security.cert.X509Certificate.getSubjectDN:()Ljava/security/Principal;
            invokeinterface java.security.Principal.equals:(Ljava/lang/Object;)Z
            ifeq 29
        15: .line 284
            aload 3 /* certList */
            aload 4 /* pkcsCerts */
            iload 8 /* i */
            aaload
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        16: .line 287
            aload 4 /* pkcsCerts */
            iload 8 /* i */
            aaload
            invokevirtual java.security.cert.X509Certificate.getSubjectDN:()Ljava/security/Principal;
        17: .line 288
            aload 4 /* pkcsCerts */
            iload 8 /* i */
            aaload
            invokevirtual java.security.cert.X509Certificate.getIssuerDN:()Ljava/security/Principal;
        18: .line 287
            invokeinterface java.security.Principal.equals:(Ljava/lang/Object;)Z
        19: .line 288
            ifeq 22
        20: .line 289
            aload 4 /* pkcsCerts */
            arraylength
            istore 6 /* start */
        21: .line 290
            goto 27
        22: .line 291
      StackMap locals:
      StackMap stack:
            aload 4 /* pkcsCerts */
            iload 8 /* i */
            aaload
            invokevirtual java.security.cert.X509Certificate.getIssuerDN:()Ljava/security/Principal;
            astore 5 /* issuer */
        23: .line 292
            aload 4 /* pkcsCerts */
            iload 6 /* start */
            aaload
            astore 9 /* tmpCert */
        start local 9 // java.security.cert.X509Certificate tmpCert
        24: .line 293
            aload 4 /* pkcsCerts */
            iload 6 /* start */
            aload 4 /* pkcsCerts */
            iload 8 /* i */
            aaload
            aastore
        25: .line 294
            aload 4 /* pkcsCerts */
            iload 8 /* i */
            aload 9 /* tmpCert */
            aastore
        26: .line 295
            iinc 6 /* start */ 1
        end local 9 // java.security.cert.X509Certificate tmpCert
        27: .line 297
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 7 /* match */
        28: .line 298
            goto 31
        29: .line 300
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
        30: .line 281
      StackMap locals:
      StackMap stack:
            iload 8 /* i */
            aload 4 /* pkcsCerts */
            arraylength
            if_icmplt 14
        31: .line 303
      StackMap locals:
      StackMap stack:
            iload 7 /* match */
            ifne 11
        end local 8 // int i
        end local 7 // boolean match
        32: .line 307
            aload 3 /* certList */
            areturn
        end local 6 // int start
        end local 5 // java.security.Principal issuer
        end local 4 // java.security.cert.X509Certificate[] pkcsCerts
        end local 3 // java.util.ArrayList certList
        end local 2 // java.security.cert.X509Certificate userCert
        end local 1 // sun.security.pkcs.PKCS7 block
        end local 0 // sun.security.pkcs.SignerInfo this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   33     0       this  Lsun/security/pkcs/SignerInfo;
            0   33     1      block  Lsun/security/pkcs/PKCS7;
            1   33     2   userCert  Ljava/security/cert/X509Certificate;
            4   33     3   certList  Ljava/util/ArrayList<Ljava/security/cert/X509Certificate;>;
            6   33     4  pkcsCerts  [Ljava/security/cert/X509Certificate;
           10   33     5     issuer  Ljava/security/Principal;
           11   33     6      start  I
           12   32     7      match  Z
           13   32     8          i  I
           24   27     9    tmpCert  Ljava/security/cert/X509Certificate;
    Exceptions:
      throws java.io.IOException
    Signature: (Lsun/security/pkcs/PKCS7;)Ljava/util/ArrayList<Ljava/security/cert/X509Certificate;>;
    MethodParameters:
       Name  Flags
      block  

  sun.security.pkcs.SignerInfo verify(sun.security.pkcs.PKCS7, byte[]);
    descriptor: (Lsun/security/pkcs/PKCS7;[B)Lsun/security/pkcs/SignerInfo;
    flags: (0x0000) 
    Code:
      stack=5, locals=17, args_size=3
        start local 0 // sun.security.pkcs.SignerInfo this
        start local 1 // sun.security.pkcs.PKCS7 block
        start local 2 // byte[] data
         0: .line 317
            aload 1 /* block */
            invokevirtual sun.security.pkcs.PKCS7.getContentInfo:()Lsun/security/pkcs/ContentInfo;
            astore 3 /* content */
        start local 3 // sun.security.pkcs.ContentInfo content
         1: .line 318
            aload 2 /* data */
            ifnonnull 3
         2: .line 319
            aload 3 /* content */
            invokevirtual sun.security.pkcs.ContentInfo.getContentBytes:()[B
            astore 2 /* data */
         3: .line 322
      StackMap locals: sun.security.pkcs.ContentInfo
      StackMap stack:
            aconst_null
            astore 4 /* timestamp */
        start local 4 // java.security.Timestamp timestamp
         4: .line 324
            aload 0 /* this */
            invokevirtual sun.security.pkcs.SignerInfo.getTimestamp:()Ljava/security/Timestamp;
            astore 4 /* timestamp */
         5: .line 325
            goto 7
      StackMap locals: sun.security.pkcs.SignerInfo sun.security.pkcs.PKCS7 byte[] sun.security.pkcs.ContentInfo java.security.Timestamp
      StackMap stack: java.lang.Exception
         6: pop
         7: .line 329
      StackMap locals:
      StackMap stack:
            new sun.security.util.ConstraintsParameters
            dup
            aload 4 /* timestamp */
            invokespecial sun.security.util.ConstraintsParameters.<init>:(Ljava/security/Timestamp;)V
         8: .line 328
            astore 5 /* cparams */
        start local 5 // sun.security.util.ConstraintsParameters cparams
         9: .line 330
            aload 0 /* this */
            invokevirtual sun.security.pkcs.SignerInfo.getDigestAlgorithmId:()Lsun/security/x509/AlgorithmId;
            invokevirtual sun.security.x509.AlgorithmId.getName:()Ljava/lang/String;
            astore 6 /* digestAlgname */
        start local 6 // java.lang.String digestAlgname
        10: .line 336
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.authenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
            ifnonnull 13
        11: .line 337
            aload 2 /* data */
            astore 7 /* dataSigned */
        start local 7 // byte[] dataSigned
        12: .line 338
            goto 41
        end local 7 // byte[] dataSigned
        13: .line 342
      StackMap locals: sun.security.util.ConstraintsParameters java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.authenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
        14: .line 343
            getstatic sun.security.pkcs.PKCS9Attribute.CONTENT_TYPE_OID:Lsun/security/util/ObjectIdentifier;
        15: .line 342
            invokevirtual sun.security.pkcs.PKCS9Attributes.getAttributeValue:(Lsun/security/util/ObjectIdentifier;)Ljava/lang/Object;
        16: .line 341
            checkcast sun.security.util.ObjectIdentifier
            astore 8 /* contentType */
        start local 8 // sun.security.util.ObjectIdentifier contentType
        17: .line 344
            aload 8 /* contentType */
            ifnull 19
        18: .line 345
            aload 8 /* contentType */
            aload 3 /* content */
            getfield sun.security.pkcs.ContentInfo.contentType:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifne 20
        19: .line 346
      StackMap locals: sun.security.pkcs.SignerInfo sun.security.pkcs.PKCS7 byte[] sun.security.pkcs.ContentInfo java.security.Timestamp sun.security.util.ConstraintsParameters java.lang.String top sun.security.util.ObjectIdentifier
      StackMap stack:
            aconst_null
            areturn
        20: .line 350
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.authenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
        21: .line 351
            getstatic sun.security.pkcs.PKCS9Attribute.MESSAGE_DIGEST_OID:Lsun/security/util/ObjectIdentifier;
        22: .line 350
            invokevirtual sun.security.pkcs.PKCS9Attributes.getAttributeValue:(Lsun/security/util/ObjectIdentifier;)Ljava/lang/Object;
        23: .line 349
            checkcast byte[]
            astore 9 /* messageDigest */
        start local 9 // byte[] messageDigest
        24: .line 353
            aload 9 /* messageDigest */
            ifnonnull 26
        25: .line 354
            aconst_null
            areturn
        26: .line 358
      StackMap locals: byte[]
      StackMap stack:
            getstatic sun.security.pkcs.SignerInfo.JAR_DISABLED_CHECK:Lsun/security/util/DisabledAlgorithmConstraints;
            aload 6 /* digestAlgname */
            aload 5 /* cparams */
            invokevirtual sun.security.util.DisabledAlgorithmConstraints.permits:(Ljava/lang/String;Lsun/security/util/ConstraintsParameters;)V
        27: .line 359
            goto 30
      StackMap locals:
      StackMap stack: java.security.cert.CertPathValidatorException
        28: astore 10 /* e */
        start local 10 // java.security.cert.CertPathValidatorException e
        29: .line 360
            new java.security.SignatureException
            dup
            aload 10 /* e */
            invokevirtual java.security.cert.CertPathValidatorException.getMessage:()Ljava/lang/String;
            aload 10 /* e */
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 10 // java.security.cert.CertPathValidatorException e
        30: .line 363
      StackMap locals:
      StackMap stack:
            aload 6 /* digestAlgname */
            invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
            astore 10 /* md */
        start local 10 // java.security.MessageDigest md
        31: .line 364
            aload 10 /* md */
            aload 2 /* data */
            invokevirtual java.security.MessageDigest.digest:([B)[B
            astore 11 /* computedMessageDigest */
        start local 11 // byte[] computedMessageDigest
        32: .line 366
            aload 9 /* messageDigest */
            arraylength
            aload 11 /* computedMessageDigest */
            arraylength
            if_icmpeq 34
        33: .line 367
            aconst_null
            areturn
        34: .line 368
      StackMap locals: java.security.MessageDigest byte[]
      StackMap stack:
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        35: goto 39
        36: .line 369
      StackMap locals: int
      StackMap stack:
            aload 9 /* messageDigest */
            iload 12 /* i */
            baload
            aload 11 /* computedMessageDigest */
            iload 12 /* i */
            baload
            if_icmpeq 38
        37: .line 370
            aconst_null
            areturn
        38: .line 368
      StackMap locals:
      StackMap stack:
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        39: iload 12 /* i */
            aload 9 /* messageDigest */
            arraylength
            if_icmplt 36
        end local 12 // int i
        40: .line 379
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.authenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
            invokevirtual sun.security.pkcs.PKCS9Attributes.getDerEncoding:()[B
            astore 7 /* dataSigned */
        end local 11 // byte[] computedMessageDigest
        end local 10 // java.security.MessageDigest md
        end local 9 // byte[] messageDigest
        end local 8 // sun.security.util.ObjectIdentifier contentType
        start local 7 // byte[] dataSigned
        41: .line 385
      StackMap locals: sun.security.pkcs.SignerInfo sun.security.pkcs.PKCS7 byte[] sun.security.pkcs.ContentInfo java.security.Timestamp sun.security.util.ConstraintsParameters java.lang.String byte[]
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.pkcs.SignerInfo.getDigestEncryptionAlgorithmId:()Lsun/security/x509/AlgorithmId;
            invokevirtual sun.security.x509.AlgorithmId.getName:()Ljava/lang/String;
        42: .line 384
            astore 8 /* encryptionAlgname */
        start local 8 // java.lang.String encryptionAlgname
        43: .line 389
            aload 8 /* encryptionAlgname */
            invokestatic sun.security.x509.AlgorithmId.getEncAlgFromSigAlg:(Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* tmp */
        start local 9 // java.lang.String tmp
        44: .line 390
            aload 9 /* tmp */
            ifnull 45
            aload 9 /* tmp */
            astore 8 /* encryptionAlgname */
        45: .line 392
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 6 /* digestAlgname */
            aload 8 /* encryptionAlgname */
        46: .line 391
            invokestatic sun.security.x509.AlgorithmId.makeSigAlg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 10 /* algname */
        start local 10 // java.lang.String algname
        47: .line 396
            getstatic sun.security.pkcs.SignerInfo.JAR_DISABLED_CHECK:Lsun/security/util/DisabledAlgorithmConstraints;
            aload 10 /* algname */
            aload 5 /* cparams */
            invokevirtual sun.security.util.DisabledAlgorithmConstraints.permits:(Ljava/lang/String;Lsun/security/util/ConstraintsParameters;)V
        48: .line 397
            goto 51
      StackMap locals: sun.security.pkcs.SignerInfo sun.security.pkcs.PKCS7 byte[] sun.security.pkcs.ContentInfo java.security.Timestamp sun.security.util.ConstraintsParameters java.lang.String byte[] java.lang.String java.lang.String java.lang.String
      StackMap stack: java.security.cert.CertPathValidatorException
        49: astore 11 /* e */
        start local 11 // java.security.cert.CertPathValidatorException e
        50: .line 398
            new java.security.SignatureException
            dup
            aload 11 /* e */
            invokevirtual java.security.cert.CertPathValidatorException.getMessage:()Ljava/lang/String;
            aload 11 /* e */
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 11 // java.security.cert.CertPathValidatorException e
        51: .line 401
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* block */
            invokevirtual sun.security.pkcs.SignerInfo.getCertificate:(Lsun/security/pkcs/PKCS7;)Ljava/security/cert/X509Certificate;
            astore 11 /* cert */
        start local 11 // java.security.cert.X509Certificate cert
        52: .line 402
            aload 11 /* cert */
            ifnonnull 54
        53: .line 403
            aconst_null
            areturn
        54: .line 405
      StackMap locals: java.security.cert.X509Certificate
      StackMap stack:
            aload 11 /* cert */
            invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
            astore 12 /* key */
        start local 12 // java.security.PublicKey key
        55: .line 408
            getstatic sun.security.pkcs.SignerInfo.JAR_DISABLED_CHECK:Lsun/security/util/DisabledAlgorithmConstraints;
            getstatic sun.security.pkcs.SignerInfo.SIG_PRIMITIVE_SET:Ljava/util/Set;
            aload 12 /* key */
            invokevirtual sun.security.util.DisabledAlgorithmConstraints.permits:(Ljava/util/Set;Ljava/security/Key;)Z
            ifne 60
        56: .line 409
            new java.security.SignatureException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Public key check failed. Disabled key used: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        57: .line 411
            aload 12 /* key */
            invokestatic sun.security.util.KeyUtil.getKeySize:(Ljava/security/Key;)I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " bit "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        58: .line 412
            aload 12 /* key */
            invokeinterface java.security.PublicKey.getAlgorithm:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        59: .line 409
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        60: .line 415
      StackMap locals: java.security.PublicKey
      StackMap stack:
            aload 11 /* cert */
            invokevirtual java.security.cert.X509Certificate.hasUnsupportedCriticalExtension:()Z
            ifeq 62
        61: .line 416
            new java.security.SignatureException
            dup
            ldc "Certificate has unsupported critical extension(s)"
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        62: .line 424
      StackMap locals:
      StackMap stack:
            aload 11 /* cert */
            invokevirtual java.security.cert.X509Certificate.getKeyUsage:()[Z
            astore 13 /* keyUsageBits */
        start local 13 // boolean[] keyUsageBits
        63: .line 425
            aload 13 /* keyUsageBits */
            ifnull 80
        64: .line 432
            new sun.security.x509.KeyUsageExtension
            dup
            aload 13 /* keyUsageBits */
            invokespecial sun.security.x509.KeyUsageExtension.<init>:([Z)V
            astore 14 /* keyUsage */
        start local 14 // sun.security.x509.KeyUsageExtension keyUsage
        65: .line 433
            goto 68
        end local 14 // sun.security.x509.KeyUsageExtension keyUsage
      StackMap locals: sun.security.pkcs.SignerInfo sun.security.pkcs.PKCS7 byte[] sun.security.pkcs.ContentInfo java.security.Timestamp sun.security.util.ConstraintsParameters java.lang.String byte[] java.lang.String java.lang.String java.lang.String java.security.cert.X509Certificate java.security.PublicKey boolean[]
      StackMap stack: java.io.IOException
        66: pop
        67: .line 434
            new java.security.SignatureException
            dup
            ldc "Failed to parse keyUsage extension"
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        start local 14 // sun.security.x509.KeyUsageExtension keyUsage
        68: .line 438
      StackMap locals: sun.security.x509.KeyUsageExtension
      StackMap stack:
            aload 14 /* keyUsage */
        69: .line 439
            ldc "digital_signature"
        70: .line 438
            invokevirtual sun.security.x509.KeyUsageExtension.get:(Ljava/lang/String;)Ljava/lang/Boolean;
        71: .line 439
            invokevirtual java.lang.Boolean.booleanValue:()Z
        72: .line 438
            istore 15 /* digSigAllowed */
        start local 15 // boolean digSigAllowed
        73: .line 441
            aload 14 /* keyUsage */
        74: .line 442
            ldc "non_repudiation"
        75: .line 441
            invokevirtual sun.security.x509.KeyUsageExtension.get:(Ljava/lang/String;)Ljava/lang/Boolean;
        76: .line 442
            invokevirtual java.lang.Boolean.booleanValue:()Z
        77: .line 441
            istore 16 /* nonRepuAllowed */
        start local 16 // boolean nonRepuAllowed
        78: .line 444
            iload 15 /* digSigAllowed */
            ifne 80
            iload 16 /* nonRepuAllowed */
            ifne 80
        79: .line 445
            new java.security.SignatureException
            dup
            ldc "Key usage restricted: cannot be used for digital signatures"
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        end local 16 // boolean nonRepuAllowed
        end local 15 // boolean digSigAllowed
        end local 14 // sun.security.x509.KeyUsageExtension keyUsage
        80: .line 451
      StackMap locals:
      StackMap stack:
            aload 10 /* algname */
            invokestatic java.security.Signature.getInstance:(Ljava/lang/String;)Ljava/security/Signature;
            astore 14 /* sig */
        start local 14 // java.security.Signature sig
        81: .line 454
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.digestEncryptionAlgorithmId:Lsun/security/x509/AlgorithmId;
            invokevirtual sun.security.x509.AlgorithmId.getParameters:()Ljava/security/AlgorithmParameters;
        82: .line 453
            astore 15 /* ap */
        start local 15 // java.security.AlgorithmParameters ap
        83: .line 456
            aload 14 /* sig */
            aload 12 /* key */
        84: .line 457
            aload 10 /* algname */
            aload 15 /* ap */
            invokestatic sun.security.util.SignatureUtil.getParamSpec:(Ljava/lang/String;Ljava/security/AlgorithmParameters;)Ljava/security/spec/AlgorithmParameterSpec;
        85: .line 456
            invokestatic sun.security.util.SignatureUtil.initVerifyWithParam:(Ljava/security/Signature;Ljava/security/PublicKey;Ljava/security/spec/AlgorithmParameterSpec;)V
        86: .line 458
            goto 89
        87: .line 459
      StackMap locals: sun.security.pkcs.SignerInfo sun.security.pkcs.PKCS7 byte[] sun.security.pkcs.ContentInfo java.security.Timestamp sun.security.util.ConstraintsParameters java.lang.String byte[] java.lang.String java.lang.String java.lang.String java.security.cert.X509Certificate java.security.PublicKey boolean[] java.security.Signature java.security.AlgorithmParameters
      StackMap stack: java.lang.Exception
            astore 16 /* e */
        start local 16 // java.lang.Exception e
        88: .line 460
            new java.security.SignatureException
            dup
            aload 16 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            aload 16 /* e */
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 16 // java.lang.Exception e
        89: .line 463
      StackMap locals:
      StackMap stack:
            aload 14 /* sig */
            aload 7 /* dataSigned */
            invokevirtual java.security.Signature.update:([B)V
        90: .line 464
            aload 14 /* sig */
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.encryptedDigest:[B
            invokevirtual java.security.Signature.verify:([B)Z
            ifeq 97
        91: .line 465
            aload 0 /* this */
        92: areturn
        end local 15 // java.security.AlgorithmParameters ap
        end local 14 // java.security.Signature sig
        end local 13 // boolean[] keyUsageBits
        end local 12 // java.security.PublicKey key
        end local 11 // java.security.cert.X509Certificate cert
        end local 10 // java.lang.String algname
        end local 9 // java.lang.String tmp
        end local 8 // java.lang.String encryptionAlgname
        end local 7 // byte[] dataSigned
        end local 6 // java.lang.String digestAlgname
        end local 5 // sun.security.util.ConstraintsParameters cparams
        end local 4 // java.security.Timestamp timestamp
        end local 3 // sun.security.pkcs.ContentInfo content
        93: .line 467
      StackMap locals: sun.security.pkcs.SignerInfo sun.security.pkcs.PKCS7 byte[]
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
        94: .line 468
            new java.security.SignatureException
            dup
            new java.lang.StringBuilder
            dup
            ldc "IO error verifying signature:\n"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        95: .line 469
            aload 3 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        96: .line 468
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.io.IOException e
        97: .line 471
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // byte[] data
        end local 1 // sun.security.pkcs.PKCS7 block
        end local 0 // sun.security.pkcs.SignerInfo this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   98     0                   this  Lsun/security/pkcs/SignerInfo;
            0   98     1                  block  Lsun/security/pkcs/PKCS7;
            0   98     2                   data  [B
            1   93     3                content  Lsun/security/pkcs/ContentInfo;
            4   93     4              timestamp  Ljava/security/Timestamp;
            9   93     5                cparams  Lsun/security/util/ConstraintsParameters;
           10   93     6          digestAlgname  Ljava/lang/String;
           12   13     7             dataSigned  [B
           41   93     7             dataSigned  [B
           17   41     8            contentType  Lsun/security/util/ObjectIdentifier;
           24   41     9          messageDigest  [B
           29   30    10                      e  Ljava/security/cert/CertPathValidatorException;
           31   41    10                     md  Ljava/security/MessageDigest;
           32   41    11  computedMessageDigest  [B
           35   40    12                      i  I
           43   93     8      encryptionAlgname  Ljava/lang/String;
           44   93     9                    tmp  Ljava/lang/String;
           47   93    10                algname  Ljava/lang/String;
           50   51    11                      e  Ljava/security/cert/CertPathValidatorException;
           52   93    11                   cert  Ljava/security/cert/X509Certificate;
           55   93    12                    key  Ljava/security/PublicKey;
           63   93    13           keyUsageBits  [Z
           65   66    14               keyUsage  Lsun/security/x509/KeyUsageExtension;
           68   80    14               keyUsage  Lsun/security/x509/KeyUsageExtension;
           73   80    15          digSigAllowed  Z
           78   80    16         nonRepuAllowed  Z
           81   93    14                    sig  Ljava/security/Signature;
           83   93    15                     ap  Ljava/security/AlgorithmParameters;
           88   89    16                      e  Ljava/lang/Exception;
           94   97     3                      e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           4     5       6  Class java.lang.Exception
          26    27      28  Class java.security.cert.CertPathValidatorException
          47    48      49  Class java.security.cert.CertPathValidatorException
          64    65      66  Class java.io.IOException
          83    86      87  Class java.security.ProviderException
          83    86      87  Class java.security.InvalidAlgorithmParameterException
          83    86      87  Class java.security.InvalidKeyException
           0    19      93  Class java.io.IOException
          20    25      93  Class java.io.IOException
          26    33      93  Class java.io.IOException
          34    37      93  Class java.io.IOException
          38    53      93  Class java.io.IOException
          54    92      93  Class java.io.IOException
    Exceptions:
      throws java.security.NoSuchAlgorithmException, java.security.SignatureException
    MethodParameters:
       Name  Flags
      block  
      data   

  sun.security.pkcs.SignerInfo verify(sun.security.pkcs.PKCS7);
    descriptor: (Lsun/security/pkcs/PKCS7;)Lsun/security/pkcs/SignerInfo;
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.pkcs.SignerInfo this
        start local 1 // sun.security.pkcs.PKCS7 block
         0: .line 477
            aload 0 /* this */
            aload 1 /* block */
            aconst_null
            invokevirtual sun.security.pkcs.SignerInfo.verify:(Lsun/security/pkcs/PKCS7;[B)Lsun/security/pkcs/SignerInfo;
            areturn
        end local 1 // sun.security.pkcs.PKCS7 block
        end local 0 // sun.security.pkcs.SignerInfo this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lsun/security/pkcs/SignerInfo;
            0    1     1  block  Lsun/security/pkcs/PKCS7;
    Exceptions:
      throws java.security.NoSuchAlgorithmException, java.security.SignatureException
    MethodParameters:
       Name  Flags
      block  

  public java.math.BigInteger getVersion();
    descriptor: ()Ljava/math/BigInteger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.pkcs.SignerInfo this
         0: .line 481
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.version:Ljava/math/BigInteger;
            areturn
        end local 0 // sun.security.pkcs.SignerInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/pkcs/SignerInfo;

  public sun.security.x509.X500Name getIssuerName();
    descriptor: ()Lsun/security/x509/X500Name;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.pkcs.SignerInfo this
         0: .line 485
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.issuerName:Lsun/security/x509/X500Name;
            areturn
        end local 0 // sun.security.pkcs.SignerInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/pkcs/SignerInfo;

  public java.math.BigInteger getCertificateSerialNumber();
    descriptor: ()Ljava/math/BigInteger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.pkcs.SignerInfo this
         0: .line 489
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.certificateSerialNumber:Ljava/math/BigInteger;
            areturn
        end local 0 // sun.security.pkcs.SignerInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/pkcs/SignerInfo;

  public sun.security.x509.AlgorithmId getDigestAlgorithmId();
    descriptor: ()Lsun/security/x509/AlgorithmId;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.pkcs.SignerInfo this
         0: .line 493
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.digestAlgorithmId:Lsun/security/x509/AlgorithmId;
            areturn
        end local 0 // sun.security.pkcs.SignerInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/pkcs/SignerInfo;

  public sun.security.pkcs.PKCS9Attributes getAuthenticatedAttributes();
    descriptor: ()Lsun/security/pkcs/PKCS9Attributes;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.pkcs.SignerInfo this
         0: .line 497
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.authenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
            areturn
        end local 0 // sun.security.pkcs.SignerInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/pkcs/SignerInfo;

  public sun.security.x509.AlgorithmId getDigestEncryptionAlgorithmId();
    descriptor: ()Lsun/security/x509/AlgorithmId;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.pkcs.SignerInfo this
         0: .line 501
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.digestEncryptionAlgorithmId:Lsun/security/x509/AlgorithmId;
            areturn
        end local 0 // sun.security.pkcs.SignerInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/pkcs/SignerInfo;

  public byte[] getEncryptedDigest();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.pkcs.SignerInfo this
         0: .line 505
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.encryptedDigest:[B
            areturn
        end local 0 // sun.security.pkcs.SignerInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/pkcs/SignerInfo;

  public sun.security.pkcs.PKCS9Attributes getUnauthenticatedAttributes();
    descriptor: ()Lsun/security/pkcs/PKCS9Attributes;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.pkcs.SignerInfo this
         0: .line 509
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.unauthenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
            areturn
        end local 0 // sun.security.pkcs.SignerInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/pkcs/SignerInfo;

  public sun.security.pkcs.PKCS7 getTsToken();
    descriptor: ()Lsun/security/pkcs/PKCS7;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.security.pkcs.SignerInfo this
         0: .line 517
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.unauthenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
            ifnonnull 2
         1: .line 518
            aconst_null
            areturn
         2: .line 521
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.unauthenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
         3: .line 522
            getstatic sun.security.pkcs.PKCS9Attribute.SIGNATURE_TIMESTAMP_TOKEN_OID:Lsun/security/util/ObjectIdentifier;
         4: .line 521
            invokevirtual sun.security.pkcs.PKCS9Attributes.getAttribute:(Lsun/security/util/ObjectIdentifier;)Lsun/security/pkcs/PKCS9Attribute;
         5: .line 520
            astore 1 /* tsTokenAttr */
        start local 1 // sun.security.pkcs.PKCS9Attribute tsTokenAttr
         6: .line 523
            aload 1 /* tsTokenAttr */
            ifnonnull 8
         7: .line 524
            aconst_null
            areturn
         8: .line 526
      StackMap locals: sun.security.pkcs.PKCS9Attribute
      StackMap stack:
            new sun.security.pkcs.PKCS7
            dup
            aload 1 /* tsTokenAttr */
            invokevirtual sun.security.pkcs.PKCS9Attribute.getValue:()Ljava/lang/Object;
            checkcast byte[]
            invokespecial sun.security.pkcs.PKCS7.<init>:([B)V
            areturn
        end local 1 // sun.security.pkcs.PKCS9Attribute tsTokenAttr
        end local 0 // sun.security.pkcs.SignerInfo this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lsun/security/pkcs/SignerInfo;
            6    9     1  tsTokenAttr  Lsun/security/pkcs/PKCS9Attribute;
    Exceptions:
      throws java.io.IOException

  public java.security.Timestamp getTimestamp();
    descriptor: ()Ljava/security/Timestamp;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // sun.security.pkcs.SignerInfo this
         0: .line 553
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.timestamp:Ljava/security/Timestamp;
            ifnonnull 1
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.hasTimestamp:Z
            ifne 2
         1: .line 554
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.timestamp:Ljava/security/Timestamp;
            areturn
         2: .line 556
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.pkcs.SignerInfo.getTsToken:()Lsun/security/pkcs/PKCS7;
            astore 1 /* tsToken */
        start local 1 // sun.security.pkcs.PKCS7 tsToken
         3: .line 557
            aload 1 /* tsToken */
            ifnonnull 6
         4: .line 558
            aload 0 /* this */
            iconst_0
            putfield sun.security.pkcs.SignerInfo.hasTimestamp:Z
         5: .line 559
            aconst_null
            areturn
         6: .line 563
      StackMap locals: sun.security.pkcs.PKCS7
      StackMap stack:
            aload 1 /* tsToken */
            invokevirtual sun.security.pkcs.PKCS7.getContentInfo:()Lsun/security/pkcs/ContentInfo;
            invokevirtual sun.security.pkcs.ContentInfo.getData:()[B
            astore 2 /* encTsTokenInfo */
        start local 2 // byte[] encTsTokenInfo
         7: .line 566
            aload 1 /* tsToken */
            aload 2 /* encTsTokenInfo */
            invokevirtual sun.security.pkcs.PKCS7.verify:([B)[Lsun/security/pkcs/SignerInfo;
            astore 3 /* tsa */
        start local 3 // sun.security.pkcs.SignerInfo[] tsa
         8: .line 568
            aload 3 /* tsa */
            iconst_0
            aaload
            aload 1 /* tsToken */
            invokevirtual sun.security.pkcs.SignerInfo.getCertificateChain:(Lsun/security/pkcs/PKCS7;)Ljava/util/ArrayList;
            astore 4 /* chain */
        start local 4 // java.util.ArrayList chain
         9: .line 569
            ldc "X.509"
            invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
            astore 5 /* cf */
        start local 5 // java.security.cert.CertificateFactory cf
        10: .line 570
            aload 5 /* cf */
            aload 4 /* chain */
            invokevirtual java.security.cert.CertificateFactory.generateCertPath:(Ljava/util/List;)Ljava/security/cert/CertPath;
            astore 6 /* tsaChain */
        start local 6 // java.security.cert.CertPath tsaChain
        11: .line 572
            new sun.security.timestamp.TimestampToken
            dup
            aload 2 /* encTsTokenInfo */
            invokespecial sun.security.timestamp.TimestampToken.<init>:([B)V
            astore 7 /* tsTokenInfo */
        start local 7 // sun.security.timestamp.TimestampToken tsTokenInfo
        12: .line 574
            aload 0 /* this */
            aload 7 /* tsTokenInfo */
            invokevirtual sun.security.pkcs.SignerInfo.verifyTimestamp:(Lsun/security/timestamp/TimestampToken;)V
        13: .line 576
            aload 0 /* this */
            new java.security.Timestamp
            dup
            aload 7 /* tsTokenInfo */
            invokevirtual sun.security.timestamp.TimestampToken.getDate:()Ljava/util/Date;
            aload 6 /* tsaChain */
            invokespecial java.security.Timestamp.<init>:(Ljava/util/Date;Ljava/security/cert/CertPath;)V
            putfield sun.security.pkcs.SignerInfo.timestamp:Ljava/security/Timestamp;
        14: .line 577
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.timestamp:Ljava/security/Timestamp;
            areturn
        end local 7 // sun.security.timestamp.TimestampToken tsTokenInfo
        end local 6 // java.security.cert.CertPath tsaChain
        end local 5 // java.security.cert.CertificateFactory cf
        end local 4 // java.util.ArrayList chain
        end local 3 // sun.security.pkcs.SignerInfo[] tsa
        end local 2 // byte[] encTsTokenInfo
        end local 1 // sun.security.pkcs.PKCS7 tsToken
        end local 0 // sun.security.pkcs.SignerInfo this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0            this  Lsun/security/pkcs/SignerInfo;
            3   15     1         tsToken  Lsun/security/pkcs/PKCS7;
            7   15     2  encTsTokenInfo  [B
            8   15     3             tsa  [Lsun/security/pkcs/SignerInfo;
            9   15     4           chain  Ljava/util/ArrayList<Ljava/security/cert/X509Certificate;>;
           10   15     5              cf  Ljava/security/cert/CertificateFactory;
           11   15     6        tsaChain  Ljava/security/cert/CertPath;
           12   15     7     tsTokenInfo  Lsun/security/timestamp/TimestampToken;
    Exceptions:
      throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.SignatureException, java.security.cert.CertificateException

  private void verifyTimestamp(sun.security.timestamp.TimestampToken);
    descriptor: (Lsun/security/timestamp/TimestampToken;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // sun.security.pkcs.SignerInfo this
        start local 1 // sun.security.timestamp.TimestampToken token
         0: .line 587
            aload 1 /* token */
            invokevirtual sun.security.timestamp.TimestampToken.getHashAlgorithm:()Lsun/security/x509/AlgorithmId;
            invokevirtual sun.security.x509.AlgorithmId.getName:()Ljava/lang/String;
            astore 2 /* digestAlgname */
        start local 2 // java.lang.String digestAlgname
         1: .line 589
            getstatic sun.security.pkcs.SignerInfo.JAR_DISABLED_CHECK:Lsun/security/util/DisabledAlgorithmConstraints;
            getstatic sun.security.pkcs.SignerInfo.DIGEST_PRIMITIVE_SET:Ljava/util/Set;
            aload 2 /* digestAlgname */
         2: .line 590
            aconst_null
         3: .line 589
            invokevirtual sun.security.util.DisabledAlgorithmConstraints.permits:(Ljava/util/Set;Ljava/lang/String;Ljava/security/AlgorithmParameters;)Z
         4: .line 590
            ifne 8
         5: .line 591
            new java.security.SignatureException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Timestamp token digest check failed. Disabled algorithm used: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         6: .line 592
            aload 2 /* digestAlgname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 591
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 596
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* digestAlgname */
            invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
         9: .line 595
            astore 3 /* md */
        start local 3 // java.security.MessageDigest md
        10: .line 598
            aload 1 /* token */
            invokevirtual sun.security.timestamp.TimestampToken.getHashedMessage:()[B
        11: .line 599
            aload 3 /* md */
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.encryptedDigest:[B
            invokevirtual java.security.MessageDigest.digest:([B)[B
        12: .line 598
            invokestatic java.util.Arrays.equals:([B[B)Z
        13: .line 599
            ifne 18
        14: .line 601
            new java.security.SignatureException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Signature timestamp (#"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        15: .line 602
            aload 1 /* token */
            invokevirtual sun.security.timestamp.TimestampToken.getSerialNumber:()Ljava/math/BigInteger;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ") generated on "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* token */
            invokevirtual sun.security.timestamp.TimestampToken.getDate:()Ljava/util/Date;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        16: .line 603
            ldc " is inapplicable"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        17: .line 601
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 606
      StackMap locals: java.security.MessageDigest
      StackMap stack:
            getstatic sun.security.pkcs.SignerInfo.debug:Lsun/security/util/Debug;
            ifnull 24
        19: .line 607
            getstatic sun.security.pkcs.SignerInfo.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
        20: .line 608
            getstatic sun.security.pkcs.SignerInfo.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "Detected signature timestamp (#"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        21: .line 609
            aload 1 /* token */
            invokevirtual sun.security.timestamp.TimestampToken.getSerialNumber:()Ljava/math/BigInteger;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ") generated on "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* token */
            invokevirtual sun.security.timestamp.TimestampToken.getDate:()Ljava/util/Date;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        22: .line 608
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        23: .line 610
            getstatic sun.security.pkcs.SignerInfo.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
        24: .line 612
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.security.MessageDigest md
        end local 2 // java.lang.String digestAlgname
        end local 1 // sun.security.timestamp.TimestampToken token
        end local 0 // sun.security.pkcs.SignerInfo this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   25     0           this  Lsun/security/pkcs/SignerInfo;
            0   25     1          token  Lsun/security/timestamp/TimestampToken;
            1   25     2  digestAlgname  Ljava/lang/String;
           10   25     3             md  Ljava/security/MessageDigest;
    Exceptions:
      throws java.security.NoSuchAlgorithmException, java.security.SignatureException
    MethodParameters:
       Name  Flags
      token  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // sun.security.pkcs.SignerInfo this
         0: .line 615
            new sun.security.util.HexDumpEncoder
            dup
            invokespecial sun.security.util.HexDumpEncoder.<init>:()V
            astore 1 /* hexDump */
        start local 1 // sun.security.util.HexDumpEncoder hexDump
         1: .line 617
            ldc ""
            astore 2 /* out */
        start local 2 // java.lang.String out
         2: .line 619
            new java.lang.StringBuilder
            dup
            aload 2 /* out */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Signer Info for (issuer): "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.issuerName:Lsun/security/x509/X500Name;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* out */
         3: .line 620
            new java.lang.StringBuilder
            dup
            aload 2 /* out */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\tversion: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.version:Ljava/math/BigInteger;
            invokestatic sun.security.util.Debug.toHexString:(Ljava/math/BigInteger;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* out */
         4: .line 621
            new java.lang.StringBuilder
            dup
            aload 2 /* out */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\tcertificateSerialNumber: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 622
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.certificateSerialNumber:Ljava/math/BigInteger;
            invokestatic sun.security.util.Debug.toHexString:(Ljava/math/BigInteger;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 621
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* out */
         7: .line 623
            new java.lang.StringBuilder
            dup
            aload 2 /* out */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\tdigestAlgorithmId: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.digestAlgorithmId:Lsun/security/x509/AlgorithmId;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* out */
         8: .line 624
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.authenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
            ifnull 12
         9: .line 625
            new java.lang.StringBuilder
            dup
            aload 2 /* out */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\tauthenticatedAttributes: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.authenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        10: .line 626
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 625
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* out */
        12: .line 628
      StackMap locals: sun.security.util.HexDumpEncoder java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 2 /* out */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\tdigestEncryptionAlgorithmId: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.digestEncryptionAlgorithmId:Lsun/security/x509/AlgorithmId;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        13: .line 629
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 628
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* out */
        15: .line 631
            new java.lang.StringBuilder
            dup
            aload 2 /* out */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\tencryptedDigest: \n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        16: .line 632
            aload 1 /* hexDump */
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.encryptedDigest:[B
            invokevirtual sun.security.util.HexDumpEncoder.encodeBuffer:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        17: .line 631
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* out */
        18: .line 633
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.unauthenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
            ifnull 22
        19: .line 634
            new java.lang.StringBuilder
            dup
            aload 2 /* out */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\tunauthenticatedAttributes: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        20: .line 635
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.unauthenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        21: .line 634
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* out */
        22: .line 637
      StackMap locals:
      StackMap stack:
            aload 2 /* out */
            areturn
        end local 2 // java.lang.String out
        end local 1 // sun.security.util.HexDumpEncoder hexDump
        end local 0 // sun.security.pkcs.SignerInfo this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   23     0     this  Lsun/security/pkcs/SignerInfo;
            1   23     1  hexDump  Lsun/security/util/HexDumpEncoder;
            2   23     2      out  Ljava/lang/String;
}
SourceFile: "SignerInfo.java"