1SMIME_READ_ASN1(3ossl) OpenSSL SMIME_READ_ASN1(3ossl)
2
3
4
6 SMIME_read_ASN1_ex, SMIME_read_ASN1 - parse S/MIME message
7
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
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
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
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
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
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
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)