.. hazmat:: .. module:: cryptography.hazmat.primitives.interfaces Interfaces ========== ``cryptography`` uses `Abstract Base Classes`_ as interfaces to describe the properties and methods of most primitive constructs. Backends may also use this information to influence their operation. Interfaces should also be used to document argument and return types. .. _`Abstract Base Classes`: https://docs.python.org/3/library/abc.html Asymmetric interfaces --------------------- In 0.8 the asymmetric signature and verification interfaces were moved to the :mod:`cryptography.hazmat.primitives.asymmetric` module. In 0.8 the asymmetric padding interface was moved to the :mod:`cryptography.hazmat.primitives.asymmetric.padding` module. DSA ~~~ In 0.8 the DSA key interfaces were moved to the :mod:`cryptography.hazmat.primitives.asymmetric.dsa` module. RSA ~~~ In 0.8 the RSA key interfaces were moved to the :mod:`cryptography.hazmat.primitives.asymmetric.rsa` module. Elliptic Curve ~~~~~~~~~~~~~~ In 0.8 the EC key interfaces were moved to the :mod:`cryptography.hazmat.primitives.asymmetric.ec` module. Key derivation functions ------------------------ In 0.8 the key derivation function interface was moved to the :mod:`cryptography.hazmat.primitives.kdf` module. .. class:: MACContext .. versionadded:: 0.7 .. method:: update(data) :param bytes data: The data you want to authenticate. .. method:: finalize() :return: The message authentication code. .. method:: copy() :return: A :class:`~cryptography.hazmat.primitives.interfaces.MACContext` that is a copy of the current context. .. method:: verify(signature) :param bytes signature: The signature to verify. :raises cryptography.exceptions.InvalidSignature: This is raised when the provided signature does not match the expected signature. .. _`CMAC`: https://en.wikipedia.org/wiki/CMAC