#!/bin/bash # SPDX-Version: 3.0 # SPDX-CreationInfo: 2025-06-17; WEIDNER, Marc S.; # SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.installer.git # SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency # SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; # SPDX-FileType: SOURCE # SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0 # SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework. # SPDX-PackageName: CISS.debian.installer # SPDX-Security-Contact: security@coresecret.eu guard_sourcing ####################################### # Remove any leading or trailing whitespace. # Arguments: # 1: String to clean. ####################################### remove_whitespace() { # shellcheck disable=SC2155 declare var_out=$(printf "%s" "$1" | xargs) printf '%s' "${var_out}" } ### Prevents accidental 'unset -f'. # shellcheck disable=SC2034 readonly -f remove_whitespace ####################################### # Function to escape all shell metacharacters # Arguments: # 1: String to Sanitize ####################################### sanitize_input() { declare input="$1" ### %q quotes the string so that the shell re-reads it as the original literal printf '%q' "${input}" } ### Prevents accidental 'unset -f'. # shellcheck disable=SC2034 readonly -f sanitize_input ####################################### # Function to remove any character not in the allowed set # Arguments: # 1: String to Sanitize ####################################### sanitize_string() { declare input="$1" ### Define allowed characters: ### letters, digits, dot, underscore, slash, equals, [, ], colon, double-quote, hyphen, space. declare allowed='a-zA-Z0-9._/=\[\]:"\-+ ' printf '%s' "${input}" | tr -cd "${allowed}" } ### Prevents accidental 'unset -f'. # shellcheck disable=SC2034 readonly -f sanitize_string # vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh