Add hastily written check_preferences().

* TODO I sleepily realised two lines before the end of bashing this out that
   it should just be a set difference.
testing/mmn/mktime_takes_localtime_not_gmtime
Isis Lovecruft 2013-05-11 18:30:22 +00:00
parent 4258900368
commit e5ac938486
No known key found for this signature in database
GPG Key ID: A3ADB67A2CDB8B35
1 changed files with 27 additions and 0 deletions

View File

@ -44,6 +44,33 @@ class UsageError(Exception):
"""Raised when incorrect usage of the API occurs.."""
def _check_preferences(prefs, pref_type=None):
cipher = frozenset(['AES256', 'AES192', 'CAMELLIA256', 'CAMELLIA192',
'TWOFISH',])
digest = frozenset(['SHA512', 'SHA384', 'SHA256', 'SHA224'])
compress = frozenset(['ZLIB', 'ZIP', 'Uncompressed'])
all = frozenset([ciphers, hashes, compress])
if isinstance(prefs, str):
prefs = prefs.split(' ')
if not pref_type:
pref_type = all
## xxx we should use set differences
if pref_type == 'cipher':
for pref in prefs:
if not cipher.contains(pref): return
if pref_type == 'digest':
for pref in prefs:
if not digest.contains(pref): return
if pref_type == 'compress':
for pref in prefs:
if not compress.contains(pref): return
if pref_type == 'all':
for pref in prefs:
if not all.contains(pref): return
return ' '.join([pref for pref in prefs])
def _fix_unsafe(shell_input):
"""Find characters used to escape from a string into a shell, and wrap them
in quotes if they exist. Regex pilfered from python-3.x shlex module.