V8.00.000.2025.06.17

Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
This commit is contained in:
2025-08-10 21:45:51 +02:00
parent 12c7b2eab4
commit 5560ed09c9
25 changed files with 585 additions and 43 deletions

View File

@@ -25,12 +25,17 @@ guard_sourcing
#######################################
generate_salt() {
declare var_salt=""
while :; do
# shellcheck disable=SC2312
var_salt=$(head -c 12 /dev/random | base64 | tr -dc 'A-Za-z0-9' | head -c 16) || return "${ERR_GENERATE_SALT}"
[[ ${#var_salt} -eq 16 ]] && break
done
printf '%s%b' "${var_salt}" "${NL}"
return 0
}
@@ -51,19 +56,24 @@ read_password_file() {
declare -n var_output_file="${2}"
declare -a lines=()
### TODO: PASSWORD REMINDER
### TODO: PASSWORD REMINDER START
### No tracing for security reasons
[[ "${VAR_DEBUG_TRACE,,}" == "true" ]] && set +x
if [[ ! -f "${var_input_file}" ]]; then
do_log "fatal" "file_only" "0104() Password file '${var_input_file}' not found."
return "${ERR_READ_PASS_FILE}"
fi
mapfile -t lines < "${var_input_file}"
if (( ${#lines[@]} != 1 )); then
do_log "fatal" "file_only" "0104() Password file '${var_input_file}' MUST contain exactly one line."
return "${ERR_READ_PASS_FILE}"
fi
var_output_file="${lines[0]}"
@@ -72,15 +82,32 @@ read_password_file() {
var_output_file="${var_output_file%"${var_output_file##*[![:space:]]}"}" ### trailing
if [[ -z "${var_output_file}" ]]; then
do_log "fatal" "file_only" "0104() Password file '${var_input_file}' contains only whitespace."
return "${ERR_READ_PASS_FILE}"
fi
### Turn on tracing again
[[ "${VAR_DEBUG_TRACE,,}" == "true" ]] && set -x
### TODO: PASSWORD REMINDER
### TODO: PASSWORD REMINDER STOP
sync
if shred -vfzu -n 5 "${var_input_file}" > /dev/null 2>&1; then
do_log "info" "file_only" "0104() Password file '${var_input_file}': shred -vfzu -n 5 >> done."
else
do_log "warn" "file_only" "0104() Password file '${var_input_file}': shred -vfzu -n 5 >> NOT successful."
fi
sync
unset lines
return 0
}
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh