public abstract class org.bouncycastle.cms.RecipientInformation
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.bouncycastle.cms.RecipientInformation
  super_class: java.lang.Object
{
  protected org.bouncycastle.cms.RecipientId rid;
    descriptor: Lorg/bouncycastle/cms/RecipientId;
    flags: (0x0004) ACC_PROTECTED

  protected org.bouncycastle.asn1.x509.AlgorithmIdentifier keyEncAlg;
    descriptor: Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
    flags: (0x0004) ACC_PROTECTED

  protected org.bouncycastle.asn1.x509.AlgorithmIdentifier messageAlgorithm;
    descriptor: Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
    flags: (0x0004) ACC_PROTECTED

  protected org.bouncycastle.cms.CMSSecureReadable secureReadable;
    descriptor: Lorg/bouncycastle/cms/CMSSecureReadable;
    flags: (0x0004) ACC_PROTECTED

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

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

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

  void <init>(org.bouncycastle.asn1.x509.AlgorithmIdentifier, org.bouncycastle.asn1.x509.AlgorithmIdentifier, org.bouncycastle.cms.CMSSecureReadable, org.bouncycastle.cms.AuthAttributesProvider);
    descriptor: (Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/cms/CMSSecureReadable;Lorg/bouncycastle/cms/AuthAttributesProvider;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // org.bouncycastle.cms.RecipientInformation this
        start local 1 // org.bouncycastle.asn1.x509.AlgorithmIdentifier keyEncAlg
        start local 2 // org.bouncycastle.asn1.x509.AlgorithmIdentifier messageAlgorithm
        start local 3 // org.bouncycastle.cms.CMSSecureReadable secureReadable
        start local 4 // org.bouncycastle.cms.AuthAttributesProvider additionalData
         0: .line 23
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 29
            aload 0 /* this */
            aload 1 /* keyEncAlg */
            putfield org.bouncycastle.cms.RecipientInformation.keyEncAlg:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
         2: .line 30
            aload 0 /* this */
            aload 2 /* messageAlgorithm */
            putfield org.bouncycastle.cms.RecipientInformation.messageAlgorithm:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
         3: .line 31
            aload 0 /* this */
            aload 3 /* secureReadable */
            putfield org.bouncycastle.cms.RecipientInformation.secureReadable:Lorg/bouncycastle/cms/CMSSecureReadable;
         4: .line 32
            aload 0 /* this */
            aload 4 /* additionalData */
            putfield org.bouncycastle.cms.RecipientInformation.additionalData:Lorg/bouncycastle/cms/AuthAttributesProvider;
         5: .line 33
            return
        end local 4 // org.bouncycastle.cms.AuthAttributesProvider additionalData
        end local 3 // org.bouncycastle.cms.CMSSecureReadable secureReadable
        end local 2 // org.bouncycastle.asn1.x509.AlgorithmIdentifier messageAlgorithm
        end local 1 // org.bouncycastle.asn1.x509.AlgorithmIdentifier keyEncAlg
        end local 0 // org.bouncycastle.cms.RecipientInformation this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0              this  Lorg/bouncycastle/cms/RecipientInformation;
            0    6     1         keyEncAlg  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            0    6     2  messageAlgorithm  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            0    6     3    secureReadable  Lorg/bouncycastle/cms/CMSSecureReadable;
            0    6     4    additionalData  Lorg/bouncycastle/cms/AuthAttributesProvider;
    MethodParameters:
                  Name  Flags
      keyEncAlg         
      messageAlgorithm  
      secureReadable    
      additionalData    

  public org.bouncycastle.cms.RecipientId getRID();
    descriptor: ()Lorg/bouncycastle/cms/RecipientId;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cms.RecipientInformation this
         0: .line 37
            aload 0 /* this */
            getfield org.bouncycastle.cms.RecipientInformation.rid:Lorg/bouncycastle/cms/RecipientId;
            areturn
        end local 0 // org.bouncycastle.cms.RecipientInformation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cms/RecipientInformation;

  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.RecipientInformation this
        start local 1 // org.bouncycastle.asn1.ASN1Encodable obj
         0: .line 44
            aload 1 /* obj */
            ifnull 2
         1: .line 46
            aload 1 /* obj */
            invokeinterface org.bouncycastle.asn1.ASN1Encodable.toASN1Primitive:()Lorg/bouncycastle/asn1/ASN1Primitive;
            invokevirtual org.bouncycastle.asn1.ASN1Primitive.getEncoded:()[B
            areturn
         2: .line 49
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // org.bouncycastle.asn1.ASN1Encodable obj
        end local 0 // org.bouncycastle.cms.RecipientInformation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/cms/RecipientInformation;
            0    3     1   obj  Lorg/bouncycastle/asn1/ASN1Encodable;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      obj   

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

  public java.lang.String getKeyEncryptionAlgOID();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cms.RecipientInformation this
         0: .line 69
            aload 0 /* this */
            getfield org.bouncycastle.cms.RecipientInformation.keyEncAlg: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.RecipientInformation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cms/RecipientInformation;

  public byte[] getKeyEncryptionAlgParams();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.bouncycastle.cms.RecipientInformation this
         0: .line 82
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.cms.RecipientInformation.keyEncAlg:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/ASN1Encodable;
            invokevirtual org.bouncycastle.cms.RecipientInformation.encodeObj:(Lorg/bouncycastle/asn1/ASN1Encodable;)[B
         1: areturn
         2: .line 84
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
         3: .line 86
            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.RecipientInformation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bouncycastle/cms/RecipientInformation;
            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=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cms.RecipientInformation this
         0: .line 98
            aload 0 /* this */
            getfield org.bouncycastle.cms.RecipientInformation.secureReadable:Lorg/bouncycastle/cms/CMSSecureReadable;
            instanceof org.bouncycastle.cms.CMSEnvelopedHelper$CMSDigestAuthenticatedSecureReadable
            ifeq 2
         1: .line 100
            aload 0 /* this */
            getfield org.bouncycastle.cms.RecipientInformation.secureReadable:Lorg/bouncycastle/cms/CMSSecureReadable;
            checkcast org.bouncycastle.cms.CMSEnvelopedHelper$CMSDigestAuthenticatedSecureReadable
            invokevirtual org.bouncycastle.cms.CMSEnvelopedHelper$CMSDigestAuthenticatedSecureReadable.getDigest:()[B
            areturn
         2: .line 103
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // org.bouncycastle.cms.RecipientInformation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/cms/RecipientInformation;

  public byte[] getMac();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.bouncycastle.cms.RecipientInformation this
         0: .line 114
            aload 0 /* this */
            getfield org.bouncycastle.cms.RecipientInformation.resultMac:[B
            ifnonnull 8
         1: .line 116
            aload 0 /* this */
            getfield org.bouncycastle.cms.RecipientInformation.operator:Lorg/bouncycastle/cms/RecipientOperator;
            invokevirtual org.bouncycastle.cms.RecipientOperator.isMacBased:()Z
            ifeq 8
         2: .line 118
            aload 0 /* this */
            getfield org.bouncycastle.cms.RecipientInformation.additionalData:Lorg/bouncycastle/cms/AuthAttributesProvider;
            ifnull 7
         3: .line 122
            aload 0 /* this */
            getfield org.bouncycastle.cms.RecipientInformation.operator:Lorg/bouncycastle/cms/RecipientOperator;
            new java.io.ByteArrayInputStream
            dup
            aload 0 /* this */
            getfield org.bouncycastle.cms.RecipientInformation.additionalData:Lorg/bouncycastle/cms/AuthAttributesProvider;
            invokeinterface org.bouncycastle.cms.AuthAttributesProvider.getAuthAttributes:()Lorg/bouncycastle/asn1/ASN1Set;
            ldc "DER"
            invokevirtual org.bouncycastle.asn1.ASN1Set.getEncoded:(Ljava/lang/String;)[B
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            invokevirtual org.bouncycastle.cms.RecipientOperator.getInputStream:(Ljava/io/InputStream;)Ljava/io/InputStream;
            invokestatic org.bouncycastle.util.io.Streams.drain:(Ljava/io/InputStream;)V
         4: .line 123
            goto 7
         5: .line 124
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
         6: .line 126
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unable to drain input: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* 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;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.io.IOException e
         7: .line 129
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.cms.RecipientInformation.operator:Lorg/bouncycastle/cms/RecipientOperator;
            invokevirtual org.bouncycastle.cms.RecipientOperator.getMac:()[B
            putfield org.bouncycastle.cms.RecipientInformation.resultMac:[B
         8: .line 133
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.cms.RecipientInformation.resultMac:[B
            areturn
        end local 0 // org.bouncycastle.cms.RecipientInformation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/bouncycastle/cms/RecipientInformation;
            6    7     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           3     4       5  Class java.io.IOException

  public byte[] getContent(org.bouncycastle.cms.Recipient);
    descriptor: (Lorg/bouncycastle/cms/Recipient;)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.bouncycastle.cms.RecipientInformation this
        start local 1 // org.bouncycastle.cms.Recipient recipient
         0: .line 150
            aload 0 /* this */
            aload 1 /* recipient */
            invokevirtual org.bouncycastle.cms.RecipientInformation.getContentStream:(Lorg/bouncycastle/cms/Recipient;)Lorg/bouncycastle/cms/CMSTypedStream;
            invokevirtual org.bouncycastle.cms.CMSTypedStream.getContentStream:()Ljava/io/InputStream;
            invokestatic org.bouncycastle.cms.CMSUtils.streamToByteArray:(Ljava/io/InputStream;)[B
         1: areturn
         2: .line 152
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
         3: .line 154
            new org.bouncycastle.cms.CMSException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unable to parse internal stream: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* 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 2 /* e */
            invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 2 // java.io.IOException e
        end local 1 // org.bouncycastle.cms.Recipient recipient
        end local 0 // org.bouncycastle.cms.RecipientInformation this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/bouncycastle/cms/RecipientInformation;
            0    4     1  recipient  Lorg/bouncycastle/cms/Recipient;
            3    4     2          e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    Exceptions:
      throws org.bouncycastle.cms.CMSException
    MethodParameters:
           Name  Flags
      recipient  

  public org.bouncycastle.cms.CMSTypedStream getContentStream(org.bouncycastle.cms.Recipient);
    descriptor: (Lorg/bouncycastle/cms/Recipient;)Lorg/bouncycastle/cms/CMSTypedStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.bouncycastle.cms.RecipientInformation this
        start local 1 // org.bouncycastle.cms.Recipient recipient
         0: .line 169
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* recipient */
            invokevirtual org.bouncycastle.cms.RecipientInformation.getRecipientOperator:(Lorg/bouncycastle/cms/Recipient;)Lorg/bouncycastle/cms/RecipientOperator;
            putfield org.bouncycastle.cms.RecipientInformation.operator:Lorg/bouncycastle/cms/RecipientOperator;
         1: .line 171
            aload 0 /* this */
            getfield org.bouncycastle.cms.RecipientInformation.additionalData:Lorg/bouncycastle/cms/AuthAttributesProvider;
            ifnull 3
         2: .line 173
            new org.bouncycastle.cms.CMSTypedStream
            dup
            aload 0 /* this */
            getfield org.bouncycastle.cms.RecipientInformation.secureReadable:Lorg/bouncycastle/cms/CMSSecureReadable;
            invokeinterface org.bouncycastle.cms.CMSSecureReadable.getInputStream:()Ljava/io/InputStream;
            invokespecial org.bouncycastle.cms.CMSTypedStream.<init>:(Ljava/io/InputStream;)V
            areturn
         3: .line 176
      StackMap locals:
      StackMap stack:
            new org.bouncycastle.cms.CMSTypedStream
            dup
            aload 0 /* this */
            getfield org.bouncycastle.cms.RecipientInformation.operator:Lorg/bouncycastle/cms/RecipientOperator;
            aload 0 /* this */
            getfield org.bouncycastle.cms.RecipientInformation.secureReadable:Lorg/bouncycastle/cms/CMSSecureReadable;
            invokeinterface org.bouncycastle.cms.CMSSecureReadable.getInputStream:()Ljava/io/InputStream;
            invokevirtual org.bouncycastle.cms.RecipientOperator.getInputStream:(Ljava/io/InputStream;)Ljava/io/InputStream;
            invokespecial org.bouncycastle.cms.CMSTypedStream.<init>:(Ljava/io/InputStream;)V
            areturn
        end local 1 // org.bouncycastle.cms.Recipient recipient
        end local 0 // org.bouncycastle.cms.RecipientInformation this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/bouncycastle/cms/RecipientInformation;
            0    4     1  recipient  Lorg/bouncycastle/cms/Recipient;
    Exceptions:
      throws org.bouncycastle.cms.CMSException, java.io.IOException
    MethodParameters:
           Name  Flags
      recipient  

  protected abstract org.bouncycastle.cms.RecipientOperator getRecipientOperator(org.bouncycastle.cms.Recipient);
    descriptor: (Lorg/bouncycastle/cms/Recipient;)Lorg/bouncycastle/cms/RecipientOperator;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws org.bouncycastle.cms.CMSException, java.io.IOException
    MethodParameters:
           Name  Flags
      recipient  
}
SourceFile: "RecipientInformation.java"
InnerClasses:
  CMSDigestAuthenticatedSecureReadable = org.bouncycastle.cms.CMSEnvelopedHelper$CMSDigestAuthenticatedSecureReadable of org.bouncycastle.cms.CMSEnvelopedHelper