public class org.bouncycastle.cms.SignerInformation
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.cms.SignerInformation
  super_class: java.lang.Object
{
  private final org.bouncycastle.cms.SignerId sid;
    descriptor: Lorg/bouncycastle/cms/SignerId;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.bouncycastle.cms.CMSProcessable content;
    descriptor: Lorg/bouncycastle/cms/CMSProcessable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final byte[] signature;
    descriptor: [B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.bouncycastle.asn1.ASN1ObjectIdentifier contentType;
    descriptor: Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean isCounterSignature;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.bouncycastle.asn1.cms.AttributeTable signedAttributeValues;
    descriptor: Lorg/bouncycastle/asn1/cms/AttributeTable;
    flags: (0x0002) ACC_PRIVATE

  private org.bouncycastle.asn1.cms.AttributeTable unsignedAttributeValues;
    descriptor: Lorg/bouncycastle/asn1/cms/AttributeTable;
    flags: (0x0002) ACC_PRIVATE

  private byte[] resultDigest;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  protected final org.bouncycastle.asn1.cms.SignerInfo info;
    descriptor: Lorg/bouncycastle/asn1/cms/SignerInfo;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final org.bouncycastle.asn1.x509.AlgorithmIdentifier digestAlgorithm;
    descriptor: Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final org.bouncycastle.asn1.x509.AlgorithmIdentifier encryptionAlgorithm;
    descriptor: Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final org.bouncycastle.asn1.ASN1Set signedAttributeSet;
    descriptor: Lorg/bouncycastle/asn1/ASN1Set;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final org.bouncycastle.asn1.ASN1Set unsignedAttributeSet;
    descriptor: Lorg/bouncycastle/asn1/ASN1Set;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  void <init>(org.bouncycastle.asn1.cms.SignerInfo, org.bouncycastle.asn1.ASN1ObjectIdentifier, org.bouncycastle.cms.CMSProcessable, byte[]);
    descriptor: (Lorg/bouncycastle/asn1/cms/SignerInfo;Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/cms/CMSProcessable;[B)V
    flags: (0x0000) 
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // org.bouncycastle.cms.SignerInformation this
        start local 1 // org.bouncycastle.asn1.cms.SignerInfo info
        start local 2 // org.bouncycastle.asn1.ASN1ObjectIdentifier contentType
        start local 3 // org.bouncycastle.cms.CMSProcessable content
        start local 4 // byte[] resultDigest
         0: .line 59
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 65
            aload 0 /* this */
            aload 1 /* info */
            putfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
         2: .line 66
            aload 0 /* this */
            aload 2 /* contentType */
            putfield org.bouncycastle.cms.SignerInformation.contentType:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
         3: .line 67
            aload 0 /* this */
            aload 2 /* contentType */
            ifnonnull 4
            iconst_1
            goto 5
      StackMap locals: org.bouncycastle.cms.SignerInformation org.bouncycastle.asn1.cms.SignerInfo org.bouncycastle.asn1.ASN1ObjectIdentifier org.bouncycastle.cms.CMSProcessable byte[]
      StackMap stack: org.bouncycastle.cms.SignerInformation
         4: iconst_0
      StackMap locals: org.bouncycastle.cms.SignerInformation org.bouncycastle.asn1.cms.SignerInfo org.bouncycastle.asn1.ASN1ObjectIdentifier org.bouncycastle.cms.CMSProcessable byte[]
      StackMap stack: org.bouncycastle.cms.SignerInformation int
         5: putfield org.bouncycastle.cms.SignerInformation.isCounterSignature:Z
         6: .line 69
            aload 1 /* info */
            invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getSID:()Lorg/bouncycastle/asn1/cms/SignerIdentifier;
            astore 5 /* s */
        start local 5 // org.bouncycastle.asn1.cms.SignerIdentifier s
         7: .line 71
            aload 5 /* s */
            invokevirtual org.bouncycastle.asn1.cms.SignerIdentifier.isTagged:()Z
            ifeq 11
         8: .line 73
            aload 5 /* s */
            invokevirtual org.bouncycastle.asn1.cms.SignerIdentifier.getId:()Lorg/bouncycastle/asn1/ASN1Encodable;
            invokestatic org.bouncycastle.asn1.ASN1OctetString.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/ASN1OctetString;
            astore 6 /* octs */
        start local 6 // org.bouncycastle.asn1.ASN1OctetString octs
         9: .line 75
            aload 0 /* this */
            new org.bouncycastle.cms.SignerId
            dup
            aload 6 /* octs */
            invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
            invokespecial org.bouncycastle.cms.SignerId.<init>:([B)V
            putfield org.bouncycastle.cms.SignerInformation.sid:Lorg/bouncycastle/cms/SignerId;
        end local 6 // org.bouncycastle.asn1.ASN1OctetString octs
        10: .line 76
            goto 13
        11: .line 79
      StackMap locals: org.bouncycastle.asn1.cms.SignerIdentifier
      StackMap stack:
            aload 5 /* s */
            invokevirtual org.bouncycastle.asn1.cms.SignerIdentifier.getId:()Lorg/bouncycastle/asn1/ASN1Encodable;
            invokestatic org.bouncycastle.asn1.cms.IssuerAndSerialNumber.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/cms/IssuerAndSerialNumber;
            astore 6 /* iAnds */
        start local 6 // org.bouncycastle.asn1.cms.IssuerAndSerialNumber iAnds
        12: .line 81
            aload 0 /* this */
            new org.bouncycastle.cms.SignerId
            dup
            aload 6 /* iAnds */
            invokevirtual org.bouncycastle.asn1.cms.IssuerAndSerialNumber.getName:()Lorg/bouncycastle/asn1/x500/X500Name;
            aload 6 /* iAnds */
            invokevirtual org.bouncycastle.asn1.cms.IssuerAndSerialNumber.getSerialNumber:()Lorg/bouncycastle/asn1/ASN1Integer;
            invokevirtual org.bouncycastle.asn1.ASN1Integer.getValue:()Ljava/math/BigInteger;
            invokespecial org.bouncycastle.cms.SignerId.<init>:(Lorg/bouncycastle/asn1/x500/X500Name;Ljava/math/BigInteger;)V
            putfield org.bouncycastle.cms.SignerInformation.sid:Lorg/bouncycastle/cms/SignerId;
        end local 6 // org.bouncycastle.asn1.cms.IssuerAndSerialNumber iAnds
        13: .line 84
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* info */
            invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getDigestAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            putfield org.bouncycastle.cms.SignerInformation.digestAlgorithm:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
        14: .line 85
            aload 0 /* this */
            aload 1 /* info */
            invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getAuthenticatedAttributes:()Lorg/bouncycastle/asn1/ASN1Set;
            putfield org.bouncycastle.cms.SignerInformation.signedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
        15: .line 86
            aload 0 /* this */
            aload 1 /* info */
            invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getUnauthenticatedAttributes:()Lorg/bouncycastle/asn1/ASN1Set;
            putfield org.bouncycastle.cms.SignerInformation.unsignedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
        16: .line 87
            aload 0 /* this */
            aload 1 /* info */
            invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getDigestEncryptionAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            putfield org.bouncycastle.cms.SignerInformation.encryptionAlgorithm:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
        17: .line 88
            aload 0 /* this */
            aload 1 /* info */
            invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getEncryptedDigest:()Lorg/bouncycastle/asn1/ASN1OctetString;
            invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
            putfield org.bouncycastle.cms.SignerInformation.signature:[B
        18: .line 90
            aload 0 /* this */
            aload 3 /* content */
            putfield org.bouncycastle.cms.SignerInformation.content:Lorg/bouncycastle/cms/CMSProcessable;
        19: .line 91
            aload 0 /* this */
            aload 4 /* resultDigest */
            putfield org.bouncycastle.cms.SignerInformation.resultDigest:[B
        20: .line 92
            return
        end local 5 // org.bouncycastle.asn1.cms.SignerIdentifier s
        end local 4 // byte[] resultDigest
        end local 3 // org.bouncycastle.cms.CMSProcessable content
        end local 2 // org.bouncycastle.asn1.ASN1ObjectIdentifier contentType
        end local 1 // org.bouncycastle.asn1.cms.SignerInfo info
        end local 0 // org.bouncycastle.cms.SignerInformation this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   21     0          this  Lorg/bouncycastle/cms/SignerInformation;
            0   21     1          info  Lorg/bouncycastle/asn1/cms/SignerInfo;
            0   21     2   contentType  Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            0   21     3       content  Lorg/bouncycastle/cms/CMSProcessable;
            0   21     4  resultDigest  [B
            7   21     5             s  Lorg/bouncycastle/asn1/cms/SignerIdentifier;
            9   10     6          octs  Lorg/bouncycastle/asn1/ASN1OctetString;
           12   13     6         iAnds  Lorg/bouncycastle/asn1/cms/IssuerAndSerialNumber;
    MethodParameters:
              Name  Flags
      info          
      contentType   
      content       
      resultDigest  

  protected void <init>(org.bouncycastle.cms.SignerInformation);
    descriptor: (Lorg/bouncycastle/cms/SignerInformation;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.cms.SignerInformation this
        start local 1 // org.bouncycastle.cms.SignerInformation baseInfo
         0: .line 101
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 103
            aload 0 /* this */
            aload 1 /* baseInfo */
            getfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
            putfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
         2: .line 104
            aload 0 /* this */
            aload 1 /* baseInfo */
            getfield org.bouncycastle.cms.SignerInformation.contentType:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            putfield org.bouncycastle.cms.SignerInformation.contentType:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
         3: .line 105
            aload 0 /* this */
            aload 1 /* baseInfo */
            invokevirtual org.bouncycastle.cms.SignerInformation.isCounterSignature:()Z
            putfield org.bouncycastle.cms.SignerInformation.isCounterSignature:Z
         4: .line 106
            aload 0 /* this */
            aload 1 /* baseInfo */
            invokevirtual org.bouncycastle.cms.SignerInformation.getSID:()Lorg/bouncycastle/cms/SignerId;
            putfield org.bouncycastle.cms.SignerInformation.sid:Lorg/bouncycastle/cms/SignerId;
         5: .line 107
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
            invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getDigestAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            putfield org.bouncycastle.cms.SignerInformation.digestAlgorithm:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
         6: .line 108
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
            invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getAuthenticatedAttributes:()Lorg/bouncycastle/asn1/ASN1Set;
            putfield org.bouncycastle.cms.SignerInformation.signedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
         7: .line 109
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
            invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getUnauthenticatedAttributes:()Lorg/bouncycastle/asn1/ASN1Set;
            putfield org.bouncycastle.cms.SignerInformation.unsignedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
         8: .line 110
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
            invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getDigestEncryptionAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            putfield org.bouncycastle.cms.SignerInformation.encryptionAlgorithm:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
         9: .line 111
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
            invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getEncryptedDigest:()Lorg/bouncycastle/asn1/ASN1OctetString;
            invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
            putfield org.bouncycastle.cms.SignerInformation.signature:[B
        10: .line 112
            aload 0 /* this */
            aload 1 /* baseInfo */
            getfield org.bouncycastle.cms.SignerInformation.content:Lorg/bouncycastle/cms/CMSProcessable;
            putfield org.bouncycastle.cms.SignerInformation.content:Lorg/bouncycastle/cms/CMSProcessable;
        11: .line 113
            aload 0 /* this */
            aload 1 /* baseInfo */
            getfield org.bouncycastle.cms.SignerInformation.resultDigest:[B
            putfield org.bouncycastle.cms.SignerInformation.resultDigest:[B
        12: .line 114
            aload 0 /* this */
            aload 1 /* baseInfo */
            getfield org.bouncycastle.cms.SignerInformation.signedAttributeValues:Lorg/bouncycastle/asn1/cms/AttributeTable;
            putfield org.bouncycastle.cms.SignerInformation.signedAttributeValues:Lorg/bouncycastle/asn1/cms/AttributeTable;
        13: .line 115
            aload 0 /* this */
            aload 1 /* baseInfo */
            getfield org.bouncycastle.cms.SignerInformation.unsignedAttributeValues:Lorg/bouncycastle/asn1/cms/AttributeTable;
            putfield org.bouncycastle.cms.SignerInformation.unsignedAttributeValues:Lorg/bouncycastle/asn1/cms/AttributeTable;
        14: .line 116
            return
        end local 1 // org.bouncycastle.cms.SignerInformation baseInfo
        end local 0 // org.bouncycastle.cms.SignerInformation this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0      this  Lorg/bouncycastle/cms/SignerInformation;
            0   15     1  baseInfo  Lorg/bouncycastle/cms/SignerInformation;
    MethodParameters:
          Name  Flags
      baseInfo  

  public boolean isCounterSignature();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cms.SignerInformation this
         0: .line 120
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.isCounterSignature:Z
            ireturn
        end local 0 // org.bouncycastle.cms.SignerInformation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cms/SignerInformation;

  public org.bouncycastle.asn1.ASN1ObjectIdentifier getContentType();
    descriptor: ()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cms.SignerInformation this
         0: .line 125
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.contentType:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            areturn
        end local 0 // org.bouncycastle.cms.SignerInformation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cms/SignerInformation;

  private byte[] encodeObj(org.bouncycastle.asn1.ASN1Encodable);
    descriptor: (Lorg/bouncycastle/asn1/ASN1Encodable;)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.bouncycastle.cms.SignerInformation this
        start local 1 // org.bouncycastle.asn1.ASN1Encodable obj
         0: .line 132
            aload 1 /* obj */
            ifnull 2
         1: .line 134
            aload 1 /* obj */
            invokeinterface org.bouncycastle.asn1.ASN1Encodable.toASN1Primitive:()Lorg/bouncycastle/asn1/ASN1Primitive;
            invokevirtual org.bouncycastle.asn1.ASN1Primitive.getEncoded:()[B
            areturn
         2: .line 137
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // org.bouncycastle.asn1.ASN1Encodable obj
        end local 0 // org.bouncycastle.cms.SignerInformation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/cms/SignerInformation;
            0    3     1   obj  Lorg/bouncycastle/asn1/ASN1Encodable;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      obj   

  public org.bouncycastle.cms.SignerId getSID();
    descriptor: ()Lorg/bouncycastle/cms/SignerId;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cms.SignerInformation this
         0: .line 142
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.sid:Lorg/bouncycastle/cms/SignerId;
            areturn
        end local 0 // org.bouncycastle.cms.SignerInformation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cms/SignerInformation;

  public int getVersion();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cms.SignerInformation this
         0: .line 150
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
            invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getVersion:()Lorg/bouncycastle/asn1/ASN1Integer;
            invokevirtual org.bouncycastle.asn1.ASN1Integer.getValue:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.intValue:()I
            ireturn
        end local 0 // org.bouncycastle.cms.SignerInformation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cms/SignerInformation;

  public org.bouncycastle.asn1.x509.AlgorithmIdentifier getDigestAlgorithmID();
    descriptor: ()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cms.SignerInformation this
         0: .line 155
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.digestAlgorithm:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            areturn
        end local 0 // org.bouncycastle.cms.SignerInformation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cms/SignerInformation;

  public java.lang.String getDigestAlgOID();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cms.SignerInformation this
         0: .line 163
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.digestAlgorithm:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
            areturn
        end local 0 // org.bouncycastle.cms.SignerInformation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cms/SignerInformation;

  public byte[] getDigestAlgParams();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.bouncycastle.cms.SignerInformation this
         0: .line 173
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.digestAlgorithm:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/ASN1Encodable;
            invokevirtual org.bouncycastle.cms.SignerInformation.encodeObj:(Lorg/bouncycastle/asn1/ASN1Encodable;)[B
         1: areturn
         2: .line 175
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
         3: .line 177
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "exception getting digest parameters "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.Exception e
        end local 0 // org.bouncycastle.cms.SignerInformation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bouncycastle/cms/SignerInformation;
            3    4     1     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception

  public byte[] getContentDigest();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bouncycastle.cms.SignerInformation this
         0: .line 186
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.resultDigest:[B
            ifnonnull 2
         1: .line 188
            new java.lang.IllegalStateException
            dup
            ldc "method can only be called after verify."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 191
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.resultDigest:[B
            invokestatic org.bouncycastle.util.Arrays.clone:([B)[B
            areturn
        end local 0 // org.bouncycastle.cms.SignerInformation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/cms/SignerInformation;

  public java.lang.String getEncryptionAlgOID();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cms.SignerInformation this
         0: .line 199
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.encryptionAlgorithm:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
            areturn
        end local 0 // org.bouncycastle.cms.SignerInformation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cms/SignerInformation;

  public byte[] getEncryptionAlgParams();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.bouncycastle.cms.SignerInformation this
         0: .line 210
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.encryptionAlgorithm:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/ASN1Encodable;
            invokevirtual org.bouncycastle.cms.SignerInformation.encodeObj:(Lorg/bouncycastle/asn1/ASN1Encodable;)[B
         1: areturn
         2: .line 212
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
         3: .line 214
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "exception getting encryption parameters "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.Exception e
        end local 0 // org.bouncycastle.cms.SignerInformation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bouncycastle/cms/SignerInformation;
            3    4     1     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception

  public org.bouncycastle.asn1.cms.AttributeTable getSignedAttributes();
    descriptor: ()Lorg/bouncycastle/asn1/cms/AttributeTable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.bouncycastle.cms.SignerInformation this
         0: .line 224
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.signedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
            ifnull 2
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.signedAttributeValues:Lorg/bouncycastle/asn1/cms/AttributeTable;
            ifnonnull 2
         1: .line 226
            aload 0 /* this */
            new org.bouncycastle.asn1.cms.AttributeTable
            dup
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.signedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
            invokespecial org.bouncycastle.asn1.cms.AttributeTable.<init>:(Lorg/bouncycastle/asn1/ASN1Set;)V
            putfield org.bouncycastle.cms.SignerInformation.signedAttributeValues:Lorg/bouncycastle/asn1/cms/AttributeTable;
         2: .line 229
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.signedAttributeValues:Lorg/bouncycastle/asn1/cms/AttributeTable;
            areturn
        end local 0 // org.bouncycastle.cms.SignerInformation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/cms/SignerInformation;

  public org.bouncycastle.asn1.cms.AttributeTable getUnsignedAttributes();
    descriptor: ()Lorg/bouncycastle/asn1/cms/AttributeTable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.bouncycastle.cms.SignerInformation this
         0: .line 238
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.unsignedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
            ifnull 2
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.unsignedAttributeValues:Lorg/bouncycastle/asn1/cms/AttributeTable;
            ifnonnull 2
         1: .line 240
            aload 0 /* this */
            new org.bouncycastle.asn1.cms.AttributeTable
            dup
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.unsignedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
            invokespecial org.bouncycastle.asn1.cms.AttributeTable.<init>:(Lorg/bouncycastle/asn1/ASN1Set;)V
            putfield org.bouncycastle.cms.SignerInformation.unsignedAttributeValues:Lorg/bouncycastle/asn1/cms/AttributeTable;
         2: .line 243
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.unsignedAttributeValues:Lorg/bouncycastle/asn1/cms/AttributeTable;
            areturn
        end local 0 // org.bouncycastle.cms.SignerInformation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/cms/SignerInformation;

  public byte[] getSignature();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cms.SignerInformation this
         0: .line 251
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.signature:[B
            invokestatic org.bouncycastle.util.Arrays.clone:([B)[B
            areturn
        end local 0 // org.bouncycastle.cms.SignerInformation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cms/SignerInformation;

  public org.bouncycastle.cms.SignerInformationStore getCounterSignatures();
    descriptor: ()Lorg/bouncycastle/cms/SignerInformationStore;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=9, args_size=1
        start local 0 // org.bouncycastle.cms.SignerInformation this
         0: .line 267
            aload 0 /* this */
            invokevirtual org.bouncycastle.cms.SignerInformation.getUnsignedAttributes:()Lorg/bouncycastle/asn1/cms/AttributeTable;
            astore 1 /* unsignedAttributeTable */
        start local 1 // org.bouncycastle.asn1.cms.AttributeTable unsignedAttributeTable
         1: .line 268
            aload 1 /* unsignedAttributeTable */
            ifnonnull 3
         2: .line 270
            new org.bouncycastle.cms.SignerInformationStore
            dup
            new java.util.ArrayList
            dup
            iconst_0
            invokespecial java.util.ArrayList.<init>:(I)V
            invokespecial org.bouncycastle.cms.SignerInformationStore.<init>:(Ljava/util/Collection;)V
            areturn
         3: .line 273
      StackMap locals: org.bouncycastle.asn1.cms.AttributeTable
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* counterSignatures */
        start local 2 // java.util.List counterSignatures
         4: .line 280
            aload 1 /* unsignedAttributeTable */
            getstatic org.bouncycastle.asn1.cms.CMSAttributes.counterSignature:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.cms.AttributeTable.getAll:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/asn1/ASN1EncodableVector;
            astore 3 /* allCSAttrs */
        start local 3 // org.bouncycastle.asn1.ASN1EncodableVector allCSAttrs
         5: .line 282
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: goto 16
         7: .line 284
      StackMap locals: java.util.List org.bouncycastle.asn1.ASN1EncodableVector int
      StackMap stack:
            aload 3 /* allCSAttrs */
            iload 4 /* i */
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.get:(I)Lorg/bouncycastle/asn1/ASN1Encodable;
            checkcast org.bouncycastle.asn1.cms.Attribute
            astore 5 /* counterSignatureAttribute */
        start local 5 // org.bouncycastle.asn1.cms.Attribute counterSignatureAttribute
         8: .line 291
            aload 5 /* counterSignatureAttribute */
            invokevirtual org.bouncycastle.asn1.cms.Attribute.getAttrValues:()Lorg/bouncycastle/asn1/ASN1Set;
            astore 6 /* values */
        start local 6 // org.bouncycastle.asn1.ASN1Set values
         9: .line 292
            aload 6 /* values */
            invokevirtual org.bouncycastle.asn1.ASN1Set.size:()I
            pop
        10: .line 297
            aload 6 /* values */
            invokevirtual org.bouncycastle.asn1.ASN1Set.getObjects:()Ljava/util/Enumeration;
            astore 7 /* en */
        start local 7 // java.util.Enumeration en
        11: goto 14
        12: .line 313
      StackMap locals: org.bouncycastle.asn1.cms.Attribute org.bouncycastle.asn1.ASN1Set java.util.Enumeration
      StackMap stack:
            aload 7 /* en */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            invokestatic org.bouncycastle.asn1.cms.SignerInfo.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/cms/SignerInfo;
            astore 8 /* si */
        start local 8 // org.bouncycastle.asn1.cms.SignerInfo si
        13: .line 315
            aload 2 /* counterSignatures */
            new org.bouncycastle.cms.SignerInformation
            dup
            aload 8 /* si */
            aconst_null
            new org.bouncycastle.cms.CMSProcessableByteArray
            dup
            aload 0 /* this */
            invokevirtual org.bouncycastle.cms.SignerInformation.getSignature:()[B
            invokespecial org.bouncycastle.cms.CMSProcessableByteArray.<init>:([B)V
            aconst_null
            invokespecial org.bouncycastle.cms.SignerInformation.<init>:(Lorg/bouncycastle/asn1/cms/SignerInfo;Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/cms/CMSProcessable;[B)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // org.bouncycastle.asn1.cms.SignerInfo si
        14: .line 297
      StackMap locals:
      StackMap stack:
            aload 7 /* en */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 12
        end local 7 // java.util.Enumeration en
        end local 6 // org.bouncycastle.asn1.ASN1Set values
        end local 5 // org.bouncycastle.asn1.cms.Attribute counterSignatureAttribute
        15: .line 282
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 4 /* i */
            aload 3 /* allCSAttrs */
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.size:()I
            if_icmplt 7
        end local 4 // int i
        17: .line 319
            new org.bouncycastle.cms.SignerInformationStore
            dup
            aload 2 /* counterSignatures */
            invokespecial org.bouncycastle.cms.SignerInformationStore.<init>:(Ljava/util/Collection;)V
            areturn
        end local 3 // org.bouncycastle.asn1.ASN1EncodableVector allCSAttrs
        end local 2 // java.util.List counterSignatures
        end local 1 // org.bouncycastle.asn1.cms.AttributeTable unsignedAttributeTable
        end local 0 // org.bouncycastle.cms.SignerInformation this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   18     0                       this  Lorg/bouncycastle/cms/SignerInformation;
            1   18     1     unsignedAttributeTable  Lorg/bouncycastle/asn1/cms/AttributeTable;
            4   18     2          counterSignatures  Ljava/util/List;
            5   18     3                 allCSAttrs  Lorg/bouncycastle/asn1/ASN1EncodableVector;
            6   17     4                          i  I
            8   15     5  counterSignatureAttribute  Lorg/bouncycastle/asn1/cms/Attribute;
            9   15     6                     values  Lorg/bouncycastle/asn1/ASN1Set;
           11   15     7                         en  Ljava/util/Enumeration;
           13   14     8                         si  Lorg/bouncycastle/asn1/cms/SignerInfo;

  public byte[] getEncodedSignedAttributes();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bouncycastle.cms.SignerInformation this
         0: .line 329
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.signedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
            ifnull 2
         1: .line 331
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.signedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
            ldc "DER"
            invokevirtual org.bouncycastle.asn1.ASN1Set.getEncoded:(Ljava/lang/String;)[B
            areturn
         2: .line 334
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // org.bouncycastle.cms.SignerInformation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/cms/SignerInformation;
    Exceptions:
      throws java.io.IOException

  private boolean doVerify(org.bouncycastle.cms.SignerInformationVerifier);
    descriptor: (Lorg/bouncycastle/cms/SignerInformationVerifier;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=2
        start local 0 // org.bouncycastle.cms.SignerInformation this
        start local 1 // org.bouncycastle.cms.SignerInformationVerifier verifier
         0: .line 341
            getstatic org.bouncycastle.cms.CMSSignedHelper.INSTANCE:Lorg/bouncycastle/cms/CMSSignedHelper;
            aload 0 /* this */
            invokevirtual org.bouncycastle.cms.SignerInformation.getEncryptionAlgOID:()Ljava/lang/String;
            invokevirtual org.bouncycastle.cms.CMSSignedHelper.getEncryptionAlgName:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* encName */
        start local 2 // java.lang.String encName
         1: .line 346
            aload 1 /* verifier */
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.encryptionAlgorithm:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
            invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getDigestAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.cms.SignerInformationVerifier.getContentVerifier:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Lorg/bouncycastle/operator/ContentVerifier;
            astore 3 /* contentVerifier */
        start local 3 // org.bouncycastle.operator.ContentVerifier contentVerifier
         2: .line 347
            goto 5
        end local 3 // org.bouncycastle.operator.ContentVerifier contentVerifier
         3: .line 348
      StackMap locals: org.bouncycastle.cms.SignerInformation org.bouncycastle.cms.SignerInformationVerifier java.lang.String
      StackMap stack: org.bouncycastle.operator.OperatorCreationException
            astore 4 /* e */
        start local 4 // org.bouncycastle.operator.OperatorCreationException e
         4: .line 350
            new org.bouncycastle.cms.CMSException
            dup
            new java.lang.StringBuilder
            dup
            ldc "can't create content verifier: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* e */
            invokevirtual org.bouncycastle.operator.OperatorCreationException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 4 /* e */
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 4 // org.bouncycastle.operator.OperatorCreationException e
        start local 3 // org.bouncycastle.operator.ContentVerifier contentVerifier
         5: .line 355
      StackMap locals: org.bouncycastle.operator.ContentVerifier
      StackMap stack:
            aload 3 /* contentVerifier */
            invokeinterface org.bouncycastle.operator.ContentVerifier.getOutputStream:()Ljava/io/OutputStream;
            astore 4 /* sigOut */
        start local 4 // java.io.OutputStream sigOut
         6: .line 357
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.resultDigest:[B
            ifnonnull 28
         7: .line 359
            aload 1 /* verifier */
            aload 0 /* this */
            invokevirtual org.bouncycastle.cms.SignerInformation.getDigestAlgorithmID:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.cms.SignerInformationVerifier.getDigestCalculator:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Lorg/bouncycastle/operator/DigestCalculator;
            astore 5 /* calc */
        start local 5 // org.bouncycastle.operator.DigestCalculator calc
         8: .line 360
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.content:Lorg/bouncycastle/cms/CMSProcessable;
            ifnull 22
         9: .line 362
            aload 5 /* calc */
            invokeinterface org.bouncycastle.operator.DigestCalculator.getOutputStream:()Ljava/io/OutputStream;
            astore 6 /* digOut */
        start local 6 // java.io.OutputStream digOut
        10: .line 364
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.signedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
            ifnonnull 18
        11: .line 366
            aload 3 /* contentVerifier */
            instanceof org.bouncycastle.operator.RawContentVerifier
            ifeq 14
        12: .line 368
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.content:Lorg/bouncycastle/cms/CMSProcessable;
            aload 6 /* digOut */
            invokeinterface org.bouncycastle.cms.CMSProcessable.write:(Ljava/io/OutputStream;)V
        13: .line 369
            goto 20
        14: .line 372
      StackMap locals: java.io.OutputStream org.bouncycastle.operator.DigestCalculator java.io.OutputStream
      StackMap stack:
            new org.bouncycastle.util.io.TeeOutputStream
            dup
            aload 6 /* digOut */
            aload 4 /* sigOut */
            invokespecial org.bouncycastle.util.io.TeeOutputStream.<init>:(Ljava/io/OutputStream;Ljava/io/OutputStream;)V
            astore 7 /* cOut */
        start local 7 // java.io.OutputStream cOut
        15: .line 374
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.content:Lorg/bouncycastle/cms/CMSProcessable;
            aload 7 /* cOut */
            invokeinterface org.bouncycastle.cms.CMSProcessable.write:(Ljava/io/OutputStream;)V
        16: .line 376
            aload 7 /* cOut */
            invokevirtual java.io.OutputStream.close:()V
        end local 7 // java.io.OutputStream cOut
        17: .line 378
            goto 20
        18: .line 381
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.content:Lorg/bouncycastle/cms/CMSProcessable;
            aload 6 /* digOut */
            invokeinterface org.bouncycastle.cms.CMSProcessable.write:(Ljava/io/OutputStream;)V
        19: .line 382
            aload 4 /* sigOut */
            aload 0 /* this */
            invokevirtual org.bouncycastle.cms.SignerInformation.getEncodedSignedAttributes:()[B
            invokevirtual java.io.OutputStream.write:([B)V
        20: .line 385
      StackMap locals:
      StackMap stack:
            aload 6 /* digOut */
            invokevirtual java.io.OutputStream.close:()V
        end local 6 // java.io.OutputStream digOut
        21: .line 386
            goto 26
        22: .line 387
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.signedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
            ifnull 25
        23: .line 389
            aload 4 /* sigOut */
            aload 0 /* this */
            invokevirtual org.bouncycastle.cms.SignerInformation.getEncodedSignedAttributes:()[B
            invokevirtual java.io.OutputStream.write:([B)V
        24: .line 390
            goto 26
        25: .line 394
      StackMap locals:
      StackMap stack:
            new org.bouncycastle.cms.CMSException
            dup
            ldc "data not encapsulated in signature - use detached constructor."
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
            athrow
        26: .line 397
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* calc */
            invokeinterface org.bouncycastle.operator.DigestCalculator.getDigest:()[B
            putfield org.bouncycastle.cms.SignerInformation.resultDigest:[B
        end local 5 // org.bouncycastle.operator.DigestCalculator calc
        27: .line 398
            goto 33
        28: .line 401
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.signedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
            ifnonnull 32
        29: .line 403
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.content:Lorg/bouncycastle/cms/CMSProcessable;
            ifnull 33
        30: .line 405
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.content:Lorg/bouncycastle/cms/CMSProcessable;
            aload 4 /* sigOut */
            invokeinterface org.bouncycastle.cms.CMSProcessable.write:(Ljava/io/OutputStream;)V
        31: .line 407
            goto 33
        32: .line 410
      StackMap locals:
      StackMap stack:
            aload 4 /* sigOut */
            aload 0 /* this */
            invokevirtual org.bouncycastle.cms.SignerInformation.getEncodedSignedAttributes:()[B
            invokevirtual java.io.OutputStream.write:([B)V
        33: .line 414
      StackMap locals:
      StackMap stack:
            aload 4 /* sigOut */
            invokevirtual java.io.OutputStream.close:()V
        end local 4 // java.io.OutputStream sigOut
        34: .line 415
            goto 39
        35: .line 416
      StackMap locals: org.bouncycastle.cms.SignerInformation org.bouncycastle.cms.SignerInformationVerifier java.lang.String org.bouncycastle.operator.ContentVerifier
      StackMap stack: java.io.IOException
            astore 4 /* e */
        start local 4 // java.io.IOException e
        36: .line 418
            new org.bouncycastle.cms.CMSException
            dup
            ldc "can't process mime object to create signature."
            aload 4 /* e */
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 4 // java.io.IOException e
        37: .line 420
      StackMap locals:
      StackMap stack: org.bouncycastle.operator.OperatorCreationException
            astore 4 /* e */
        start local 4 // org.bouncycastle.operator.OperatorCreationException e
        38: .line 422
            new org.bouncycastle.cms.CMSException
            dup
            new java.lang.StringBuilder
            dup
            ldc "can't create digest calculator: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* e */
            invokevirtual org.bouncycastle.operator.OperatorCreationException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 4 /* e */
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 4 // org.bouncycastle.operator.OperatorCreationException e
        39: .line 427
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        40: .line 428
            getstatic org.bouncycastle.asn1.cms.CMSAttributes.contentType:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            ldc "content-type"
        41: .line 427
            invokevirtual org.bouncycastle.cms.SignerInformation.getSingleValuedSignedAttribute:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Ljava/lang/String;)Lorg/bouncycastle/asn1/ASN1Primitive;
            astore 4 /* validContentType */
        start local 4 // org.bouncycastle.asn1.ASN1Primitive validContentType
        42: .line 429
            aload 4 /* validContentType */
            ifnonnull 45
        43: .line 431
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.isCounterSignature:Z
            ifne 52
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.signedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
            ifnull 52
        44: .line 433
            new org.bouncycastle.cms.CMSException
            dup
            ldc "The content-type attribute type MUST be present whenever signed attributes are present in signed-data"
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
            athrow
        45: .line 438
      StackMap locals: org.bouncycastle.asn1.ASN1Primitive
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.isCounterSignature:Z
            ifeq 47
        46: .line 440
            new org.bouncycastle.cms.CMSException
            dup
            ldc "[For counter signatures,] the signedAttributes field MUST NOT contain a content-type attribute"
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
            athrow
        47: .line 443
      StackMap locals:
      StackMap stack:
            aload 4 /* validContentType */
            instanceof org.bouncycastle.asn1.ASN1ObjectIdentifier
            ifne 49
        48: .line 445
            new org.bouncycastle.cms.CMSException
            dup
            ldc "content-type attribute value not of ASN.1 type 'OBJECT IDENTIFIER'"
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
            athrow
        49: .line 448
      StackMap locals:
      StackMap stack:
            aload 4 /* validContentType */
            checkcast org.bouncycastle.asn1.ASN1ObjectIdentifier
            astore 5 /* signedContentType */
        start local 5 // org.bouncycastle.asn1.ASN1ObjectIdentifier signedContentType
        50: .line 450
            aload 5 /* signedContentType */
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.contentType:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifne 52
        51: .line 452
            new org.bouncycastle.cms.CMSException
            dup
            ldc "content-type attribute value does not match eContentType"
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // org.bouncycastle.asn1.ASN1ObjectIdentifier signedContentType
        end local 4 // org.bouncycastle.asn1.ASN1Primitive validContentType
        52: .line 457
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bouncycastle.cms.SignerInformation.getSignedAttributes:()Lorg/bouncycastle/asn1/cms/AttributeTable;
            astore 4 /* signedAttrTable */
        start local 4 // org.bouncycastle.asn1.cms.AttributeTable signedAttrTable
        53: .line 461
            aload 0 /* this */
            invokevirtual org.bouncycastle.cms.SignerInformation.getUnsignedAttributes:()Lorg/bouncycastle/asn1/cms/AttributeTable;
            astore 5 /* unsignedAttrTable */
        start local 5 // org.bouncycastle.asn1.cms.AttributeTable unsignedAttrTable
        54: .line 462
            aload 5 /* unsignedAttrTable */
            ifnull 56
            aload 5 /* unsignedAttrTable */
            getstatic org.bouncycastle.asn1.cms.CMSAttributes.cmsAlgorithmProtect:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.cms.AttributeTable.getAll:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/asn1/ASN1EncodableVector;
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.size:()I
            ifle 56
        55: .line 464
            new org.bouncycastle.cms.CMSException
            dup
            ldc "A cmsAlgorithmProtect attribute MUST be a signed attribute"
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
            athrow
        56: .line 466
      StackMap locals: org.bouncycastle.asn1.cms.AttributeTable org.bouncycastle.asn1.cms.AttributeTable
      StackMap stack:
            aload 4 /* signedAttrTable */
            ifnull 69
        57: .line 468
            aload 4 /* signedAttrTable */
            getstatic org.bouncycastle.asn1.cms.CMSAttributes.cmsAlgorithmProtect:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.cms.AttributeTable.getAll:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/asn1/ASN1EncodableVector;
            astore 6 /* protectionAttributes */
        start local 6 // org.bouncycastle.asn1.ASN1EncodableVector protectionAttributes
        58: .line 469
            aload 6 /* protectionAttributes */
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.size:()I
            iconst_1
            if_icmple 60
        59: .line 471
            new org.bouncycastle.cms.CMSException
            dup
            ldc "Only one instance of a cmsAlgorithmProtect attribute can be present"
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
            athrow
        60: .line 474
      StackMap locals: org.bouncycastle.asn1.ASN1EncodableVector
      StackMap stack:
            aload 6 /* protectionAttributes */
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.size:()I
            ifle 69
        61: .line 476
            aload 6 /* protectionAttributes */
            iconst_0
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.get:(I)Lorg/bouncycastle/asn1/ASN1Encodable;
            invokestatic org.bouncycastle.asn1.cms.Attribute.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/cms/Attribute;
            astore 7 /* attr */
        start local 7 // org.bouncycastle.asn1.cms.Attribute attr
        62: .line 477
            aload 7 /* attr */
            invokevirtual org.bouncycastle.asn1.cms.Attribute.getAttrValues:()Lorg/bouncycastle/asn1/ASN1Set;
            invokevirtual org.bouncycastle.asn1.ASN1Set.size:()I
            iconst_1
            if_icmpeq 64
        63: .line 479
            new org.bouncycastle.cms.CMSException
            dup
            ldc "A cmsAlgorithmProtect attribute MUST contain exactly one value"
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
            athrow
        64: .line 482
      StackMap locals: org.bouncycastle.asn1.cms.Attribute
      StackMap stack:
            aload 7 /* attr */
            invokevirtual org.bouncycastle.asn1.cms.Attribute.getAttributeValues:()[Lorg/bouncycastle/asn1/ASN1Encodable;
            iconst_0
            aaload
            invokestatic org.bouncycastle.asn1.cms.CMSAlgorithmProtection.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/cms/CMSAlgorithmProtection;
            astore 8 /* algorithmProtection */
        start local 8 // org.bouncycastle.asn1.cms.CMSAlgorithmProtection algorithmProtection
        65: .line 484
            aload 8 /* algorithmProtection */
            invokevirtual org.bouncycastle.asn1.cms.CMSAlgorithmProtection.getDigestAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
            invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getDigestAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokestatic org.bouncycastle.cms.CMSUtils.isEquivalent:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Z
            ifne 67
        66: .line 486
            new org.bouncycastle.cms.CMSException
            dup
            ldc "CMS Algorithm Identifier Protection check failed for digestAlgorithm"
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
            athrow
        67: .line 489
      StackMap locals: org.bouncycastle.asn1.cms.CMSAlgorithmProtection
      StackMap stack:
            aload 8 /* algorithmProtection */
            invokevirtual org.bouncycastle.asn1.cms.CMSAlgorithmProtection.getSignatureAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
            invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getDigestEncryptionAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokestatic org.bouncycastle.cms.CMSUtils.isEquivalent:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Z
            ifne 69
        68: .line 491
            new org.bouncycastle.cms.CMSException
            dup
            ldc "CMS Algorithm Identifier Protection check failed for signatureAlgorithm"
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // org.bouncycastle.asn1.cms.CMSAlgorithmProtection algorithmProtection
        end local 7 // org.bouncycastle.asn1.cms.Attribute attr
        end local 6 // org.bouncycastle.asn1.ASN1EncodableVector protectionAttributes
        end local 5 // org.bouncycastle.asn1.cms.AttributeTable unsignedAttrTable
        69: .line 499
      StackMap locals: org.bouncycastle.cms.SignerInformation org.bouncycastle.cms.SignerInformationVerifier java.lang.String org.bouncycastle.operator.ContentVerifier org.bouncycastle.asn1.cms.AttributeTable
      StackMap stack:
            aload 0 /* this */
        70: .line 500
            getstatic org.bouncycastle.asn1.cms.CMSAttributes.messageDigest:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            ldc "message-digest"
        71: .line 499
            invokevirtual org.bouncycastle.cms.SignerInformation.getSingleValuedSignedAttribute:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Ljava/lang/String;)Lorg/bouncycastle/asn1/ASN1Primitive;
            astore 5 /* validMessageDigest */
        start local 5 // org.bouncycastle.asn1.ASN1Primitive validMessageDigest
        72: .line 501
            aload 5 /* validMessageDigest */
            ifnonnull 75
        73: .line 503
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.signedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
            ifnull 80
        74: .line 505
            new org.bouncycastle.cms.CMSException
            dup
            ldc "the message-digest signed attribute type MUST be present when there are any signed attributes present"
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
            athrow
        75: .line 510
      StackMap locals: org.bouncycastle.asn1.ASN1Primitive
      StackMap stack:
            aload 5 /* validMessageDigest */
            instanceof org.bouncycastle.asn1.ASN1OctetString
            ifne 77
        76: .line 512
            new org.bouncycastle.cms.CMSException
            dup
            ldc "message-digest attribute value not of ASN.1 type 'OCTET STRING'"
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
            athrow
        77: .line 515
      StackMap locals:
      StackMap stack:
            aload 5 /* validMessageDigest */
            checkcast org.bouncycastle.asn1.ASN1OctetString
            astore 6 /* signedMessageDigest */
        start local 6 // org.bouncycastle.asn1.ASN1OctetString signedMessageDigest
        78: .line 517
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.resultDigest:[B
            aload 6 /* signedMessageDigest */
            invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
            invokestatic org.bouncycastle.util.Arrays.constantTimeAreEqual:([B[B)Z
            ifne 80
        79: .line 519
            new org.bouncycastle.cms.CMSSignerDigestMismatchException
            dup
            ldc "message-digest attribute value does not match calculated value"
            invokespecial org.bouncycastle.cms.CMSSignerDigestMismatchException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // org.bouncycastle.asn1.ASN1OctetString signedMessageDigest
        end local 5 // org.bouncycastle.asn1.ASN1Primitive validMessageDigest
        80: .line 526
      StackMap locals:
      StackMap stack:
            aload 4 /* signedAttrTable */
            ifnull 83
        81: .line 527
            aload 4 /* signedAttrTable */
            getstatic org.bouncycastle.asn1.cms.CMSAttributes.counterSignature:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.cms.AttributeTable.getAll:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/asn1/ASN1EncodableVector;
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.size:()I
            ifle 83
        82: .line 529
            new org.bouncycastle.cms.CMSException
            dup
            ldc "A countersignature attribute MUST NOT be a signed attribute"
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
            athrow
        83: .line 532
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bouncycastle.cms.SignerInformation.getUnsignedAttributes:()Lorg/bouncycastle/asn1/cms/AttributeTable;
            astore 5 /* unsignedAttrTable */
        start local 5 // org.bouncycastle.asn1.cms.AttributeTable unsignedAttrTable
        84: .line 533
            aload 5 /* unsignedAttrTable */
            ifnull 93
        85: .line 535
            aload 5 /* unsignedAttrTable */
            getstatic org.bouncycastle.asn1.cms.CMSAttributes.counterSignature:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.cms.AttributeTable.getAll:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/asn1/ASN1EncodableVector;
            astore 6 /* csAttrs */
        start local 6 // org.bouncycastle.asn1.ASN1EncodableVector csAttrs
        86: .line 536
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        87: goto 92
        88: .line 538
      StackMap locals: org.bouncycastle.asn1.cms.AttributeTable org.bouncycastle.asn1.ASN1EncodableVector int
      StackMap stack:
            aload 6 /* csAttrs */
            iload 7 /* i */
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.get:(I)Lorg/bouncycastle/asn1/ASN1Encodable;
            invokestatic org.bouncycastle.asn1.cms.Attribute.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/cms/Attribute;
            astore 8 /* csAttr */
        start local 8 // org.bouncycastle.asn1.cms.Attribute csAttr
        89: .line 539
            aload 8 /* csAttr */
            invokevirtual org.bouncycastle.asn1.cms.Attribute.getAttrValues:()Lorg/bouncycastle/asn1/ASN1Set;
            invokevirtual org.bouncycastle.asn1.ASN1Set.size:()I
            iconst_1
            if_icmpge 91
        90: .line 541
            new org.bouncycastle.cms.CMSException
            dup
            ldc "A countersignature attribute MUST contain at least one AttributeValue"
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // org.bouncycastle.asn1.cms.Attribute csAttr
        91: .line 536
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        92: iload 7 /* i */
            aload 6 /* csAttrs */
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.size:()I
            if_icmplt 88
        end local 7 // int i
        end local 6 // org.bouncycastle.asn1.ASN1EncodableVector csAttrs
        end local 5 // org.bouncycastle.asn1.cms.AttributeTable unsignedAttrTable
        93: .line 551
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.signedAttributeSet:Lorg/bouncycastle/asn1/ASN1Set;
            ifnonnull 102
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.resultDigest:[B
            ifnull 102
        94: .line 553
            aload 3 /* contentVerifier */
            instanceof org.bouncycastle.operator.RawContentVerifier
            ifeq 102
        95: .line 555
            aload 3 /* contentVerifier */
            checkcast org.bouncycastle.operator.RawContentVerifier
            astore 5 /* rawVerifier */
        start local 5 // org.bouncycastle.operator.RawContentVerifier rawVerifier
        96: .line 557
            aload 2 /* encName */
            ldc "RSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 100
        97: .line 559
            new org.bouncycastle.asn1.x509.DigestInfo
            dup
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.digestAlgorithm:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.resultDigest:[B
            invokespecial org.bouncycastle.asn1.x509.DigestInfo.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;[B)V
            astore 6 /* digInfo */
        start local 6 // org.bouncycastle.asn1.x509.DigestInfo digInfo
        98: .line 561
            aload 5 /* rawVerifier */
            aload 6 /* digInfo */
            ldc "DER"
            invokevirtual org.bouncycastle.asn1.x509.DigestInfo.getEncoded:(Ljava/lang/String;)[B
            aload 0 /* this */
            invokevirtual org.bouncycastle.cms.SignerInformation.getSignature:()[B
            invokeinterface org.bouncycastle.operator.RawContentVerifier.verify:([B[B)Z
        99: ireturn
        end local 6 // org.bouncycastle.asn1.x509.DigestInfo digInfo
       100: .line 564
      StackMap locals: org.bouncycastle.operator.RawContentVerifier
      StackMap stack:
            aload 5 /* rawVerifier */
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.resultDigest:[B
            aload 0 /* this */
            invokevirtual org.bouncycastle.cms.SignerInformation.getSignature:()[B
            invokeinterface org.bouncycastle.operator.RawContentVerifier.verify:([B[B)Z
       101: ireturn
        end local 5 // org.bouncycastle.operator.RawContentVerifier rawVerifier
       102: .line 568
      StackMap locals:
      StackMap stack:
            aload 3 /* contentVerifier */
            aload 0 /* this */
            invokevirtual org.bouncycastle.cms.SignerInformation.getSignature:()[B
            invokeinterface org.bouncycastle.operator.ContentVerifier.verify:([B)Z
       103: ireturn
       104: .line 570
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 5 /* e */
        start local 5 // java.io.IOException e
       105: .line 572
            new org.bouncycastle.cms.CMSException
            dup
            ldc "can't process mime object to create signature."
            aload 5 /* e */
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 5 // java.io.IOException e
        end local 4 // org.bouncycastle.asn1.cms.AttributeTable signedAttrTable
        end local 3 // org.bouncycastle.operator.ContentVerifier contentVerifier
        end local 2 // java.lang.String encName
        end local 1 // org.bouncycastle.cms.SignerInformationVerifier verifier
        end local 0 // org.bouncycastle.cms.SignerInformation this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0  106     0                  this  Lorg/bouncycastle/cms/SignerInformation;
            0  106     1              verifier  Lorg/bouncycastle/cms/SignerInformationVerifier;
            1  106     2               encName  Ljava/lang/String;
            2    3     3       contentVerifier  Lorg/bouncycastle/operator/ContentVerifier;
            5  106     3       contentVerifier  Lorg/bouncycastle/operator/ContentVerifier;
            4    5     4                     e  Lorg/bouncycastle/operator/OperatorCreationException;
            6   34     4                sigOut  Ljava/io/OutputStream;
            8   27     5                  calc  Lorg/bouncycastle/operator/DigestCalculator;
           10   21     6                digOut  Ljava/io/OutputStream;
           15   17     7                  cOut  Ljava/io/OutputStream;
           36   37     4                     e  Ljava/io/IOException;
           38   39     4                     e  Lorg/bouncycastle/operator/OperatorCreationException;
           42   52     4      validContentType  Lorg/bouncycastle/asn1/ASN1Primitive;
           50   52     5     signedContentType  Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
           53  106     4       signedAttrTable  Lorg/bouncycastle/asn1/cms/AttributeTable;
           54   69     5     unsignedAttrTable  Lorg/bouncycastle/asn1/cms/AttributeTable;
           58   69     6  protectionAttributes  Lorg/bouncycastle/asn1/ASN1EncodableVector;
           62   69     7                  attr  Lorg/bouncycastle/asn1/cms/Attribute;
           65   69     8   algorithmProtection  Lorg/bouncycastle/asn1/cms/CMSAlgorithmProtection;
           72   80     5    validMessageDigest  Lorg/bouncycastle/asn1/ASN1Primitive;
           78   80     6   signedMessageDigest  Lorg/bouncycastle/asn1/ASN1OctetString;
           84   93     5     unsignedAttrTable  Lorg/bouncycastle/asn1/cms/AttributeTable;
           86   93     6               csAttrs  Lorg/bouncycastle/asn1/ASN1EncodableVector;
           87   93     7                     i  I
           89   91     8                csAttr  Lorg/bouncycastle/asn1/cms/Attribute;
           96  102     5           rawVerifier  Lorg/bouncycastle/operator/RawContentVerifier;
           98  100     6               digInfo  Lorg/bouncycastle/asn1/x509/DigestInfo;
          105  106     5                     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           1     2       3  Class org.bouncycastle.operator.OperatorCreationException
           5    34      35  Class java.io.IOException
           5    34      37  Class org.bouncycastle.operator.OperatorCreationException
          93    99     104  Class java.io.IOException
         100   101     104  Class java.io.IOException
         102   103     104  Class java.io.IOException
    Exceptions:
      throws org.bouncycastle.cms.CMSException
    MethodParameters:
          Name  Flags
      verifier  

  public boolean verify(org.bouncycastle.cms.SignerInformationVerifier);
    descriptor: (Lorg/bouncycastle/cms/SignerInformationVerifier;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.bouncycastle.cms.SignerInformation this
        start local 1 // org.bouncycastle.cms.SignerInformationVerifier verifier
         0: .line 588
            aload 0 /* this */
            invokevirtual org.bouncycastle.cms.SignerInformation.getSigningTime:()Lorg/bouncycastle/asn1/cms/Time;
            astore 2 /* signingTime */
        start local 2 // org.bouncycastle.asn1.cms.Time signingTime
         1: .line 590
            aload 1 /* verifier */
            invokevirtual org.bouncycastle.cms.SignerInformationVerifier.hasAssociatedCertificate:()Z
            ifeq 6
         2: .line 592
            aload 2 /* signingTime */
            ifnull 6
         3: .line 594
            aload 1 /* verifier */
            invokevirtual org.bouncycastle.cms.SignerInformationVerifier.getAssociatedCertificate:()Lorg/bouncycastle/cert/X509CertificateHolder;
            astore 3 /* dcv */
        start local 3 // org.bouncycastle.cert.X509CertificateHolder dcv
         4: .line 596
            aload 3 /* dcv */
            aload 2 /* signingTime */
            invokevirtual org.bouncycastle.asn1.cms.Time.getDate:()Ljava/util/Date;
            invokevirtual org.bouncycastle.cert.X509CertificateHolder.isValidOn:(Ljava/util/Date;)Z
            ifne 6
         5: .line 598
            new org.bouncycastle.cms.CMSVerifierCertificateNotValidException
            dup
            ldc "verifier not valid at signingTime"
            invokespecial org.bouncycastle.cms.CMSVerifierCertificateNotValidException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // org.bouncycastle.cert.X509CertificateHolder dcv
         6: .line 603
      StackMap locals: org.bouncycastle.asn1.cms.Time
      StackMap stack:
            aload 0 /* this */
            aload 1 /* verifier */
            invokevirtual org.bouncycastle.cms.SignerInformation.doVerify:(Lorg/bouncycastle/cms/SignerInformationVerifier;)Z
            ireturn
        end local 2 // org.bouncycastle.asn1.cms.Time signingTime
        end local 1 // org.bouncycastle.cms.SignerInformationVerifier verifier
        end local 0 // org.bouncycastle.cms.SignerInformation this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lorg/bouncycastle/cms/SignerInformation;
            0    7     1     verifier  Lorg/bouncycastle/cms/SignerInformationVerifier;
            1    7     2  signingTime  Lorg/bouncycastle/asn1/cms/Time;
            4    6     3          dcv  Lorg/bouncycastle/cert/X509CertificateHolder;
    Exceptions:
      throws org.bouncycastle.cms.CMSException
    MethodParameters:
          Name  Flags
      verifier  

  public org.bouncycastle.asn1.cms.SignerInfo toASN1Structure();
    descriptor: ()Lorg/bouncycastle/asn1/cms/SignerInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cms.SignerInformation this
         0: .line 613
            aload 0 /* this */
            getfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
            areturn
        end local 0 // org.bouncycastle.cms.SignerInformation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cms/SignerInformation;

  private org.bouncycastle.asn1.ASN1Primitive getSingleValuedSignedAttribute(org.bouncycastle.asn1.ASN1ObjectIdentifier, java.lang.String);
    descriptor: (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Ljava/lang/String;)Lorg/bouncycastle/asn1/ASN1Primitive;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // org.bouncycastle.cms.SignerInformation this
        start local 1 // org.bouncycastle.asn1.ASN1ObjectIdentifier attrOID
        start local 2 // java.lang.String printableName
         0: .line 620
            aload 0 /* this */
            invokevirtual org.bouncycastle.cms.SignerInformation.getUnsignedAttributes:()Lorg/bouncycastle/asn1/cms/AttributeTable;
            astore 3 /* unsignedAttrTable */
        start local 3 // org.bouncycastle.asn1.cms.AttributeTable unsignedAttrTable
         1: .line 621
            aload 3 /* unsignedAttrTable */
            ifnull 6
         2: .line 622
            aload 3 /* unsignedAttrTable */
            aload 1 /* attrOID */
            invokevirtual org.bouncycastle.asn1.cms.AttributeTable.getAll:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/asn1/ASN1EncodableVector;
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.size:()I
            ifle 6
         3: .line 624
            new org.bouncycastle.cms.CMSException
            dup
            new java.lang.StringBuilder
            dup
            ldc "The "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* printableName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 625
            ldc " attribute MUST NOT be an unsigned attribute"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 624
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 628
      StackMap locals: org.bouncycastle.asn1.cms.AttributeTable
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bouncycastle.cms.SignerInformation.getSignedAttributes:()Lorg/bouncycastle/asn1/cms/AttributeTable;
            astore 4 /* signedAttrTable */
        start local 4 // org.bouncycastle.asn1.cms.AttributeTable signedAttrTable
         7: .line 629
            aload 4 /* signedAttrTable */
            ifnonnull 9
         8: .line 631
            aconst_null
            areturn
         9: .line 634
      StackMap locals: org.bouncycastle.asn1.cms.AttributeTable
      StackMap stack:
            aload 4 /* signedAttrTable */
            aload 1 /* attrOID */
            invokevirtual org.bouncycastle.asn1.cms.AttributeTable.getAll:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/asn1/ASN1EncodableVector;
            astore 5 /* v */
        start local 5 // org.bouncycastle.asn1.ASN1EncodableVector v
        10: .line 635
            aload 5 /* v */
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.size:()I
            tableswitch { // 0 - 1
                    0: 11
                    1: 12
              default: 19
          }
        11: .line 638
      StackMap locals: org.bouncycastle.asn1.ASN1EncodableVector
      StackMap stack:
            aconst_null
            areturn
        12: .line 641
      StackMap locals:
      StackMap stack:
            aload 5 /* v */
            iconst_0
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.get:(I)Lorg/bouncycastle/asn1/ASN1Encodable;
            checkcast org.bouncycastle.asn1.cms.Attribute
            astore 6 /* t */
        start local 6 // org.bouncycastle.asn1.cms.Attribute t
        13: .line 642
            aload 6 /* t */
            invokevirtual org.bouncycastle.asn1.cms.Attribute.getAttrValues:()Lorg/bouncycastle/asn1/ASN1Set;
            astore 7 /* attrValues */
        start local 7 // org.bouncycastle.asn1.ASN1Set attrValues
        14: .line 643
            aload 7 /* attrValues */
            invokevirtual org.bouncycastle.asn1.ASN1Set.size:()I
            iconst_1
            if_icmpeq 18
        15: .line 645
            new org.bouncycastle.cms.CMSException
            dup
            new java.lang.StringBuilder
            dup
            ldc "A "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* printableName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        16: .line 646
            ldc " attribute MUST have a single attribute value"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        17: .line 645
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 649
      StackMap locals: org.bouncycastle.asn1.cms.Attribute org.bouncycastle.asn1.ASN1Set
      StackMap stack:
            aload 7 /* attrValues */
            iconst_0
            invokevirtual org.bouncycastle.asn1.ASN1Set.getObjectAt:(I)Lorg/bouncycastle/asn1/ASN1Encodable;
            invokeinterface org.bouncycastle.asn1.ASN1Encodable.toASN1Primitive:()Lorg/bouncycastle/asn1/ASN1Primitive;
            areturn
        end local 7 // org.bouncycastle.asn1.ASN1Set attrValues
        end local 6 // org.bouncycastle.asn1.cms.Attribute t
        19: .line 652
      StackMap locals:
      StackMap stack:
            new org.bouncycastle.cms.CMSException
            dup
            new java.lang.StringBuilder
            dup
            ldc "The SignedAttributes in a signerInfo MUST NOT include multiple instances of the "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        20: .line 653
            aload 2 /* printableName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " attribute"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        21: .line 652
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // org.bouncycastle.asn1.ASN1EncodableVector v
        end local 4 // org.bouncycastle.asn1.cms.AttributeTable signedAttrTable
        end local 3 // org.bouncycastle.asn1.cms.AttributeTable unsignedAttrTable
        end local 2 // java.lang.String printableName
        end local 1 // org.bouncycastle.asn1.ASN1ObjectIdentifier attrOID
        end local 0 // org.bouncycastle.cms.SignerInformation this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   22     0               this  Lorg/bouncycastle/cms/SignerInformation;
            0   22     1            attrOID  Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            0   22     2      printableName  Ljava/lang/String;
            1   22     3  unsignedAttrTable  Lorg/bouncycastle/asn1/cms/AttributeTable;
            7   22     4    signedAttrTable  Lorg/bouncycastle/asn1/cms/AttributeTable;
           10   22     5                  v  Lorg/bouncycastle/asn1/ASN1EncodableVector;
           13   19     6                  t  Lorg/bouncycastle/asn1/cms/Attribute;
           14   19     7         attrValues  Lorg/bouncycastle/asn1/ASN1Set;
    Exceptions:
      throws org.bouncycastle.cms.CMSException
    MethodParameters:
               Name  Flags
      attrOID        
      printableName  

  private org.bouncycastle.asn1.cms.Time getSigningTime();
    descriptor: ()Lorg/bouncycastle/asn1/cms/Time;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.bouncycastle.cms.SignerInformation this
         0: .line 659
            aload 0 /* this */
         1: .line 660
            getstatic org.bouncycastle.asn1.cms.CMSAttributes.signingTime:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            ldc "signing-time"
         2: .line 659
            invokevirtual org.bouncycastle.cms.SignerInformation.getSingleValuedSignedAttribute:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Ljava/lang/String;)Lorg/bouncycastle/asn1/ASN1Primitive;
            astore 1 /* validSigningTime */
        start local 1 // org.bouncycastle.asn1.ASN1Primitive validSigningTime
         3: .line 662
            aload 1 /* validSigningTime */
            ifnonnull 5
         4: .line 664
            aconst_null
            areturn
         5: .line 669
      StackMap locals: org.bouncycastle.asn1.ASN1Primitive
      StackMap stack:
            aload 1 /* validSigningTime */
            invokestatic org.bouncycastle.asn1.cms.Time.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/cms/Time;
         6: areturn
         7: .line 671
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            pop
         8: .line 673
            new org.bouncycastle.cms.CMSException
            dup
            ldc "signing-time attribute value not a valid 'Time' structure"
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // org.bouncycastle.asn1.ASN1Primitive validSigningTime
        end local 0 // org.bouncycastle.cms.SignerInformation this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0              this  Lorg/bouncycastle/cms/SignerInformation;
            3    9     1  validSigningTime  Lorg/bouncycastle/asn1/ASN1Primitive;
      Exception table:
        from    to  target  type
           5     6       7  Class java.lang.IllegalArgumentException
    Exceptions:
      throws org.bouncycastle.cms.CMSException

  public static org.bouncycastle.cms.SignerInformation replaceUnsignedAttributes(org.bouncycastle.cms.SignerInformation, org.bouncycastle.asn1.cms.AttributeTable);
    descriptor: (Lorg/bouncycastle/cms/SignerInformation;Lorg/bouncycastle/asn1/cms/AttributeTable;)Lorg/bouncycastle/cms/SignerInformation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=10, locals=4, args_size=2
        start local 0 // org.bouncycastle.cms.SignerInformation signerInformation
        start local 1 // org.bouncycastle.asn1.cms.AttributeTable unsignedAttributes
         0: .line 690
            aload 0 /* signerInformation */
            getfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
            astore 2 /* sInfo */
        start local 2 // org.bouncycastle.asn1.cms.SignerInfo sInfo
         1: .line 691
            aconst_null
            astore 3 /* unsignedAttr */
        start local 3 // org.bouncycastle.asn1.ASN1Set unsignedAttr
         2: .line 693
            aload 1 /* unsignedAttributes */
            ifnull 4
         3: .line 695
            new org.bouncycastle.asn1.DERSet
            dup
            aload 1 /* unsignedAttributes */
            invokevirtual org.bouncycastle.asn1.cms.AttributeTable.toASN1EncodableVector:()Lorg/bouncycastle/asn1/ASN1EncodableVector;
            invokespecial org.bouncycastle.asn1.DERSet.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
            astore 3 /* unsignedAttr */
         4: .line 698
      StackMap locals: org.bouncycastle.asn1.cms.SignerInfo org.bouncycastle.asn1.ASN1Set
      StackMap stack:
            new org.bouncycastle.cms.SignerInformation
            dup
         5: .line 699
            new org.bouncycastle.asn1.cms.SignerInfo
            dup
            aload 2 /* sInfo */
            invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getSID:()Lorg/bouncycastle/asn1/cms/SignerIdentifier;
            aload 2 /* sInfo */
            invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getDigestAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
         6: .line 700
            aload 2 /* sInfo */
            invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getAuthenticatedAttributes:()Lorg/bouncycastle/asn1/ASN1Set;
            aload 2 /* sInfo */
            invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getDigestEncryptionAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            aload 2 /* sInfo */
            invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getEncryptedDigest:()Lorg/bouncycastle/asn1/ASN1OctetString;
            aload 3 /* unsignedAttr */
         7: .line 699
            invokespecial org.bouncycastle.asn1.cms.SignerInfo.<init>:(Lorg/bouncycastle/asn1/cms/SignerIdentifier;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/ASN1Set;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/ASN1OctetString;Lorg/bouncycastle/asn1/ASN1Set;)V
         8: .line 701
            aload 0 /* signerInformation */
            getfield org.bouncycastle.cms.SignerInformation.contentType:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 0 /* signerInformation */
            getfield org.bouncycastle.cms.SignerInformation.content:Lorg/bouncycastle/cms/CMSProcessable;
            aconst_null
         9: .line 698
            invokespecial org.bouncycastle.cms.SignerInformation.<init>:(Lorg/bouncycastle/asn1/cms/SignerInfo;Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/cms/CMSProcessable;[B)V
            areturn
        end local 3 // org.bouncycastle.asn1.ASN1Set unsignedAttr
        end local 2 // org.bouncycastle.asn1.cms.SignerInfo sInfo
        end local 1 // org.bouncycastle.asn1.cms.AttributeTable unsignedAttributes
        end local 0 // org.bouncycastle.cms.SignerInformation signerInformation
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   10     0   signerInformation  Lorg/bouncycastle/cms/SignerInformation;
            0   10     1  unsignedAttributes  Lorg/bouncycastle/asn1/cms/AttributeTable;
            1   10     2               sInfo  Lorg/bouncycastle/asn1/cms/SignerInfo;
            2   10     3        unsignedAttr  Lorg/bouncycastle/asn1/ASN1Set;
    MethodParameters:
                    Name  Flags
      signerInformation   
      unsignedAttributes  

  public static org.bouncycastle.cms.SignerInformation addCounterSigners(org.bouncycastle.cms.SignerInformation, org.bouncycastle.cms.SignerInformationStore);
    descriptor: (Lorg/bouncycastle/cms/SignerInformation;Lorg/bouncycastle/cms/SignerInformationStore;)Lorg/bouncycastle/cms/SignerInformation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=12, locals=7, args_size=2
        start local 0 // org.bouncycastle.cms.SignerInformation signerInformation
        start local 1 // org.bouncycastle.cms.SignerInformationStore counterSigners
         0: .line 718
            aload 0 /* signerInformation */
            getfield org.bouncycastle.cms.SignerInformation.info:Lorg/bouncycastle/asn1/cms/SignerInfo;
            astore 2 /* sInfo */
        start local 2 // org.bouncycastle.asn1.cms.SignerInfo sInfo
         1: .line 719
            aload 0 /* signerInformation */
            invokevirtual org.bouncycastle.cms.SignerInformation.getUnsignedAttributes:()Lorg/bouncycastle/asn1/cms/AttributeTable;
            astore 3 /* unsignedAttr */
        start local 3 // org.bouncycastle.asn1.cms.AttributeTable unsignedAttr
         2: .line 722
            aload 3 /* unsignedAttr */
            ifnull 5
         3: .line 724
            aload 3 /* unsignedAttr */
            invokevirtual org.bouncycastle.asn1.cms.AttributeTable.toASN1EncodableVector:()Lorg/bouncycastle/asn1/ASN1EncodableVector;
            astore 4 /* v */
        start local 4 // org.bouncycastle.asn1.ASN1EncodableVector v
         4: .line 725
            goto 6
        end local 4 // org.bouncycastle.asn1.ASN1EncodableVector v
         5: .line 728
      StackMap locals: org.bouncycastle.asn1.cms.SignerInfo org.bouncycastle.asn1.cms.AttributeTable
      StackMap stack:
            new org.bouncycastle.asn1.ASN1EncodableVector
            dup
            invokespecial org.bouncycastle.asn1.ASN1EncodableVector.<init>:()V
            astore 4 /* v */
        start local 4 // org.bouncycastle.asn1.ASN1EncodableVector v
         6: .line 731
      StackMap locals: org.bouncycastle.asn1.ASN1EncodableVector
      StackMap stack:
            new org.bouncycastle.asn1.ASN1EncodableVector
            dup
            invokespecial org.bouncycastle.asn1.ASN1EncodableVector.<init>:()V
            astore 5 /* sigs */
        start local 5 // org.bouncycastle.asn1.ASN1EncodableVector sigs
         7: .line 733
            aload 1 /* counterSigners */
            invokevirtual org.bouncycastle.cms.SignerInformationStore.getSigners:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 6 /* it */
        start local 6 // java.util.Iterator it
         8: goto 10
         9: .line 735
      StackMap locals: org.bouncycastle.asn1.ASN1EncodableVector java.util.Iterator
      StackMap stack:
            aload 5 /* sigs */
            aload 6 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.bouncycastle.cms.SignerInformation
            invokevirtual org.bouncycastle.cms.SignerInformation.toASN1Structure:()Lorg/bouncycastle/asn1/cms/SignerInfo;
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
        10: .line 733
      StackMap locals:
      StackMap stack:
            aload 6 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        end local 6 // java.util.Iterator it
        11: .line 738
            aload 4 /* v */
            new org.bouncycastle.asn1.cms.Attribute
            dup
            getstatic org.bouncycastle.asn1.cms.CMSAttributes.counterSignature:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            new org.bouncycastle.asn1.DERSet
            dup
            aload 5 /* sigs */
            invokespecial org.bouncycastle.asn1.DERSet.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
            invokespecial org.bouncycastle.asn1.cms.Attribute.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Set;)V
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
        12: .line 740
            new org.bouncycastle.cms.SignerInformation
            dup
        13: .line 741
            new org.bouncycastle.asn1.cms.SignerInfo
            dup
            aload 2 /* sInfo */
            invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getSID:()Lorg/bouncycastle/asn1/cms/SignerIdentifier;
            aload 2 /* sInfo */
            invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getDigestAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
        14: .line 742
            aload 2 /* sInfo */
            invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getAuthenticatedAttributes:()Lorg/bouncycastle/asn1/ASN1Set;
            aload 2 /* sInfo */
            invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getDigestEncryptionAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            aload 2 /* sInfo */
            invokevirtual org.bouncycastle.asn1.cms.SignerInfo.getEncryptedDigest:()Lorg/bouncycastle/asn1/ASN1OctetString;
            new org.bouncycastle.asn1.DERSet
            dup
            aload 4 /* v */
            invokespecial org.bouncycastle.asn1.DERSet.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
        15: .line 741
            invokespecial org.bouncycastle.asn1.cms.SignerInfo.<init>:(Lorg/bouncycastle/asn1/cms/SignerIdentifier;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/ASN1Set;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/ASN1OctetString;Lorg/bouncycastle/asn1/ASN1Set;)V
        16: .line 743
            aload 0 /* signerInformation */
            getfield org.bouncycastle.cms.SignerInformation.contentType:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 0 /* signerInformation */
            getfield org.bouncycastle.cms.SignerInformation.content:Lorg/bouncycastle/cms/CMSProcessable;
            aconst_null
        17: .line 740
            invokespecial org.bouncycastle.cms.SignerInformation.<init>:(Lorg/bouncycastle/asn1/cms/SignerInfo;Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/cms/CMSProcessable;[B)V
            areturn
        end local 5 // org.bouncycastle.asn1.ASN1EncodableVector sigs
        end local 4 // org.bouncycastle.asn1.ASN1EncodableVector v
        end local 3 // org.bouncycastle.asn1.cms.AttributeTable unsignedAttr
        end local 2 // org.bouncycastle.asn1.cms.SignerInfo sInfo
        end local 1 // org.bouncycastle.cms.SignerInformationStore counterSigners
        end local 0 // org.bouncycastle.cms.SignerInformation signerInformation
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   18     0  signerInformation  Lorg/bouncycastle/cms/SignerInformation;
            0   18     1     counterSigners  Lorg/bouncycastle/cms/SignerInformationStore;
            1   18     2              sInfo  Lorg/bouncycastle/asn1/cms/SignerInfo;
            2   18     3       unsignedAttr  Lorg/bouncycastle/asn1/cms/AttributeTable;
            4    5     4                  v  Lorg/bouncycastle/asn1/ASN1EncodableVector;
            6   18     4                  v  Lorg/bouncycastle/asn1/ASN1EncodableVector;
            7   18     5               sigs  Lorg/bouncycastle/asn1/ASN1EncodableVector;
            8   11     6                 it  Ljava/util/Iterator;
    MethodParameters:
                   Name  Flags
      signerInformation  
      counterSigners     
}
SourceFile: "SignerInformation.java"