1
0
mirror of https://github.com/r4sas/py-i2phosts synced 2025-02-05 11:24:16 +00:00

web/lib/validation.py: fix base64 validations according to zzz's explanation

This commit is contained in:
Hidden Z 2010-10-16 19:03:54 +00:00
parent f6f2d25426
commit f3a79838e6

View File

@ -47,8 +47,11 @@ def validate_b64hash(data, check_uniq=True):
# Minimum key length 516 bytes
if len(data) < 516:
raise forms.ValidationError('Specified base64 hash are less than 516 bytes')
# keys with cert may ends with anything, so check is relaxed
if len(data) > 516 and re.match(r'[a-zA-Z0-9\-~]+$', data) == None:
raise forms.ValidationError('Invalid characters in base64 hash')
# base64-i2p
if re.match(r'[a-zA-Z0-9\-~]+AAAA$', data) == None:
if len(data) == 516 and re.match(r'[a-zA-Z0-9\-~]+AA$', data) == None:
raise forms.ValidationError('Invalid base64 hash')
if check_uniq == True:
# Avoid adding non-unique hashes