/usr/share/doc/python3-cryptography/docs/hazmat/primitives
NameSizeModeActions
asymmetric/-0755rm
mac/-0755rm
aead.rst103220644editdlrm
constant-time.rst15920644editdlrm
cryptographic-hashes.rst91530644editdlrm
index.rst2460644editdlrm
key-derivation-functions.rst399290644editdlrm
keywrap.rst31160644editdlrm
padding.rst46700644editdlrm
symmetric-encryption.rst315000644editdlrm
twofactor.rst105620644editdlrm
Edit: /usr/share/doc/python3-cryptography/docs/hazmat/primitives/constant-time.rst (1592B)
.. hazmat:: Constant time functions ======================= .. currentmodule:: cryptography.hazmat.primitives.constant_time This module contains functions for operating with secret data in a way that does not leak information about that data through how long it takes to perform the operation. These functions should be used whenever operating on secret data along with data that is user supplied. An example would be comparing a HMAC signature received from a client to the one generated by the server code for authentication purposes. For more information about this sort of issue, see `Coda Hale's blog post`_ about the timing attacks on KeyCzar and Java's ``MessageDigest.isEqual()``. .. function:: bytes_eq(a, b) Compares ``a`` and ``b`` with one another. If ``a`` and ``b`` have different lengths, this returns ``False`` immediately. Otherwise it compares them in a way that takes the same amount of time, regardless of how many characters are the same between the two. .. doctest:: >>> from cryptography.hazmat.primitives import constant_time >>> constant_time.bytes_eq(b"foo", b"foo") True >>> constant_time.bytes_eq(b"foo", b"bar") False :param bytes a: The left-hand side. :param bytes b: The right-hand side. :returns bool: ``True`` if ``a`` has the same bytes as ``b``, otherwise ``False``. :raises TypeError: This exception is raised if ``a`` or ``b`` is not ``bytes``. .. _`Coda Hale's blog post`: https://codahale.com/a-lesson-in-timing-attacks/