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 */
            iconst_0
            aaload
            invokevirtual sun.security.util.DerValue.toByteArray:()[B
            astore 4 /* issuerBytes */
        start local 4 // byte[] issuerBytes
         5: .line 148
            aload 0 /* this */
            new sun.security.x509.X500Name
            dup
            new sun.security.util.DerValue
            dup
            bipush 48
         6: .line 149
            aload 4 /* issuerBytes */
            invokespecial sun.security.util.DerValue.<init>:(B[B)V
            invokespecial sun.security.x509.X500Name.<init>:(Lsun/security/util/DerValue;)V
         7: .line 148
            putfield sun.security.pkcs.SignerInfo.issuerName:Lsun/security/x509/X500Name;
         8: .line 150
            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;
         9: .line 153
            aload 1 /* derin */
            invokevirtual sun.security.util.DerInputStream.getDerValue:()Lsun/security/util/DerValue;
            astore 5 /* tmp */
        start local 5 // sun.security.util.DerValue tmp
        10: .line 155
            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;
        11: .line 158
            iload 2 /* oldStyle */
            ifeq 14
        12: .line 161
            aload 1 /* derin */
            iconst_0
            invokevirtual sun.security.util.DerInputStream.getSet:(I)[Lsun/security/util/DerValue;
            pop
        13: .line 162
            goto 16
        14: .line 165
      StackMap locals: sun.security.pkcs.SignerInfo sun.security.util.DerInputStream int sun.security.util.DerValue[] byte[] sun.security.util.DerValue
      StackMap stack:
            aload 1 /* derin */
            invokevirtual sun.security.util.DerInputStream.peekByte:()I
            i2b
            bipush -96
            if_icmpne 16
        15: .line 166
            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;
        16: .line 172
      StackMap locals:
      StackMap stack:
            aload 1 /* derin */
            invokevirtual sun.security.util.DerInputStream.getDerValue:()Lsun/security/util/DerValue;
            astore 5 /* tmp */
        17: .line 174
            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;
        18: .line 177
            aload 0 /* this */
            aload 1 /* derin */
            invokevirtual sun.security.util.DerInputStream.getOctetString:()[B
            putfield sun.security.pkcs.SignerInfo.encryptedDigest:[B
        19: .line 180
            iload 2 /* oldStyle */
            ifeq 22
        20: .line 183
            aload 1 /* derin */
            iconst_0
            invokevirtual sun.security.util.DerInputStream.getSet:(I)[Lsun/security/util/DerValue;
            pop
        21: .line 184
            goto 27
        22: .line 187
      StackMap locals:
      StackMap stack:
            aload 1 /* derin */
            invokevirtual sun.security.util.DerInputStream.available:()I
            ifeq 27
        23: .line 188
            aload 1 /* derin */
            invokevirtual sun.security.util.DerInputStream.peekByte:()I
            i2b
            bipush -95
            if_icmpne 27
        24: .line 189
            aload 0 /* this */
        25: .line 190
            new sun.security.pkcs.PKCS9Attributes
            dup
            aload 1 /* derin */
            iconst_1
            invokespecial sun.security.pkcs.PKCS9Attributes.<init>:(Lsun/security/util/DerInputStream;Z)V
        26: .line 189
            putfield sun.security.pkcs.SignerInfo.unauthenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
        27: .line 195
      StackMap locals:
      StackMap stack:
            aload 1 /* derin */
            invokevirtual sun.security.util.DerInputStream.available:()I
            ifeq 29
        28: .line 196
            new sun.security.pkcs.ParsingException
            dup
            ldc "extra data at the end"
            invokespecial sun.security.pkcs.ParsingException.<init>:(Ljava/lang/String;)V
            athrow
        29: .line 198
      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   30     0                   this  Lsun/security/pkcs/SignerInfo;
            0   30     1                  derin  Lsun/security/util/DerInputStream;
            0   30     2               oldStyle  Z
            4   30     3  issuerAndSerialNumber  [Lsun/security/util/DerValue;
            5   30     4            issuerBytes  [B
           10   30     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 202
            aload 0 /* this */
            aload 1 /* out */
            invokevirtual sun.security.pkcs.SignerInfo.derEncode:(Ljava/io/OutputStream;)V
         1: .line 203
            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 215
            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 216
            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 217
            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 218
            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 219
            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 220
            aload 2 /* seq */
            bipush 48
            aload 3 /* issuerAndSerialNumber */
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
         6: .line 222
            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 225
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.authenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
            ifnull 9
         8: .line 226
            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 228
      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 230
            aload 2 /* seq */
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.encryptedDigest:[B
            invokevirtual sun.security.util.DerOutputStream.putOctetString:([B)V
        11: .line 233
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.unauthenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
            ifnull 13
        12: .line 234
            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 236
      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 237
            aload 4 /* tmp */
            bipush 48
            aload 2 /* seq */
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
        15: .line 239
            aload 1 /* out */
            aload 4 /* tmp */
            invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
            invokevirtual java.io.OutputStream.write:([B)V
        16: .line 240
            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 250
            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 260
            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 261
            aload 2 /* userCert */
            ifnonnull 3
         2: .line 262
            aconst_null
            areturn
         3: .line 264
      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 265
            aload 3 /* certList */
            aload 2 /* userCert */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         5: .line 267
            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 268
            aload 4 /* pkcsCerts */
            ifnull 8
         7: .line 269
            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 270
      StackMap locals: java.util.ArrayList java.security.cert.X509Certificate[]
      StackMap stack:
            aload 3 /* certList */
            areturn
         9: .line 273
      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 274
            iconst_0
            istore 6 /* start */
        start local 6 // int start
        11: .line 276
      StackMap locals: java.security.Principal int
      StackMap stack:
            iconst_0
            istore 7 /* match */
        start local 7 // boolean match
        12: .line 277
            iload 6 /* start */
            istore 8 /* i */
        start local 8 // int i
        13: .line 278
            goto 30
        14: .line 279
      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 281
            aload 3 /* certList */
            aload 4 /* pkcsCerts */
            iload 8 /* i */
            aaload
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        16: .line 284
            aload 4 /* pkcsCerts */
            iload 8 /* i */
            aaload
            invokevirtual java.security.cert.X509Certificate.getSubjectDN:()Ljava/security/Principal;
        17: .line 285
            aload 4 /* pkcsCerts */
            iload 8 /* i */
            aaload
            invokevirtual java.security.cert.X509Certificate.getIssuerDN:()Ljava/security/Principal;
        18: .line 284
            invokeinterface java.security.Principal.equals:(Ljava/lang/Object;)Z
        19: .line 285
            ifeq 22
        20: .line 286
            aload 4 /* pkcsCerts */
            arraylength
            istore 6 /* start */
        21: .line 287
            goto 27
        22: .line 288
      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 289
            aload 4 /* pkcsCerts */
            iload 6 /* start */
            aaload
            astore 9 /* tmpCert */
        start local 9 // java.security.cert.X509Certificate tmpCert
        24: .line 290
            aload 4 /* pkcsCerts */
            iload 6 /* start */
            aload 4 /* pkcsCerts */
            iload 8 /* i */
            aaload
            aastore
        25: .line 291
            aload 4 /* pkcsCerts */
            iload 8 /* i */
            aload 9 /* tmpCert */
            aastore
        26: .line 292
            iinc 6 /* start */ 1
        end local 9 // java.security.cert.X509Certificate tmpCert
        27: .line 294
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 7 /* match */
        28: .line 295
            goto 31
        29: .line 297
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
        30: .line 278
      StackMap locals:
      StackMap stack:
            iload 8 /* i */
            aload 4 /* pkcsCerts */
            arraylength
            if_icmplt 14
        31: .line 300
      StackMap locals:
      StackMap stack:
            iload 7 /* match */
            ifne 11
        end local 8 // int i
        end local 7 // boolean match
        32: .line 304
            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 314
            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 315
            aload 2 /* data */
            ifnonnull 3
         2: .line 316
            aload 3 /* content */
            invokevirtual sun.security.pkcs.ContentInfo.getContentBytes:()[B
            astore 2 /* data */
         3: .line 319
      StackMap locals: sun.security.pkcs.ContentInfo
      StackMap stack:
            aconst_null
            astore 4 /* timestamp */
        start local 4 // java.security.Timestamp timestamp
         4: .line 321
            aload 0 /* this */
            invokevirtual sun.security.pkcs.SignerInfo.getTimestamp:()Ljava/security/Timestamp;
            astore 4 /* timestamp */
         5: .line 322
            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 326
      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 325
            astore 5 /* cparams */
        start local 5 // sun.security.util.ConstraintsParameters cparams
         9: .line 327
            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 333
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.authenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
            ifnonnull 13
        11: .line 334
            aload 2 /* data */
            astore 7 /* dataSigned */
        start local 7 // byte[] dataSigned
        12: .line 335
            goto 41
        end local 7 // byte[] dataSigned
        13: .line 339
      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 340
            getstatic sun.security.pkcs.PKCS9Attribute.CONTENT_TYPE_OID:Lsun/security/util/ObjectIdentifier;
        15: .line 339
            invokevirtual sun.security.pkcs.PKCS9Attributes.getAttributeValue:(Lsun/security/util/ObjectIdentifier;)Ljava/lang/Object;
        16: .line 338
            checkcast sun.security.util.ObjectIdentifier
            astore 8 /* contentType */
        start local 8 // sun.security.util.ObjectIdentifier contentType
        17: .line 341
            aload 8 /* contentType */
            ifnull 19
        18: .line 342
            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 343
      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 347
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.authenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
        21: .line 348
            getstatic sun.security.pkcs.PKCS9Attribute.MESSAGE_DIGEST_OID:Lsun/security/util/ObjectIdentifier;
        22: .line 347
            invokevirtual sun.security.pkcs.PKCS9Attributes.getAttributeValue:(Lsun/security/util/ObjectIdentifier;)Ljava/lang/Object;
        23: .line 346
            checkcast byte[]
            astore 9 /* messageDigest */
        start local 9 // byte[] messageDigest
        24: .line 350
            aload 9 /* messageDigest */
            ifnonnull 26
        25: .line 351
            aconst_null
            areturn
        26: .line 355
      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 356
            goto 30
      StackMap locals:
      StackMap stack: java.security.cert.CertPathValidatorException
        28: astore 10 /* e */
        start local 10 // java.security.cert.CertPathValidatorException e
        29: .line 357
            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 360
      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 361
            aload 10 /* md */
            aload 2 /* data */
            invokevirtual java.security.MessageDigest.digest:([B)[B
            astore 11 /* computedMessageDigest */
        start local 11 // byte[] computedMessageDigest
        32: .line 363
            aload 9 /* messageDigest */
            arraylength
            aload 11 /* computedMessageDigest */
            arraylength
            if_icmpeq 34
        33: .line 364
            aconst_null
            areturn
        34: .line 365
      StackMap locals: java.security.MessageDigest byte[]
      StackMap stack:
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        35: goto 39
        36: .line 366
      StackMap locals: int
      StackMap stack:
            aload 9 /* messageDigest */
            iload 12 /* i */
            baload
            aload 11 /* computedMessageDigest */
            iload 12 /* i */
            baload
            if_icmpeq 38
        37: .line 367
            aconst_null
            areturn
        38: .line 365
      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 376
            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 382
      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 381
            astore 8 /* encryptionAlgname */
        start local 8 // java.lang.String encryptionAlgname
        43: .line 386
            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 387
            aload 9 /* tmp */
            ifnull 45
            aload 9 /* tmp */
            astore 8 /* encryptionAlgname */
        45: .line 389
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 6 /* digestAlgname */
            aload 8 /* encryptionAlgname */
        46: .line 388
            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 393
            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 394
            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 395
            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 398
      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 399
            aload 11 /* cert */
            ifnonnull 54
        53: .line 400
            aconst_null
            areturn
        54: .line 402
      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 405
            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 406
            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 408
            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 409
            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 406
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        60: .line 412
      StackMap locals: java.security.PublicKey
      StackMap stack:
            aload 11 /* cert */
            invokevirtual java.security.cert.X509Certificate.hasUnsupportedCriticalExtension:()Z
            ifeq 62
        61: .line 413
            new java.security.SignatureException
            dup
            ldc "Certificate has unsupported critical extension(s)"
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        62: .line 421
      StackMap locals:
      StackMap stack:
            aload 11 /* cert */
            invokevirtual java.security.cert.X509Certificate.getKeyUsage:()[Z
            astore 13 /* keyUsageBits */
        start local 13 // boolean[] keyUsageBits
        63: .line 422
            aload 13 /* keyUsageBits */
            ifnull 80
        64: .line 429
            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 430
            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 431
            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 435
      StackMap locals: sun.security.x509.KeyUsageExtension
      StackMap stack:
            aload 14 /* keyUsage */
        69: .line 436
            ldc "digital_signature"
        70: .line 435
            invokevirtual sun.security.x509.KeyUsageExtension.get:(Ljava/lang/String;)Ljava/lang/Boolean;
        71: .line 436
            invokevirtual java.lang.Boolean.booleanValue:()Z
        72: .line 435
            istore 15 /* digSigAllowed */
        start local 15 // boolean digSigAllowed
        73: .line 438
            aload 14 /* keyUsage */
        74: .line 439
            ldc "non_repudiation"
        75: .line 438
            invokevirtual sun.security.x509.KeyUsageExtension.get:(Ljava/lang/String;)Ljava/lang/Boolean;
        76: .line 439
            invokevirtual java.lang.Boolean.booleanValue:()Z
        77: .line 438
            istore 16 /* nonRepuAllowed */
        start local 16 // boolean nonRepuAllowed
        78: .line 441
            iload 15 /* digSigAllowed */
            ifne 80
            iload 16 /* nonRepuAllowed */
            ifne 80
        79: .line 442
            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 448
      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 450
            aload 14 /* sig */
            aload 12 /* key */
            invokevirtual java.security.Signature.initVerify:(Ljava/security/PublicKey;)V
        82: .line 455
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.digestEncryptionAlgorithmId:Lsun/security/x509/AlgorithmId;
            invokevirtual sun.security.x509.AlgorithmId.getParameters:()Ljava/security/AlgorithmParameters;
        83: .line 454
            astore 15 /* ap */
        start local 15 // java.security.AlgorithmParameters ap
        84: .line 457
            aload 14 /* sig */
            aload 15 /* ap */
            invokestatic sun.security.util.SignatureUtil.specialSetParameter:(Ljava/security/Signature;Ljava/security/AlgorithmParameters;)V
        85: .line 458
            goto 88
      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
        86: astore 16 /* e */
        start local 16 // java.lang.Exception e
        87: .line 459
            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
        88: .line 462
      StackMap locals:
      StackMap stack:
            aload 14 /* sig */
            aload 7 /* dataSigned */
            invokevirtual java.security.Signature.update:([B)V
        89: .line 463
            aload 14 /* sig */
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.encryptedDigest:[B
            invokevirtual java.security.Signature.verify:([B)Z
            ifeq 98
        90: .line 464
            aload 0 /* this */
        91: 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
        92: .line 466
      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
        93: .line 467
            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
        94: .line 468
            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;
        95: .line 467
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.io.IOException e
        96: .line 469
      StackMap locals:
      StackMap stack: java.security.InvalidKeyException
            astore 3 /* e */
        start local 3 // java.security.InvalidKeyException e
        97: .line 470
            new java.security.SignatureException
            dup
            new java.lang.StringBuilder
            dup
            ldc "InvalidKey: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* e */
            invokevirtual java.security.InvalidKeyException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.security.InvalidKeyException e
        98: .line 472
      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   99     0                   this  Lsun/security/pkcs/SignerInfo;
            0   99     1                  block  Lsun/security/pkcs/PKCS7;
            0   99     2                   data  [B
            1   92     3                content  Lsun/security/pkcs/ContentInfo;
            4   92     4              timestamp  Ljava/security/Timestamp;
            9   92     5                cparams  Lsun/security/util/ConstraintsParameters;
           10   92     6          digestAlgname  Ljava/lang/String;
           12   13     7             dataSigned  [B
           41   92     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   92     8      encryptionAlgname  Ljava/lang/String;
           44   92     9                    tmp  Ljava/lang/String;
           47   92    10                algname  Ljava/lang/String;
           50   51    11                      e  Ljava/security/cert/CertPathValidatorException;
           52   92    11                   cert  Ljava/security/cert/X509Certificate;
           55   92    12                    key  Ljava/security/PublicKey;
           63   92    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   92    14                    sig  Ljava/security/Signature;
           84   92    15                     ap  Ljava/security/AlgorithmParameters;
           87   88    16                      e  Ljava/lang/Exception;
           93   96     3                      e  Ljava/io/IOException;
           97   98     3                      e  Ljava/security/InvalidKeyException;
      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
          84    85      86  Class java.security.ProviderException
          84    85      86  Class java.security.InvalidAlgorithmParameterException
           0    19      92  Class java.io.IOException
          20    25      92  Class java.io.IOException
          26    33      92  Class java.io.IOException
          34    37      92  Class java.io.IOException
          38    53      92  Class java.io.IOException
          54    91      92  Class java.io.IOException
           0    19      96  Class java.security.InvalidKeyException
          20    25      96  Class java.security.InvalidKeyException
          26    33      96  Class java.security.InvalidKeyException
          34    37      96  Class java.security.InvalidKeyException
          38    53      96  Class java.security.InvalidKeyException
          54    91      96  Class java.security.InvalidKeyException
    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 478
            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 482
            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 486
            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 490
            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 494
            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 498
            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 502
            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 506
            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 510
            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 518
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.unauthenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
            ifnonnull 2
         1: .line 519
            aconst_null
            areturn
         2: .line 522
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.unauthenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
         3: .line 523
            getstatic sun.security.pkcs.PKCS9Attribute.SIGNATURE_TIMESTAMP_TOKEN_OID:Lsun/security/util/ObjectIdentifier;
         4: .line 522
            invokevirtual sun.security.pkcs.PKCS9Attributes.getAttribute:(Lsun/security/util/ObjectIdentifier;)Lsun/security/pkcs/PKCS9Attribute;
         5: .line 521
            astore 1 /* tsTokenAttr */
        start local 1 // sun.security.pkcs.PKCS9Attribute tsTokenAttr
         6: .line 524
            aload 1 /* tsTokenAttr */
            ifnonnull 8
         7: .line 525
            aconst_null
            areturn
         8: .line 527
      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 554
            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 555
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.timestamp:Ljava/security/Timestamp;
            areturn
         2: .line 557
      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 558
            aload 1 /* tsToken */
            ifnonnull 6
         4: .line 559
            aload 0 /* this */
            iconst_0
            putfield sun.security.pkcs.SignerInfo.hasTimestamp:Z
         5: .line 560
            aconst_null
            areturn
         6: .line 564
      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 567
            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 569
            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 570
            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 571
            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 573
            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 575
            aload 0 /* this */
            aload 7 /* tsTokenInfo */
            invokevirtual sun.security.pkcs.SignerInfo.verifyTimestamp:(Lsun/security/timestamp/TimestampToken;)V
        13: .line 577
            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 578
            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 588
            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 590
            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 591
            aconst_null
         3: .line 590
            invokevirtual sun.security.util.DisabledAlgorithmConstraints.permits:(Ljava/util/Set;Ljava/lang/String;Ljava/security/AlgorithmParameters;)Z
         4: .line 591
            ifne 8
         5: .line 592
            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 593
            aload 2 /* digestAlgname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 592
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 597
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* digestAlgname */
            invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
         9: .line 596
            astore 3 /* md */
        start local 3 // java.security.MessageDigest md
        10: .line 599
            aload 1 /* token */
            invokevirtual sun.security.timestamp.TimestampToken.getHashedMessage:()[B
        11: .line 600
            aload 3 /* md */
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.encryptedDigest:[B
            invokevirtual java.security.MessageDigest.digest:([B)[B
        12: .line 599
            invokestatic java.util.Arrays.equals:([B[B)Z
        13: .line 600
            ifne 18
        14: .line 602
            new java.security.SignatureException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Signature timestamp (#"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        15: .line 603
            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 604
            ldc " is inapplicable"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        17: .line 602
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 607
      StackMap locals: java.security.MessageDigest
      StackMap stack:
            getstatic sun.security.pkcs.SignerInfo.debug:Lsun/security/util/Debug;
            ifnull 24
        19: .line 608
            getstatic sun.security.pkcs.SignerInfo.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
        20: .line 609
            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 610
            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 609
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        23: .line 611
            getstatic sun.security.pkcs.SignerInfo.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
        24: .line 613
      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 616
            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 618
            ldc ""
            astore 2 /* out */
        start local 2 // java.lang.String out
         2: .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 "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 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 "\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 622
            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 623
            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 622
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* out */
         7: .line 624
            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 625
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.authenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
            ifnull 12
         9: .line 626
            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 627
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 626
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* out */
        12: .line 629
      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 630
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 629
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* out */
        15: .line 632
            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 633
            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 632
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* out */
        18: .line 634
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.unauthenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
            ifnull 22
        19: .line 635
            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 636
            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 635
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* out */
        22: .line 638
      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"