mirror of https://gitlab.com/bashrc2/epicyon
Exception handling on dates
parent
a6a54607c1
commit
58b5a51b05
40
httpsig.py
40
httpsig.py
|
@ -77,7 +77,13 @@ def sign_post_headers(date_str: str, private_key_pem: str,
|
|||
to_domain = get_full_domain(to_domain, to_port)
|
||||
|
||||
if not date_str:
|
||||
date_str = strftime("%a, %d %b %Y %H:%M:%S %Z", gmtime())
|
||||
try:
|
||||
date_str = strftime("%a, %d %b %Y %H:%M:%S %Z", gmtime())
|
||||
except BaseException as ex:
|
||||
print('EX: sign_post_headers date ' +
|
||||
str(ex) + ' ' +
|
||||
str(gmtime()) + " %a, %d %b %Y %H:%M:%S %Z")
|
||||
return ''
|
||||
if nickname != domain and nickname.lower() != 'actor':
|
||||
key_id = local_actor_url(http_prefix, nickname, domain)
|
||||
else:
|
||||
|
@ -159,9 +165,21 @@ def sign_post_headers_new(date_str: str, private_key_pem: str,
|
|||
time_format = "%a, %d %b %Y %H:%M:%S %Z"
|
||||
if not date_str:
|
||||
curr_time = gmtime()
|
||||
date_str = strftime(time_format, curr_time)
|
||||
try:
|
||||
date_str = strftime(time_format, curr_time)
|
||||
except BaseException as ex:
|
||||
print('EX: sign_post_headers_new date 1 ' +
|
||||
str(ex) + ' ' +
|
||||
time_format + ' ' + curr_time)
|
||||
return '', ''
|
||||
else:
|
||||
curr_time = datetime.datetime.strptime(date_str, time_format)
|
||||
try:
|
||||
curr_time = datetime.datetime.strptime(date_str, time_format)
|
||||
except BaseException as ex:
|
||||
print('EX: sign_post_headers_new date 2 ' +
|
||||
str(ex) + ' ' +
|
||||
date_str + ' ' + time_format)
|
||||
return '', ''
|
||||
seconds_since_epoch = \
|
||||
int((curr_time - datetime.datetime(1970, 1, 1)).total_seconds())
|
||||
key_id = local_actor_url(http_prefix, nickname, domain) + '#main-key'
|
||||
|
@ -248,7 +266,13 @@ def create_signed_header(date_str: str, private_key_pem: str, nickname: str,
|
|||
|
||||
# if no date is given then create one
|
||||
if not date_str:
|
||||
date_str = strftime("%a, %d %b %Y %H:%M:%S %Z", gmtime())
|
||||
try:
|
||||
date_str = strftime("%a, %d %b %Y %H:%M:%S %Z", gmtime())
|
||||
except BaseException as ex:
|
||||
print('EX: create_signed_header date ' +
|
||||
str(ex) + ' ' +
|
||||
"%a, %d %b %Y %H:%M:%S %Z " + str(gmtime()))
|
||||
return {}
|
||||
|
||||
# Content-Type or Accept header
|
||||
if not content_type:
|
||||
|
@ -295,7 +319,13 @@ def _verify_recent_signature(signed_date_str: str) -> bool:
|
|||
"""
|
||||
curr_date = datetime.datetime.utcnow()
|
||||
date_format = "%a, %d %b %Y %H:%M:%S %Z"
|
||||
signed_date = datetime.datetime.strptime(signed_date_str, date_format)
|
||||
try:
|
||||
signed_date = datetime.datetime.strptime(signed_date_str, date_format)
|
||||
except BaseException as ex:
|
||||
print('EX: _verify_recent_signature date ' +
|
||||
str(ex) + ' ' +
|
||||
signed_date_str + ' ' + date_format)
|
||||
return False
|
||||
time_diff_sec = (curr_date - signed_date).seconds
|
||||
# 12 hours tollerance
|
||||
if time_diff_sec > 43200:
|
||||
|
|
Loading…
Reference in New Issue