瀏覽代碼

Merge pull request #68 from antonym/imgverify

Add signature checking for source files and lots of cleanup
Antony Messerli 9 年之前
父節點
當前提交
6937001a3a
共有 8 個文件被更改,包括 37 次插入82 次删除
  1. 4 2
      src/archlinux.ipxe
  2. 6 0
      src/boot.cfg
  3. 8 9
      src/bsd.ipxe
  4. 1 1
      src/kali.ipxe
  5. 9 46
      src/linux.ipxe
  6. 1 1
      src/mageia.ipxe
  7. 8 22
      src/menu.ipxe
  8. 0 1
      src/scientific.ipxe

+ 4 - 2
src/archlinux.ipxe

@@ -3,11 +3,13 @@
 # Arch Linux Operating System
 # http://www.archlinux.org
 
+goto ${menu} ||
+
 :archlinux
 menu Arch Linux
 item arch Arch Linux Graphical Menu
 item arch_text Arch Linux Text Menu
-choose version || goto linux_menu
+choose version || goto archlinux_exit
 goto boot
 
 :boot
@@ -16,6 +18,6 @@ set 209:string cfg/${version}.cfg
 set 210:string http://releng.archlinux.org/pxeboot/boot/
 chain ${210:string}pxelinux.0 || goto linux_menu
 
-:linux_menu
+:archlinux_exit
 clear menu
 exit 0

+ 6 - 0
src/boot.cfg

@@ -11,3 +11,9 @@ set mirror mirror.rackspace.com
 
 # set location of memdisk
 set memdisk https://${boot_domain}/memdisk
+
+# signature check enabled?
+set sigs_enabled false
+
+# set location of signatures
+set sigs https://${boot_domain}/sigs/

+ 8 - 9
src/bsd.ipxe

@@ -20,8 +20,15 @@ choose menu || goto bsd_exit
 
 echo ${cls}
 goto ${menu} ||
+iseq ${sigs_enabled} true && goto verify_sigs || goto change_menu
+
+:verify_sigs
+imgverify ${menu}.ipxe ${sigs}${menu}.ipxe.sig || goto error
+goto change_menu
+
+:change_menu
 chain ${menu}.ipxe || goto error
-goto bsd_exit
+goto bsd_menu
 
 :bsd_exit
 clear menu
@@ -30,11 +37,3 @@ exit 0
 :changebits
 iseq ${arch} x86_64 && set arch i386 || set arch x86_64
 goto bsd_menu
-
-:openbsd
-chain openbsd.ipxe
-goto bsd_menu
-
-:freebsd
-chain freebsd.ipxe
-goto bsd_menu

+ 1 - 1
src/kali.ipxe

@@ -3,7 +3,7 @@
 # Kali Linux
 # http://www.kali.org
 
-goto ${menu}
+goto ${menu} ||
 
 :kali
 set os Kali Linux

+ 9 - 46
src/linux.ipxe

@@ -14,7 +14,7 @@ item kali ${space} Kali Linux
 item mageia ${space} Mageia
 item opensuse ${space} openSUSE
 item ubuntu ${space} Ubuntu
-item --gap All Others
+item --gap All Others:
 item antergos ${space} Antergos
 item architect ${space} Architect Linux
 item coreos ${space} CoreOS
@@ -29,8 +29,15 @@ item changebits ${space} Architecture: ${arch} (${bits}bit)
 choose menu || goto linux_exit
 echo ${cls}
 goto ${menu} ||
+iseq ${sigs_enabled} true && goto verify_sigs || goto change_menu
+
+:verify_sigs
+imgverify ${menu}.ipxe ${sigs}${menu}.ipxe.sig || goto error
+goto change_menu
+
+:change_menu
 chain ${menu}.ipxe || goto error
-goto linux_exit
+goto linux_menu
 
 :linux_exit
 clear menu
@@ -39,47 +46,3 @@ exit 0
 :changebits
 iseq ${arch} x86_64 && set arch i386 || set arch x86_64
 goto linux_menu
-
-:antergos
-chain antergos.ipxe
-goto linux_menu
-
-:architect
-chain architect.ipxe
-goto linux_menu
-
-:fedora
-chain fedora.ipxe
-goto linux_menu
-
-:centos
-chain centos.ipxe
-goto linux_menu
-
-:coreos
-chain coreos.ipxe
-goto linux_menu
-
-:debian
-chain debian.ipxe
-goto linux_menu
-
-:ubuntu
-chain ubuntu.ipxe
-goto linux_menu
-
-:opensuse
-chain opensuse.ipxe
-goto linux_menu
-
-:rancheros
-chain rancheros.ipxe
-goto linux_menu
-
-:scientific
-chain scientific.ipxe
-goto linux_menu
-
-:slackware
-chain slackware.ipxe
-goto linux_menu

+ 1 - 1
src/mageia.ipxe

@@ -3,7 +3,7 @@
 # Mageia Operating System
 # http://www.mageia.org/
 
-goto ${menu}
+goto ${menu} ||
 
 :mageia
 set os Mageia

+ 8 - 22
src/menu.ipxe

@@ -41,6 +41,13 @@ isset ${menu} && set timeout 0 || set timeout 300000
 choose --timeout ${timeout} --default ${menu} menu || goto local
 echo ${cls}
 goto ${menu} ||
+iseq ${sigs_enabled} true && goto verify_sigs || goto change_menu
+
+:verify_sigs
+imgverify ${menu}.ipxe ${sigs}${menu}.ipxe.sig || goto error
+goto change_menu
+
+:change_menu
 chain ${menu}.ipxe || goto error
 goto main_menu
 
@@ -88,27 +95,6 @@ goto main_menu
 iseq ${arch} x86_64 && set arch i386 || set arch x86_64
 goto main_menu
 
-# OS
-:linux
-chain linux.ipxe
-goto main_menu
-
-:bsd
-chain bsd.ipxe
-goto main_menu
-
-:freedos
-chain freedos.ipxe
-goto main_menu
-
-:hypervisors
-chain hypervisors.ipxe
-goto main_menu
-
 :nbxyz-custom
-chain https://raw.githubusercontent.com/${github_user}/netboot.xyz-custom/master/custom.ipxe || 
-goto main_menu
-
-:utils
-chain utils.ipxe
+chain https://raw.githubusercontent.com/${github_user}/netboot.xyz-custom/master/custom.ipxe || goto error
 goto main_menu

+ 0 - 1
src/scientific.ipxe

@@ -52,5 +52,4 @@ goto linux_menu
 
 :linux_menu
 clear menu
-chain linux.ipxe
 exit 0