Struct openssl::cms::CmsContentInfo
source · [−]pub struct CmsContentInfo(_);
Expand description
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
sourceimpl CmsContentInfo
impl CmsContentInfo
sourcepub fn smime_read_cms(smime: &[u8]) -> Result<CmsContentInfo, ErrorStack>
pub fn smime_read_cms(smime: &[u8]) -> Result<CmsContentInfo, ErrorStack>
Parses a smime formatted vec
of bytes into a CmsContentInfo
.
OpenSSL documentation at SMIME_read_CMS
sourcepub fn from_der(der: &[u8]) -> Result<CmsContentInfo, ErrorStack>
pub fn from_der(der: &[u8]) -> Result<CmsContentInfo, ErrorStack>
Deserializes a DER-encoded ContentInfo structure.
This corresponds to d2i_CMS_ContentInfo
.
sourcepub fn from_pem(pem: &[u8]) -> Result<CmsContentInfo, ErrorStack>
pub fn from_pem(pem: &[u8]) -> Result<CmsContentInfo, ErrorStack>
Deserializes a PEM-encoded ContentInfo structure.
This corresponds to PEM_read_bio_CMS
.
sourcepub 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,
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,
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
sourcepub fn encrypt(
certs: &StackRef<X509>,
data: &[u8],
cipher: Cipher,
flags: CMSOptions
) -> Result<CmsContentInfo, ErrorStack>
pub fn encrypt(
certs: &StackRef<X509>,
data: &[u8],
cipher: Cipher,
flags: CMSOptions
) -> Result<CmsContentInfo, ErrorStack>
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>
sourcepub fn decrypt<T>(
&self,
pkey: &PKeyRef<T>,
cert: &X509
) -> Result<Vec<u8>, ErrorStack> where
T: HasPrivate,
pub fn decrypt<T>(
&self,
pkey: &PKeyRef<T>,
cert: &X509
) -> Result<Vec<u8>, ErrorStack> where
T: HasPrivate,
Given the sender’s private key, pkey
and the recipient’s certificiate, cert
,
decrypt the data in self
.
OpenSSL documentation at CMS_decrypt
sourcepub fn decrypt_without_cert_check<T>(
&self,
pkey: &PKeyRef<T>
) -> Result<Vec<u8>, ErrorStack> where
T: HasPrivate,
pub fn decrypt_without_cert_check<T>(
&self,
pkey: &PKeyRef<T>
) -> Result<Vec<u8>, ErrorStack> where
T: HasPrivate,
Given the sender’s private key, pkey
,
decrypt the data in self
without validating the recipient certificate.
Warning: Not checking the recipient certificate may leave you vulnerable to Bleichenbacher’s attack on PKCS#1 v1.5 RSA padding.
See CMS_decrypt
for more information.
sourcepub fn to_der(&self) -> Result<Vec<u8>, ErrorStack>
pub fn to_der(&self) -> Result<Vec<u8>, ErrorStack>
Serializes this CmsContentInfo using DER.
OpenSSL documentation at i2d_CMS_ContentInfo
sourcepub fn to_pem(&self) -> Result<Vec<u8>, ErrorStack>
pub fn to_pem(&self) -> Result<Vec<u8>, ErrorStack>
Serializes this CmsContentInfo using DER.
OpenSSL documentation at PEM_write_bio_CMS
Trait Implementations
sourceimpl AsRef<CmsContentInfoRef> for CmsContentInfo
impl AsRef<CmsContentInfoRef> for CmsContentInfo
sourcefn as_ref(&self) -> &CmsContentInfoRef
fn as_ref(&self) -> &CmsContentInfoRef
Converts this type into a shared reference of the (usually inferred) input type.
sourceimpl Borrow<CmsContentInfoRef> for CmsContentInfo
impl Borrow<CmsContentInfoRef> for CmsContentInfo
sourcefn borrow(&self) -> &CmsContentInfoRef
fn borrow(&self) -> &CmsContentInfoRef
Immutably borrows from an owned value. Read more
sourceimpl Deref for CmsContentInfo
impl Deref for CmsContentInfo
type Target = CmsContentInfoRef
type Target = CmsContentInfoRef
The resulting type after dereferencing.
sourcefn deref(&self) -> &CmsContentInfoRef
fn deref(&self) -> &CmsContentInfoRef
Dereferences the value.
sourceimpl DerefMut for CmsContentInfo
impl DerefMut for CmsContentInfo
sourcefn deref_mut(&mut self) -> &mut CmsContentInfoRef
fn deref_mut(&mut self) -> &mut CmsContentInfoRef
Mutably dereferences the value.
sourceimpl Drop for CmsContentInfo
impl Drop for CmsContentInfo
sourceimpl ForeignType for CmsContentInfo
impl ForeignType for CmsContentInfo
type CType = CMS_ContentInfo
type CType = CMS_ContentInfo
The raw C type.
type Ref = CmsContentInfoRef
type Ref = CmsContentInfoRef
The type representing a reference to this type.
sourceunsafe fn from_ptr(ptr: *mut CMS_ContentInfo) -> CmsContentInfo
unsafe fn from_ptr(ptr: *mut CMS_ContentInfo) -> CmsContentInfo
Constructs an instance of this type from its raw type.
sourcefn as_ptr(&self) -> *mut CMS_ContentInfo
fn as_ptr(&self) -> *mut CMS_ContentInfo
Returns a raw pointer to the wrapped value.
impl Send for CmsContentInfo
impl Sync for CmsContentInfo
Auto Trait Implementations
impl RefUnwindSafe for CmsContentInfo
impl Unpin for CmsContentInfo
impl UnwindSafe for CmsContentInfo
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more