V8.00.000.2025.06.17
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user