import subprocess
import re
import hashlib
import binascii

def getUsername(username, gecos = True, passwd = "/etc/passwd"):
    content = [x.split(":") for x in open(passwd, "r").readlines()]

    for entry in content:
        if len(entry) != 0 and entry[0] == username:
            if gecos and len(entry[4]) != 0:
                return entry[4]
            else:
                return username

def getWPAPassphraseHash(ssid, passphrase):
    if len(passphrase) >= 8:
        proc = subprocess.Popen(["wpa_passphrase", ssid, passphrase], stdout=subprocess.PIPE)
        proc.wait()
        for line in proc.stdout.readlines():
            match = re.match("^\s*psk.*$", line.decode("utf-8"))
            if match:
                return match.string.split("=")[1].strip()
    return ""

def getEAPPassphraseHash(passphrase):
    hash = hashlib.new("md4", passphrase.encode("utf-16le")).digest()
    return binascii.hexlify(hash).decode("utf-8")

if __name__ == "__main__":
    print(getWPAPassphraseHash("MySSID", "MySecurePassword"))