Back to home page

EIC code displayed by LXR

 
 

    


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 # Convert bytes object to string object if needed
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)}"')