Sortix nightly manual
This manual documents Sortix nightly, a development build that has not been officially released. You can instead view this document in the latest official manual.
| D2I_PKCS7(3) | Library Functions Manual | D2I_PKCS7(3) | 
NAME
d2i_PKCS7,
    i2d_PKCS7, d2i_PKCS7_bio,
    i2d_PKCS7_bio, d2i_PKCS7_fp,
    i2d_PKCS7_fp,
    d2i_PKCS7_DIGEST,
    i2d_PKCS7_DIGEST,
    d2i_PKCS7_ENCRYPT,
    i2d_PKCS7_ENCRYPT,
    d2i_PKCS7_ENC_CONTENT,
    i2d_PKCS7_ENC_CONTENT,
    d2i_PKCS7_ENVELOPE,
    i2d_PKCS7_ENVELOPE,
    d2i_PKCS7_ISSUER_AND_SERIAL,
    i2d_PKCS7_ISSUER_AND_SERIAL,
    d2i_PKCS7_RECIP_INFO,
    i2d_PKCS7_RECIP_INFO,
    d2i_PKCS7_SIGNED,
    i2d_PKCS7_SIGNED,
    d2i_PKCS7_SIGNER_INFO,
    i2d_PKCS7_SIGNER_INFO,
    d2i_PKCS7_SIGN_ENVELOPE,
    i2d_PKCS7_SIGN_ENVELOPE —
    decode and encode PKCS#7 data structures
SYNOPSIS
#include
    <openssl/pkcs7.h>
PKCS7 *
  
  d2i_PKCS7(PKCS7 **val_out,
    const unsigned char **der_in, long
    length);
int
  
  i2d_PKCS7(PKCS7 *val_in,
    unsigned char **der_out);
PKCS7 *
  
  d2i_PKCS7_bio(BIO *in_bio,
    PKCS7 **val_out);
int
  
  i2d_PKCS7_bio(BIO *out_bio,
    PKCS7 *val_in);
PKCS7 *
  
  d2i_PKCS7_fp(FILE *in_fp,
    PKCS7 **val_out);
int
  
  i2d_PKCS7_fp(FILE *out_fp,
    PKCS7 *val_in);
PKCS7_DIGEST *
  
  d2i_PKCS7_DIGEST(PKCS7_DIGEST
    **val_out, const unsigned char **der_in,
    long length);
int
  
  i2d_PKCS7_DIGEST(PKCS7_DIGEST
    *val_in, unsigned char **der_out);
PKCS7_ENCRYPT *
  
  d2i_PKCS7_ENCRYPT(PKCS7_ENCRYPT
    **val_out, const unsigned char **der_in,
    long length);
int
  
  i2d_PKCS7_ENCRYPT(PKCS7_ENCRYPT
    *val_in, unsigned char **der_out);
PKCS7_ENC_CONTENT *
  
  d2i_PKCS7_ENC_CONTENT(PKCS7_ENC_CONTENT
    **val_out, const unsigned char **der_in,
    long length);
int
  
  i2d_PKCS7_ENC_CONTENT(PKCS7_ENC_CONTENT
    *val_in, unsigned char **der_out);
PKCS7_ENVELOPE *
  
  d2i_PKCS7_ENVELOPE(PKCS7_ENVELOPE
    **val_out, const unsigned char **der_in,
    long length);
int
  
  i2d_PKCS7_ENVELOPE(PKCS7_ENVELOPE
    *val_in, unsigned char **der_out);
PKCS7_ISSUER_AND_SERIAL *
  
  d2i_PKCS7_ISSUER_AND_SERIAL(PKCS7_ISSUER_AND_SERIAL
    **val_out, const unsigned char **der_in,
    long length);
int
  
  i2d_PKCS7_ISSUER_AND_SERIAL(PKCS7_ISSUER_AND_SERIAL
    *val_in, unsigned char **der_out);
PKCS7_RECIP_INFO *
  
  d2i_PKCS7_RECIP_INFO(PKCS7_RECIP_INFO
    **val_out, const unsigned char **der_in,
    long length);
int
  
  i2d_PKCS7_RECIP_INFO(PKCS7_RECIP_INFO
    *val_in, unsigned char **der_out);
PKCS7_SIGNED *
  
  d2i_PKCS7_SIGNED(PKCS7_SIGNED
    **val_out, const unsigned char **der_in,
    long length);
int
  
  i2d_PKCS7_SIGNED(PKCS7_SIGNED
    *val_in, unsigned char **der_out);
PKCS7_SIGNER_INFO *
  
  d2i_PKCS7_SIGNER_INFO(PKCS7_SIGNER_INFO
    **val_out, const unsigned char **der_in,
    long length);
int
  
  i2d_PKCS7_SIGNER_INFO(PKCS7_SIGNER_INFO
    *val_in, unsigned char **der_out);
PKCS7_SIGN_ENVELOPE *
  
  d2i_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE
    **val_out, const unsigned char **der_in,
    long length);
int
  
  i2d_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE
    *val_in, unsigned char **der_out);
DESCRIPTION
These functions decode and encode PKCS#7 data structures. For details about the semantics, examples, caveats, and bugs, see ASN1_item_d2i(3).
d2i_PKCS7()
    and
    i2d_PKCS7()
    decode and encode an ASN.1 ContentInfo structure
    defined in RFC 2315 section 7.
    d2i_PKCS7_bio(),
    i2d_PKCS7_bio(),
    d2i_PKCS7_fp(),
    and
    i2d_PKCS7_fp()
    are similar except that they decode or encode using a
    BIO or FILE pointer.
