From: Sergey Matveev Date: Wed, 20 Nov 2024 21:25:26 +0000 (+0300) Subject: Assure that minimally encoded TAI64s are used X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=cbb6f2752501bdccbf143ceda135519b902dd1a2112f1a3c0fb791004be423d2;p=keks.git Assure that minimally encoded TAI64s are used --- diff --git a/pyac/pyac.py b/pyac/pyac.py index 43dcf8b..92f0ec4 100755 --- a/pyac/pyac.py +++ b/pyac/pyac.py @@ -298,11 +298,15 @@ def loads(v, sets=False, leapsecUTCAllow=False): nsecs = 0 if l > 8: nsecs = int.from_bytes(v[1+8:1+8+4], "big") + if nsecs == 0: + raise DecodeError("non-minimal encoding") if nsecs > 999999999: raise DecodeError("too many nanoseconds") asecs = 0 if l > 12: asecs = int.from_bytes(v[1+8+4:1+8+4+4], "big") + if asecs == 0: + raise DecodeError("non-minimal encoding") if asecs > 999999999: raise DecodeError("too many attoseconds") secs = tai2utc(secs - TAI64Base, leapsecUTCAllow)