From 234a514b465b8a0555bf828a4dc36e77cc8d3690 Mon Sep 17 00:00:00 2001 From: George Hotz Date: Thu, 27 Apr 2017 22:06:31 -0700 Subject: [PATCH] add crypto stuff to ESP as well --- board/build.mk | 12 ++++++------ boardesp/Makefile | 6 +++--- certs/debugesp | 15 +++++++++++++++ certs/debugesp.pub | 1 + certs/releaseesp.pub | 1 + {board/tools => crypto}/getcertheader.py | 0 {board/crypto => crypto}/hash-internal.h | 0 {board/crypto => crypto}/rsa.c | 0 {board/crypto => crypto}/rsa.h | 0 {board/crypto => crypto}/sha.c | 0 {board/crypto => crypto}/sha.h | 0 {board/tools => crypto}/sign.py | 0 {board/crypto => crypto}/stdint.h | 0 13 files changed, 26 insertions(+), 9 deletions(-) create mode 100644 certs/debugesp create mode 100644 certs/debugesp.pub create mode 100644 certs/releaseesp.pub rename {board/tools => crypto}/getcertheader.py (100%) rename {board/crypto => crypto}/hash-internal.h (100%) rename {board/crypto => crypto}/rsa.c (100%) rename {board/crypto => crypto}/rsa.h (100%) rename {board/crypto => crypto}/sha.c (100%) rename {board/crypto => crypto}/sha.h (100%) rename {board/tools => crypto}/sign.py (100%) rename {board/crypto => crypto}/stdint.h (100%) diff --git a/board/build.mk b/board/build.mk index 1796dd5c..4d2b9986 100644 --- a/board/build.mk +++ b/board/build.mk @@ -1,4 +1,4 @@ -CFLAGS += -I inc -nostdlib +CFLAGS += -I inc -I ../ -nostdlib CFLAGS += -Tstm32_flash.ld CC = arm-none-eabi-gcc @@ -37,8 +37,8 @@ obj/gitversion.h: echo "const uint8_t gitversion[] = \"RELEASE\";" > $@ endif -obj/cert.h: tools/getcertheader.py - ./tools/getcertheader.py $(CERT).pub > $@ +obj/cert.h: ../crypto/getcertheader.py + ../crypto/getcertheader.py $(CERT).pub > $@ obj/bootstub.$(PROJ_NAME).o: bootstub.c early.h obj/cert.h $(CC) $(CFLAGS) -o $@ -c $< @@ -47,10 +47,10 @@ obj/main.$(PROJ_NAME).o: main.c *.h obj/gitversion.h $(CC) $(CFLAGS) -o $@ -c $< # TODO(geohot): learn to use Makefiles -obj/sha.o: crypto/sha.c +obj/sha.o: ../crypto/sha.c $(CC) $(CFLAGS) -o $@ -c $< -obj/rsa.o: crypto/rsa.c +obj/rsa.o: ../crypto/rsa.c $(CC) $(CFLAGS) -o $@ -c $< obj/$(STARTUP_FILE).o: $(STARTUP_FILE).s @@ -61,7 +61,7 @@ obj/$(PROJ_NAME).bin: obj/$(STARTUP_FILE).o obj/main.$(PROJ_NAME).o # hack $(CC) -Wl,--section-start,.isr_vector=0x8004000 $(CFLAGS) -o obj/$(PROJ_NAME).elf $^ $(OBJCOPY) -v -O binary obj/$(PROJ_NAME).elf obj/code.bin - ./tools/sign.py obj/code.bin $@ $(CERT) + ../crypto/sign.py obj/code.bin $@ $(CERT) obj/bootstub.$(PROJ_NAME).bin: obj/$(STARTUP_FILE).o obj/bootstub.$(PROJ_NAME).o obj/sha.o obj/rsa.o $(CC) $(CFLAGS) -o obj/bootstub.$(PROJ_NAME).elf $^ diff --git a/boardesp/Makefile b/boardesp/Makefile index 01368ce7..97426e4f 100644 --- a/boardesp/Makefile +++ b/boardesp/Makefile @@ -1,6 +1,6 @@ PATH := esp-open-sdk/xtensa-lx106-elf/bin:$(PATH) CC = xtensa-lx106-elf-gcc -CFLAGS = -Iinclude/ -I. -mlongcalls -Iesp-open-sdk/ESP8266_NONOS_SDK_V1.5.4_16_05_20/driver_lib/include -std=c99 -DICACHE_FLASH +CFLAGS = -Iinclude/ -I. -I../ -mlongcalls -Iesp-open-sdk/ESP8266_NONOS_SDK_V1.5.4_16_05_20/driver_lib/include -std=c99 -DICACHE_FLASH LDLIBS = -nostdlib -Wl,--start-group -lmain -lnet80211 -lwpa -llwip -lpp -lphy -Wl,--end-group -lgcc -ldriver -Wl,--gc-sections LDFLAGS = -Teagle.app.v6.ld OBJCP = xtensa-lx106-elf-objcopy @@ -22,7 +22,7 @@ tcp_ota.o: tcp_ota.c oldflash: proxy-0x00000.bin ./tools/esptool.py write_flash 0 proxy-0x00000.bin 0x40000 proxy-0x40000.bin -user1.bin: proxy.o tcp_ota.o st_ota.o elm327.o webserver.o +user1.bin: proxy.o tcp_ota.o st_ota.o elm327.o webserver.o ../crypto/sha.c ../crypto/rsa.c $(CC) $(CFLAGS) $^ -o a.out -L$(SDK_BASE)/ld -T$(SDK_BASE)/ld/eagle.app.v6.new.1024.app1.ld $(LDLIBS) $(OBJCP) --only-section .text -O binary a.out eagle.app.v6.text.bin $(OBJCP) --only-section .data -O binary a.out eagle.app.v6.data.bin @@ -32,7 +32,7 @@ user1.bin: proxy.o tcp_ota.o st_ota.o elm327.o webserver.o rm -f eagle.app.v6.*.bin mv eagle.app.flash.bin $@ -user2.bin: proxy.o tcp_ota.o st_ota.o elm327.o webserver.o +user2.bin: proxy.o tcp_ota.o st_ota.o elm327.o webserver.o ../crypto/sha.c ../crypto/rsa.c $(CC) $(CFLAGS) $^ -o a.out -L$(SDK_BASE)/ld -T$(SDK_BASE)/ld/eagle.app.v6.new.1024.app2.ld $(LDLIBS) $(OBJCP) --only-section .text -O binary a.out eagle.app.v6.text.bin $(OBJCP) --only-section .data -O binary a.out eagle.app.v6.data.bin diff --git a/certs/debugesp b/certs/debugesp new file mode 100644 index 00000000..789beaac --- /dev/null +++ b/certs/debugesp @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQCjIHvrSCWN0Nec6ozbImYik30PIF7JSWgdwDKTxSJ05RM3pj5E +LQEGt3qcaVrTokO68tpt5Gu1p6ZsNqWg7iVTW9M7Qj7IH45YDzQP/PSRjgSosQA6 +6f5Gokba5QrW38myqimvj+0p+YH+CNGCBRlTUQGCO8uLCspMZneRSLPW9QIDAQAB +AoGADaUn+HRef9BaWMvd4G6uMHI54cwJYbj8NpDfKjExQqnuw5bqWnWRQmiSnwbJ +DC7kj3zE/LBAuj890ot3q1CAWqh47ZICZfoX9Qbi5TpvIHFCGy6YkOliF6iIQhR2 +4+zNKTAA0zNKskOM25PdI+grK1Ni/bEofSA6TrqvEwsmxnkCQQDVp9FUUor2Bo/h +/3oAIP51LTw7vfpztYbJr+BDV63czV2DLXzSwzeNrwH4sA3oy1mjUgMBBgAarNGE +DYlc4H5jAkEAw3UCHzzXPlxkw2QGp7nBly5y3p80Uqc31NuYz8rdX/U8KTngi2No +Ft/SGCEXNpeYbToj+WK3RJJ2Ey0mK8+IxwJAcpGd/5CPsaQNLcw4WK9Yo+8Q2Jxk +G/4gfDCSmqn+smNxnLEcuUwzkwdgkEGgA9BfjeOhdsAH+EXpx90WZrZ/LwJBAK0k +jq+rTqUQZbZsejTEKYjJ/bnV4BzDwoKN0Q1pkLc7X4LJoW74rTFuLgdv8MdMfRtt +IIb/eoeFEpGkMicnHesCQHgR7BTUGBM6Uxam7RCdsgVsxoHBma21E/44ivWUMZzN +3oVt0mPnjS4speOlqwED5pCJ7yw7jwLPFMs8kNxuIKU= +-----END RSA PRIVATE KEY----- diff --git a/certs/debugesp.pub b/certs/debugesp.pub new file mode 100644 index 00000000..3afcf398 --- /dev/null +++ b/certs/debugesp.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCjIHvrSCWN0Nec6ozbImYik30PIF7JSWgdwDKTxSJ05RM3pj5ELQEGt3qcaVrTokO68tpt5Gu1p6ZsNqWg7iVTW9M7Qj7IH45YDzQP/PSRjgSosQA66f5Gokba5QrW38myqimvj+0p+YH+CNGCBRlTUQGCO8uLCspMZneRSLPW9Q== batman@y840 diff --git a/certs/releaseesp.pub b/certs/releaseesp.pub new file mode 100644 index 00000000..1d1d54bb --- /dev/null +++ b/certs/releaseesp.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDN4pVyGuJJSde1l3Fjay8qPxog09DsAJZtYPk+armoYO1L6YKReUTcMNyHQYZZMZFmhCdgjCgTIF2QYWMoP4KSe8l6JF04YPP51dIgefc6UXjtlSI8Pyutr0v9xXjSfsVm3RAJxDSHgzs9AoMsluKCL+LhAR1nd7cuHXITJ80O4w== batman@y840 diff --git a/board/tools/getcertheader.py b/crypto/getcertheader.py similarity index 100% rename from board/tools/getcertheader.py rename to crypto/getcertheader.py diff --git a/board/crypto/hash-internal.h b/crypto/hash-internal.h similarity index 100% rename from board/crypto/hash-internal.h rename to crypto/hash-internal.h diff --git a/board/crypto/rsa.c b/crypto/rsa.c similarity index 100% rename from board/crypto/rsa.c rename to crypto/rsa.c diff --git a/board/crypto/rsa.h b/crypto/rsa.h similarity index 100% rename from board/crypto/rsa.h rename to crypto/rsa.h diff --git a/board/crypto/sha.c b/crypto/sha.c similarity index 100% rename from board/crypto/sha.c rename to crypto/sha.c diff --git a/board/crypto/sha.h b/crypto/sha.h similarity index 100% rename from board/crypto/sha.h rename to crypto/sha.h diff --git a/board/tools/sign.py b/crypto/sign.py similarity index 100% rename from board/tools/sign.py rename to crypto/sign.py diff --git a/board/crypto/stdint.h b/crypto/stdint.h similarity index 100% rename from board/crypto/stdint.h rename to crypto/stdint.h