mirror of
https://gitea.osmocom.org/sim-card/pysim.git
synced 2026-03-27 07:48:33 +03:00
utils: add is_hex function to check hex strings
since we have added pySim-shell.py that has a lot of locations where the user can enter hexadecimal data there is an increased need for input validation. Lets add a central is_hex function that verifies hex strings. Change-Id: Ia29a13c9215357dd2adf141f2ef222c823f8456d Related: OS#4963
This commit is contained in:
@@ -577,6 +577,28 @@ def enc_addr_tlv(addr, addr_type='00'):
|
|||||||
|
|
||||||
return s
|
return s
|
||||||
|
|
||||||
|
def is_hex(string, minlen=2, maxlen=None) -> bool:
|
||||||
|
"""
|
||||||
|
Check if a string is a valid hexstring
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Filter obviously bad strings
|
||||||
|
if not string:
|
||||||
|
return False
|
||||||
|
if len(string) < minlen or minlen < 2:
|
||||||
|
return False
|
||||||
|
if len(string) % 2:
|
||||||
|
return False
|
||||||
|
if maxlen and len(string) > maxlen:
|
||||||
|
return False
|
||||||
|
|
||||||
|
# Try actual encoding to be sure
|
||||||
|
try:
|
||||||
|
try_encode = h2b(string)
|
||||||
|
return True
|
||||||
|
except:
|
||||||
|
return False
|
||||||
|
|
||||||
def sanitize_pin_adm(pin_adm, pin_adm_hex = None):
|
def sanitize_pin_adm(pin_adm, pin_adm_hex = None):
|
||||||
"""
|
"""
|
||||||
The ADM pin can be supplied either in its hexadecimal form or as
|
The ADM pin can be supplied either in its hexadecimal form or as
|
||||||
|
|||||||
Reference in New Issue
Block a user