aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorAlex Gaynor <alex.gaynor@gmail.com>2013-11-07 13:24:31 -0800
committerAlex Gaynor <alex.gaynor@gmail.com>2013-11-07 13:24:31 -0800
commit8ed651e717537ea69c987b78f6ef9f8d336bb734 (patch)
treeb7d573bdd6e6c8ebd52129502ec65955c263d9b6 /docs
parent60d4c68845aff3d44902cb978231fa01a5e74359 (diff)
downloadcryptography-8ed651e717537ea69c987b78f6ef9f8d336bb734.tar.gz
cryptography-8ed651e717537ea69c987b78f6ef9f8d336bb734.tar.bz2
cryptography-8ed651e717537ea69c987b78f6ef9f8d336bb734.zip
Be really explicit about what's good and bad
Diffstat (limited to 'docs')
-rw-r--r--docs/hazmat/primitives/symmetric-encryption.rst26
1 files changed, 23 insertions, 3 deletions
diff --git a/docs/hazmat/primitives/symmetric-encryption.rst b/docs/hazmat/primitives/symmetric-encryption.rst
index 7d3b072d..1aeb2a56 100644
--- a/docs/hazmat/primitives/symmetric-encryption.rst
+++ b/docs/hazmat/primitives/symmetric-encryption.rst
@@ -163,9 +163,29 @@ Modes
to be kept secret (they can be included
in a transmitted message). Must be the
same number of bytes as the
- ``block_size`` of the cipher. Do not
- reuse an ``initialization_vector`` with
- a given ``key``.
+ ``block_size`` of the cipher. Each time
+ someting is encrypted a new
+ ``initialization_vector`` should be
+ generated. Do not reuse an
+ ``initialization_vector`` with
+ a given ``key``, and particularly do
+ not use a constant
+ ``initialization_vector``.
+
+ A good construction looks like:
+
+ .. code-block:: pycon
+
+ >>> import os
+ >>> iv = os.urandom(16)
+ >>> mode = CBC(iv)
+
+ While the following is bad and will leak information:
+
+ .. code-block:: pycon
+
+ >>> iv = "a" * 16
+ >>> mode = CBC(iv)
.. class:: CTR(nonce)