bundlewrap/bundles/wpa-supplicant/items.py
2021-10-28 22:56:50 +02:00

43 lines
1 KiB
Python

import hashlib, binascii
def wpa_psk(ssid, password):
return binascii.hexlify(
hashlib.pbkdf2_hmac('sha1', str.encode(password), str.encode(ssid), 4096, 32)
).decode()
interface = node.metadata.get('wpa-supplicant/interface')
ssid = node.metadata.get('wpa-supplicant/ssid')
passowrd = repo.vault.decrypt(node.metadata.get('wpa-supplicant/password')).value
psk = wpa_psk(ssid, passowrd)
files = {
f'/etc/wpa_supplicant/wpa_supplicant-{interface}.conf': {
'source': 'wpa_supplicant.conf',
'content_type': 'mako',
'context': {
'ssid': ssid,
'psk': psk,
},
'needs': [
'pkg_apt:wpasupplicant',
],
'triggers': [
f'svc_systemd:wpa_supplicant@{interface}:restart',
],
},
}
svc_systemd = {
'wpa_supplicant': {
'needs': [
'pkg_apt:wpasupplicant',
],
},
f'wpa_supplicant@{interface}': {
'needs': [
f'file:/etc/wpa_supplicant/wpa_supplicant-{interface}.conf',
],
},
}