Repository URL to install this package:
|
Version:
43.0.1 ▾
|
.. hazmat::
Decrepit Symmetric algorithms
=============================
.. module:: cryptography.hazmat.decrepit.ciphers
This module contains decrepit symmetric encryption algorithms. These
are algorithms that should not be used unless necessary for backwards
compatibility or interoperability with legacy systems. Their use is
**strongly discouraged**.
These algorithms require you to use a :class:`~cryptography.hazmat.primitives.ciphers.Cipher`
object along with the appropriate :mod:`~cryptography.hazmat.primitives.ciphers.modes`.
.. class:: ARC4(key)
.. versionadded:: 43.0.0
ARC4 (Alleged RC4) is a stream cipher with serious weaknesses in its
initial stream output. Its use is strongly discouraged. ARC4 does not use
mode constructions.
:param key: The secret key. This must be kept secret. Either ``40``,
``56``, ``64``, ``80``, ``128``, ``192``, or ``256`` :term:`bits` in
length.
:type key: :term:`bytes-like`
.. doctest::
>>> import os
>>> from cryptography.hazmat.decrepit.ciphers.algorithms import ARC4
>>> from cryptography.hazmat.primitives.ciphers import Cipher, modes
>>> key = os.urandom(16)
>>> algorithm = ARC4(key)
>>> cipher = Cipher(algorithm, mode=None)
>>> encryptor = cipher.encryptor()
>>> ct = encryptor.update(b"a secret message")
>>> decryptor = cipher.decryptor()
>>> decryptor.update(ct)
b'a secret message'
.. class:: TripleDES(key)
.. versionadded:: 43.0.0
Triple DES (Data Encryption Standard), sometimes referred to as 3DES, is a
block cipher standardized by NIST. Triple DES has known crypto-analytic
flaws, however none of them currently enable a practical attack.
Nonetheless, Triple DES is not recommended for new applications because it
is incredibly slow; old applications should consider moving away from it.
:param key: The secret key. This must be kept secret. Either ``64``,
``128``, or ``192`` :term:`bits` long. DES only uses ``56``, ``112``,
or ``168`` bits of the key as there is a parity byte in each component
of the key. Some writing refers to there being up to three separate
keys that are each ``56`` bits long, they can simply be concatenated
to produce the full key.
:type key: :term:`bytes-like`
.. class:: CAST5(key)
.. versionadded:: 43.0.0
CAST5 (also known as CAST-128) is a block cipher approved for use in the
Canadian government by the `Communications Security Establishment`_. It is
a variable key length cipher and supports keys from 40-128 :term:`bits` in
length.
:param key: The secret key, This must be kept secret. 40 to 128
:term:`bits` in length in increments of 8 bits.
:type key: :term:`bytes-like`
.. doctest::
>>> import os
>>> from cryptography.hazmat.decrepit.ciphers.algorithms import CAST5
>>> from cryptography.hazmat.primitives.ciphers import Cipher, modes
>>> key = os.urandom(16)
>>> iv = os.urandom(8)
>>> algorithm = CAST5(key)
>>> cipher = Cipher(algorithm, modes.CBC(iv))
>>> encryptor = cipher.encryptor()
>>> ct = encryptor.update(b"a secret message")
>>> decryptor = cipher.decryptor()
>>> decryptor.update(ct)
b'a secret message'
.. class:: SEED(key)
.. versionadded:: 43.0.0
SEED is a block cipher developed by the Korea Information Security Agency
(KISA). It is defined in :rfc:`4269` and is used broadly throughout South
Korean industry, but rarely found elsewhere.
:param key: The secret key. This must be kept secret. ``128``
:term:`bits` in length.
:type key: :term:`bytes-like`
.. class:: Blowfish(key)
.. versionadded:: 43.0.0
Blowfish is a block cipher developed by Bruce Schneier. It is known to be
susceptible to attacks when using weak keys. The author has recommended
that users of Blowfish move to newer algorithms.
:param key: The secret key. This must be kept secret. 32 to 448
:term:`bits` in length in increments of 8 bits.
:type key: :term:`bytes-like`
.. class:: IDEA(key)
.. versionadded:: 43.0.0
IDEA (`International Data Encryption Algorithm`_) is a block cipher created
in 1991. It is an optional component of the `OpenPGP`_ standard. This cipher
is susceptible to attacks when using weak keys. It is recommended that you
do not use this cipher for new applications.
:param key: The secret key. This must be kept secret. ``128``
:term:`bits` in length.
:type key: :term:`bytes-like`
.. _`Communications Security Establishment`: https://www.cse-cst.gc.ca
.. _`International Data Encryption Algorithm`: https://en.wikipedia.org/wiki/International_Data_Encryption_Algorithm
.. _`OpenPGP`: https://www.openpgp.org/