diff --git a/ipapython/ipaldap.py b/ipapython/ipaldap.py index 48988b017..066f65dc4 100644 --- a/ipapython/ipaldap.py +++ b/ipapython/ipaldap.py @@ -33,6 +33,7 @@ from urllib.parse import urlparse import warnings from cryptography import x509 as crypto_x509 +from cryptography.hazmat.primitives import serialization import ldap import ldap.sasl @@ -1289,6 +1290,8 @@ class LDAPClient: ] return cls.combine_filters(flts, rules) elif value is not None: + if isinstance(value, crypto_x509.Certificate): + value = value.public_bytes(serialization.Encoding.DER) if isinstance(value, bytes): value = binascii.hexlify(value).decode('ascii') # value[-2:0] is empty string for the initial '\\'