nixos/tor: fix HidServAuth (#122439)

* add an example for services.tor.settings.HidServAuth

* fix HidServAuth validation to require ".onion"
Per https://manpages.debian.org/testing/tor/torrc.5.en.html :
> Valid onion addresses contain 16 characters in a-z2-7 plus ".onion"

Tom 33a4c431 b5227312

Changed files
+8 -2
nixos
modules
services
security
+8 -2
nixos/modules/services/security/tor.nix
···
else if k == "ServerTransportPlugin" then
optionalString (v.transports != []) "${concatStringsSep "," v.transports} exec ${v.exec}"
else if k == "HidServAuth" then
-
concatMapStringsSep "\n${k} " (settings: settings.onion + " " settings.auth) v
+
v.onion + " " + v.auth
else generators.mkValueStringDefault {} v;
genTorrc = settings:
generators.toKeyValue {
···
(submodule {
options = {
onion = mkOption {
-
type = strMatching "[a-z2-7]{16}(\\.onion)?";
+
type = strMatching "[a-z2-7]{16}\\.onion";
description = "Onion address.";
example = "xxxxxxxxxxxxxxxx.onion";
};
···
};
})
]);
+
example = [
+
{
+
onion = "xxxxxxxxxxxxxxxx.onion";
+
auth = "xxxxxxxxxxxxxxxxxxxxxx";
+
}
+
];
};
options.HiddenServiceNonAnonymousMode = optionBool "HiddenServiceNonAnonymousMode";
options.HiddenServiceStatistics = optionBool "HiddenServiceStatistics";