diff --git a/c8_remote/include/bootrom_addr.h b/c8_remote/include/bootrom_addr.h index 0321c2a..608d35a 100644 --- a/c8_remote/include/bootrom_addr.h +++ b/c8_remote/include/bootrom_addr.h @@ -7,6 +7,9 @@ /* Crypto */ #define ADDR_HARDWARE_AES 0x100000f0c +#define ADDR_GET_RANDOM 0x1000113e0 +#define ADDR_GET_ENTROPY 0x1000013d4 +#define ADDR_SHA1 0x10000cc90 /* Timing */ #define ADDR_CLOCK_GATE 0x100009d4c diff --git a/c8_remote/lib/payload/include/bootrom_func.h b/c8_remote/lib/payload/include/bootrom_func.h index 1151b93..1e249c3 100644 --- a/c8_remote/lib/payload/include/bootrom_func.h +++ b/c8_remote/lib/payload/include/bootrom_func.h @@ -14,6 +14,21 @@ static inline int hardware_aes(unsigned long long cmd, return ((BOOTROM_FUNC_I) ADDR_HARDWARE_AES)(cmd, src, dst, len, opts, key, iv); } +static inline int get_random(void *buf, int len) +{ + return ((BOOTROM_FUNC_I) ADDR_GET_RANDOM)(buf, len); +} + +static inline unsigned int get_entropy() +{ + return ((BOOTROM_FUNC_I) ADDR_GET_ENTROPY)(); +} + +static inline void sha1(void *src, int len, void *dst) +{ + return ((BOOTROM_FUNC_V) ADDR_SHA1)(src, len, dst); +} + /* Timing */ static inline int clock_gate(int device, int power) { diff --git a/c8_remote/main.c b/c8_remote/main.c index 31189d1..d0826bb 100644 --- a/c8_remote/main.c +++ b/c8_remote/main.c @@ -369,7 +369,7 @@ DEV_PTR_T aes_sw_bernstein(struct pwned_device *dev) unsigned char data[16]; unsigned char key[16]; - memset(key, 0, 16); + memset(key, 0x1, 16); if(IS_CHECKM8_FAIL(open_device_session(dev))) {