mirror of
https://github.com/sudosylabs/vnidrop.git
synced 2026-08-05 02:29:55 +02:00
fix(release): repair Apple and Android builds
This commit is contained in:
57
packaging/android/tests/test_verify_apk_signature.sh
Executable file
57
packaging/android/tests/test_verify_apk_signature.sh
Executable file
@@ -0,0 +1,57 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
verifier="$script_dir/../verify-apk-signature.sh"
|
||||
scratch="$(mktemp -d "${TMPDIR:-/tmp}/vnidrop-apksigner-test.XXXXXX")"
|
||||
trap 'rm -rf "$scratch"' EXIT
|
||||
|
||||
apk="$scratch/app.apk"
|
||||
fake_apksigner="$scratch/apksigner"
|
||||
printf 'apk\n' > "$apk"
|
||||
|
||||
cat > "$fake_apksigner" <<'SCRIPT'
|
||||
#!/usr/bin/env bash
|
||||
case "${FAKE_APKSIGNER_MODE:-success}" in
|
||||
success)
|
||||
printf '%s\n' \
|
||||
'Verifies' \
|
||||
'Signer #1 certificate SHA-256 digest: AA:BB:CC:DD' >&2
|
||||
;;
|
||||
missing)
|
||||
printf '%s\n' 'Verifies' >&2
|
||||
;;
|
||||
failure)
|
||||
printf '%s\n' 'invalid APK signature' >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
SCRIPT
|
||||
chmod +x "$fake_apksigner"
|
||||
|
||||
actual="$(
|
||||
APKSIGNER="$fake_apksigner" \
|
||||
"$verifier" "$apk" "aa bb cc dd"
|
||||
)"
|
||||
[[ $actual == aabbccdd ]]
|
||||
|
||||
if APKSIGNER="$fake_apksigner" \
|
||||
"$verifier" "$apk" deadbeef >/dev/null 2>&1; then
|
||||
printf 'Expected a certificate mismatch to fail\n' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if FAKE_APKSIGNER_MODE=missing APKSIGNER="$fake_apksigner" \
|
||||
"$verifier" "$apk" aabbccdd >/dev/null 2>&1; then
|
||||
printf 'Expected missing certificate output to fail\n' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if FAKE_APKSIGNER_MODE=failure APKSIGNER="$fake_apksigner" \
|
||||
"$verifier" "$apk" aabbccdd >/dev/null 2>&1; then
|
||||
printf 'Expected signature verification failure to propagate\n' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
printf 'APK signature verifier tests passed.\n'
|
||||
Reference in New Issue
Block a user