607a3701db
Merge crypto branch. * Makefile.in (pkglib_DATA): Add crypto.lst. (crypto.lst): New target. * commands/hashsum.c: New file. * commands/password.c (check_password): Use grub_crypto_memcmp. * commands/password_pbkdf2.c: New file. * commands/xnu_uuid.c: Remove MD5. Use GRUB_MD_MD5. * conf/any-emu.rmk (grub_emu_SOURCES): Add lib/crypto.c, normal/crypto.c and lib/libgcrypt-grub/cipher/md5.c. (grub_emu_CFLAGS): Add -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap. * conf/common.rmk (normal_mod_SOURCES): Add normal/crypto.c. (pkglib_MODULES): Add crypto.mod, hashsum.mod, pbkdf2.mod and password_pbkdf2.mod. (crypto_mod_SOURCES): New variable. (crypto_mod_CFLAGS): Likewise. (crypto_mod_LDFLAGS): Likewise. (hashsum_mod_SOURCES): New variable. (hashsum_mod_CFLAGS): Likewise. (hashsum_mod_LDFLAGS): Likewise. (pbkdf2_mod_SOURCES): New variable. (pbkdf2_mod_CFLAGS): Likewise. (pbkdf2_mod_LDFLAGS): Likewise. (password_pbkdf2_mod_SOURCES): New variable. (password_pbkdf2_mod_CFLAGS): Likewise. (password_pbkdf2_mod_LDFLAGS): Likewise. (bin_UTILITIES): Add grub-mkpasswd-pbkdf2. (grub_mkpasswd_pbkdf2_SOURCES): New variable. (grub_mkpasswd_pbkdf2_CFLAGS): Likewise. Include conf/gcry.rmk. * include/grub/auth.h: Rewritten. * include/grub/crypto.h: New file. * include/grub/disk.h (grub_disk_dev_id): Add GRUB_DISK_DEVICE_LUKS_ID. * include/grub/normal.h (read_crypto_list): New prototype. * lib/crypto.c: New file. * lib/libgcrypt_wrap/cipher_wrap.h: Likewise. * lib/pbkdf2.c: Likewise. * normal/auth.c (grub_auth_strcmp): Removed. (grub_iswordseparator): Likewise. (grub_auth_strword): Likewise. (is_authenticated): Use grub_strword. (grub_auth_check_authentication): Use grub_strcmp, grub_password_get and grub_strword. Pass entered password to authentication callback. * normal/crypto.c: New file. * normal/main.c: Call read_crypto_list. * util/grub-mkpasswd-pbkdf2.c: New file. * util/import_gcry.py: Generate crypto.lst. Add hash blocklen.
99 lines
3.7 KiB
Makefile
99 lines
3.7 KiB
Makefile
# -*- makefile -*-
|
|
|
|
# Used by various components. These rules need to precede them.
|
|
script/lexer.c_DEPENDENCIES = grub_script.tab.h
|
|
|
|
sbin_UTILITIES += grub-emu
|
|
util/grub-emu.c_DEPENDENCIES = grub_emu_init.h
|
|
grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c \
|
|
commands/configfile.c commands/echo.c commands/help.c \
|
|
commands/handler.c commands/ls.c commands/test.c \
|
|
commands/search_wrap.c commands/search_file.c \
|
|
commands/search_label.c commands/search_uuid.c \
|
|
commands/blocklist.c commands/hexdump.c \
|
|
lib/hexdump.c commands/halt.c commands/reboot.c \
|
|
lib/envblk.c commands/loadenv.c \
|
|
commands/gptsync.c commands/probe.c commands/xnu_uuid.c \
|
|
commands/password.c commands/keystatus.c \
|
|
disk/host.c disk/loopback.c disk/scsi.c \
|
|
fs/fshelp.c \
|
|
\
|
|
io/gzio.c \
|
|
kern/device.c kern/disk.c kern/dl.c kern/elf.c kern/env.c \
|
|
kern/err.c kern/list.c kern/handler.c \
|
|
kern/command.c kern/corecmd.c commands/extcmd.c kern/file.c \
|
|
kern/fs.c commands/boot.c kern/main.c kern/misc.c kern/parser.c \
|
|
kern/partition.c kern/reader.c kern/term.c \
|
|
kern/rescue_reader.c kern/rescue_parser.c \
|
|
lib/arg.c normal/cmdline.c normal/datetime.c normal/misc.c \
|
|
normal/handler.c normal/auth.c lib/crypto.c normal/autofs.c \
|
|
normal/completion.c normal/main.c normal/color.c \
|
|
normal/menu.c normal/menu_entry.c normal/menu_viewer.c \
|
|
normal/menu_text.c normal/crypto.c \
|
|
script/main.c script/execute.c script/function.c \
|
|
script/lexer.c script/script.c grub_script.tab.c \
|
|
partmap/amiga.c partmap/apple.c partmap/msdos.c partmap/sun.c \
|
|
partmap/acorn.c partmap/gpt.c \
|
|
\
|
|
fs/affs.c fs/cpio.c fs/fat.c fs/ext2.c fs/hfs.c \
|
|
fs/hfsplus.c fs/iso9660.c fs/udf.c fs/jfs.c fs/minix.c \
|
|
fs/ntfs.c fs/ntfscomp.c fs/reiserfs.c fs/sfs.c \
|
|
fs/ufs.c fs/ufs2.c fs/xfs.c fs/afs.c fs/afs_be.c \
|
|
fs/befs.c fs/befs_be.c fs/tar.c \
|
|
\
|
|
util/console.c util/hostfs.c util/grub-emu.c util/misc.c \
|
|
util/hostdisk.c util/getroot.c \
|
|
\
|
|
disk/raid.c disk/raid5_recover.c disk/raid6_recover.c \
|
|
disk/mdraid_linux.c disk/dmraid_nvidia.c disk/lvm.c \
|
|
commands/parttool.c parttool/msdospart.c \
|
|
lib/libgcrypt-grub/cipher/md5.c \
|
|
grub_emu_init.c gnulib/progname.c
|
|
grub_emu_CFLAGS += -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap
|
|
|
|
|
|
ifeq ($(target_cpu), i386)
|
|
grub_emu_SOURCES += commands/i386/cpuid.c
|
|
endif
|
|
|
|
grub_emu_LDFLAGS = $(LIBCURSES)
|
|
|
|
ifeq ($(enable_grub_emu_usb), yes)
|
|
grub_emu_SOURCES += disk/usbms.c util/usb.c bus/usb/usb.c \
|
|
commands/usbtest.c
|
|
grub_emu_LDFLAGS += $(LIBCURSES) $(LIBUSB)
|
|
endif
|
|
|
|
ifeq ($(enable_grub_emu_pci), yes)
|
|
grub_emu_SOURCES += util/pci.c commands/lspci.c
|
|
grub_emu_LDFLAGS += $(LIBPCIACCESS)
|
|
endif
|
|
|
|
grub_emu_init.lst: geninit.sh $(filter-out grub_emu_init.c,$(grub_emu_SOURCES))
|
|
rm -f $@; grep GRUB_MOD_INIT $(filter %.c,$^) /dev/null > $@
|
|
DISTCLEANFILES += grub_emu_init.lst
|
|
|
|
grub_emu_init.h: grub_emu_init.lst $(filter-out grub_emu_init.c,$(grub_emu_SOURCES)) geninitheader.sh
|
|
rm -f $@; sh $(srcdir)/geninitheader.sh $< > $@
|
|
DISTCLEANFILES += grub_emu_init.h
|
|
|
|
grub_emu_init.c: grub_emu_init.lst $(filter-out grub_emu_init.c,$(grub_emu_SOURCES)) geninit.sh grub_emu_init.h
|
|
rm -f $@; sh $(srcdir)/geninit.sh $< $(filter %.c,$^) > $@
|
|
DISTCLEANFILES += grub_emu_init.c
|
|
|
|
|
|
|
|
|
|
# FIXME: this could be shared with common.rmk
|
|
|
|
# For grub-mkfont.
|
|
ifeq ($(enable_grub_mkfont), yes)
|
|
bin_UTILITIES += grub-mkfont
|
|
grub_mkfont_SOURCES = gnulib/progname.c util/grub-mkfont.c util/misc.c
|
|
grub_mkfont_CFLAGS = $(freetype_cflags)
|
|
grub_mkfont_LDFLAGS = $(freetype_libs)
|
|
endif
|
|
|
|
grub_script.tab.c grub_script.tab.h: script/parser.y
|
|
$(YACC) -d -p grub_script_yy -b grub_script $(srcdir)/script/parser.y
|
|
DISTCLEANFILES += grub_script.tab.c grub_script.tab.h
|