diff options
author | Robin Gloster <mail@glob.in> | 2016-02-09 17:23:24 +0100 |
---|---|---|
committer | Robin Gloster <mail@glob.in> | 2016-02-09 17:23:24 +0100 |
commit | 5bfcce9ed919164f5e46fccc71aa79082e7ae970 (patch) | |
tree | b91ee71ec5f22dda88e2f4076ddbb1aeef6f44e4 /nixos/modules | |
parent | 4d760edb94e94c316fa38399277c0e71f1c6e890 (diff) | |
parent | 9e986c161b8127d16063ff5c0da7aad4639422c8 (diff) | |
download | nixlib-5bfcce9ed919164f5e46fccc71aa79082e7ae970.tar nixlib-5bfcce9ed919164f5e46fccc71aa79082e7ae970.tar.gz nixlib-5bfcce9ed919164f5e46fccc71aa79082e7ae970.tar.bz2 nixlib-5bfcce9ed919164f5e46fccc71aa79082e7ae970.tar.lz nixlib-5bfcce9ed919164f5e46fccc71aa79082e7ae970.tar.xz nixlib-5bfcce9ed919164f5e46fccc71aa79082e7ae970.tar.zst nixlib-5bfcce9ed919164f5e46fccc71aa79082e7ae970.zip |
Merge pull request #12894 from nathan7/raw-psk
wpa_supplicant module: add an option for accepting raw PSKs
Diffstat (limited to 'nixos/modules')
-rw-r--r-- | nixos/modules/services/networking/wpa_supplicant.nix | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/nixos/modules/services/networking/wpa_supplicant.nix b/nixos/modules/services/networking/wpa_supplicant.nix index 1b655af6c82d..1558c5832892 100644 --- a/nixos/modules/services/networking/wpa_supplicant.nix +++ b/nixos/modules/services/networking/wpa_supplicant.nix @@ -8,11 +8,15 @@ let ${optionalString cfg.userControlled.enable '' ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=${cfg.userControlled.group} update_config=1''} - ${concatStringsSep "\n" (mapAttrsToList (ssid: networkConfig: '' + ${concatStringsSep "\n" (mapAttrsToList (ssid: networkConfig: let + psk = if networkConfig.psk != null + then ''"${networkConfig.psk}"'' + else networkConfig.pskRaw; + in '' network={ ssid="${ssid}" - ${optionalString (networkConfig.psk != null) ''psk="${networkConfig.psk}"''} - ${optionalString (networkConfig.psk == null) ''key_mgmt=NONE''} + ${optionalString (psk != null) ''psk=${psk}''} + ${optionalString (psk == null) ''key_mgmt=NONE''} } '') cfg.networks)} '' else "/etc/wpa_supplicant.conf"; @@ -49,6 +53,19 @@ in { Be aware that these will be written to the nix store in plaintext! + + Mutually exclusive with <varname>pskRaw</varname>. + ''; + }; + + pskRaw = mkOption { + type = types.nullOr types.str; + default = null; + description = '' + The network's pre-shared key in hex defaulting + to being a network without any authentication. + + Mutually exclusive with <varname>psk</varname>. ''; }; }; @@ -95,6 +112,11 @@ in { config = mkMerge [ (mkIf cfg.enable { + assertions = flip mapAttrsToList cfg.networks (name: cfg: { + assertion = cfg.psk == null || cfg.pskRaw == null; + message = ''networking.wireless."${name}".psk and networking.wireless."${name}".pskRaw are mutually exclusive''; + }); + environment.systemPackages = [ pkgs.wpa_supplicant ]; services.dbus.packages = [ pkgs.wpa_supplicant ]; |