diff --git a/testssl.sh b/testssl.sh index 936f185..0cc0573 100755 --- a/testssl.sh +++ b/testssl.sh @@ -2197,10 +2197,13 @@ neat_header(){ # arg2: cipher in openssl notation # arg3: keyexchange # arg4: encryption (maybe included "export") +# arg5: "true" if the cipher's "quality" should be highlighted +# "false" if the line should be printed in light grey +# empty if line should be printed in black neat_list(){ local hexcode="$1" local ossl_cipher="$2" tls_cipher="" - local kx enc strength + local kx enc strength line kx="${3//Kx=/}" enc="${4//Enc=/}" @@ -2216,6 +2219,12 @@ neat_list(){ [[ -n "$ADD_RFC_STR" ]] && tls_cipher="$(show_rfc_style "$hexcode")" + if [[ "$5" == "false" ]]; then + line="$(printf -- " %-7s %-33s %-10s %-10s%-8s${ADD_RFC_STR:+ %-49s}${SHOW_EACH_C:+ %-0s}" "$hexcode" "$ossl_cipher" "$kx" "$enc" "$strength" "$tls_cipher")" + pr_litegrey "$line" + return 0 + fi + #printf -- "%q" "$kx" | xxd | head -1 # length correction for color escape codes (printf counts the escape color codes!!) if printf -- "%q" "$kx" | egrep -aq '.;3.m|E\[1m' ; then # here's a color code which screws up the formatting with printf below @@ -2479,12 +2488,12 @@ test_just_one(){ for (( i=0; i < nr_ciphers; i++ )); do export="${export2[i]}" - neat_list "${normalized_hexcode[i]}" "${ciph[i]}" "${kx[i]}" "${enc[i]}" + neat_list "${normalized_hexcode[i]}" "${ciph[i]}" "${kx[i]}" "${enc[i]}" "${ciphers_found[i]}" if "${ciphers_found[i]}"; then pr_cyan " available" fileout "cipher_${normalized_hexcode[i]}" "INFO" "$(neat_list "${normalized_hexcode[i]}" "${ciph[i]}" "${kx[i]}" "${enc[i]}") available" else - out " not a/v" + pr_litegrey " not a/v" fileout "cipher_${normalized_hexcode[i]}" "INFO" "$(neat_list "${normalized_hexcode[i]}" "${ciph[i]}" "${kx[i]}" "${enc[i]}") not a/v" fi outln @@ -2730,7 +2739,7 @@ run_allciphers() { for (( i=0 ; i