org.bouncycastle.asn1.cms

## Class KeyAgreeRecipientInfo

- java.lang.Object
- - org.bouncycastle.asn1.ASN1Encodable
  - - org.bouncycastle.asn1.cms.KeyAgreeRecipientInfo

All Implemented Interfaces:
  DEREncodable

    public class KeyAgreeRecipientInfo
    extends ASN1Encodable

### Field Summary

### Fields inherited from class org.bouncycastle.asn1.ASN1Encodable

`BER, DER`

### Constructor Summary

Constructors
Constructor and Description
`KeyAgreeRecipientInfo(ASN1Sequence seq)`
`KeyAgreeRecipientInfo(OriginatorIdentifierOrKey originator, ASN1OctetString ukm, AlgorithmIdentifier keyEncryptionAlgorithm, ASN1Sequence recipientEncryptedKeys)`

### Method Summary

Methods
`static KeyAgreeRecipientInfo` `getInstance(ASN1TaggedObject obj, boolean explicit)` return a KeyAgreeRecipientInfo object from a tagged object.
`static KeyAgreeRecipientInfo` `getInstance(java.lang.Object obj)` return a KeyAgreeRecipientInfo object from the given object.
`AlgorithmIdentifier` `getKeyEncryptionAlgorithm()`
`OriginatorIdentifierOrKey` `getOriginator()`
`ASN1Sequence` `getRecipientEncryptedKeys()`
`ASN1OctetString` `getUserKeyingMaterial()`
`DERInteger` `getVersion()`
`DERObject` `toASN1Object()` Produce an object suitable for an ASN1OutputStream.

### Methods inherited from class org.bouncycastle.asn1.ASN1Encodable

`equals, getDEREncoded, getDERObject, getEncoded, getEncoded, hashCode`

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

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

### Constructor Detail

#### KeyAgreeRecipientInfo

    public KeyAgreeRecipientInfo(OriginatorIdentifierOrKey originator,
                         ASN1OctetString ukm,
                         AlgorithmIdentifier keyEncryptionAlgorithm,
                         ASN1Sequence recipientEncryptedKeys)

#### KeyAgreeRecipientInfo

    public KeyAgreeRecipientInfo(ASN1Sequence seq)

### Method Detail

#### getInstance

    public static KeyAgreeRecipientInfo getInstance(ASN1TaggedObject obj,
                                    boolean explicit)

return a KeyAgreeRecipientInfo object from a tagged object.

Parameters:
  `obj` - the tagged object holding the object we want.
  `explicit` - true if the object is meant to be explicitly tagged false otherwise.
Throws:
  `java.lang.IllegalArgumentException` - if the object held by the tagged object cannot be converted.

#### getInstance

    public static KeyAgreeRecipientInfo getInstance(java.lang.Object obj)

return a KeyAgreeRecipientInfo object from the given object.

Parameters:
  `obj` - the object we want converted.
Throws:
  `java.lang.IllegalArgumentException` - if the object cannot be converted.

#### getVersion

    public DERInteger getVersion()

#### getOriginator

    public OriginatorIdentifierOrKey getOriginator()

#### getUserKeyingMaterial

    public ASN1OctetString getUserKeyingMaterial()

#### getKeyEncryptionAlgorithm

    public AlgorithmIdentifier getKeyEncryptionAlgorithm()

#### getRecipientEncryptedKeys

    public ASN1Sequence getRecipientEncryptedKeys()

#### toASN1Object

    public DERObject toASN1Object()

Produce an object suitable for an ASN1OutputStream.

     KeyAgreeRecipientInfo ::= SEQUENCE {
         version CMSVersion,  -- always set to 3
         originator [0] EXPLICIT OriginatorIdentifierOrKey,
         ukm [1] EXPLICIT UserKeyingMaterial OPTIONAL,
         keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
         recipientEncryptedKeys RecipientEncryptedKeys
     }

Specified by:
  `toASN1Object` in class `ASN1Encodable`