New submission from Peter Wullinger <pyt...@dhke.de>:

The documentation for email.generator.{Bytes,}Generator do not mention that 
Generator._handle_multipart_signed() exists and disables header folding for 
subparts of multipart/signed.

This may cause some frustration, since, as implemented, rendering a message 
part enclosed in multipart/signed causes headers to fold differently than 
rendering the respective message part individually:

>>> text = MIMEText('', 'plain', 'utf-8')
>>> text['X-X'] = 'a b c d e f g h i j k l m n o p q r s t u v w x y z a b c d 
>>> e f g h i j k l m n o p'
>>> print(text.as_string())
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
X-X: a b c d e f g h i j k l m n o p q r s t u v w x y z a b c d e f g h i j k
 l m n o p


>>> signed = MIMEMultipart('signed', filename='smime.p7s')
>>> signed.attach(text)
>>> print(signed.as_string())
Content-Type: multipart/signed; filename="smime.p7s";
 boundary="===============8046244967080646804=="
MIME-Version: 1.0

--===============8046244967080646804==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
X-X: a b c d e f g h i j k l m n o p q r s t u v w x y z a b c d e f g h i j k 
l m n o p


--===============8046244967080646804==--

This breaks SMIME signatures when using the partial render to generate the 
signature. 

A possible workaround is to set maxheaderlen=0 for the partial render, which is 
the same as what Generator._handle_multipart_signed() does, but to do that one 
needs to know about the special processing.

Attached is a suggestion at a documentation fix that remedies this problem at 
least for the online docs.

----------
components: email
files: email-generator-multipart-signed-docs.patch
keywords: patch
messages: 305127
nosy: barry, dhke, r.david.murray
priority: normal
severity: normal
status: open
title: docs for email.generator are missing a comment on special 
multipart/signed handling
type: enhancement
versions: Python 2.7, Python 3.4, Python 3.5, Python 3.6, Python 3.7, Python 3.8
Added file: 
https://bugs.python.org/file47243/email-generator-multipart-signed-docs.patch

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue31887>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to