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 75
            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 74
            putstatic sun.security.pkcs.SignerInfo.DIGEST_PRIMITIVE_SET:Ljava/util/Set;
         2: .line 78
            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 77
            putstatic sun.security.pkcs.SignerInfo.SIG_PRIMITIVE_SET:Ljava/util/Set;
         4: .line 81
            new sun.security.util.DisabledAlgorithmConstraints
            dup
         5: .line 82
            ldc "jdk.jar.disabledAlgorithms"
         6: .line 81
            invokespecial sun.security.util.DisabledAlgorithmConstraints.<init>:(Ljava/lang/String;)V
         7: .line 80
            putstatic sun.security.pkcs.SignerInfo.JAR_DISABLED_CHECK:Lsun/security/util/DisabledAlgorithmConstraints;
         8: .line 92
            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 97
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 91
            aload 0 /* this */
            iconst_1
            putfield sun.security.pkcs.SignerInfo.hasTimestamp:Z
         2: .line 102
            aload 0 /* this */
            getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
            putfield sun.security.pkcs.SignerInfo.version:Ljava/math/BigInteger;
         3: .line 103
            aload 0 /* this */
            aload 1 /* issuerName */
            putfield sun.security.pkcs.SignerInfo.issuerName:Lsun/security/x509/X500Name;
         4: .line 104
            aload 0 /* this */
            aload 2 /* serial */
            putfield sun.security.pkcs.SignerInfo.certificateSerialNumber:Ljava/math/BigInteger;
         5: .line 105
            aload 0 /* this */
            aload 3 /* digestAlgorithmId */
            putfield sun.security.pkcs.SignerInfo.digestAlgorithmId:Lsun/security/x509/AlgorithmId;
         6: .line 106
            aload 0 /* this */
            aload 4 /* digestEncryptionAlgorithmId */
            putfield sun.security.pkcs.SignerInfo.digestEncryptionAlgorithmId:Lsun/security/x509/AlgorithmId;
         7: .line 107
            aload 0 /* this */
            aload 5 /* encryptedDigest */
            putfield sun.security.pkcs.SignerInfo.encryptedDigest:[B
         8: .line 108
            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 110
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 91
            aload 0 /* this */
            iconst_1
            putfield sun.security.pkcs.SignerInfo.hasTimestamp:Z
         2: .line 117
            aload 0 /* this */
            getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
            putfield sun.security.pkcs.SignerInfo.version:Ljava/math/BigInteger;
         3: .line 118
            aload 0 /* this */
            aload 1 /* issuerName */
            putfield sun.security.pkcs.SignerInfo.issuerName:Lsun/security/x509/X500Name;
         4: .line 119
            aload 0 /* this */
            aload 2 /* serial */
            putfield sun.security.pkcs.SignerInfo.certificateSerialNumber:Ljava/math/BigInteger;
         5: .line 120
            aload 0 /* this */
            aload 3 /* digestAlgorithmId */
            putfield sun.security.pkcs.SignerInfo.digestAlgorithmId:Lsun/security/x509/AlgorithmId;
         6: .line 121
            aload 0 /* this */
            aload 4 /* authenticatedAttributes */
            putfield sun.security.pkcs.SignerInfo.authenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
         7: .line 122
            aload 0 /* this */
            aload 5 /* digestEncryptionAlgorithmId */
            putfield sun.security.pkcs.SignerInfo.digestEncryptionAlgorithmId:Lsun/security/x509/AlgorithmId;
         8: .line 123
            aload 0 /* this */
            aload 6 /* encryptedDigest */
            putfield sun.security.pkcs.SignerInfo.encryptedDigest:[B
         9: .line 124
            aload 0 /* this */
            aload 7 /* unauthenticatedAttributes */
            putfield sun.security.pkcs.SignerInfo.unauthenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
        10: .line 125
            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 133
            aload 0 /* this */
            aload 1 /* derin */
            iconst_0
            invokespecial sun.security.pkcs.SignerInfo.<init>:(Lsun/security/util/DerInputStream;Z)V
         1: .line 134
            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 146
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 91
            aload 0 /* this */
            iconst_1
            putfield sun.security.pkcs.SignerInfo.hasTimestamp:Z
         2: .line 150
            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 153
            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 154
            aload 3 /* issuerAndSerialNumber */
            arraylength
            iconst_2
            if_icmpeq 6
         5: .line 155
            new sun.security.pkcs.ParsingException
            dup
            ldc "Invalid length for IssuerAndSerialNumber"
            invokespecial sun.security.pkcs.ParsingException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 157
      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 158
            aload 0 /* this */
            new sun.security.x509.X500Name
            dup
            new sun.security.util.DerValue
            dup
            bipush 48
         8: .line 159
            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 158
            putfield sun.security.pkcs.SignerInfo.issuerName:Lsun/security/x509/X500Name;
        10: .line 160
            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 163
            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 165
            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 168
            iload 2 /* oldStyle */
            ifeq 16
        14: .line 171
            aload 1 /* derin */
            iconst_0
            invokevirtual sun.security.util.DerInputStream.getSet:(I)[Lsun/security/util/DerValue;
            pop
        15: .line 172
            goto 18
        16: .line 175
      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 176
            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 182
      StackMap locals:
      StackMap stack:
            aload 1 /* derin */
            invokevirtual sun.security.util.DerInputStream.getDerValue:()Lsun/security/util/DerValue;
            astore 5 /* tmp */
        19: .line 184
            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 187
            aload 0 /* this */
            aload 1 /* derin */
            invokevirtual sun.security.util.DerInputStream.getOctetString:()[B
            putfield sun.security.pkcs.SignerInfo.encryptedDigest:[B
        21: .line 190
            iload 2 /* oldStyle */
            ifeq 24
        22: .line 193
            aload 1 /* derin */
            iconst_0
            invokevirtual sun.security.util.DerInputStream.getSet:(I)[Lsun/security/util/DerValue;
            pop
        23: .line 194
            goto 29
        24: .line 197
      StackMap locals:
      StackMap stack:
            aload 1 /* derin */
            invokevirtual sun.security.util.DerInputStream.available:()I
            ifeq 29
        25: .line 198
            aload 1 /* derin */
            invokevirtual sun.security.util.DerInputStream.peekByte:()I
            i2b
            bipush -95
            if_icmpne 29
        26: .line 199
            aload 0 /* this */
        27: .line 200
            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 199
            putfield sun.security.pkcs.SignerInfo.unauthenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
        29: .line 205
      StackMap locals:
      StackMap stack:
            aload 1 /* derin */
            invokevirtual sun.security.util.DerInputStream.available:()I
            ifeq 31
        30: .line 206
            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 208
      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 212
            aload 0 /* this */
            aload 1 /* out */
            invokevirtual sun.security.pkcs.SignerInfo.derEncode:(Ljava/io/OutputStream;)V
         1: .line 213
            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 225
            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 226
            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 227
            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 228
            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 229
            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 230
            aload 2 /* seq */
            bipush 48
            aload 3 /* issuerAndSerialNumber */
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
         6: .line 232
            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 235
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.authenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
            ifnull 9
         8: .line 236
            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 238
      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 240
            aload 2 /* seq */
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.encryptedDigest:[B
            invokevirtual sun.security.util.DerOutputStream.putOctetString:([B)V
        11: .line 243
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.unauthenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
            ifnull 13
        12: .line 244
            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 246
      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 247
            aload 4 /* tmp */
            bipush 48
            aload 2 /* seq */
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
        15: .line 249
            aload 1 /* out */
            aload 4 /* tmp */
            invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
            invokevirtual java.io.OutputStream.write:([B)V
        16: .line 250
            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 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;
            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 270
            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 271
            aload 2 /* userCert */
            ifnonnull 3
         2: .line 272
            aconst_null
            areturn
         3: .line 274
      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 275
            aload 3 /* certList */
            aload 2 /* userCert */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         5: .line 277
            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 278
            aload 4 /* pkcsCerts */
            ifnull 8
         7: .line 279
            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 280
      StackMap locals: java.util.ArrayList java.security.cert.X509Certificate[]
      StackMap stack:
            aload 3 /* certList */
            areturn
         9: .line 283
      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 284
            iconst_0
            istore 6 /* start */
        start local 6 // int start
        11: .line 286
      StackMap locals: java.security.Principal int
      StackMap stack:
            iconst_0
            istore 7 /* match */
        start local 7 // boolean match
        12: .line 287
            iload 6 /* start */
            istore 8 /* i */
        start local 8 // int i
        13: .line 288
            goto 30
        14: .line 289
      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 291
            aload 3 /* certList */
            aload 4 /* pkcsCerts */
            iload 8 /* i */
            aaload
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        16: .line 294
            aload 4 /* pkcsCerts */
            iload 8 /* i */
            aaload
            invokevirtual java.security.cert.X509Certificate.getSubjectDN:()Ljava/security/Principal;
        17: .line 295
            aload 4 /* pkcsCerts */
            iload 8 /* i */
            aaload
            invokevirtual java.security.cert.X509Certificate.getIssuerDN:()Ljava/security/Principal;
        18: .line 294
            invokeinterface java.security.Principal.equals:(Ljava/lang/Object;)Z
        19: .line 295
            ifeq 22
        20: .line 296
            aload 4 /* pkcsCerts */
            arraylength
            istore 6 /* start */
        21: .line 297
            goto 27
        22: .line 298
      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 299
            aload 4 /* pkcsCerts */
            iload 6 /* start */
            aaload
            astore 9 /* tmpCert */
        start local 9 // java.security.cert.X509Certificate tmpCert
        24: .line 300
            aload 4 /* pkcsCerts */
            iload 6 /* start */
            aload 4 /* pkcsCerts */
            iload 8 /* i */
            aaload
            aastore
        25: .line 301
            aload 4 /* pkcsCerts */
            iload 8 /* i */
            aload 9 /* tmpCert */
            aastore
        26: .line 302
            iinc 6 /* start */ 1
        end local 9 // java.security.cert.X509Certificate tmpCert
        27: .line 304
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 7 /* match */
        28: .line 305
            goto 31
        29: .line 307
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
        30: .line 288
      StackMap locals:
      StackMap stack:
            iload 8 /* i */
            aload 4 /* pkcsCerts */
            arraylength
            if_icmplt 14
        31: .line 310
      StackMap locals:
      StackMap stack:
            iload 7 /* match */
            ifne 11
        end local 8 // int i
        end local 7 // boolean match
        32: .line 314
            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 324
            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 325
            aload 2 /* data */
            ifnonnull 3
         2: .line 326
            aload 3 /* content */
            invokevirtual sun.security.pkcs.ContentInfo.getContentBytes:()[B
            astore 2 /* data */
         3: .line 329
      StackMap locals: sun.security.pkcs.ContentInfo
      StackMap stack:
            aconst_null
            astore 4 /* timestamp */
        start local 4 // java.security.Timestamp timestamp
         4: .line 331
            aload 0 /* this */
            invokevirtual sun.security.pkcs.SignerInfo.getTimestamp:()Ljava/security/Timestamp;
            astore 4 /* timestamp */
         5: .line 332
            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 336
      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 335
            astore 5 /* cparams */
        start local 5 // sun.security.util.ConstraintsParameters cparams
         9: .line 337
            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 343
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.authenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
            ifnonnull 13
        11: .line 344
            aload 2 /* data */
            astore 7 /* dataSigned */
        start local 7 // byte[] dataSigned
        12: .line 345
            goto 42
        end local 7 // byte[] dataSigned
        13: .line 349
      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 350
            getstatic sun.security.pkcs.PKCS9Attribute.CONTENT_TYPE_OID:Lsun/security/util/ObjectIdentifier;
        15: .line 349
            invokevirtual sun.security.pkcs.PKCS9Attributes.getAttributeValue:(Lsun/security/util/ObjectIdentifier;)Ljava/lang/Object;
        16: .line 348
            checkcast sun.security.util.ObjectIdentifier
            astore 8 /* contentType */
        start local 8 // sun.security.util.ObjectIdentifier contentType
        17: .line 351
            aload 8 /* contentType */
            ifnull 19
        18: .line 352
            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 353
      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 357
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.authenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
        21: .line 358
            getstatic sun.security.pkcs.PKCS9Attribute.MESSAGE_DIGEST_OID:Lsun/security/util/ObjectIdentifier;
        22: .line 357
            invokevirtual sun.security.pkcs.PKCS9Attributes.getAttributeValue:(Lsun/security/util/ObjectIdentifier;)Ljava/lang/Object;
        23: .line 356
            checkcast byte[]
            astore 9 /* messageDigest */
        start local 9 // byte[] messageDigest
        24: .line 360
            aload 9 /* messageDigest */
            ifnonnull 26
        25: .line 361
            aconst_null
            areturn
        26: .line 365
      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 366
            goto 30
      StackMap locals:
      StackMap stack: java.security.cert.CertPathValidatorException
        28: astore 10 /* e */
        start local 10 // java.security.cert.CertPathValidatorException e
        29: .line 367
            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 371
      StackMap locals:
      StackMap stack:
            aload 6 /* digestAlgname */
            invokestatic sun.security.x509.AlgorithmId.getStandardDigestName:(Ljava/lang/String;)Ljava/lang/String;
        31: .line 370
            invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
            astore 10 /* md */
        start local 10 // java.security.MessageDigest md
        32: .line 372
            aload 10 /* md */
            aload 2 /* data */
            invokevirtual java.security.MessageDigest.digest:([B)[B
            astore 11 /* computedMessageDigest */
        start local 11 // byte[] computedMessageDigest
        33: .line 374
            aload 9 /* messageDigest */
            arraylength
            aload 11 /* computedMessageDigest */
            arraylength
            if_icmpeq 35
        34: .line 375
            aconst_null
            areturn
        35: .line 376
      StackMap locals: java.security.MessageDigest byte[]
      StackMap stack:
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        36: goto 40
        37: .line 377
      StackMap locals: int
      StackMap stack:
            aload 9 /* messageDigest */
            iload 12 /* i */
            baload
            aload 11 /* computedMessageDigest */
            iload 12 /* i */
            baload
            if_icmpeq 39
        38: .line 378
            aconst_null
            areturn
        39: .line 376
      StackMap locals:
      StackMap stack:
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        40: iload 12 /* i */
            aload 9 /* messageDigest */
            arraylength
            if_icmplt 37
        end local 12 // int i
        41: .line 387
            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
        42: .line 393
      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;
        43: .line 392
            astore 8 /* encryptionAlgname */
        start local 8 // java.lang.String encryptionAlgname
        44: .line 397
            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
        45: .line 398
            aload 9 /* tmp */
            ifnull 46
            aload 9 /* tmp */
            astore 8 /* encryptionAlgname */
        46: .line 400
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 6 /* digestAlgname */
            aload 8 /* encryptionAlgname */
        47: .line 399
            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
        48: .line 404
            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
        49: .line 405
            goto 52
      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
        50: astore 11 /* e */
        start local 11 // java.security.cert.CertPathValidatorException e
        51: .line 406
            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
        52: .line 409
      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
        53: .line 410
            aload 11 /* cert */
            ifnonnull 55
        54: .line 411
            aconst_null
            areturn
        55: .line 413
      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
        56: .line 416
            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 61
        57: .line 417
            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
        58: .line 419
            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;
        59: .line 420
            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;
        60: .line 417
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        61: .line 423
      StackMap locals: java.security.PublicKey
      StackMap stack:
            aload 11 /* cert */
            invokevirtual java.security.cert.X509Certificate.hasUnsupportedCriticalExtension:()Z
            ifeq 63
        62: .line 424
            new java.security.SignatureException
            dup
            ldc "Certificate has unsupported critical extension(s)"
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        63: .line 432
      StackMap locals:
      StackMap stack:
            aload 11 /* cert */
            invokevirtual java.security.cert.X509Certificate.getKeyUsage:()[Z
            astore 13 /* keyUsageBits */
        start local 13 // boolean[] keyUsageBits
        64: .line 433
            aload 13 /* keyUsageBits */
            ifnull 81
        65: .line 440
            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
        66: .line 441
            goto 69
        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
        67: pop
        68: .line 442
            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
        69: .line 446
      StackMap locals: sun.security.x509.KeyUsageExtension
      StackMap stack:
            aload 14 /* keyUsage */
        70: .line 447
            ldc "digital_signature"
        71: .line 446
            invokevirtual sun.security.x509.KeyUsageExtension.get:(Ljava/lang/String;)Ljava/lang/Boolean;
        72: .line 447
            invokevirtual java.lang.Boolean.booleanValue:()Z
        73: .line 446
            istore 15 /* digSigAllowed */
        start local 15 // boolean digSigAllowed
        74: .line 449
            aload 14 /* keyUsage */
        75: .line 450
            ldc "non_repudiation"
        76: .line 449
            invokevirtual sun.security.x509.KeyUsageExtension.get:(Ljava/lang/String;)Ljava/lang/Boolean;
        77: .line 450
            invokevirtual java.lang.Boolean.booleanValue:()Z
        78: .line 449
            istore 16 /* nonRepuAllowed */
        start local 16 // boolean nonRepuAllowed
        79: .line 452
            iload 15 /* digSigAllowed */
            ifne 81
            iload 16 /* nonRepuAllowed */
            ifne 81
        80: .line 453
            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
        81: .line 459
      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
        82: .line 460
            aload 14 /* sig */
            aload 12 /* key */
            invokevirtual java.security.Signature.initVerify:(Ljava/security/PublicKey;)V
        83: .line 461
            aload 14 /* sig */
            aload 7 /* dataSigned */
            invokevirtual java.security.Signature.update:([B)V
        84: .line 462
            aload 14 /* sig */
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.encryptedDigest:[B
            invokevirtual java.security.Signature.verify:([B)Z
            ifeq 93
        85: .line 463
            aload 0 /* this */
        86: areturn
        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
        87: .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
        88: .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
        89: .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;
        90: .line 467
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.io.IOException e
        91: .line 470
      StackMap locals:
      StackMap stack: java.security.InvalidKeyException
            astore 3 /* e */
        start local 3 // java.security.InvalidKeyException e
        92: .line 471
            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
        93: .line 474
      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   94     0                   this  Lsun/security/pkcs/SignerInfo;
            0   94     1                  block  Lsun/security/pkcs/PKCS7;
            0   94     2                   data  [B
            1   87     3                content  Lsun/security/pkcs/ContentInfo;
            4   87     4              timestamp  Ljava/security/Timestamp;
            9   87     5                cparams  Lsun/security/util/ConstraintsParameters;
           10   87     6          digestAlgname  Ljava/lang/String;
           12   13     7             dataSigned  [B
           42   87     7             dataSigned  [B
           17   42     8            contentType  Lsun/security/util/ObjectIdentifier;
           24   42     9          messageDigest  [B
           29   30    10                      e  Ljava/security/cert/CertPathValidatorException;
           32   42    10                     md  Ljava/security/MessageDigest;
           33   42    11  computedMessageDigest  [B
           36   41    12                      i  I
           44   87     8      encryptionAlgname  Ljava/lang/String;
           45   87     9                    tmp  Ljava/lang/String;
           48   87    10                algname  Ljava/lang/String;
           51   52    11                      e  Ljava/security/cert/CertPathValidatorException;
           53   87    11                   cert  Ljava/security/cert/X509Certificate;
           56   87    12                    key  Ljava/security/PublicKey;
           64   87    13           keyUsageBits  [Z
           66   67    14               keyUsage  Lsun/security/x509/KeyUsageExtension;
           69   81    14               keyUsage  Lsun/security/x509/KeyUsageExtension;
           74   81    15          digSigAllowed  Z
           79   81    16         nonRepuAllowed  Z
           82   87    14                    sig  Ljava/security/Signature;
           88   91     3                      e  Ljava/io/IOException;
           92   93     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
          48    49      50  Class java.security.cert.CertPathValidatorException
          65    66      67  Class java.io.IOException
           0    19      87  Class java.io.IOException
          20    25      87  Class java.io.IOException
          26    34      87  Class java.io.IOException
          35    38      87  Class java.io.IOException
          39    54      87  Class java.io.IOException
          55    86      87  Class java.io.IOException
           0    19      91  Class java.security.InvalidKeyException
          20    25      91  Class java.security.InvalidKeyException
          26    34      91  Class java.security.InvalidKeyException
          35    38      91  Class java.security.InvalidKeyException
          39    54      91  Class java.security.InvalidKeyException
          55    86      91  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 480
            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 485
            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 489
            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 493
            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 497
            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 501
            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 505
            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 509
            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 513
            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 521
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.unauthenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
            ifnonnull 2
         1: .line 522
            aconst_null
            areturn
         2: .line 525
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.unauthenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
         3: .line 526
            getstatic sun.security.pkcs.PKCS9Attribute.SIGNATURE_TIMESTAMP_TOKEN_OID:Lsun/security/util/ObjectIdentifier;
         4: .line 525
            invokevirtual sun.security.pkcs.PKCS9Attributes.getAttribute:(Lsun/security/util/ObjectIdentifier;)Lsun/security/pkcs/PKCS9Attribute;
         5: .line 524
            astore 1 /* tsTokenAttr */
        start local 1 // sun.security.pkcs.PKCS9Attribute tsTokenAttr
         6: .line 527
            aload 1 /* tsTokenAttr */
            ifnonnull 8
         7: .line 528
            aconst_null
            areturn
         8: .line 530
      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 557
            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 558
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.timestamp:Ljava/security/Timestamp;
            areturn
         2: .line 560
      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 561
            aload 1 /* tsToken */
            ifnonnull 6
         4: .line 562
            aload 0 /* this */
            iconst_0
            putfield sun.security.pkcs.SignerInfo.hasTimestamp:Z
         5: .line 563
            aconst_null
            areturn
         6: .line 567
      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 570
            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 572
            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 573
            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 574
            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 576
            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 578
            aload 0 /* this */
            aload 7 /* tsTokenInfo */
            invokevirtual sun.security.pkcs.SignerInfo.verifyTimestamp:(Lsun/security/timestamp/TimestampToken;)V
        13: .line 580
            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 581
            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 592
            aload 1 /* token */
            invokevirtual sun.security.timestamp.TimestampToken.getHashAlgorithm:()Lsun/security/x509/AlgorithmId;
            invokevirtual sun.security.x509.AlgorithmId.getName:()Ljava/lang/String;
            invokestatic sun.security.x509.AlgorithmId.getStandardDigestName:(Ljava/lang/String;)Ljava/lang/String;
         1: .line 591
            astore 2 /* digestAlgname */
        start local 2 // java.lang.String digestAlgname
         2: .line 594
            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 */
         3: .line 595
            aconst_null
         4: .line 594
            invokevirtual sun.security.util.DisabledAlgorithmConstraints.permits:(Ljava/util/Set;Ljava/lang/String;Ljava/security/AlgorithmParameters;)Z
         5: .line 595
            ifne 9
         6: .line 596
            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
         7: .line 597
            aload 2 /* digestAlgname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 596
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 601
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* digestAlgname */
            invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
        10: .line 600
            astore 3 /* md */
        start local 3 // java.security.MessageDigest md
        11: .line 603
            aload 1 /* token */
            invokevirtual sun.security.timestamp.TimestampToken.getHashedMessage:()[B
        12: .line 604
            aload 3 /* md */
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.encryptedDigest:[B
            invokevirtual java.security.MessageDigest.digest:([B)[B
        13: .line 603
            invokestatic java.util.Arrays.equals:([B[B)Z
        14: .line 604
            ifne 19
        15: .line 606
            new java.security.SignatureException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Signature timestamp (#"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        16: .line 607
            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;
        17: .line 608
            ldc " is inapplicable"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        18: .line 606
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 611
      StackMap locals: java.security.MessageDigest
      StackMap stack:
            getstatic sun.security.pkcs.SignerInfo.debug:Lsun/security/util/Debug;
            ifnull 25
        20: .line 612
            getstatic sun.security.pkcs.SignerInfo.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
        21: .line 613
            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
        22: .line 614
            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;
        23: .line 613
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        24: .line 615
            getstatic sun.security.pkcs.SignerInfo.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
        25: .line 617
      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   26     0           this  Lsun/security/pkcs/SignerInfo;
            0   26     1          token  Lsun/security/timestamp/TimestampToken;
            2   26     2  digestAlgname  Ljava/lang/String;
           11   26     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 620
            new sun.misc.HexDumpEncoder
            dup
            invokespecial sun.misc.HexDumpEncoder.<init>:()V
            astore 1 /* hexDump */
        start local 1 // sun.misc.HexDumpEncoder hexDump
         1: .line 622
            ldc ""
            astore 2 /* out */
        start local 2 // java.lang.String out
         2: .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 "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 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 "\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 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 "\tcertificateSerialNumber: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 627
            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 626
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* out */
         7: .line 628
            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 629
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.authenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
            ifnull 12
         9: .line 630
            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 631
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 630
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* out */
        12: .line 633
      StackMap locals: sun.misc.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 634
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 633
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* out */
        15: .line 636
            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 637
            aload 1 /* hexDump */
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.encryptedDigest:[B
            invokevirtual sun.misc.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 636
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* out */
        18: .line 638
            aload 0 /* this */
            getfield sun.security.pkcs.SignerInfo.unauthenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
            ifnull 22
        19: .line 639
            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 640
            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 639
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* out */
        22: .line 642
      StackMap locals:
      StackMap stack:
            aload 2 /* out */
            areturn
        end local 2 // java.lang.String out
        end local 1 // sun.misc.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/misc/HexDumpEncoder;
            2   23     2      out  Ljava/lang/String;
}
SourceFile: "SignerInfo.java"