wpa_supplicant
This commit is contained in:
parent
3652a521de
commit
9e4163d291
2 changed files with 24 additions and 11 deletions
|
@ -1,24 +1,15 @@
|
|||
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,
|
||||
'ssid': node.metadata.get('wpa-supplicant/ssid'),
|
||||
'psk': node.metadata.get('wpa-supplicant/psk'),
|
||||
},
|
||||
'needs': [
|
||||
'pkg_apt:wpasupplicant',
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
import hashlib, binascii
|
||||
|
||||
|
||||
defaults = {
|
||||
'apt': {
|
||||
'packages': {
|
||||
|
@ -5,3 +8,22 @@ defaults = {
|
|||
},
|
||||
},
|
||||
}
|
||||
|
||||
@metadata_reactor.provides(
|
||||
'wpa-supplicant/psk',
|
||||
)
|
||||
def psk(metadata):
|
||||
return {
|
||||
'wpa-supplicant': {
|
||||
'psk': binascii.hexlify(
|
||||
hashlib.pbkdf2_hmac(
|
||||
'sha1',
|
||||
repo.vault.decrypt(metadata.get('wpa-supplicant/password')).value.encode(),
|
||||
metadata.get('wpa-supplicant/ssid').encode(),
|
||||
4096,
|
||||
32
|
||||
)
|
||||
).decode()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue