.. hazmat:: MultiBackend ============ .. currentmodule:: cryptography.hazmat.backends.multibackend .. class:: MultiBackend(backends) .. versionadded:: 0.2 This class allows you to combine multiple backends into a single backend that offers the combined features of all of its constituents. .. testsetup:: from cryptography import utils from cryptography.exceptions import UnsupportedAlgorithm, _Reasons from cryptography.hazmat.backends.interfaces import HashBackend from cryptography.hazmat.backends.openssl.backend import backend as backend2 @utils.register_interface(HashBackend) class DummyHashBackend(object): def hash_supported(self, algorithm): return False def create_hash_ctx(self, algorithm): raise UnsupportedAlgorithm("", _Reasons.UNSUPPORTED_HASH) backend1 = DummyHashBackend() .. doctest:: >>> from cryptography.hazmat.backends.multibackend import MultiBackend >>> from cryptography.hazmat.primitives import hashes >>> backend1.hash_supported(hashes.SHA256()) False >>> backend2.hash_supported(hashes.SHA256()) True >>> multi_backend = MultiBackend([backend1, backend2]) >>> multi_backend.hash_supported(hashes.SHA256()) True :param backends: A ``list`` of backend objects. Backends are checked for feature support in the order they appear in this list.