if m:
ssid = m.group(1)
- m = re.search('psk\s*=\s*"(.*?)"', line)
+ m = re.search('psk\s*=\s*"?([^"]*)"?', line)
if m:
psk = m.group(1)
enabled = s['wifiEnabled']
ssid = s['wifiNetworkName']
psk = s['wifiNetworkKey']
+ psk_is_hex = re.match('^[a-f0-9]{64}$', psk, re.I) is not None
key_mgmt = None if psk else 'NONE'
# will update the first configured network
if enabled and ssid and not found_ssid:
lines.insert(i, ' ssid="' + ssid + '"\n')
if enabled and psk and not found_psk:
- lines.insert(i, ' psk="' + psk + '"\n')
+ if psk_is_hex:
+ lines.insert(i, ' psk=' + psk + '\n')
+
+ else:
+ lines.insert(i, ' psk="' + psk + '"\n')
if enabled and not found_key_mgmt and key_mgmt:
lines.insert(i, ' key_mgmt=' + key_mgmt + '\n')
lines[i] = ' ssid="' + ssid + '"\n'
found_ssid = True
- elif re.match('psk\s*=\s*".*?"', line):
+ elif re.match('psk\s*=.*', line):
if psk:
- lines[i] = ' psk="' + psk + '"\n'
+ if psk_is_hex:
+ lines[i] = ' psk=' + psk + '\n'
+
+ else:
+ lines[i] = ' psk="' + psk + '"\n'
+
found_psk = True
else:
lines.append('network={\n')
lines.append(' scan_ssid=1\n')
lines.append(' ssid="' + ssid + '"\n')
- lines.append(' psk="' + psk + '"\n')
+ if psk_is_hex:
+ lines.append(' psk=' + psk + '\n')
+
+ else:
+ lines.append(' psk="' + psk + '"\n')
if key_mgmt:
lines.append(' key_mgmt=' + key_mgmt + '\n')
lines.append('}\n\n')