1SMIME_READ_ASN1(3ossl)              OpenSSL             SMIME_READ_ASN1(3ossl)
2
3
4

NAME

6       SMIME_read_ASN1_ex, SMIME_read_ASN1 - parse S/MIME message
7

SYNOPSIS

9        #include <openssl/asn1.h>
10
11        ASN1_VALUE *SMIME_read_ASN1_ex(BIO *in, int flags, BIO **bcont,
12                                       const ASN1_ITEM *it, ASN1_VALUE **x,
13                                       OSSL_LIB_CTX *libctx, const char *propq);
14        ASN1_VALUE *SMIME_read_ASN1(BIO *in, BIO **bcont, const ASN1_ITEM *it);
15

DESCRIPTION

17       SMIME_read_ASN1_ex() parses a message in S/MIME format.
18
19       in is a BIO to read the message from.  If the flags argument contains
20       CMS_BINARY then the input is assumed to be in binary format and is not
21       translated to canonical form.  If in addition SMIME_ASCIICRLF is set
22       then the binary input is assumed to be followed by CR and LF
23       characters, else only by an LF character.  x can be used to optionally
24       supply a previously created it ASN1_VALUE object (such as
25       CMS_ContentInfo or PKCS7), it can be set to NULL. Valid values that can
26       be used by ASN.1 structure it are ASN1_ITEM_rptr(PKCS7) or
27       ASN1_ITEM_rptr(CMS_ContentInfo). Any algorithm fetches that occur
28       during the operation will use the OSSL_LIB_CTX supplied in the libctx
29       parameter, and use the property query string propq See "ALGORITHM
30       FETCHING" in crypto(7) for further details about algorithm fetching.
31
32       If cleartext signing is used then the content is saved in a memory bio
33       which is written to *bcont, otherwise *bcont is set to NULL.
34
35       The parsed ASN1_VALUE structure is returned or NULL if an error
36       occurred.
37
38       SMIME_read_ASN1() is similar to SMIME_read_ASN1_ex() but sets the value
39       of x to NULL and the value of flags to 0.
40

NOTES

42       The higher level functions SMIME_read_CMS_ex(3) and
43       SMIME_read_PKCS7_ex(3) should be used instead of SMIME_read_ASN1_ex().
44
45       To support future functionality if bcont is not NULL *bcont should be
46       initialized to NULL.
47

BUGS

49       The MIME parser used by SMIME_read_ASN1_ex() is somewhat primitive.
50       While it will handle most S/MIME messages more complex compound formats
51       may not work.
52
53       The use of a memory BIO to hold the signed content limits the size of
54       message which can be processed due to memory restraints: a streaming
55       single pass option should be available.
56

RETURN VALUES

58       SMIME_read_ASN1_ex() and SMIME_read_ASN1() return a valid ASN1_VALUE
59       structure or NULL if an error occurred. The error can be obtained from
60       ERR_get_error(3).
61

SEE ALSO

63       ERR_get_error(3), SMIME_read_CMS_ex(3), SMIME_read_PKCS7_ex(3),
64       SMIME_write_ASN1(3), SMIME_write_ASN1_ex(3)
65

HISTORY

67       The function SMIME_read_ASN1_ex() was added in OpenSSL 3.0.
68
70       Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved.
71
72       Licensed under the Apache License 2.0 (the "License").  You may not use
73       this file except in compliance with the License.  You can obtain a copy
74       in the file LICENSE in the source distribution or at
75       <https://www.openssl.org/source/license.html>.
76
77
78
793.1.1                             2023-08-31            SMIME_READ_ASN1(3ossl)
Impressum