# Struct openssl::cms::CmsContentInfo [−] [src]

    pub struct CmsContentInfo(_);

High level CMS wrapper

CMS supports nesting various types of data, including signatures, certificates, encrypted data, smime messages (encrypted email), and data digest. The ContentInfo content type is the encapsulation of all those content types. `RFC 5652` describes CMS and OpenSSL follows this RFC’s implmentation.

## Implementations

### `impl CmsContentInfo` [src]

#### `pub fn smime_read_cms(smime: &[u8]) -> Result<CmsContentInfo, ErrorStack>` [src]

Parses a smime formatted `vec` of bytes into a `CmsContentInfo`.

OpenSSL documentation at `SMIME_read_CMS`

#### `pub fn from_der(der: &[u8]) -> Result<CmsContentInfo, ErrorStack>` [src]

Deserializes a DER-encoded ContentInfo structure.

This corresponds to `d2i_CMS_ContentInfo`.

#### `pub fn from_pem(pem: &[u8]) -> Result<CmsContentInfo, ErrorStack>` [src]

Deserializes a PEM-encoded ContentInfo structure.

This corresponds to `PEM_read_bio_CMS`.

#### `pub fn sign<T>(
signcert: Option<&X509Ref>,
pkey: Option<&PKeyRef<T>>,
certs: Option<&StackRef<X509>>,
data: Option<&[u8]>,
flags: CMSOptions
) -> Result<CmsContentInfo, ErrorStack> where
T: HasPrivate,` [src]

Given a signing cert `signcert`, private key `pkey`, a certificate stack `certs`, data `data` and flags `flags`, create a CmsContentInfo struct.

All arguments are optional.

OpenSSL documentation at `CMS_sign`

#### `pub fn encrypt(
certs: &StackRef<X509>,
data: &[u8],
cipher: Cipher,
flags: CMSOptions
) -> Result<CmsContentInfo, ErrorStack>` [src]

Given a certificate stack `certs`, data `data`, cipher `cipher` and flags `flags`, create a CmsContentInfo struct.

OpenSSL documentation at `CMS_encrypt`

## Methods from Deref<Target = CmsContentInfoRef>

#### `pub fn decrypt<T>(
&self,
pkey: &PKeyRef<T>,
cert: &X509
) -> Result<Vec<u8>, ErrorStack> where
T: HasPrivate,` [src]

Given the sender’s private key, `pkey` and the recipient’s certificiate, `cert`, decrypt the data in `self`.

OpenSSL documentation at `CMS_decrypt`

#### `pub fn to_der(&self) -> Result<Vec<u8>, ErrorStack>` [src]

Serializes this CmsContentInfo using DER.

OpenSSL documentation at `i2d_CMS_ContentInfo`

#### `pub fn to_pem(&self) -> Result<Vec<u8>, ErrorStack>` [src]

Serializes this CmsContentInfo using DER.

OpenSSL documentation at `PEM_write_bio_CMS`

## Trait Implementations

### `impl AsRef<CmsContentInfoRef> for CmsContentInfo` [src]

#### `fn as_ref(&self) -> &CmsContentInfoRef` [src]

Performs the conversion.

### `impl Borrow<CmsContentInfoRef> for CmsContentInfo` [src]

#### `fn borrow(&self) -> &CmsContentInfoRef` [src]

Immutably borrows from an owned value. Read more

### `impl Deref for CmsContentInfo` [src]

#### `type Target = CmsContentInfoRef`

The resulting type after dereferencing.

#### `fn deref(&self) -> &CmsContentInfoRef` [src]

Dereferences the value.

### `impl DerefMut for CmsContentInfo` [src]

#### `fn deref_mut(&mut self) -> &mut CmsContentInfoRef` [src]

Mutably dereferences the value.

### `impl Drop for CmsContentInfo` [src]

#### `fn drop(&mut self)` [src]

Executes the destructor for this type. Read more

### `impl ForeignType for CmsContentInfo` [src]

#### `type CType = CMS_ContentInfo`

The raw C type.

#### `type Ref = CmsContentInfoRef`

The type representing a reference to this type.

#### `unsafe fn from_ptr(ptr: *mut CMS_ContentInfo) -> CmsContentInfo` [src]

Constructs an instance of this type from its raw type.

#### `fn as_ptr(&self) -> *mut CMS_ContentInfo` [src]

Returns a raw pointer to the wrapped value.

### `impl Send for CmsContentInfo` [src]

### `impl Sync for CmsContentInfo` [src]

## Auto Trait Implementations

### `impl RefUnwindSafe for CmsContentInfo`

### `impl Unpin for CmsContentInfo`

### `impl UnwindSafe for CmsContentInfo`

## Blanket Implementations

### `impl<T> Any for T where
T: 'static + ?Sized,` [src]

#### `pub fn type_id(&self) -> TypeId` [src]

Gets the `TypeId` of `self`. Read more

### `impl<T> Borrow<T> for T where
T: ?Sized,` [src]

#### `pub fn borrow(&self) -> &T` [src]

Immutably borrows from an owned value. Read more

### `impl<T> BorrowMut<T> for T where
T: ?Sized,` [src]

#### `pub fn borrow_mut(&mut self) -> &mut T` [src]

Mutably borrows from an owned value. Read more

### `impl<T> From<T> for T` [src]

#### `pub fn from(t: T) -> T` [src]

Performs the conversion.

### `impl<T, U> Into<U> for T where
U: From<T>,` [src]

#### `pub fn into(self) -> U` [src]

Performs the conversion.

### `impl<T, U> TryFrom<U> for T where
U: Into<T>,` [src]

#### `type Error = Infallible`

The type returned in the event of a conversion error.

#### `pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>` [src]

Performs the conversion.

### `impl<T, U> TryInto<U> for T where
U: TryFrom<T>,` [src]

#### `type Error = <U as TryFrom<T>>::Error`

The type returned in the event of a conversion error.

#### `pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>` [src]

Performs the conversion.