1#!/bin/sh
2
3#
4# Test that the signing crypto didn't change
5#
6
7. "$(cd "$(dirname "$0")" && pwd)/common.sh"
8
9# To create the files for this test, edit 024_metadata_sig.test so
10# that it exits with an error code. This will keep its work directory
11# around. Then run it.
12#
13# After that, base64 encode the public key and signed .fw file:
14#
15# $ base64 work-024_metadata_sig.test/fwup-key.pub
16# $ base64 work-024_metadata_sig.test/fwup.fw
17#
18# Save the results here.
19
20base64_decode >$WORK/fwup-key.pub <<EOF
21oK7j5KVPcYta5rGKrA4x93Gu46n+sIyioXQ1oNJimII=
22EOF
23base64_decode >$WORK/bad-fwup-key.pub <<EOF
24VHKg4Qkcl+P+4SOrVjxGZXKZGDppV/Ncb6/ZAhzoGps=
25EOF
26
27base64_decode >$FWFILE << EOF
28UEsDBBQACAAIAAAAIQAAAAAAAAAAAEAAAAARACAAbWV0YS5jb25mLmVkMjU1MTlVVA0ABwAAAAAA
29AAAAAAAAAHV4CwABBAAAAAAEAAAAAAFAAL//x/el+RHvIm1IHWF1TPCZtPaza1UfiaciIsgf+FR6
301JZiMELfYt14jr8ZPN4wWGUnxNLTgfA1LkIwOTMFjxkvAVBLBwircg+1RQAAAEAAAABQSwMEFAAI
31AAgAAAAhAAAAAAAAAAAA/QAAAAkAIABtZXRhLmNvbmZVVA0ABwAAAAAAAAAAAAAAAHV4CwABBAAA
32AAAEAAAAAE2PzQqDMAyA7z5F6b3SVthA8C122i3UiML6Q0z19adbi96SfF/+PDKoRHHMjgdZAhHA
33o2z8yUZcHS2JlxgufisWbUNaf8oaPYqSFQaZ50h/FEMdnD7AUyQ/SBA1rg3k5oXRcSY8cBD3QnEc
34IZz71Qh8SFabhzJaWfOyXW913z3fxZz2nK77dGt0q4+3Ntl8AVBLBwgOK/Z5kAAAAP0AAABQSwEC
35FAMUAAgACAAAACEAq3IPtUUAAABAAAAAEQANAAAAAAAAAAAApIEAAAAAbWV0YS5jb25mLmVkMjU1
36MTlVVAUABwAAAAB1eAAAUEsBAhQDFAAIAAgAAAAhAA4r9nmQAAAA/QAAAAkADQAAAAAAAAAAAKSB
37pAAAAG1ldGEuY29uZlVUBQAHAAAAAHV4AABQSwUGAAAAAAIAAgCQAAAAiwEAAAAA
38EOF
39
40# This signing check should pass
41$FWUP_APPLY_NO_CHECK -p $WORK/fwup-key.pub -i $FWFILE -m
42
43# Check a failure just in case everything passes
44echo "Verification on next test should fail."
45if $FWUP_APPLY_NO_CHECK -p $WORK/bad-fwup-key.pub -i $FWFILE -m; then
46    echo "Verifying an old bad key was supposed to fail!"
47    exit 1
48fi
49
50