diff --git a/src/cryptography/hazmat/backends/openssl/x509.py b/src/cryptography/hazmat/backends/openssl/x509.py index c15aeb0ed9a6c9c3763c0392ed0fd31d6e913875_c3JjL2NyeXB0b2dyYXBoeS9oYXptYXQvYmFja2VuZHMvb3BlbnNzbC94NTA5LnB5..43ba5c28f16bbb75807c5916e7cd4dbfe7a07438_c3JjL2NyeXB0b2dyYXBoeS9oYXptYXQvYmFja2VuZHMvb3BlbnNzbC94NTA5LnB5 100644 --- a/src/cryptography/hazmat/backends/openssl/x509.py +++ b/src/cryptography/hazmat/backends/openssl/x509.py @@ -55,6 +55,9 @@ def __hash__(self): return hash(self.public_bytes(serialization.Encoding.DER)) + def __deepcopy__(self, memo): + return self + def fingerprint(self, algorithm): h = hashes.Hash(algorithm, self._backend) h.update(self.public_bytes(serialization.Encoding.DER)) diff --git a/tests/x509/test_x509.py b/tests/x509/test_x509.py index c15aeb0ed9a6c9c3763c0392ed0fd31d6e913875_dGVzdHMveDUwOS90ZXN0X3g1MDkucHk=..43ba5c28f16bbb75807c5916e7cd4dbfe7a07438_dGVzdHMveDUwOS90ZXN0X3g1MDkucHk= 100644 --- a/tests/x509/test_x509.py +++ b/tests/x509/test_x509.py @@ -7,6 +7,7 @@ import binascii import collections +import copy import datetime import ipaddress import os @@ -4807,6 +4808,14 @@ assert cert.signature_hash_algorithm is None assert cert.signature_algorithm_oid == SignatureAlgorithmOID.ED25519 + def test_deepcopy(self, backend): + cert = _load_cert( + os.path.join("x509", "ed25519", "root-ed25519.pem"), + x509.load_pem_x509_certificate, + backend + ) + assert copy.deepcopy(cert) is cert + @pytest.mark.supported( only_if=lambda backend: backend.ed448_supported(),