[Python-checkins] bpo-31659: Use simple slicing to format PEM cert (GH-3849)
INADA Naoki
webhook-mailer at python.org
Mon Oct 2 03:33:47 EDT 2017
https://github.com/python/cpython/commit/b75a228af8c0553aef44e4e03763af90fbc8737f
commit: b75a228af8c0553aef44e4e03763af90fbc8737f
branch: master
author: INADA Naoki <methane at users.noreply.github.com>
committer: GitHub <noreply at github.com>
date: 2017-10-02T16:33:42+09:00
summary:
bpo-31659: Use simple slicing to format PEM cert (GH-3849)
DER_cert_to_PEM_cert() used textwrap.fill() to format PEM.
But it's library to wrap lines on word boundary, while PEM is
base64 encoded string.
Additionally, importing textwrap is little slow.
files:
M Lib/ssl.py
diff --git a/Lib/ssl.py b/Lib/ssl.py
index 24f24b17bf1..75caae0c440 100644
--- a/Lib/ssl.py
+++ b/Lib/ssl.py
@@ -91,7 +91,6 @@
"""
import ipaddress
-import textwrap
import re
import sys
import os
@@ -1201,9 +1200,10 @@ def DER_cert_to_PEM_cert(der_cert_bytes):
PEM version of it as a string."""
f = str(base64.standard_b64encode(der_cert_bytes), 'ASCII', 'strict')
- return (PEM_HEADER + '\n' +
- textwrap.fill(f, 64) + '\n' +
- PEM_FOOTER + '\n')
+ ss = [PEM_HEADER]
+ ss += [f[i:i+64] for i in range(0, len(f), 64)]
+ ss.append(PEM_FOOTER + '\n')
+ return '\n'.join(ss)
def PEM_cert_to_DER_cert(pem_cert_string):
"""Takes a certificate in ASCII PEM format and returns the
More information about the Python-checkins
mailing list