d2i_PKCS7_DIGEST()
    and
    i2d_PKCS7_DIGEST()
    decode and encode an ASN.1 DigestedData structure
    defined in RFC 2315 section 12.
d2i_PKCS7_ENCRYPT()
    and
    i2d_PKCS7_ENCRYPT()
    decode and encode an ASN.1 EncryptedData structure
    defined in RFC 2315 section 13.
d2i_PKCS7_ENC_CONTENT()
    and
    i2d_PKCS7_ENC_CONTENT()
    decode and encode an ASN.1 EncryptedContentInfo
    structure defined in RFC 2315 section 10.1.
d2i_PKCS7_ENVELOPE()
    and
    i2d_PKCS7_ENVELOPE()
    decode and encode an ASN.1 EnvelopedData structure
    defined in RFC 2315 section 10.
d2i_PKCS7_ISSUER_AND_SERIAL()
    and
    i2d_PKCS7_ISSUER_AND_SERIAL()
    decode and encode an ASN.1 IssuerAndSerialNumber
    structure defined in RFC 2315 section 6.7.
d2i_PKCS7_RECIP_INFO()
    and
    i2d_PKCS7_RECIP_INFO()
    decode and encode an ASN.1 RecipientInfo structure
    defined in RFC 2315 section 10.2.
d2i_PKCS7_SIGNED()
    and
    i2d_PKCS7_SIGNED()
    decode and encode an ASN.1 SignedData structure
    defined in RFC 2315 section 9.
d2i_PKCS7_SIGNER_INFO()
    and
    i2d_PKCS7_SIGNER_INFO()
    decode and encode an ASN.1 SignerInfo structure
    defined in RFC 2315 section 9.2.
d2i_PKCS7_SIGN_ENVELOPE()
    and
    i2d_PKCS7_SIGN_ENVELOPE()
    decode and encode an ASN.1 SignedAndEnvelopedData
    structure defined in RFC 2315 section 11.
RETURN VALUES
d2i_PKCS7(),
    d2i_PKCS7_bio(), and
    d2i_PKCS7_fp() return a PKCS7
    object or NULL if an error occurs.
d2i_PKCS7_DIGEST(),
    d2i_PKCS7_ENCRYPT(),
    d2i_PKCS7_ENC_CONTENT(),
    d2i_PKCS7_ENVELOPE(),
    d2i_PKCS7_ISSUER_AND_SERIAL(),
    d2i_PKCS7_RECIP_INFO(),
    d2i_PKCS7_SIGNED(),
    d2i_PKCS7_SIGNER_INFO(), and
    d2i_PKCS7_SIGN_ENVELOPE() return an object of the
    respective type or NULL if an error occurs.
i2d_PKCS7(),
    i2d_PKCS7_DIGEST(),
    i2d_PKCS7_ENCRYPT(),
    i2d_PKCS7_ENC_CONTENT(),
    i2d_PKCS7_ENVELOPE(),
    i2d_PKCS7_ISSUER_AND_SERIAL(),
    i2d_PKCS7_RECIP_INFO(),
    i2d_PKCS7_SIGNED(),
    i2d_PKCS7_SIGNER_INFO(), and
    i2d_PKCS7_SIGN_ENVELOPE() return the number of bytes
    successfully encoded or a negative value if an error occurs.
i2d_PKCS7_bio() and
    i2d_PKCS7_fp() return 1 for success or 0 if an error
    occurs.
SEE ALSO
ASN1_item_d2i(3), i2d_PKCS7_bio_stream(3), PEM_write_bio_PKCS7_stream(3), PEM_write_PKCS7(3), PKCS7_new(3), SMIME_write_PKCS7(3)
STANDARDS
RFC 2315: PKCS #7: Cryptographic Message Syntax Version 1.5
HISTORY
d2i_PKCS7(),
    i2d_PKCS7(),
    d2i_PKCS7_bio(),
    i2d_PKCS7_bio(),
    d2i_PKCS7_fp(),
    i2d_PKCS7_fp(),
    d2i_PKCS7_DIGEST(),
    i2d_PKCS7_DIGEST(),
    d2i_PKCS7_ENCRYPT(),
    i2d_PKCS7_ENCRYPT(),
    d2i_PKCS7_ENC_CONTENT(),
    i2d_PKCS7_ENC_CONTENT(),
    d2i_PKCS7_ENVELOPE(),
    i2d_PKCS7_ENVELOPE(),
    d2i_PKCS7_ISSUER_AND_SERIAL(),
    i2d_PKCS7_ISSUER_AND_SERIAL(),
    d2i_PKCS7_RECIP_INFO(),
    i2d_PKCS7_RECIP_INFO(),
    d2i_PKCS7_SIGNED(),
    i2d_PKCS7_SIGNED(),
    d2i_PKCS7_SIGNER_INFO(),
    i2d_PKCS7_SIGNER_INFO(),
    d2i_PKCS7_SIGN_ENVELOPE(), and
    i2d_PKCS7_SIGN_ENVELOPE() first appeared in SSLeay
    0.5.1 and have been available since OpenBSD 2.4.
| April 25, 2023 | Sortix 1.1.0-dev | 
