Mercurial > prosody-hg
view spec/tls/lib.sh @ 13946:f5e8ab42c708
mod_http_file_share: Check that files are still there with correct size
Failed uploads can leave behind unused slots. Files shouldn't change
size after they have been successfully uploaded, but might as well
double check it.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sat, 04 Dec 2021 18:56:51 +0100 |
| parents | 4122978f2575 |
| children |
line wrap: on
line source
#!/bin/bash test_name="$(basename "$PWD")" export failures=0 get_net_cert () { address="${1?}" sni="${2?}" proto="${3?}" local flags=() case "$proto" in "xmpp") flags=(-starttls xmpp -name "$sni");; "xmpps") flags=(-alpn xmpp-client);; "xmpp-server") flags=(-starttls xmpp-server -name "$sni");; "xmpps-server") flags=(-alpn xmpp-server);; "tls") ;; *) printf "EE: Unknown protocol: %s\n" "$proto" >&2; exit 1;; esac openssl s_client -connect "$address" -servername "$sni" "${flags[@]}" 2>/dev/null </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' } get_file_cert () { fn="${1?}" sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' "$fn" } expect_cert () { fn="${1?}" address="${2?}" sni="${3?}" proto="${4?}" net_cert="$(get_net_cert "$address" "$sni" "$proto")" file_cert="$(get_file_cert "$fn")" if [[ "$file_cert" != "$net_cert" ]]; then echo "---" echo "NOT OK: $test_name: Expected $fn on $address (SNI $sni)" echo "Received:" openssl x509 -in <(echo "$net_cert") -text echo "---" failures=1; return 1; fi echo "OK: $test_name: $fn observed on $address (SNI $sni)" return 0; }
