-my sub extract_sensitive_params :prototype($$) {
- my ($param, $delete_list) = @_;
-
- my $sensitive;
-
- my %delete = map { $_ => 1 } ($delete_list || [])->@*;
-
- # always extract pw and keys, so they don't get written to the www-data readable scfg
- for my $opt (qw(password encryption-key)) {
- # First handle deletions as explicitly setting `undef`, afterwards new values may override
- # it.
- if (exists($delete{$opt})) {
- $sensitive->{$opt} = undef;
- }
-
- if (defined(my $value = extract_param($param, $opt))) {
- $sensitive->{$opt} = $value;
- }
- }
-
- return $sensitive;
-}