File indexing completed on 2026-04-20 07:59:01
0001 import re
0002 import subprocess
0003 import sys
0004
0005
0006 def clean_user_id(id):
0007 try:
0008 up = re.compile("/(DC|O|OU|C|L)=[^\/]+")
0009 username = up.sub("", id)
0010 up2 = re.compile("/CN=[0-9]+")
0011 username = up2.sub("", username)
0012 up3 = re.compile(" [0-9]+")
0013 username = up3.sub("", username)
0014 up4 = re.compile("_[0-9]+")
0015 username = up4.sub("", username)
0016 username = username.replace("/CN=proxy", "")
0017 username = username.replace("/CN=limited proxy", "")
0018 username = username.replace("limited proxy", "")
0019 username = re.sub("/CN=Robot:[^/]+", "", username)
0020 pat = re.compile(".*/CN=([^\/]+)/CN=([^\/]+)")
0021 mat = pat.match(username)
0022 if mat:
0023 username = mat.group(2)
0024 else:
0025 username = username.replace("/CN=", "")
0026 if username.lower().find("/email") > 0:
0027 username = username[: username.lower().find("/email")]
0028 pat = re.compile(".*(limited.*proxy).*")
0029 mat = pat.match(username)
0030 if mat:
0031 username = mat.group(1)
0032 username = username.replace("(", "")
0033 username = username.replace(")", "")
0034 username = username.replace("'", "")
0035 return username
0036 except BaseException:
0037 return id
0038
0039
0040 certFile = sys.argv[1]
0041 com = "openssl x509 -noout -subject -in"
0042 p = subprocess.Popen(com.split() + [certFile], stdout=subprocess.PIPE)
0043 out, err = p.communicate()
0044
0045
0046 try:
0047 out = out.decode("utf-8")
0048 except (UnicodeDecodeError, AttributeError):
0049 pass
0050
0051 out = re.sub("^subject=", "", out)
0052 out = out.strip()
0053 print(f'DN: "{out}"')
0054 print(f'extracted: "{clean_user_id(out)}"')