public class org.bouncycastle.cms.CMSEnvelopedDataParser extends org.bouncycastle.cms.CMSContentInfoParser
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.cms.CMSEnvelopedDataParser
  super_class: org.bouncycastle.cms.CMSContentInfoParser
{
  org.bouncycastle.cms.RecipientInformationStore recipientInfoStore;
    descriptor: Lorg/bouncycastle/cms/RecipientInformationStore;
    flags: (0x0000) 

  org.bouncycastle.asn1.cms.EnvelopedDataParser envelopedData;
    descriptor: Lorg/bouncycastle/asn1/cms/EnvelopedDataParser;
    flags: (0x0000) 

  private org.bouncycastle.asn1.x509.AlgorithmIdentifier encAlg;
    descriptor: Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
    flags: (0x0002) ACC_PRIVATE

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

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

  private org.bouncycastle.cms.OriginatorInformation originatorInfo;
    descriptor: Lorg/bouncycastle/cms/OriginatorInformation;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(byte[]);
    descriptor: ([B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.bouncycastle.cms.CMSEnvelopedDataParser this
        start local 1 // byte[] envelopedData
         0: .line 68
            aload 0 /* this */
            new java.io.ByteArrayInputStream
            dup
            aload 1 /* envelopedData */
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            invokespecial org.bouncycastle.cms.CMSEnvelopedDataParser.<init>:(Ljava/io/InputStream;)V
         1: .line 69
            return
        end local 1 // byte[] envelopedData
        end local 0 // org.bouncycastle.cms.CMSEnvelopedDataParser this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/bouncycastle/cms/CMSEnvelopedDataParser;
            0    2     1  envelopedData  [B
    Exceptions:
      throws org.bouncycastle.cms.CMSException, java.io.IOException
    MethodParameters:
               Name  Flags
      envelopedData  

  public void <init>(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // org.bouncycastle.cms.CMSEnvelopedDataParser this
        start local 1 // java.io.InputStream envelopedData
         0: .line 75
            aload 0 /* this */
            aload 1 /* envelopedData */
            invokespecial org.bouncycastle.cms.CMSContentInfoParser.<init>:(Ljava/io/InputStream;)V
         1: .line 77
            aload 0 /* this */
            iconst_1
            putfield org.bouncycastle.cms.CMSEnvelopedDataParser.attrNotRead:Z
         2: .line 78
            aload 0 /* this */
            new org.bouncycastle.asn1.cms.EnvelopedDataParser
            dup
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSEnvelopedDataParser._contentInfo:Lorg/bouncycastle/asn1/cms/ContentInfoParser;
            bipush 16
            invokevirtual org.bouncycastle.asn1.cms.ContentInfoParser.getContent:(I)Lorg/bouncycastle/asn1/ASN1Encodable;
            checkcast org.bouncycastle.asn1.ASN1SequenceParser
            invokespecial org.bouncycastle.asn1.cms.EnvelopedDataParser.<init>:(Lorg/bouncycastle/asn1/ASN1SequenceParser;)V
            putfield org.bouncycastle.cms.CMSEnvelopedDataParser.envelopedData:Lorg/bouncycastle/asn1/cms/EnvelopedDataParser;
         3: .line 83
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSEnvelopedDataParser.envelopedData:Lorg/bouncycastle/asn1/cms/EnvelopedDataParser;
            invokevirtual org.bouncycastle.asn1.cms.EnvelopedDataParser.getOriginatorInfo:()Lorg/bouncycastle/asn1/cms/OriginatorInfo;
            astore 2 /* info */
        start local 2 // org.bouncycastle.asn1.cms.OriginatorInfo info
         4: .line 85
            aload 2 /* info */
            ifnull 6
         5: .line 87
            aload 0 /* this */
            new org.bouncycastle.cms.OriginatorInformation
            dup
            aload 2 /* info */
            invokespecial org.bouncycastle.cms.OriginatorInformation.<init>:(Lorg/bouncycastle/asn1/cms/OriginatorInfo;)V
            putfield org.bouncycastle.cms.CMSEnvelopedDataParser.originatorInfo:Lorg/bouncycastle/cms/OriginatorInformation;
         6: .line 93
      StackMap locals: org.bouncycastle.cms.CMSEnvelopedDataParser java.io.InputStream org.bouncycastle.asn1.cms.OriginatorInfo
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSEnvelopedDataParser.envelopedData:Lorg/bouncycastle/asn1/cms/EnvelopedDataParser;
            invokevirtual org.bouncycastle.asn1.cms.EnvelopedDataParser.getRecipientInfos:()Lorg/bouncycastle/asn1/ASN1SetParser;
            invokeinterface org.bouncycastle.asn1.ASN1SetParser.toASN1Primitive:()Lorg/bouncycastle/asn1/ASN1Primitive;
            invokestatic org.bouncycastle.asn1.ASN1Set.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/ASN1Set;
            astore 3 /* recipientInfos */
        start local 3 // org.bouncycastle.asn1.ASN1Set recipientInfos
         7: .line 98
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSEnvelopedDataParser.envelopedData:Lorg/bouncycastle/asn1/cms/EnvelopedDataParser;
            invokevirtual org.bouncycastle.asn1.cms.EnvelopedDataParser.getEncryptedContentInfo:()Lorg/bouncycastle/asn1/cms/EncryptedContentInfoParser;
            astore 4 /* encInfo */
        start local 4 // org.bouncycastle.asn1.cms.EncryptedContentInfoParser encInfo
         8: .line 99
            aload 0 /* this */
            aload 4 /* encInfo */
            invokevirtual org.bouncycastle.asn1.cms.EncryptedContentInfoParser.getContentEncryptionAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            putfield org.bouncycastle.cms.CMSEnvelopedDataParser.encAlg:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
         9: .line 100
            new org.bouncycastle.cms.CMSProcessableInputStream
            dup
        10: .line 101
            aload 4 /* encInfo */
            iconst_4
            invokevirtual org.bouncycastle.asn1.cms.EncryptedContentInfoParser.getEncryptedContent:(I)Lorg/bouncycastle/asn1/ASN1Encodable;
            checkcast org.bouncycastle.asn1.ASN1OctetStringParser
            invokeinterface org.bouncycastle.asn1.ASN1OctetStringParser.getOctetStream:()Ljava/io/InputStream;
        11: .line 100
            invokespecial org.bouncycastle.cms.CMSProcessableInputStream.<init>:(Ljava/io/InputStream;)V
            astore 5 /* readable */
        start local 5 // org.bouncycastle.cms.CMSReadable readable
        12: .line 102
            new org.bouncycastle.cms.CMSEnvelopedHelper$CMSEnvelopedSecureReadable
            dup
        13: .line 103
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSEnvelopedDataParser.encAlg:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            aload 5 /* readable */
        14: .line 102
            invokespecial org.bouncycastle.cms.CMSEnvelopedHelper$CMSEnvelopedSecureReadable.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/cms/CMSReadable;)V
            astore 6 /* secureReadable */
        start local 6 // org.bouncycastle.cms.CMSSecureReadable secureReadable
        15: .line 108
            aload 0 /* this */
        16: .line 109
            aload 3 /* recipientInfos */
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSEnvelopedDataParser.encAlg:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            aload 6 /* secureReadable */
        17: .line 108
            invokestatic org.bouncycastle.cms.CMSEnvelopedHelper.buildRecipientInformationStore:(Lorg/bouncycastle/asn1/ASN1Set;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/cms/CMSSecureReadable;)Lorg/bouncycastle/cms/RecipientInformationStore;
            putfield org.bouncycastle.cms.CMSEnvelopedDataParser.recipientInfoStore:Lorg/bouncycastle/cms/RecipientInformationStore;
        18: .line 110
            return
        end local 6 // org.bouncycastle.cms.CMSSecureReadable secureReadable
        end local 5 // org.bouncycastle.cms.CMSReadable readable
        end local 4 // org.bouncycastle.asn1.cms.EncryptedContentInfoParser encInfo
        end local 3 // org.bouncycastle.asn1.ASN1Set recipientInfos
        end local 2 // org.bouncycastle.asn1.cms.OriginatorInfo info
        end local 1 // java.io.InputStream envelopedData
        end local 0 // org.bouncycastle.cms.CMSEnvelopedDataParser this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   19     0            this  Lorg/bouncycastle/cms/CMSEnvelopedDataParser;
            0   19     1   envelopedData  Ljava/io/InputStream;
            4   19     2            info  Lorg/bouncycastle/asn1/cms/OriginatorInfo;
            7   19     3  recipientInfos  Lorg/bouncycastle/asn1/ASN1Set;
            8   19     4         encInfo  Lorg/bouncycastle/asn1/cms/EncryptedContentInfoParser;
           12   19     5        readable  Lorg/bouncycastle/cms/CMSReadable;
           15   19     6  secureReadable  Lorg/bouncycastle/cms/CMSSecureReadable;
    Exceptions:
      throws org.bouncycastle.cms.CMSException, java.io.IOException
    MethodParameters:
               Name  Flags
      envelopedData  

  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.CMSEnvelopedDataParser this
         0: .line 117
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSEnvelopedDataParser.encAlg:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.bouncycastle.cms.CMSEnvelopedDataParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cms/CMSEnvelopedDataParser;

  public byte[] getEncryptionAlgParams();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.bouncycastle.cms.CMSEnvelopedDataParser this
         0: .line 128
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSEnvelopedDataParser.encAlg:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/ASN1Encodable;
            invokevirtual org.bouncycastle.cms.CMSEnvelopedDataParser.encodeObj:(Lorg/bouncycastle/asn1/ASN1Encodable;)[B
         1: areturn
         2: .line 130
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
         3: .line 132
            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.CMSEnvelopedDataParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bouncycastle/cms/CMSEnvelopedDataParser;
            3    4     1     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception

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

  public org.bouncycastle.cms.OriginatorInformation getOriginatorInfo();
    descriptor: ()Lorg/bouncycastle/cms/OriginatorInformation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cms.CMSEnvelopedDataParser this
         0: .line 153
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSEnvelopedDataParser.originatorInfo:Lorg/bouncycastle/cms/OriginatorInformation;
            areturn
        end local 0 // org.bouncycastle.cms.CMSEnvelopedDataParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cms/CMSEnvelopedDataParser;

  public org.bouncycastle.cms.RecipientInformationStore getRecipientInfos();
    descriptor: ()Lorg/bouncycastle/cms/RecipientInformationStore;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cms.CMSEnvelopedDataParser this
         0: .line 161
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSEnvelopedDataParser.recipientInfoStore:Lorg/bouncycastle/cms/RecipientInformationStore;
            areturn
        end local 0 // org.bouncycastle.cms.CMSEnvelopedDataParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cms/CMSEnvelopedDataParser;

  public org.bouncycastle.asn1.cms.AttributeTable getUnprotectedAttributes();
    descriptor: ()Lorg/bouncycastle/asn1/cms/AttributeTable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // org.bouncycastle.cms.CMSEnvelopedDataParser this
         0: .line 172
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSEnvelopedDataParser.unprotectedAttributes:Lorg/bouncycastle/asn1/cms/AttributeTable;
            ifnonnull 11
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSEnvelopedDataParser.attrNotRead:Z
            ifeq 11
         1: .line 174
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSEnvelopedDataParser.envelopedData:Lorg/bouncycastle/asn1/cms/EnvelopedDataParser;
            invokevirtual org.bouncycastle.asn1.cms.EnvelopedDataParser.getUnprotectedAttrs:()Lorg/bouncycastle/asn1/ASN1SetParser;
            astore 1 /* set */
        start local 1 // org.bouncycastle.asn1.ASN1SetParser set
         2: .line 176
            aload 0 /* this */
            iconst_0
            putfield org.bouncycastle.cms.CMSEnvelopedDataParser.attrNotRead:Z
         3: .line 178
            aload 1 /* set */
            ifnull 11
         4: .line 180
            new org.bouncycastle.asn1.ASN1EncodableVector
            dup
            invokespecial org.bouncycastle.asn1.ASN1EncodableVector.<init>:()V
            astore 2 /* v */
        start local 2 // org.bouncycastle.asn1.ASN1EncodableVector v
         5: .line 183
            goto 8
        start local 3 // org.bouncycastle.asn1.ASN1Encodable o
         6: .line 185
      StackMap locals: org.bouncycastle.asn1.ASN1SetParser org.bouncycastle.asn1.ASN1EncodableVector org.bouncycastle.asn1.ASN1Encodable
      StackMap stack:
            aload 3 /* o */
            checkcast org.bouncycastle.asn1.ASN1SequenceParser
            astore 4 /* seq */
        start local 4 // org.bouncycastle.asn1.ASN1SequenceParser seq
         7: .line 187
            aload 2 /* v */
            aload 4 /* seq */
            invokeinterface org.bouncycastle.asn1.ASN1SequenceParser.toASN1Primitive:()Lorg/bouncycastle/asn1/ASN1Primitive;
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
        end local 4 // org.bouncycastle.asn1.ASN1SequenceParser seq
        end local 3 // org.bouncycastle.asn1.ASN1Encodable o
         8: .line 183
      StackMap locals:
      StackMap stack:
            aload 1 /* set */
            invokeinterface org.bouncycastle.asn1.ASN1SetParser.readObject:()Lorg/bouncycastle/asn1/ASN1Encodable;
            dup
            astore 3 /* o */
        start local 3 // org.bouncycastle.asn1.ASN1Encodable o
         9: ifnonnull 6
        10: .line 190
            aload 0 /* this */
            new org.bouncycastle.asn1.cms.AttributeTable
            dup
            new org.bouncycastle.asn1.DERSet
            dup
            aload 2 /* v */
            invokespecial org.bouncycastle.asn1.DERSet.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
            invokespecial org.bouncycastle.asn1.cms.AttributeTable.<init>:(Lorg/bouncycastle/asn1/ASN1Set;)V
            putfield org.bouncycastle.cms.CMSEnvelopedDataParser.unprotectedAttributes:Lorg/bouncycastle/asn1/cms/AttributeTable;
        end local 3 // org.bouncycastle.asn1.ASN1Encodable o
        end local 2 // org.bouncycastle.asn1.ASN1EncodableVector v
        end local 1 // org.bouncycastle.asn1.ASN1SetParser set
        11: .line 194
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.cms.CMSEnvelopedDataParser.unprotectedAttributes:Lorg/bouncycastle/asn1/cms/AttributeTable;
            areturn
        end local 0 // org.bouncycastle.cms.CMSEnvelopedDataParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/bouncycastle/cms/CMSEnvelopedDataParser;
            2   11     1   set  Lorg/bouncycastle/asn1/ASN1SetParser;
            5   11     2     v  Lorg/bouncycastle/asn1/ASN1EncodableVector;
            6    8     3     o  Lorg/bouncycastle/asn1/ASN1Encodable;
            9   11     3     o  Lorg/bouncycastle/asn1/ASN1Encodable;
            7    8     4   seq  Lorg/bouncycastle/asn1/ASN1SequenceParser;
    Exceptions:
      throws java.io.IOException

  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.CMSEnvelopedDataParser this
        start local 1 // org.bouncycastle.asn1.ASN1Encodable obj
         0: .line 201
            aload 1 /* obj */
            ifnull 2
         1: .line 203
            aload 1 /* obj */
            invokeinterface org.bouncycastle.asn1.ASN1Encodable.toASN1Primitive:()Lorg/bouncycastle/asn1/ASN1Primitive;
            invokevirtual org.bouncycastle.asn1.ASN1Primitive.getEncoded:()[B
            areturn
         2: .line 206
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // org.bouncycastle.asn1.ASN1Encodable obj
        end local 0 // org.bouncycastle.cms.CMSEnvelopedDataParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/cms/CMSEnvelopedDataParser;
            0    3     1   obj  Lorg/bouncycastle/asn1/ASN1Encodable;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      obj   
}
SourceFile: "CMSEnvelopedDataParser.java"
InnerClasses:
  CMSEnvelopedSecureReadable = org.bouncycastle.cms.CMSEnvelopedHelper$CMSEnvelopedSecureReadable of org.bouncycastle.cms.CMSEnvelopedHelper