chiark / gitweb /
make-secnet-sites: Tainted: Provide hexid and base91
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 8 Nov 2019 22:00:51 +0000 (22:00 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 15 Feb 2020 21:56:51 +0000 (21:56 +0000)
These will be used for new-style public key specifictions.
No callers yet.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
make-secnet-sites

index 2fd182e29dcb3119cc625aba873a4bf071f0d60b..2c0543364afa0ab8f244233c6c285e614c9374ad 100755 (executable)
@@ -182,6 +182,13 @@ class Tainted:
                                             % (minn,maxx))
                return self._rtnval(ok,v,minn)
 
+       def hexid(self,byteslen,what):
+               ok=self._re_ok(Tainted.bad_hex,what,byteslen*2)
+               if ok:
+                       if len(self._s) < byteslen*2:
+                               ok=self._bad(what,'too short')
+               return self._rtn(ok,ifbad='00'*byteslen)
+
        bad_host=re.compile(r'[^-\][_.:0-9a-zA-Z]')
        # We permit _ so we can refer to special non-host domains
        # which have A and AAAA RRs.  This is a crude check and we may
@@ -205,6 +212,11 @@ class Tainted:
                ok=self._re_ok(Tainted.bad_groupname,'group name',64)
                return self._rtn(ok)
 
+       bad_base91=re.compile(r'[^!-~]|[\'\"\\]')
+       def base91(self,what='base91'):
+               ok=self._re_ok(Tainted.bad_base91,what,4096)
+               return self._rtn(ok)
+
 def parse_args():
        global service
        global inputfile