From 329ad74cbe37d638cdeba9569a182320a83d0eb8 Mon Sep 17 00:00:00 2001 From: Hidden Z Date: Wed, 6 Oct 2010 19:02:08 +0000 Subject: [PATCH] web/postkey/views.py: implement base64 hash validation --- web/postkey/views.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/web/postkey/views.py b/web/postkey/views.py index 9ce67da..808f803 100644 --- a/web/postkey/views.py +++ b/web/postkey/views.py @@ -40,6 +40,15 @@ class AddForm(ModelForm): if re.search(r'(^|\.)(proxy|router|console)$', namepart): raise forms.ValidationError('Trying to use reserved hostname') return data + def clean_b64hash(self): + data = self.cleaned_data['b64hash'] + # Minimum key length 516 bytes + if len(data) < 516: + raise forms.ValidationError('Specified base64 hash are less than 516 bytes') + # base64-i2p + if re.match(r'[a-zA-Z0-9\-~]+AAAA$', data) == None: + raise forms.ValidationError('Invalid base64 hash') + return data def index(request): if request.method == 'POST':