class org.bouncycastle.tsp.cms.TimeStampDataUtil
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.bouncycastle.tsp.cms.TimeStampDataUtil
  super_class: java.lang.Object
{
  private final org.bouncycastle.asn1.cms.TimeStampAndCRL[] timeStamps;
    descriptor: [Lorg/bouncycastle/asn1/cms/TimeStampAndCRL;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.bouncycastle.tsp.cms.MetaDataUtil metaDataUtil;
    descriptor: Lorg/bouncycastle/tsp/cms/MetaDataUtil;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(org.bouncycastle.asn1.cms.TimeStampedData);
    descriptor: (Lorg/bouncycastle/asn1/cms/TimeStampedData;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.bouncycastle.tsp.cms.TimeStampDataUtil this
        start local 1 // org.bouncycastle.asn1.cms.TimeStampedData timeStampedData
         0: .line 30
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 32
            aload 0 /* this */
            new org.bouncycastle.tsp.cms.MetaDataUtil
            dup
            aload 1 /* timeStampedData */
            invokevirtual org.bouncycastle.asn1.cms.TimeStampedData.getMetaData:()Lorg/bouncycastle/asn1/cms/MetaData;
            invokespecial org.bouncycastle.tsp.cms.MetaDataUtil.<init>:(Lorg/bouncycastle/asn1/cms/MetaData;)V
            putfield org.bouncycastle.tsp.cms.TimeStampDataUtil.metaDataUtil:Lorg/bouncycastle/tsp/cms/MetaDataUtil;
         2: .line 34
            aload 1 /* timeStampedData */
            invokevirtual org.bouncycastle.asn1.cms.TimeStampedData.getTemporalEvidence:()Lorg/bouncycastle/asn1/cms/Evidence;
            astore 2 /* evidence */
        start local 2 // org.bouncycastle.asn1.cms.Evidence evidence
         3: .line 35
            aload 0 /* this */
            aload 2 /* evidence */
            invokevirtual org.bouncycastle.asn1.cms.Evidence.getTstEvidence:()Lorg/bouncycastle/asn1/cms/TimeStampTokenEvidence;
            invokevirtual org.bouncycastle.asn1.cms.TimeStampTokenEvidence.toTimeStampAndCRLArray:()[Lorg/bouncycastle/asn1/cms/TimeStampAndCRL;
            putfield org.bouncycastle.tsp.cms.TimeStampDataUtil.timeStamps:[Lorg/bouncycastle/asn1/cms/TimeStampAndCRL;
         4: .line 36
            return
        end local 2 // org.bouncycastle.asn1.cms.Evidence evidence
        end local 1 // org.bouncycastle.asn1.cms.TimeStampedData timeStampedData
        end local 0 // org.bouncycastle.tsp.cms.TimeStampDataUtil this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lorg/bouncycastle/tsp/cms/TimeStampDataUtil;
            0    5     1  timeStampedData  Lorg/bouncycastle/asn1/cms/TimeStampedData;
            3    5     2         evidence  Lorg/bouncycastle/asn1/cms/Evidence;
    MethodParameters:
                 Name  Flags
      timeStampedData  

  void <init>(org.bouncycastle.asn1.cms.TimeStampedDataParser);
    descriptor: (Lorg/bouncycastle/asn1/cms/TimeStampedDataParser;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.bouncycastle.tsp.cms.TimeStampDataUtil this
        start local 1 // org.bouncycastle.asn1.cms.TimeStampedDataParser timeStampedData
         0: .line 38
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 41
            aload 0 /* this */
            new org.bouncycastle.tsp.cms.MetaDataUtil
            dup
            aload 1 /* timeStampedData */
            invokevirtual org.bouncycastle.asn1.cms.TimeStampedDataParser.getMetaData:()Lorg/bouncycastle/asn1/cms/MetaData;
            invokespecial org.bouncycastle.tsp.cms.MetaDataUtil.<init>:(Lorg/bouncycastle/asn1/cms/MetaData;)V
            putfield org.bouncycastle.tsp.cms.TimeStampDataUtil.metaDataUtil:Lorg/bouncycastle/tsp/cms/MetaDataUtil;
         2: .line 43
            aload 1 /* timeStampedData */
            invokevirtual org.bouncycastle.asn1.cms.TimeStampedDataParser.getTemporalEvidence:()Lorg/bouncycastle/asn1/cms/Evidence;
            astore 2 /* evidence */
        start local 2 // org.bouncycastle.asn1.cms.Evidence evidence
         3: .line 44
            aload 0 /* this */
            aload 2 /* evidence */
            invokevirtual org.bouncycastle.asn1.cms.Evidence.getTstEvidence:()Lorg/bouncycastle/asn1/cms/TimeStampTokenEvidence;
            invokevirtual org.bouncycastle.asn1.cms.TimeStampTokenEvidence.toTimeStampAndCRLArray:()[Lorg/bouncycastle/asn1/cms/TimeStampAndCRL;
            putfield org.bouncycastle.tsp.cms.TimeStampDataUtil.timeStamps:[Lorg/bouncycastle/asn1/cms/TimeStampAndCRL;
         4: .line 45
            return
        end local 2 // org.bouncycastle.asn1.cms.Evidence evidence
        end local 1 // org.bouncycastle.asn1.cms.TimeStampedDataParser timeStampedData
        end local 0 // org.bouncycastle.tsp.cms.TimeStampDataUtil this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lorg/bouncycastle/tsp/cms/TimeStampDataUtil;
            0    5     1  timeStampedData  Lorg/bouncycastle/asn1/cms/TimeStampedDataParser;
            3    5     2         evidence  Lorg/bouncycastle/asn1/cms/Evidence;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                 Name  Flags
      timeStampedData  

  org.bouncycastle.tsp.TimeStampToken getTimeStampToken(org.bouncycastle.asn1.cms.TimeStampAndCRL);
    descriptor: (Lorg/bouncycastle/asn1/cms/TimeStampAndCRL;)Lorg/bouncycastle/tsp/TimeStampToken;
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.bouncycastle.tsp.cms.TimeStampDataUtil this
        start local 1 // org.bouncycastle.asn1.cms.TimeStampAndCRL timeStampAndCRL
         0: .line 50
            aload 1 /* timeStampAndCRL */
            invokevirtual org.bouncycastle.asn1.cms.TimeStampAndCRL.getTimeStampToken:()Lorg/bouncycastle/asn1/cms/ContentInfo;
            astore 2 /* timeStampToken */
        start local 2 // org.bouncycastle.asn1.cms.ContentInfo timeStampToken
         1: .line 54
            new org.bouncycastle.tsp.TimeStampToken
            dup
            aload 2 /* timeStampToken */
            invokespecial org.bouncycastle.tsp.TimeStampToken.<init>:(Lorg/bouncycastle/asn1/cms/ContentInfo;)V
            astore 3 /* token */
        start local 3 // org.bouncycastle.tsp.TimeStampToken token
         2: .line 55
            aload 3 /* token */
         3: areturn
        end local 3 // org.bouncycastle.tsp.TimeStampToken token
         4: .line 57
      StackMap locals: org.bouncycastle.tsp.cms.TimeStampDataUtil org.bouncycastle.asn1.cms.TimeStampAndCRL org.bouncycastle.asn1.cms.ContentInfo
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
         5: .line 59
            new org.bouncycastle.cms.CMSException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unable to parse token data: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* e */
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 3 // java.io.IOException e
         6: .line 61
      StackMap locals:
      StackMap stack: org.bouncycastle.tsp.TSPException
            astore 3 /* e */
        start local 3 // org.bouncycastle.tsp.TSPException e
         7: .line 63
            aload 3 /* e */
            invokevirtual org.bouncycastle.tsp.TSPException.getCause:()Ljava/lang/Throwable;
            instanceof org.bouncycastle.cms.CMSException
            ifeq 9
         8: .line 65
            aload 3 /* e */
            invokevirtual org.bouncycastle.tsp.TSPException.getCause:()Ljava/lang/Throwable;
            checkcast org.bouncycastle.cms.CMSException
            athrow
         9: .line 68
      StackMap locals: org.bouncycastle.tsp.TSPException
      StackMap stack:
            new org.bouncycastle.cms.CMSException
            dup
            new java.lang.StringBuilder
            dup
            ldc "token data invalid: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* e */
            invokevirtual org.bouncycastle.tsp.TSPException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* e */
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 3 // org.bouncycastle.tsp.TSPException e
        10: .line 70
      StackMap locals: org.bouncycastle.tsp.cms.TimeStampDataUtil org.bouncycastle.asn1.cms.TimeStampAndCRL org.bouncycastle.asn1.cms.ContentInfo
      StackMap stack: java.lang.IllegalArgumentException
            astore 3 /* e */
        start local 3 // java.lang.IllegalArgumentException e
        11: .line 72
            new org.bouncycastle.cms.CMSException
            dup
            new java.lang.StringBuilder
            dup
            ldc "token data invalid: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* e */
            invokevirtual java.lang.IllegalArgumentException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* e */
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 3 // java.lang.IllegalArgumentException e
        end local 2 // org.bouncycastle.asn1.cms.ContentInfo timeStampToken
        end local 1 // org.bouncycastle.asn1.cms.TimeStampAndCRL timeStampAndCRL
        end local 0 // org.bouncycastle.tsp.cms.TimeStampDataUtil this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   12     0             this  Lorg/bouncycastle/tsp/cms/TimeStampDataUtil;
            0   12     1  timeStampAndCRL  Lorg/bouncycastle/asn1/cms/TimeStampAndCRL;
            1   12     2   timeStampToken  Lorg/bouncycastle/asn1/cms/ContentInfo;
            2    4     3            token  Lorg/bouncycastle/tsp/TimeStampToken;
            5    6     3                e  Ljava/io/IOException;
            7   10     3                e  Lorg/bouncycastle/tsp/TSPException;
           11   12     3                e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
           1     3       4  Class java.io.IOException
           1     3       6  Class org.bouncycastle.tsp.TSPException
           1     3      10  Class java.lang.IllegalArgumentException
    Exceptions:
      throws org.bouncycastle.cms.CMSException
    MethodParameters:
                 Name  Flags
      timeStampAndCRL  

  void initialiseMessageImprintDigestCalculator(org.bouncycastle.operator.DigestCalculator);
    descriptor: (Lorg/bouncycastle/operator/DigestCalculator;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.tsp.cms.TimeStampDataUtil this
        start local 1 // org.bouncycastle.operator.DigestCalculator calculator
         0: .line 79
            aload 0 /* this */
            getfield org.bouncycastle.tsp.cms.TimeStampDataUtil.metaDataUtil:Lorg/bouncycastle/tsp/cms/MetaDataUtil;
            aload 1 /* calculator */
            invokevirtual org.bouncycastle.tsp.cms.MetaDataUtil.initialiseMessageImprintDigestCalculator:(Lorg/bouncycastle/operator/DigestCalculator;)V
         1: .line 80
            return
        end local 1 // org.bouncycastle.operator.DigestCalculator calculator
        end local 0 // org.bouncycastle.tsp.cms.TimeStampDataUtil this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/bouncycastle/tsp/cms/TimeStampDataUtil;
            0    2     1  calculator  Lorg/bouncycastle/operator/DigestCalculator;
    Exceptions:
      throws org.bouncycastle.cms.CMSException
    MethodParameters:
            Name  Flags
      calculator  

  org.bouncycastle.operator.DigestCalculator getMessageImprintDigestCalculator(org.bouncycastle.operator.DigestCalculatorProvider);
    descriptor: (Lorg/bouncycastle/operator/DigestCalculatorProvider;)Lorg/bouncycastle/operator/DigestCalculator;
    flags: (0x0000) 
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.bouncycastle.tsp.cms.TimeStampDataUtil this
        start local 1 // org.bouncycastle.operator.DigestCalculatorProvider calculatorProvider
         0: .line 89
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.tsp.cms.TimeStampDataUtil.timeStamps:[Lorg/bouncycastle/asn1/cms/TimeStampAndCRL;
            iconst_0
            aaload
            invokevirtual org.bouncycastle.tsp.cms.TimeStampDataUtil.getTimeStampToken:(Lorg/bouncycastle/asn1/cms/TimeStampAndCRL;)Lorg/bouncycastle/tsp/TimeStampToken;
            astore 2 /* token */
        start local 2 // org.bouncycastle.tsp.TimeStampToken token
         1: .line 91
            aload 2 /* token */
            invokevirtual org.bouncycastle.tsp.TimeStampToken.getTimeStampInfo:()Lorg/bouncycastle/tsp/TimeStampTokenInfo;
            astore 3 /* info */
        start local 3 // org.bouncycastle.tsp.TimeStampTokenInfo info
         2: .line 92
            aload 3 /* info */
            invokevirtual org.bouncycastle.tsp.TimeStampTokenInfo.getMessageImprintAlgOID:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            astore 4 /* algOID */
        start local 4 // org.bouncycastle.asn1.ASN1ObjectIdentifier algOID
         3: .line 94
            aload 1 /* calculatorProvider */
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            aload 4 /* algOID */
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)V
            invokeinterface org.bouncycastle.operator.DigestCalculatorProvider.get:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Lorg/bouncycastle/operator/DigestCalculator;
            astore 5 /* calc */
        start local 5 // org.bouncycastle.operator.DigestCalculator calc
         4: .line 96
            aload 0 /* this */
            aload 5 /* calc */
            invokevirtual org.bouncycastle.tsp.cms.TimeStampDataUtil.initialiseMessageImprintDigestCalculator:(Lorg/bouncycastle/operator/DigestCalculator;)V
         5: .line 98
            aload 5 /* calc */
         6: areturn
        end local 5 // org.bouncycastle.operator.DigestCalculator calc
        end local 4 // org.bouncycastle.asn1.ASN1ObjectIdentifier algOID
        end local 3 // org.bouncycastle.tsp.TimeStampTokenInfo info
        end local 2 // org.bouncycastle.tsp.TimeStampToken token
         7: .line 100
      StackMap locals:
      StackMap stack: org.bouncycastle.cms.CMSException
            astore 3 /* e */
        start local 3 // org.bouncycastle.cms.CMSException e
         8: .line 102
            new org.bouncycastle.operator.OperatorCreationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unable to extract algorithm ID: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* e */
            invokevirtual org.bouncycastle.cms.CMSException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* e */
            invokespecial org.bouncycastle.operator.OperatorCreationException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // org.bouncycastle.cms.CMSException e
        end local 1 // org.bouncycastle.operator.DigestCalculatorProvider calculatorProvider
        end local 0 // org.bouncycastle.tsp.cms.TimeStampDataUtil this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    9     0                this  Lorg/bouncycastle/tsp/cms/TimeStampDataUtil;
            0    9     1  calculatorProvider  Lorg/bouncycastle/operator/DigestCalculatorProvider;
            1    7     2               token  Lorg/bouncycastle/tsp/TimeStampToken;
            2    7     3                info  Lorg/bouncycastle/tsp/TimeStampTokenInfo;
            3    7     4              algOID  Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            4    7     5                calc  Lorg/bouncycastle/operator/DigestCalculator;
            8    9     3                   e  Lorg/bouncycastle/cms/CMSException;
      Exception table:
        from    to  target  type
           0     6       7  Class org.bouncycastle.cms.CMSException
    Exceptions:
      throws org.bouncycastle.operator.OperatorCreationException
    MethodParameters:
                    Name  Flags
      calculatorProvider  

  org.bouncycastle.tsp.TimeStampToken[] getTimeStampTokens();
    descriptor: ()[Lorg/bouncycastle/tsp/TimeStampToken;
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.bouncycastle.tsp.cms.TimeStampDataUtil this
         0: .line 109
            aload 0 /* this */
            getfield org.bouncycastle.tsp.cms.TimeStampDataUtil.timeStamps:[Lorg/bouncycastle/asn1/cms/TimeStampAndCRL;
            arraylength
            anewarray org.bouncycastle.tsp.TimeStampToken
            astore 1 /* tokens */
        start local 1 // org.bouncycastle.tsp.TimeStampToken[] tokens
         1: .line 110
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 112
      StackMap locals: org.bouncycastle.tsp.TimeStampToken[] int
      StackMap stack:
            aload 1 /* tokens */
            iload 2 /* i */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.tsp.cms.TimeStampDataUtil.timeStamps:[Lorg/bouncycastle/asn1/cms/TimeStampAndCRL;
            iload 2 /* i */
            aaload
            invokevirtual org.bouncycastle.tsp.cms.TimeStampDataUtil.getTimeStampToken:(Lorg/bouncycastle/asn1/cms/TimeStampAndCRL;)Lorg/bouncycastle/tsp/TimeStampToken;
            aastore
         4: .line 110
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* this */
            getfield org.bouncycastle.tsp.cms.TimeStampDataUtil.timeStamps:[Lorg/bouncycastle/asn1/cms/TimeStampAndCRL;
            arraylength
            if_icmplt 3
        end local 2 // int i
         6: .line 115
            aload 1 /* tokens */
            areturn
        end local 1 // org.bouncycastle.tsp.TimeStampToken[] tokens
        end local 0 // org.bouncycastle.tsp.cms.TimeStampDataUtil this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/bouncycastle/tsp/cms/TimeStampDataUtil;
            1    7     1  tokens  [Lorg/bouncycastle/tsp/TimeStampToken;
            2    6     2       i  I
    Exceptions:
      throws org.bouncycastle.cms.CMSException

  org.bouncycastle.asn1.cms.TimeStampAndCRL[] getTimeStamps();
    descriptor: ()[Lorg/bouncycastle/asn1/cms/TimeStampAndCRL;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.tsp.cms.TimeStampDataUtil this
         0: .line 120
            aload 0 /* this */
            getfield org.bouncycastle.tsp.cms.TimeStampDataUtil.timeStamps:[Lorg/bouncycastle/asn1/cms/TimeStampAndCRL;
            areturn
        end local 0 // org.bouncycastle.tsp.cms.TimeStampDataUtil this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/tsp/cms/TimeStampDataUtil;

  byte[] calculateNextHash(org.bouncycastle.operator.DigestCalculator);
    descriptor: (Lorg/bouncycastle/operator/DigestCalculator;)[B
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.bouncycastle.tsp.cms.TimeStampDataUtil this
        start local 1 // org.bouncycastle.operator.DigestCalculator calculator
         0: .line 126
            aload 0 /* this */
            getfield org.bouncycastle.tsp.cms.TimeStampDataUtil.timeStamps:[Lorg/bouncycastle/asn1/cms/TimeStampAndCRL;
            aload 0 /* this */
            getfield org.bouncycastle.tsp.cms.TimeStampDataUtil.timeStamps:[Lorg/bouncycastle/asn1/cms/TimeStampAndCRL;
            arraylength
            iconst_1
            isub
            aaload
            astore 2 /* tspToken */
        start local 2 // org.bouncycastle.asn1.cms.TimeStampAndCRL tspToken
         1: .line 128
            aload 1 /* calculator */
            invokeinterface org.bouncycastle.operator.DigestCalculator.getOutputStream:()Ljava/io/OutputStream;
            astore 3 /* out */
        start local 3 // java.io.OutputStream out
         2: .line 132
            aload 3 /* out */
            aload 2 /* tspToken */
            ldc "DER"
            invokevirtual org.bouncycastle.asn1.cms.TimeStampAndCRL.getEncoded:(Ljava/lang/String;)[B
            invokevirtual java.io.OutputStream.write:([B)V
         3: .line 134
            aload 3 /* out */
            invokevirtual java.io.OutputStream.close:()V
         4: .line 136
            aload 1 /* calculator */
            invokeinterface org.bouncycastle.operator.DigestCalculator.getDigest:()[B
         5: areturn
         6: .line 138
      StackMap locals: org.bouncycastle.tsp.cms.TimeStampDataUtil org.bouncycastle.operator.DigestCalculator org.bouncycastle.asn1.cms.TimeStampAndCRL java.io.OutputStream
      StackMap stack: java.io.IOException
            astore 4 /* e */
        start local 4 // java.io.IOException e
         7: .line 140
            new org.bouncycastle.cms.CMSException
            dup
            new java.lang.StringBuilder
            dup
            ldc "exception calculating hash: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 4 /* e */
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 4 // java.io.IOException e
        end local 3 // java.io.OutputStream out
        end local 2 // org.bouncycastle.asn1.cms.TimeStampAndCRL tspToken
        end local 1 // org.bouncycastle.operator.DigestCalculator calculator
        end local 0 // org.bouncycastle.tsp.cms.TimeStampDataUtil this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lorg/bouncycastle/tsp/cms/TimeStampDataUtil;
            0    8     1  calculator  Lorg/bouncycastle/operator/DigestCalculator;
            1    8     2    tspToken  Lorg/bouncycastle/asn1/cms/TimeStampAndCRL;
            2    8     3         out  Ljava/io/OutputStream;
            7    8     4           e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     5       6  Class java.io.IOException
    Exceptions:
      throws org.bouncycastle.cms.CMSException
    MethodParameters:
            Name  Flags
      calculator  

  void validate(org.bouncycastle.operator.DigestCalculatorProvider, byte[]);
    descriptor: (Lorg/bouncycastle/operator/DigestCalculatorProvider;[B)V
    flags: (0x0000) 
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // org.bouncycastle.tsp.cms.TimeStampDataUtil this
        start local 1 // org.bouncycastle.operator.DigestCalculatorProvider calculatorProvider
        start local 2 // byte[] dataDigest
         0: .line 150
            aload 2 /* dataDigest */
            astore 3 /* currentDigest */
        start local 3 // byte[] currentDigest
         1: .line 152
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 16
         3: .line 156
      StackMap locals: byte[] int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.tsp.cms.TimeStampDataUtil.timeStamps:[Lorg/bouncycastle/asn1/cms/TimeStampAndCRL;
            iload 4 /* i */
            aaload
            invokevirtual org.bouncycastle.tsp.cms.TimeStampDataUtil.getTimeStampToken:(Lorg/bouncycastle/asn1/cms/TimeStampAndCRL;)Lorg/bouncycastle/tsp/TimeStampToken;
            astore 5 /* token */
        start local 5 // org.bouncycastle.tsp.TimeStampToken token
         4: .line 157
            iload 4 /* i */
            ifle 9
         5: .line 159
            aload 5 /* token */
            invokevirtual org.bouncycastle.tsp.TimeStampToken.getTimeStampInfo:()Lorg/bouncycastle/tsp/TimeStampTokenInfo;
            astore 6 /* info */
        start local 6 // org.bouncycastle.tsp.TimeStampTokenInfo info
         6: .line 160
            aload 1 /* calculatorProvider */
            aload 6 /* info */
            invokevirtual org.bouncycastle.tsp.TimeStampTokenInfo.getHashAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokeinterface org.bouncycastle.operator.DigestCalculatorProvider.get:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Lorg/bouncycastle/operator/DigestCalculator;
            astore 7 /* calculator */
        start local 7 // org.bouncycastle.operator.DigestCalculator calculator
         7: .line 162
            aload 7 /* calculator */
            invokeinterface org.bouncycastle.operator.DigestCalculator.getOutputStream:()Ljava/io/OutputStream;
            aload 0 /* this */
            getfield org.bouncycastle.tsp.cms.TimeStampDataUtil.timeStamps:[Lorg/bouncycastle/asn1/cms/TimeStampAndCRL;
            iload 4 /* i */
            iconst_1
            isub
            aaload
            ldc "DER"
            invokevirtual org.bouncycastle.asn1.cms.TimeStampAndCRL.getEncoded:(Ljava/lang/String;)[B
            invokevirtual java.io.OutputStream.write:([B)V
         8: .line 164
            aload 7 /* calculator */
            invokeinterface org.bouncycastle.operator.DigestCalculator.getDigest:()[B
            astore 3 /* currentDigest */
        end local 7 // org.bouncycastle.operator.DigestCalculator calculator
        end local 6 // org.bouncycastle.tsp.TimeStampTokenInfo info
         9: .line 167
      StackMap locals: org.bouncycastle.tsp.TimeStampToken
      StackMap stack:
            aload 0 /* this */
            aload 5 /* token */
            aload 3 /* currentDigest */
            invokevirtual org.bouncycastle.tsp.cms.TimeStampDataUtil.compareDigest:(Lorg/bouncycastle/tsp/TimeStampToken;[B)V
        end local 5 // org.bouncycastle.tsp.TimeStampToken token
        10: .line 168
            goto 15
        11: .line 169
      StackMap locals: org.bouncycastle.tsp.cms.TimeStampDataUtil org.bouncycastle.operator.DigestCalculatorProvider byte[] byte[] int
      StackMap stack: java.io.IOException
            astore 5 /* e */
        start local 5 // java.io.IOException e
        12: .line 171
            new org.bouncycastle.cms.CMSException
            dup
            new java.lang.StringBuilder
            dup
            ldc "exception calculating hash: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 5 /* e */
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 5 // java.io.IOException e
        13: .line 173
      StackMap locals:
      StackMap stack: org.bouncycastle.operator.OperatorCreationException
            astore 5 /* e */
        start local 5 // org.bouncycastle.operator.OperatorCreationException e
        14: .line 175
            new org.bouncycastle.cms.CMSException
            dup
            new java.lang.StringBuilder
            dup
            ldc "cannot create digest: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* 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 5 /* e */
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 5 // org.bouncycastle.operator.OperatorCreationException e
        15: .line 152
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 4 /* i */
            aload 0 /* this */
            getfield org.bouncycastle.tsp.cms.TimeStampDataUtil.timeStamps:[Lorg/bouncycastle/asn1/cms/TimeStampAndCRL;
            arraylength
            if_icmplt 3
        end local 4 // int i
        17: .line 178
            return
        end local 3 // byte[] currentDigest
        end local 2 // byte[] dataDigest
        end local 1 // org.bouncycastle.operator.DigestCalculatorProvider calculatorProvider
        end local 0 // org.bouncycastle.tsp.cms.TimeStampDataUtil this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   18     0                this  Lorg/bouncycastle/tsp/cms/TimeStampDataUtil;
            0   18     1  calculatorProvider  Lorg/bouncycastle/operator/DigestCalculatorProvider;
            0   18     2          dataDigest  [B
            1   18     3       currentDigest  [B
            2   17     4                   i  I
            4   10     5               token  Lorg/bouncycastle/tsp/TimeStampToken;
            6    9     6                info  Lorg/bouncycastle/tsp/TimeStampTokenInfo;
            7    9     7          calculator  Lorg/bouncycastle/operator/DigestCalculator;
           12   13     5                   e  Ljava/io/IOException;
           14   15     5                   e  Lorg/bouncycastle/operator/OperatorCreationException;
      Exception table:
        from    to  target  type
           3    10      11  Class java.io.IOException
           3    10      13  Class org.bouncycastle.operator.OperatorCreationException
    Exceptions:
      throws org.bouncycastle.tsp.cms.ImprintDigestInvalidException, org.bouncycastle.cms.CMSException
    MethodParameters:
                    Name  Flags
      calculatorProvider  
      dataDigest          

  void validate(org.bouncycastle.operator.DigestCalculatorProvider, byte[], org.bouncycastle.tsp.TimeStampToken);
    descriptor: (Lorg/bouncycastle/operator/DigestCalculatorProvider;[BLorg/bouncycastle/tsp/TimeStampToken;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // org.bouncycastle.tsp.cms.TimeStampDataUtil this
        start local 1 // org.bouncycastle.operator.DigestCalculatorProvider calculatorProvider
        start local 2 // byte[] dataDigest
        start local 3 // org.bouncycastle.tsp.TimeStampToken timeStampToken
         0: .line 183
            aload 2 /* dataDigest */
            astore 4 /* currentDigest */
        start local 4 // byte[] currentDigest
         1: .line 188
            aload 3 /* timeStampToken */
            invokevirtual org.bouncycastle.tsp.TimeStampToken.getEncoded:()[B
            astore 5 /* encToken */
        start local 5 // byte[] encToken
         2: .line 189
            goto 5
        end local 5 // byte[] encToken
         3: .line 190
      StackMap locals: org.bouncycastle.tsp.cms.TimeStampDataUtil org.bouncycastle.operator.DigestCalculatorProvider byte[] org.bouncycastle.tsp.TimeStampToken byte[]
      StackMap stack: java.io.IOException
            astore 6 /* e */
        start local 6 // java.io.IOException e
         4: .line 192
            new org.bouncycastle.cms.CMSException
            dup
            new java.lang.StringBuilder
            dup
            ldc "exception encoding timeStampToken: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 6 /* e */
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 6 // java.io.IOException e
        start local 5 // byte[] encToken
         5: .line 195
      StackMap locals: byte[]
      StackMap stack:
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         6: goto 21
         7: .line 199
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.tsp.cms.TimeStampDataUtil.timeStamps:[Lorg/bouncycastle/asn1/cms/TimeStampAndCRL;
            iload 6 /* i */
            aaload
            invokevirtual org.bouncycastle.tsp.cms.TimeStampDataUtil.getTimeStampToken:(Lorg/bouncycastle/asn1/cms/TimeStampAndCRL;)Lorg/bouncycastle/tsp/TimeStampToken;
            astore 7 /* token */
        start local 7 // org.bouncycastle.tsp.TimeStampToken token
         8: .line 200
            iload 6 /* i */
            ifle 13
         9: .line 202
            aload 7 /* token */
            invokevirtual org.bouncycastle.tsp.TimeStampToken.getTimeStampInfo:()Lorg/bouncycastle/tsp/TimeStampTokenInfo;
            astore 8 /* info */
        start local 8 // org.bouncycastle.tsp.TimeStampTokenInfo info
        10: .line 203
            aload 1 /* calculatorProvider */
            aload 8 /* info */
            invokevirtual org.bouncycastle.tsp.TimeStampTokenInfo.getHashAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokeinterface org.bouncycastle.operator.DigestCalculatorProvider.get:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Lorg/bouncycastle/operator/DigestCalculator;
            astore 9 /* calculator */
        start local 9 // org.bouncycastle.operator.DigestCalculator calculator
        11: .line 205
            aload 9 /* calculator */
            invokeinterface org.bouncycastle.operator.DigestCalculator.getOutputStream:()Ljava/io/OutputStream;
            aload 0 /* this */
            getfield org.bouncycastle.tsp.cms.TimeStampDataUtil.timeStamps:[Lorg/bouncycastle/asn1/cms/TimeStampAndCRL;
            iload 6 /* i */
            iconst_1
            isub
            aaload
            ldc "DER"
            invokevirtual org.bouncycastle.asn1.cms.TimeStampAndCRL.getEncoded:(Ljava/lang/String;)[B
            invokevirtual java.io.OutputStream.write:([B)V
        12: .line 207
            aload 9 /* calculator */
            invokeinterface org.bouncycastle.operator.DigestCalculator.getDigest:()[B
            astore 4 /* currentDigest */
        end local 9 // org.bouncycastle.operator.DigestCalculator calculator
        end local 8 // org.bouncycastle.tsp.TimeStampTokenInfo info
        13: .line 210
      StackMap locals: org.bouncycastle.tsp.TimeStampToken
      StackMap stack:
            aload 0 /* this */
            aload 7 /* token */
            aload 4 /* currentDigest */
            invokevirtual org.bouncycastle.tsp.cms.TimeStampDataUtil.compareDigest:(Lorg/bouncycastle/tsp/TimeStampToken;[B)V
        14: .line 212
            aload 7 /* token */
            invokevirtual org.bouncycastle.tsp.TimeStampToken.getEncoded:()[B
            aload 5 /* encToken */
            invokestatic org.bouncycastle.util.Arrays.areEqual:([B[B)Z
            ifeq 20
        15: .line 214
            return
        end local 7 // org.bouncycastle.tsp.TimeStampToken token
        16: .line 217
      StackMap locals: org.bouncycastle.tsp.cms.TimeStampDataUtil org.bouncycastle.operator.DigestCalculatorProvider byte[] org.bouncycastle.tsp.TimeStampToken byte[] byte[] int
      StackMap stack: java.io.IOException
            astore 7 /* e */
        start local 7 // java.io.IOException e
        17: .line 219
            new org.bouncycastle.cms.CMSException
            dup
            new java.lang.StringBuilder
            dup
            ldc "exception calculating hash: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 7 /* e */
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 7 // java.io.IOException e
        18: .line 221
      StackMap locals:
      StackMap stack: org.bouncycastle.operator.OperatorCreationException
            astore 7 /* e */
        start local 7 // org.bouncycastle.operator.OperatorCreationException e
        19: .line 223
            new org.bouncycastle.cms.CMSException
            dup
            new java.lang.StringBuilder
            dup
            ldc "cannot create digest: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* 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 7 /* e */
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 7 // org.bouncycastle.operator.OperatorCreationException e
        20: .line 195
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 6 /* i */
            aload 0 /* this */
            getfield org.bouncycastle.tsp.cms.TimeStampDataUtil.timeStamps:[Lorg/bouncycastle/asn1/cms/TimeStampAndCRL;
            arraylength
            if_icmplt 7
        end local 6 // int i
        22: .line 227
            new org.bouncycastle.tsp.cms.ImprintDigestInvalidException
            dup
            ldc "passed in token not associated with timestamps present"
            aload 3 /* timeStampToken */
            invokespecial org.bouncycastle.tsp.cms.ImprintDigestInvalidException.<init>:(Ljava/lang/String;Lorg/bouncycastle/tsp/TimeStampToken;)V
            athrow
        end local 5 // byte[] encToken
        end local 4 // byte[] currentDigest
        end local 3 // org.bouncycastle.tsp.TimeStampToken timeStampToken
        end local 2 // byte[] dataDigest
        end local 1 // org.bouncycastle.operator.DigestCalculatorProvider calculatorProvider
        end local 0 // org.bouncycastle.tsp.cms.TimeStampDataUtil this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   23     0                this  Lorg/bouncycastle/tsp/cms/TimeStampDataUtil;
            0   23     1  calculatorProvider  Lorg/bouncycastle/operator/DigestCalculatorProvider;
            0   23     2          dataDigest  [B
            0   23     3      timeStampToken  Lorg/bouncycastle/tsp/TimeStampToken;
            1   23     4       currentDigest  [B
            2    3     5            encToken  [B
            5   23     5            encToken  [B
            4    5     6                   e  Ljava/io/IOException;
            6   22     6                   i  I
            8   16     7               token  Lorg/bouncycastle/tsp/TimeStampToken;
           10   13     8                info  Lorg/bouncycastle/tsp/TimeStampTokenInfo;
           11   13     9          calculator  Lorg/bouncycastle/operator/DigestCalculator;
           17   18     7                   e  Ljava/io/IOException;
           19   20     7                   e  Lorg/bouncycastle/operator/OperatorCreationException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.io.IOException
           7    15      16  Class java.io.IOException
           7    15      18  Class org.bouncycastle.operator.OperatorCreationException
    Exceptions:
      throws org.bouncycastle.tsp.cms.ImprintDigestInvalidException, org.bouncycastle.cms.CMSException
    MethodParameters:
                    Name  Flags
      calculatorProvider  
      dataDigest          
      timeStampToken      

  private void compareDigest(org.bouncycastle.tsp.TimeStampToken, byte[]);
    descriptor: (Lorg/bouncycastle/tsp/TimeStampToken;[B)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.bouncycastle.tsp.cms.TimeStampDataUtil this
        start local 1 // org.bouncycastle.tsp.TimeStampToken timeStampToken
        start local 2 // byte[] digest
         0: .line 233
            aload 1 /* timeStampToken */
            invokevirtual org.bouncycastle.tsp.TimeStampToken.getTimeStampInfo:()Lorg/bouncycastle/tsp/TimeStampTokenInfo;
            astore 3 /* info */
        start local 3 // org.bouncycastle.tsp.TimeStampTokenInfo info
         1: .line 234
            aload 3 /* info */
            invokevirtual org.bouncycastle.tsp.TimeStampTokenInfo.getMessageImprintDigest:()[B
            astore 4 /* tsrMessageDigest */
        start local 4 // byte[] tsrMessageDigest
         2: .line 236
            aload 2 /* digest */
            aload 4 /* tsrMessageDigest */
            invokestatic org.bouncycastle.util.Arrays.areEqual:([B[B)Z
            ifne 4
         3: .line 238
            new org.bouncycastle.tsp.cms.ImprintDigestInvalidException
            dup
            ldc "hash calculated is different from MessageImprintDigest found in TimeStampToken"
            aload 1 /* timeStampToken */
            invokespecial org.bouncycastle.tsp.cms.ImprintDigestInvalidException.<init>:(Ljava/lang/String;Lorg/bouncycastle/tsp/TimeStampToken;)V
            athrow
         4: .line 240
      StackMap locals: org.bouncycastle.tsp.TimeStampTokenInfo byte[]
      StackMap stack:
            return
        end local 4 // byte[] tsrMessageDigest
        end local 3 // org.bouncycastle.tsp.TimeStampTokenInfo info
        end local 2 // byte[] digest
        end local 1 // org.bouncycastle.tsp.TimeStampToken timeStampToken
        end local 0 // org.bouncycastle.tsp.cms.TimeStampDataUtil this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0              this  Lorg/bouncycastle/tsp/cms/TimeStampDataUtil;
            0    5     1    timeStampToken  Lorg/bouncycastle/tsp/TimeStampToken;
            0    5     2            digest  [B
            1    5     3              info  Lorg/bouncycastle/tsp/TimeStampTokenInfo;
            2    5     4  tsrMessageDigest  [B
    Exceptions:
      throws org.bouncycastle.tsp.cms.ImprintDigestInvalidException
    MethodParameters:
                Name  Flags
      timeStampToken  
      digest          

  java.lang.String getFileName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.tsp.cms.TimeStampDataUtil this
         0: .line 244
            aload 0 /* this */
            getfield org.bouncycastle.tsp.cms.TimeStampDataUtil.metaDataUtil:Lorg/bouncycastle/tsp/cms/MetaDataUtil;
            invokevirtual org.bouncycastle.tsp.cms.MetaDataUtil.getFileName:()Ljava/lang/String;
            areturn
        end local 0 // org.bouncycastle.tsp.cms.TimeStampDataUtil this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/tsp/cms/TimeStampDataUtil;

  java.lang.String getMediaType();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.tsp.cms.TimeStampDataUtil this
         0: .line 249
            aload 0 /* this */
            getfield org.bouncycastle.tsp.cms.TimeStampDataUtil.metaDataUtil:Lorg/bouncycastle/tsp/cms/MetaDataUtil;
            invokevirtual org.bouncycastle.tsp.cms.MetaDataUtil.getMediaType:()Ljava/lang/String;
            areturn
        end local 0 // org.bouncycastle.tsp.cms.TimeStampDataUtil this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/tsp/cms/TimeStampDataUtil;

  org.bouncycastle.asn1.cms.AttributeTable getOtherMetaData();
    descriptor: ()Lorg/bouncycastle/asn1/cms/AttributeTable;
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bouncycastle.tsp.cms.TimeStampDataUtil this
         0: .line 254
            new org.bouncycastle.asn1.cms.AttributeTable
            dup
            aload 0 /* this */
            getfield org.bouncycastle.tsp.cms.TimeStampDataUtil.metaDataUtil:Lorg/bouncycastle/tsp/cms/MetaDataUtil;
            invokevirtual org.bouncycastle.tsp.cms.MetaDataUtil.getOtherMetaData:()Lorg/bouncycastle/asn1/cms/Attributes;
            invokespecial org.bouncycastle.asn1.cms.AttributeTable.<init>:(Lorg/bouncycastle/asn1/cms/Attributes;)V
            areturn
        end local 0 // org.bouncycastle.tsp.cms.TimeStampDataUtil this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/tsp/cms/TimeStampDataUtil;
}
SourceFile: "TimeStampDataUtil.java"