21
21
extern void PKCS7_free(PKCS7 *);
23
23
/* S/MIME operation */
24
%constant int PKCS7_TEXT = 0x1;
25
%constant int PKCS7_NOCERTS = 0x2;
26
%constant int PKCS7_NOSIGS = 0x4;
27
%constant int PKCS7_NOCHAIN = 0x8;
28
%constant int PKCS7_NOINTERN = 0x10;
29
%constant int PKCS7_NOVERIFY = 0x20;
30
%constant int PKCS7_DETACHED = 0x40;
31
%constant int PKCS7_BINARY = 0x80;
32
%constant int PKCS7_NOATTR = 0x100;
24
%constant int PKCS7_TEXT = 0x1;
25
%constant int PKCS7_NOCERTS = 0x2;
26
%constant int PKCS7_NOSIGS = 0x4;
27
%constant int PKCS7_NOCHAIN = 0x8;
28
%constant int PKCS7_NOINTERN = 0x10;
29
%constant int PKCS7_NOVERIFY = 0x20;
30
%constant int PKCS7_DETACHED = 0x40;
31
%constant int PKCS7_BINARY = 0x80;
32
%constant int PKCS7_NOATTR = 0x100;
34
%constant int PKCS7_SIGNED = NID_pkcs7_signed;
35
%constant int PKCS7_ENVELOPED = NID_pkcs7_enveloped;
36
%constant int PKCS7_SIGNED_ENVELOPED = NID_pkcs7_signedAndEnveloped;
37
%constant int PKCS7_DATA = NID_pkcs7_data;
34
%constant int PKCS7_SIGNED = NID_pkcs7_signed;
35
%constant int PKCS7_ENVELOPED = NID_pkcs7_enveloped;
36
%constant int PKCS7_SIGNED_ENVELOPED = NID_pkcs7_signedAndEnveloped;
37
%constant int PKCS7_DATA = NID_pkcs7_data;
40
40
static PyObject *_pkcs7_err, *_smime_err;
136
136
PyObject *tuple, *_p7, *_BIO;
138
if (BIO_method_type(bio) == BIO_TYPE_MEM) {
139
/* OpenSSL FAQ explains that this is needed for mem BIO to return EOF,
140
* like file BIO does. Might need to do this for more mem BIOs but
141
* not sure if that is safe, so starting with just this single place.
143
BIO_set_mem_eof_return(bio, 0);
138
146
if (!(p7=SMIME_read_PKCS7(bio, &bcont))) {
139
147
PyErr_SetString(_smime_err, ERR_reason_error_string(ERR_get_error()));