RecipientInformation (Bouncy Castle Library 1.54 API Specification)
Date: 2015-12-29

org.bouncycastle.cms

## Class RecipientInformation

- java.lang.Object
- - org.bouncycastle.cms.RecipientInformation

- Direct Known Subclasses:
    KEKRecipientInformation, KeyAgreeRecipientInformation, KeyTransRecipientInformation, PasswordRecipientInformation

      public abstract class RecipientInformation
      extends java.lang.Object

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected org.bouncycastle.asn1.x509.AlgorithmIdentifier` | `keyEncAlg`
    `protected org.bouncycastle.asn1.x509.AlgorithmIdentifier` | `messageAlgorithm`
    `protected RecipientId` | `rid`
    `protected org.bouncycastle.cms.CMSSecureReadable` | `secureReadable`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `byte[]` | `getContent(Recipient recipient)` Return the decrypted/encapsulated content in the EnvelopedData after recovering the content encryption/MAC key using the passed in Recipient.
    `byte[]` | `getContentDigest()` Return the content digest calculated during the read of the content if one has been generated.
    `CMSTypedStream` | `getContentStream(Recipient recipient)` Return a CMSTypedStream representing the content in the EnvelopedData after recovering the content encryption/MAC key using the passed in Recipient.
    `java.lang.String` | `getKeyEncryptionAlgOID()` return the object identifier for the key encryption algorithm.
    `org.bouncycastle.asn1.x509.AlgorithmIdentifier` | `getKeyEncryptionAlgorithm()` Return the key encryption algorithm details for the key in this recipient.
    `byte[]` | `getKeyEncryptionAlgParams()` return the ASN.1 encoded key encryption algorithm parameters, or null if there aren't any.
    `byte[]` | `getMac()` Return the MAC calculated for the recipient.
    `protected abstract RecipientOperator` | `getRecipientOperator(Recipient recipient)`
    `RecipientId` | `getRID()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### rid

          protected RecipientId rid

    - #### keyEncAlg

          protected org.bouncycastle.asn1.x509.AlgorithmIdentifier keyEncAlg

    - #### messageAlgorithm

          protected org.bouncycastle.asn1.x509.AlgorithmIdentifier messageAlgorithm

    - #### secureReadable

          protected org.bouncycastle.cms.CMSSecureReadable secureReadable

  - ### Method Detail

    - #### getRID

          public RecipientId getRID()

    - #### getKeyEncryptionAlgorithm

          public org.bouncycastle.asn1.x509.AlgorithmIdentifier getKeyEncryptionAlgorithm()

      Return the key encryption algorithm details for the key in this recipient.
      Returns:
        AlgorithmIdentifier representing the key encryption algorithm.

    - #### getKeyEncryptionAlgOID

          public java.lang.String getKeyEncryptionAlgOID()

      return the object identifier for the key encryption algorithm.
      Returns:
        OID for key encryption algorithm.

    - #### getKeyEncryptionAlgParams

          public byte[] getKeyEncryptionAlgParams()

      return the ASN.1 encoded key encryption algorithm parameters, or null if there aren't any.
      Returns:
        ASN.1 encoding of key encryption algorithm parameters.

    - #### getContentDigest

          public byte[] getContentDigest()

      Return the content digest calculated during the read of the content if one has been generated. This will only happen if we are dealing with authenticated data and authenticated attributes are present.
      Returns:
        byte array containing the digest.

    - #### getMac

          public byte[] getMac()

      Return the MAC calculated for the recipient. Note: this call is only meaningful once all the content has been read.
      Returns:
        byte array containing the mac.

    - #### getContent

          public byte[] getContent(Recipient recipient)
                            throws CMSException

      Return the decrypted/encapsulated content in the EnvelopedData after recovering the content encryption/MAC key using the passed in Recipient.
      Parameters:
        `recipient` - recipient object to use to recover content encryption key
      Returns:
        the content inside the EnvelopedData this RecipientInformation is associated with.
      Throws:
        `CMSException` - if the content-encryption/MAC key cannot be recovered.

    - #### getContentStream

          public CMSTypedStream getContentStream(Recipient recipient)
                                          throws CMSException,
                                                 java.io.IOException

      Return a CMSTypedStream representing the content in the EnvelopedData after recovering the content encryption/MAC key using the passed in Recipient.
      Parameters:
        `recipient` - recipient object to use to recover content encryption key
      Returns:
        the content inside the EnvelopedData this RecipientInformation is associated with.
      Throws:
        `CMSException` - if the content-encryption/MAC key cannot be recovered.
        `java.io.IOException`

    - #### getRecipientOperator

          protected abstract RecipientOperator getRecipientOperator(Recipient recipient)
                                                             throws CMSException,
                                                                    java.io.IOException

      Throws:
        `CMSException`
        `java.io.IOException`