DNS = {}
ValidHostNames = [] # will be initialized in later
-SSHFingerprint = re.compile('^(\d+) ([0-9a-f\:]{47}) (.+)$')
+SSHFingerprint = re.compile('^(\d+) ([0-9a-f\:]{47}|SHA256:[0-9A-Za-z/+]{43}) (.+)$')
SSHRSA1Match = re.compile('^^(.* )?\d+ \d+ \d+')
-GenderTable = {"male": '1',
- "1": '1',
- "female": '2',
- "2": '2',
- "unspecified": '9',
- "9": '9',
-};
-
ArbChanges = {"c": "..",
"l": ".*",
"facsimileTelephoneNumber": ".*",
"mailCallout": "^(TRUE|FALSE)$",
"mailDefaultOptions": "^(TRUE|FALSE)$",
"VoIP": ".*",
- "gender": "^(1|2|9|male|female|unspecified)$",
"mailContentInspectionAction": "^(reject|blackhole|markup)$",
};
raise UDFormatError, "Item does not match the required format"+ArbChanges[attrName];
value = G[1];
- if attrName == 'gender':
- if G[1] not in GenderTable:
- raise UDFormatError, "Gender not found in table"
- value = GenderTable[G[1]]
# if attrName == 'birthDate':
# (re.match("^([0-9]{4})([01][0-9])([0-3][0-9])$",G[1]) {
if not machine_regex.match(m):
return "machine specification for ssh key contains invalid characters"
if m not in ValidHostNames:
- return "unknown machine used in allowed_hosts stanza for ssh keys"
+ return "unknown machine {} used in allowed_hosts stanza for ssh keys".format(m)
(fd, path) = tempfile.mkstemp(".pub", "sshkeytry", "/tmp")
f = open(path, "w")
Subst["__USER__"] = uid
Match = SSHFingerprint.match(output)
+ if Match is None:
+ return "Failed to match SSH fingerprint, has the output of ssh-keygen changed?"
g = Match.groups()
key_size = g[0]
fingerprint = g[1]
cnamerecord = re.match("^[-\w]+\s+IN\s+CNAME\s+([-\w.]+\.)$",Str,re.IGNORECASE)
arecord = re.match('^[-\w]+\s+IN\s+A\s+(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$',Str,re.IGNORECASE)
mxrecord = re.match("^[-\w]+\s+IN\s+MX\s+(\d{1,3})\s+([-\w.]+\.)$",Str,re.IGNORECASE)
- txtrecord = re.match("^[-\w]+\s+IN\s+TXT\s+([-\d. a-z\t<>@]+)", Str, re.IGNORECASE)
+ txtrecord = re.match("^[-\w]+\s+IN\s+TXT\s+([-\d. a-z\t<>@:]+)", Str, re.IGNORECASE)
#aaaarecord = re.match('^[-\w]+\s+IN\s+AAAA\s+((?:[0-9a-f]{1,4})(?::[0-9a-f]{1,4})*(?::(?:(?::[0-9a-f]{1,4})*|:))?)$',Str,re.IGNORECASE)
aaaarecord = re.match('^[-\w]+\s+IN\s+AAAA\s+([A-F0-9:]{2,39})$',Str,re.IGNORECASE)