From e8e0c349c8d38a298611a0a8cc3d6ddb92e7d90a Mon Sep 17 00:00:00 2001 From: Richard Moore Date: Fri, 20 Jun 2014 01:25:35 -0400 Subject: [PATCH] Version bump for Python 3 compatibility. --- README.md | 14 +++++++++++++- pyaes/__init__.py | 2 +- setup.py | 2 +- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index fc1d327..85f5161 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,16 @@ pyaes A pure-Python implmentation of the AES block cipher algorithm and the common modes of operation (CBC, CFB, CTR, ECB and OFB). +Features +-------- + +* Supports all AES key sizes +* Supports all AES common modes +* Pure-Python (no external dependancies) +* BlockFeeder API allows streams to easily be encrypted and decrypted +* Python 2.x and 3.x support (make sure you pass in bytes(), not strings for Python 3) + + API --- @@ -229,7 +239,9 @@ Performance There is a test case provided in _/tests/test-aes.py_ which does some basic performance testing (its primary purpose is moreso as a regression test). -Based on that test, this library is about 30x slower than [PyCrypto](https://www.dlitz.net/software/pycrypto/) for CBC, ECB and OFB; about 80x slower for CFB; and 300x slower for CTR. +Based on that test, in **CPython**, this library is about 30x slower than [PyCrypto](https://www.dlitz.net/software/pycrypto/) for CBC, ECB and OFB; about 80x slower for CFB; and 300x slower for CTR. + +Based on that same test, in **Pypy**, this library is about 4x slower than [PyCrypto](https://www.dlitz.net/software/pycrypto/) for CBC, ECB and OFB; about 12x slower for CFB; and 19x slower for CTR. The PyCrypto documentation makes reference to the counter call being responsible for the speed problems of the counter (CTR) mode of operation, which is why they use a specially optimized counter. I will investigate this problem further in the future. diff --git a/pyaes/__init__.py b/pyaes/__init__.py index fa31eb6..2a52e72 100644 --- a/pyaes/__init__.py +++ b/pyaes/__init__.py @@ -46,7 +46,7 @@ # https://www.dlitz.net/software/pycrypto/ -VERSION = [1, 1, 0] +VERSION = [1, 2, 0] from .aes import AES, AESModeOfOperationCTR, AESModeOfOperationCBC, AESModeOfOperationCFB, AESModeOfOperationECB, AESModeOfOperationOFB, AESModesOfOperation, Counter from .blockfeeder import Decrypter, Encrypter diff --git a/setup.py b/setup.py index 87de90a..378c66d 100644 --- a/setup.py +++ b/setup.py @@ -8,7 +8,7 @@ for API reference and details.''' setup(name = 'pyaes', - version = '1.1.0', + version = '1.2.0', description = 'Pure-Python Implementation of the AES block-cipher and common modes of operation', long_description = LONG_DESCRIPTION, author = 'Richard Moore',