mirror of
				https://github.com/drwetter/testssl.sh.git
				synced 2025-10-31 05:45:26 +01:00 
			
		
		
		
	Reintroduce hex2ascii()
Add hex2ascii() as a function that just calls hex2binary().
This commit is contained in:
		
							
								
								
									
										18
									
								
								testssl.sh
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								testssl.sh
									
									
									
									
									
								
							| @@ -2062,7 +2062,8 @@ fi | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| # Print $arg1 in binary format. arg1: An ASCII-HEX string | # Print $arg1 in binary format. arg1: An ASCII-HEX string | ||||||
| # | # The string represented by $arg1 may be binary data (a certificate or public | ||||||
|  | # key) or a text string (e.g., ASCII-encoded text). | ||||||
| hex2binary() { | hex2binary() { | ||||||
|      local s="$1" |      local s="$1" | ||||||
|      local -i len remainder |      local -i len remainder | ||||||
| @@ -2091,6 +2092,11 @@ hex2binary() { | |||||||
|      return 0 |      return 0 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | # convert 414243 into ABC | ||||||
|  | hex2ascii() { | ||||||
|  |      hex2binary $1 | ||||||
|  | } | ||||||
|  | 
 | ||||||
| # arg1: text string | # arg1: text string | ||||||
| # Output a comma-separated ASCII-HEX string representation of the input string. | # Output a comma-separated ASCII-HEX string representation of the input string. | ||||||
| string_to_asciihex() { | string_to_asciihex() { | ||||||
| @@ -11374,7 +11380,7 @@ parse_sslv2_serverhello() { | |||||||
| 
 | 
 | ||||||
|           if [[ "${v2_hello_ascii:0:2}" == "35" ]] && "$do_starttls"; then |           if [[ "${v2_hello_ascii:0:2}" == "35" ]] && "$do_starttls"; then | ||||||
|                # this could be a 500/5xx for some weird reason where the STARTTLS handshake failed |                # this could be a 500/5xx for some weird reason where the STARTTLS handshake failed | ||||||
|                debugme echo "$(hex2binary "$v2_hello_ascii")" |                debugme echo "$(hex2ascii "$v2_hello_ascii")" | ||||||
|                ret=4 |                ret=4 | ||||||
|           elif [[ "${v2_hello_ascii:0:4}" == "1503" ]]; then |           elif [[ "${v2_hello_ascii:0:4}" == "1503" ]]; then | ||||||
|                # Cloudflare does this, OpenSSL 1.1.1 and picoTLS. With different alert messages |                # Cloudflare does this, OpenSSL 1.1.1 and picoTLS. With different alert messages | ||||||
| @@ -13187,11 +13193,11 @@ parse_tls_serverhello() { | |||||||
|           if "$do_starttls" ; then |           if "$do_starttls" ; then | ||||||
|                if [[ $tls_content_type == 35 ]] || [[ $tls_content_type == 34 ]]; then |                if [[ $tls_content_type == 35 ]] || [[ $tls_content_type == 34 ]]; then | ||||||
|                     # STARTTLS handshake failed and server replied plaintext with a 5xx or 4xx |                     # STARTTLS handshake failed and server replied plaintext with a 5xx or 4xx | ||||||
|                     [[ $DEBUG -ge 2 ]] && printf "%s\n" "400/500: $(hex2binary "$tls_hello_ascii" 2>/dev/null)" |                     [[ $DEBUG -ge 2 ]] && printf "%s\n" "400/500: $(hex2ascii "$tls_hello_ascii" 2>/dev/null)" | ||||||
|                     [[ $DEBUG -ge 1 ]] && tmpfile_handle ${FUNCNAME[0]}.txt |                     [[ $DEBUG -ge 1 ]] && tmpfile_handle ${FUNCNAME[0]}.txt | ||||||
|                     return 4 |                     return 4 | ||||||
|                elif [[ "$tls_hello_ascii" =~ 6130303220 ]]; then |                elif [[ "$tls_hello_ascii" =~ 6130303220 ]]; then | ||||||
|                     [[ $DEBUG -ge 2 ]] && printf "%s\n" "probably IMAP plaintext reply \"$(hex2binary "${tls_hello_ascii:0:32}" 2>/dev/null)\"" |                     [[ $DEBUG -ge 2 ]] && printf "%s\n" "probably IMAP plaintext reply \"$(hex2ascii "${tls_hello_ascii:0:32}" 2>/dev/null)\"" | ||||||
|                     [[ $DEBUG -ge 1 ]] && tmpfile_handle ${FUNCNAME[0]}.txt |                     [[ $DEBUG -ge 1 ]] && tmpfile_handle ${FUNCNAME[0]}.txt | ||||||
|                     return 3 |                     return 3 | ||||||
|                fi |                fi | ||||||
| @@ -20143,8 +20149,8 @@ get_caa_rr_record() { | |||||||
|                     len_caa_property=$(printf "%0d" "$((10#${line:2:2}))")      # get len and do type casting, for posteo we have 05 or 09 here as a string |                     len_caa_property=$(printf "%0d" "$((10#${line:2:2}))")      # get len and do type casting, for posteo we have 05 or 09 here as a string | ||||||
|                     len_caa_property=$((len_caa_property*2))                    # =>word! Now get name from 4th and value from 4th+len position... |                     len_caa_property=$((len_caa_property*2))                    # =>word! Now get name from 4th and value from 4th+len position... | ||||||
|                     line="${line/ /}"                                           # especially with iodefs there's a blank in the string which we just skip |                     line="${line/ /}"                                           # especially with iodefs there's a blank in the string which we just skip | ||||||
|                     caa_property_name="$(hex2binary ${line:4:$len_caa_property})" |                     caa_property_name="$(hex2ascii ${line:4:$len_caa_property})" | ||||||
|                     caa_property_value="$(hex2binary "${line:$((4+len_caa_property)):100}")" |                     caa_property_value="$(hex2ascii "${line:$((4+len_caa_property)):100}")" | ||||||
|                     # echo "${caa_property_name}=${caa_property_value}" |                     # echo "${caa_property_name}=${caa_property_value}" | ||||||
|                     all_caa+="${caa_property_name}=${caa_property_value}\n" |                     all_caa+="${caa_property_name}=${caa_property_value}\n" | ||||||
|                else |                else | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 David Cooper
					David Cooper