From: Lukas Schauer Date: Fri, 8 Jan 2016 18:02:13 +0000 (+0100) Subject: rewritten hex2bin method X-Git-Url: https://git.street.me.uk/andy/dehydrated.git/commitdiff_plain/16bef17e45aeefb3ad39fd2566ad2eae92858a4e rewritten hex2bin method --- diff --git a/letsencrypt.sh b/letsencrypt.sh index 9a6487a..452d6b9 100755 --- a/letsencrypt.sh +++ b/letsencrypt.sh @@ -158,27 +158,10 @@ urlbase64() { openssl base64 -e | anti_newline | sed 's/=*$//g' | tr '+/' '-_' } +# Convert hex string to binary data hex2bin() { - # Store hex string from stdin - tmphex="$(cat)" - - # Remove spaces - hex='' - for ((i=0; i<${#tmphex}; i+=1)); do - test "${tmphex:$i:1}" == " " || hex="${hex}${tmphex:$i:1}" - done - - # Add leading zero - test $((${#hex} & 1)) == 0 || hex="0${hex}" - - # Convert to escaped string - escapedhex='' - for ((i=0; i<${#hex}; i+=2)); do - escapedhex=$escapedhex\\x${hex:$i:2} - done - - # Convert to binary data - printf -- "${escapedhex}" + # Remove spaces, add leading zero, escape as hex string and parse with printf + printf -- "$(cat | sed -E -e 's/[[:space:]]//g' -e 's/^(.(.{2})*)$/0\1/' -e 's/(.{2})/\\x\1/g')" } get_json_string_value() {