Add _is_hex() function to parsers.py for checking keyid/fingerprints.
parent
807aa9821b
commit
5d94acce83
|
@ -34,6 +34,7 @@ import util
|
||||||
|
|
||||||
|
|
||||||
ESCAPE_PATTERN = re.compile(r'\\x([0-9a-f][0-9a-f])', re.I)
|
ESCAPE_PATTERN = re.compile(r'\\x([0-9a-f][0-9a-f])', re.I)
|
||||||
|
HEXIDECIMAL = re.compile('([0-9A-F]{2})+')
|
||||||
|
|
||||||
|
|
||||||
class ProtectedOption(Exception):
|
class ProtectedOption(Exception):
|
||||||
|
@ -327,6 +328,17 @@ def _is_allowed(input):
|
||||||
return input
|
return input
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def _is_hex(string):
|
||||||
|
"""Check that a string is hexidecimal, with alphabetic characters
|
||||||
|
capitalized and without whitespace.
|
||||||
|
|
||||||
|
:param str string: The string to check.
|
||||||
|
"""
|
||||||
|
matched = HEXIDECIMAL.match(string)
|
||||||
|
if matched is not None and len(matched.group()) >= 2:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
def _sanitise(*args):
|
def _sanitise(*args):
|
||||||
"""Take an arg or the key portion of a kwarg and check that it is in the
|
"""Take an arg or the key portion of a kwarg and check that it is in the
|
||||||
set of allowed GPG options and flags, and that it has the correct
|
set of allowed GPG options and flags, and that it has the correct
|
||||||
|
@ -393,6 +405,12 @@ def _sanitise(*args):
|
||||||
else:
|
else:
|
||||||
logger.debug("_check_option(): %s not file: %s"
|
logger.debug("_check_option(): %s not file: %s"
|
||||||
% (flag, val))
|
% (flag, val))
|
||||||
|
elif flag in ['--default-key']:
|
||||||
|
if _is_hex(val):
|
||||||
|
safe_option += (val + " ")
|
||||||
|
else:
|
||||||
|
logger.debug("_check_option(): '%s %s' not hex."
|
||||||
|
% (flag, val))
|
||||||
else:
|
else:
|
||||||
safe_option += (val + " ")
|
safe_option += (val + " ")
|
||||||
logger.debug("_check_option(): No checks for %s"
|
logger.debug("_check_option(): No checks for %s"
|
||||||
|
|
Loading…
Reference in New Issue