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.
This commit is contained in:
parent
edc05c5d88
commit
b75a228af8
@ -91,7 +91,6 @@ ALERT_DESCRIPTION_UNKNOWN_PSK_IDENTITY
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
import ipaddress
|
import ipaddress
|
||||||
import textwrap
|
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
@ -1201,9 +1200,10 @@ def DER_cert_to_PEM_cert(der_cert_bytes):
|
|||||||
PEM version of it as a string."""
|
PEM version of it as a string."""
|
||||||
|
|
||||||
f = str(base64.standard_b64encode(der_cert_bytes), 'ASCII', 'strict')
|
f = str(base64.standard_b64encode(der_cert_bytes), 'ASCII', 'strict')
|
||||||
return (PEM_HEADER + '\n' +
|
ss = [PEM_HEADER]
|
||||||
textwrap.fill(f, 64) + '\n' +
|
ss += [f[i:i+64] for i in range(0, len(f), 64)]
|
||||||
PEM_FOOTER + '\n')
|
ss.append(PEM_FOOTER + '\n')
|
||||||
|
return '\n'.join(ss)
|
||||||
|
|
||||||
def PEM_cert_to_DER_cert(pem_cert_string):
|
def PEM_cert_to_DER_cert(pem_cert_string):
|
||||||
"""Takes a certificate in ASCII PEM format and returns the
|
"""Takes a certificate in ASCII PEM format and returns the
|
||||||
|
Loading…
x
Reference in New Issue
Block a user