| |
| AUTOMAKE_OPTIONS = parallel-tests |
| |
| test_key = private-key.rsa |
| test_cert = public-cert.pem |
| ca_key = ca-key.ec |
| ca_cert = ca-cert.pem |
| int_key = int-key.ec |
| int_cert = int-cert.pem |
| test_arches = $(EFI_ARCH) |
| |
| check_PROGRAMS = test.pecoff |
| |
| # override the automake rule to say we build from .elf files |
| test.pecoff$(EXEEXT): test.elf |
| |
| if TEST_BINARY_FORMAT |
| EFILDFLAGS = --defsym=EFI_SUBSYSTEM=0x0a |
| FORMAT = -O binary |
| else |
| FORMAT = --target=efi-app-$(EFI_ARCH) |
| endif |
| check_DATA = $(test_key) $(test_cert) |
| check_SCRIPTS = test-wrapper.sh |
| |
| .elf.pecoff: |
| echo "TEST ARCHES $(test_arches) TEST_COMPAT=$(TEST_COMPAT_FALSE)" |
| $(OBJCOPY) -j .text -j .sdata -j .data \ |
| -j .dynamic -j .dynsym -j .rel \ |
| -j .rela -j .reloc \ |
| $(FORMAT) $^ $@ |
| |
| .$(OBJEXT).elf: |
| $(LD) $(EFILDFLAGS) -nostdlib -L /usr/lib -L /usr/lib64 -L $(CRTPATH) -shared -Bsymbolic $(CRTPATH)/crt0-efi-$(EFI_ARCH).o -T elf_$(EFI_ARCH)_efi.lds $< -o $@ -lefi -lgnuefi |
| |
| AM_CFLAGS=-fpic -I/usr/include/efi -I/usr/include/efi/$(EFI_ARCH) |
| |
| %.rsa: Makefile |
| openssl genrsa -out $@ 2048 |
| |
| %.ec: Makefile |
| openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:prime256v1 -out $@ |
| |
| $(ca_cert): $(ca_key) Makefile |
| openssl req -x509 -days 1 -sha256 -subj '/CN=CA Key/' -new -key $< -out $@ |
| |
| $(int_cert): $(int_key) $(ca_cert) Makefile |
| openssl req -new -subj '/CN=Intermediate Certificate/' -key $< -out tmp.req |
| echo -e "[ca]\nbasicConstraints = critical, CA:true\n" > ca.cnf |
| openssl x509 -req -sha256 -CA $(ca_cert) -CAkey $(ca_key) -in tmp.req -set_serial 1 -days 1 -extfile ca.cnf -extensions ca -out $@ |
| -rm -f tmp.req ca.cnf |
| |
| $(test_cert): $(test_key) $(int_cert) Makefile |
| openssl req -new -subj '/CN=Signer Certificate/' -key $< -out tmp.req |
| openssl x509 -req -sha256 -CA $(int_cert) -CAkey $(int_key) -in tmp.req -set_serial 1 -days 1 -out $@ |
| -rm -f tmp.req |
| |
| TESTS = sign-verify.sh \ |
| sign-verify-detached.sh \ |
| sign-detach-verify.sh \ |
| sign-attach-verify.sh \ |
| sign-missing-image.sh \ |
| sign-missing-cert.sh \ |
| sign-missing-key.sh \ |
| verify-missing-image.sh \ |
| verify-missing-cert.sh \ |
| sign-invalidattach-verify.sh \ |
| resign-warning.sh \ |
| reattach-warning.sh |
| |
| if !TEST_BINARY_FORMAT |
| ## |
| # These tests involve objdump which will fail because the format |
| # is not recognised. Someone needs to fix arm bfd to add efi |
| ## |
| TESTS += cert-table-header.sh \ |
| detach-remove.sh |
| endif |
| |
| |
| TEST_EXTENSIONS = .sh |
| AM_TESTS_ENVIRONMENT = TEST_ARCHES='$(test_arches)'; export TEST_ARCHES; |
| SH_LOG_COMPILER = $(srcdir)/test-wrapper.sh |
| |
| EXTRA_DIST = test.S $(TESTS) $(check_SCRIPTS) |
| CLEANFILES = $(test_key) $(test_cert) $(int_key) $(int_cert) $(ca_key) \ |
| $(ca_cert) |