)]}'
{
  "commit": "c273b6c237303cf6d09f5d33bdb58113df4dc679",
  "tree": "a51642bea9b0b02b1043646a8eeba5d42e0c0a41",
  "parents": [
    "4ce0dd74b36af9f96747da650aed84bbe93c76df"
  ],
  "author": {
    "name": "Dwayne Litzenberger",
    "email": "dlitz@dlitz.net",
    "time": "Sun May 05 06:29:37 2013"
  },
  "committer": {
    "name": "Dwayne Litzenberger",
    "email": "dlitz@dlitz.net",
    "time": "Sun May 05 08:45:23 2013"
  },
  "message": "[Fix LP#1176482] Restore previous behavior of the block cipher \u0027IV\u0027 attribute\n\nPEP 272 describes the behavior of the block cipher \u0027IV\u0027 attribute as\nfollows:\n\n    IV\n\n        Contains the initial value which will be used to start a\n        cipher feedback mode; it will always be a string exactly one\n        block in length. After encrypting or decrypting a string,\n        this value is updated to reflect the modified feedback text.\n        It is read-only, and cannot be assigned a new value.\n\nIn versions of PyCrypto prior to 2.6, the implementation of the \u0027IV\u0027\nattribute matched this description, except that the attribute was\nalso writable and could modify the behavior of the cipher.\n\nIn PyCrypto 2.6, this behavior was changed: The \u0027IV\u0027 attribute was no\nlonger updated during encryptions and decryptions, and writing to it no\nlonger had any effect.\n\nPyCrypto 2.5 and below:\n\n    \u003e\u003e\u003e from Crypto.Cipher import AES\n    \u003e\u003e\u003e ciph \u003d AES.new(\"\\0\"*16, AES.MODE_CBC, \"ABCDEFGHIJKLMNOP\")\n    \u003e\u003e\u003e ciph.encrypt(\"\\0\"*16)\n    \u0027a\\xd7\\x82X\\xeb\\x1a\\xbdo\\xffG\\x9d\\x1d\\xab\\xb6\\x10;\u0027\n    \u003e\u003e\u003e ciph.IV\n    \u0027a\\xd7\\x82X\\xeb\\x1a\\xbdo\\xffG\\x9d\\x1d\\xab\\xb6\\x10;\u0027\n\nPyCrypto 2.6:\n\n    \u003e\u003e\u003e from Crypto.Cipher import AES\n    \u003e\u003e\u003e ciph \u003d AES.new(\"\\0\"*16, AES.MODE_CBC, \"ABCDEFGHIJKLMNOP\")\n    \u003e\u003e\u003e ciph.encrypt(\"\\0\"*16)\n    \u0027a\\xd7\\x82X\\xeb\\x1a\\xbdo\\xffG\\x9d\\x1d\\xab\\xb6\\x10;\u0027\n    \u003e\u003e\u003e ciph.IV\n    \u0027ABCDEFGHIJKLMNOP\u0027\n\nThe bug was introduced at the same time that we introduced Python\nwrappers around the native C objects.\n\nBug introduced: commit 6f9fe103a582999c397f7bc8a2248613a207b780\nBug report: https://bugs.launchpad.net/pycrypto/+bug/1176482\n\nThis commit restores the previous (PyCrypto 2.5) behavior.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8f78cc841050730f9aebef7ed287335b9a5bc3b8",
      "old_mode": 33188,
      "old_path": "lib/Crypto/Cipher/blockalgo.py",
      "new_id": "f88e6202cbd301f493d10d8d640b2c2103dd86f0",
      "new_mode": 33188,
      "new_path": "lib/Crypto/Cipher/blockalgo.py"
    },
    {
      "type": "modify",
      "old_id": "26fabedaab38e64103a95aa5687966fef8e02c83",
      "old_mode": 33188,
      "old_path": "lib/Crypto/SelfTest/Cipher/common.py",
      "new_id": "eacc2b5345199cc07df03df2caca161eaa062c7b",
      "new_mode": 33188,
      "new_path": "lib/Crypto/SelfTest/Cipher/common.py"
    }
  ]
}
