Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- from argparse import ArgumentParser
- from binascii import hexlify
- from hashlib import pbkdf2_hmac
- CONFIG = """
- ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
- update_config=1
- network={{
- ssid="{ssid}"
- #psk="{password}"
- psk={psk}
- proto=RSN
- key_mgmt=WPA-PSK
- pairwise=CCMP
- group=CCMP
- }}
- """.lstrip()
- def gen_psk(ssid, password):
- password, ssid = map(str.encode, (password, ssid))
- hash = pbkdf2_hmac('sha1', password, ssid, 4096, 32)
- return hexlify(hash).decode()
- def main(ssid, password):
- if not sys.stdin.isatty() and password:
- print('Which password should I take? From stdin or the argument?', file=sys.stderr)
- return 2
- if not sys.stdin.isatty() and not password:
- password = sys.stdin.readline().rstrip()
- try:
- psk = gen_psk(ssid, password)
- print(CONFIG.format(ssid=ssid, password=password, psk=psk))
- except Exception as e:
- print(e, file=sys.stderr)
- return 1
- if __name__ == '__main__':
- parser = ArgumentParser()
- parser.add_argument('ssid', help='SSID of hotspot')
- parser.add_argument('password', default='', nargs='?', help='Password of hotspot')
- args = parser.parse_args()
- retval = main(**vars(args))
- sys.exit(retval)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement