summaryrefslogtreecommitdiffstats
path: root/ipalib
diff options
context:
space:
mode:
authorMartin Basti <mbasti@redhat.com>2017-01-19 15:28:15 +0100
committerMartin Basti <mbasti@redhat.com>2017-01-31 18:33:27 +0100
commitb8d6524d43dd0667184aebc79fb77a9b8a46939a (patch)
tree90ba817b49b03a30daf29c60f17498c82d674853 /ipalib
parent47e76e16ef2e5d714881f3cce204611a95b4e5c8 (diff)
downloadfreeipa-b8d6524d43dd0667184aebc79fb77a9b8a46939a.tar.gz
freeipa-b8d6524d43dd0667184aebc79fb77a9b8a46939a.tar.xz
freeipa-b8d6524d43dd0667184aebc79fb77a9b8a46939a.zip
py3: strip_header: support both bytes and unicode
Various method passed various bytes or unicode as parameter https://fedorahosted.org/freeipa/ticket/4985 Reviewed-By: Christian Heimes <cheimes@redhat.com>
Diffstat (limited to 'ipalib')
-rw-r--r--ipalib/x509.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/ipalib/x509.py b/ipalib/x509.py
index 13327c175..d883ac4e1 100644
--- a/ipalib/x509.py
+++ b/ipalib/x509.py
@@ -85,12 +85,16 @@ def strip_header(pem):
"""
Remove the header and footer from a certificate.
"""
- s = pem.find("-----BEGIN CERTIFICATE-----")
- if s >= 0:
- e = pem.find("-----END CERTIFICATE-----")
- pem = pem[s+27:e]
-
- return pem
+ regexp = (
+ u"^-----BEGIN CERTIFICATE-----(.*?)-----END CERTIFICATE-----"
+ )
+ if isinstance(pem, bytes):
+ regexp = regexp.encode('ascii')
+ s = re.search(regexp, pem, re.MULTILINE | re.DOTALL)
+ if s is not None:
+ return s.group(1)
+ else:
+ return pem
def load_certificate(data, datatype=PEM):