diff options
author | Alex Gaynor <alex.gaynor@gmail.com> | 2014-10-19 19:09:44 -0700 |
---|---|---|
committer | Alex Gaynor <alex.gaynor@gmail.com> | 2014-10-20 07:55:00 -0700 |
commit | 7b593e1b5ecf9741a1398a739815b8a11599a06a (patch) | |
tree | c28710ec885940090abb79daab7555edffea1241 /cryptography | |
parent | 75c024618951db12cb759825e21e7b95f41749af (diff) | |
download | cryptography-7b593e1b5ecf9741a1398a739815b8a11599a06a.tar.gz cryptography-7b593e1b5ecf9741a1398a739815b8a11599a06a.tar.bz2 cryptography-7b593e1b5ecf9741a1398a739815b8a11599a06a.zip |
Fixes #1327 -- adds multifernet
Diffstat (limited to 'cryptography')
-rw-r--r-- | cryptography/fernet.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/cryptography/fernet.py b/cryptography/fernet.py index a8e0330e..9fee3eba 100644 --- a/cryptography/fernet.py +++ b/cryptography/fernet.py @@ -127,3 +127,21 @@ class Fernet(object): except ValueError: raise InvalidToken return unpadded + + +class MultiFernet(object): + def __init__(self, fernets): + if not fernets: + raise ValueError("MultiFernet requires at least one fernet") + self._fernets = fernets + + def encrypt(self, msg): + return self._fernets[0].encrypt(msg) + + def decrypt(self, msg, ttl=None): + for f in self._fernets: + try: + return f.decrypt(msg, ttl) + except InvalidToken: + pass + raise InvalidToken |