add_dkim_key.sh: fix error in case long keys (i.e.2048 bit).
This commit is contained in:
parent
e4c9a4fc8f
commit
78a1610517
@ -38,13 +38,13 @@ usage() {
|
|||||||
$conf_file: Configuration file
|
$conf_file: Configuration file
|
||||||
|
|
||||||
\033[1mExample:\033[m
|
\033[1mExample:\033[m
|
||||||
|
|
||||||
<description example>
|
<description example>
|
||||||
|
|
||||||
$(basename $0) .. <comand example>
|
$(basename $0) .. <comand example>
|
||||||
|
|
||||||
<description another example>
|
<description another example>
|
||||||
|
|
||||||
$(basename $0) .. <command another example>
|
$(basename $0) .. <command another example>
|
||||||
|
|
||||||
"
|
"
|
||||||
@ -401,7 +401,7 @@ if $terminal ; then
|
|||||||
echo " [6] hmac-sha512"
|
echo " [6] hmac-sha512"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo " Type a number or press <RETURN> to choose highlighted value"
|
echo " Type a number or press <RETURN> to choose highlighted value"
|
||||||
echo ""
|
echo ""
|
||||||
echononl " Key algorithm [${DEFAULT_KEY_ALGO}]: "
|
echononl " Key algorithm [${DEFAULT_KEY_ALGO}]: "
|
||||||
@ -421,7 +421,7 @@ if $terminal ; then
|
|||||||
5) KEY_ALGO="hmac-sha384" ;;
|
5) KEY_ALGO="hmac-sha384" ;;
|
||||||
6) KEY_ALGO="hmac-sha512" ;;
|
6) KEY_ALGO="hmac-sha512" ;;
|
||||||
'') KEY_ALGO="${DEFAULT_KEY_ALGO}" ;;
|
'') KEY_ALGO="${DEFAULT_KEY_ALGO}" ;;
|
||||||
*) echo ""
|
*) echo ""
|
||||||
echo -e " \033[33m\033[1mFalsche Eingabe ! [ 1 = hmac-md5 | 2 = hmac-sha1 | .. ]\033[m"
|
echo -e " \033[33m\033[1mFalsche Eingabe ! [ 1 = hmac-md5 | 2 = hmac-sha1 | .. ]\033[m"
|
||||||
echo ""
|
echo ""
|
||||||
echononl " Key algorithm [hmac-sha256]:"
|
echononl " Key algorithm [hmac-sha256]:"
|
||||||
@ -467,48 +467,6 @@ if $terminal ; then
|
|||||||
if [[ "X$TTL" = "X" ]] ; then
|
if [[ "X$TTL" = "X" ]] ; then
|
||||||
TTL="${DEFAULT_TTL}"
|
TTL="${DEFAULT_TTL}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
blank_line
|
|
||||||
blank_line
|
|
||||||
|
|
||||||
declare -i length_dkim_key=${#DKIM_KEY}
|
|
||||||
declare -i pos_begin=0
|
|
||||||
declare -i pos_end=64
|
|
||||||
|
|
||||||
_intro="v=${DKIM_TYPE}; k=${KEY_TYPE}; p="
|
|
||||||
declare -i length_intro=${#_intro}
|
|
||||||
|
|
||||||
declare -i total_length=$((length_intro + length_dkim_key))
|
|
||||||
|
|
||||||
|
|
||||||
echononl "Create (splitted 'p' value of DNS record.."
|
|
||||||
if [[ ${total_length} -gt 255 ]] ; then
|
|
||||||
_failed=false
|
|
||||||
p_val=""
|
|
||||||
while [[ $pos_end -lt $length ]] ; do
|
|
||||||
p_val+="\"$(echo "${DKIM_KEY:$pos_begin:64}")\" "
|
|
||||||
[[ $? -gt 0 ]] && _failed=true
|
|
||||||
pos_begin=$pos_end
|
|
||||||
pos_end=$(expr $pos_end + 64)
|
|
||||||
[[ $? -gt 0 ]] && _failed=true
|
|
||||||
done
|
|
||||||
p_val+="\"$(echo "${DKIM_KEY:$pos_begin}")\""
|
|
||||||
[[ $? -gt 0 ]] && _failed=true
|
|
||||||
if $_failed ; then
|
|
||||||
echo_failed
|
|
||||||
|
|
||||||
fatal "Cannot create p vaalue of DNS Record"
|
|
||||||
else
|
|
||||||
echo_ok
|
|
||||||
fi
|
|
||||||
txt_val="\"v=${DKIM_TYPE}; k=${KEY_TYPE}; s=email; p=\" ${p_val}"
|
|
||||||
|
|
||||||
else
|
|
||||||
echo_skipped
|
|
||||||
p_val="${DKIM_KEY}"
|
|
||||||
txt_val="\"${_intro}${p_val}\""
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
@ -534,6 +492,51 @@ if [[ -z "$(trim "${KEY_SECRET}")" ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
blank_line
|
||||||
|
blank_line
|
||||||
|
|
||||||
|
declare -i length_dkim_key=${#DKIM_KEY}
|
||||||
|
|
||||||
|
_intro="v=${DKIM_TYPE}; k=${KEY_TYPE}; p="
|
||||||
|
declare -i length_intro=${#_intro}
|
||||||
|
|
||||||
|
declare -i total_length=$((length_intro + length_dkim_key))
|
||||||
|
|
||||||
|
|
||||||
|
echononl "Create (splitted) 'p' value of DNS record.."
|
||||||
|
if [[ ${total_length} -gt 255 ]] ; then
|
||||||
|
|
||||||
|
TMP_DKIM_KEY="$DKIM_KEY"
|
||||||
|
|
||||||
|
p_val=""
|
||||||
|
|
||||||
|
_length=64
|
||||||
|
declare -i index=1
|
||||||
|
|
||||||
|
while [ -n "$TMP_DKIM_KEY" ]; do
|
||||||
|
if [[ index -eq 1 ]]; then
|
||||||
|
p_val="\"${TMP_DKIM_KEY:0:$_length}\""
|
||||||
|
else
|
||||||
|
p_val+=" \"${TMP_DKIM_KEY:0:$_length}\""
|
||||||
|
fi
|
||||||
|
|
||||||
|
TMP_DKIM_KEY="${TMP_DKIM_KEY:$_length}"
|
||||||
|
|
||||||
|
(( ++index ))
|
||||||
|
|
||||||
|
done
|
||||||
|
echo_done
|
||||||
|
|
||||||
|
|
||||||
|
txt_val="\"v=${DKIM_TYPE}; k=${KEY_TYPE}; s=email; p=\" ${p_val}"
|
||||||
|
|
||||||
|
else
|
||||||
|
echo_skipped
|
||||||
|
p_val="${DKIM_KEY}"
|
||||||
|
txt_val="\"${_intro}${p_val}\""
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if $terminal ; then
|
if $terminal ; then
|
||||||
echo ""
|
echo ""
|
||||||
@ -560,7 +563,7 @@ if $terminal ; then
|
|||||||
echo " DKIM Key.........................: $DKIM_KEY"
|
echo " DKIM Key.........................: $DKIM_KEY"
|
||||||
echo -e " \033[1m----------\033[m"
|
echo -e " \033[1m----------\033[m"
|
||||||
echo ""
|
echo ""
|
||||||
echo -e " DNS Record to add:\n\n\033[33m${DKIM_SELECTOR}.${DKIM_UPDATE_ZONE}. ${TTL} IN TXT ${txt_val}\033[m"
|
echo -e " DNS Record to add:\n\n\033[33m${DKIM_SELECTOR}.${DKIM_UPDATE_ZONE}. ${TTL} IN TXT ${txt_val}\033[m"
|
||||||
echo ""
|
echo ""
|
||||||
echo -e "\n\n The following 'nsupdate'command will be used:"
|
echo -e "\n\n The following 'nsupdate'command will be used:"
|
||||||
cat <<END
|
cat <<END
|
||||||
|
Loading…
Reference in New Issue
Block a user