diff options
author | Martin Basti <mbasti@redhat.com> | 2017-01-19 15:28:15 +0100 |
---|---|---|
committer | Martin Basti <mbasti@redhat.com> | 2017-01-31 18:33:27 +0100 |
commit | b8d6524d43dd0667184aebc79fb77a9b8a46939a (patch) | |
tree | 90ba817b49b03a30daf29c60f17498c82d674853 | |
parent | 47e76e16ef2e5d714881f3cce204611a95b4e5c8 (diff) | |
download | freeipa-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>
-rw-r--r-- | ipalib/x509.py | 16 |
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): |