Add id48lib and second half of key recovery.

This commit is contained in:
Henry Gabryjelski 2024-03-02 23:36:36 -08:00
commit 4ebd6d4bff
16 changed files with 11107 additions and 14 deletions

View file

@ -13,12 +13,15 @@
//
// See LICENSE.txt for the text of the license.
//-----------------------------------------------------------------------------
// Low frequency EM4x70 structs
// Low frequency EM4x70 structs -- common to both ARM firmware and client
//-----------------------------------------------------------------------------
#ifndef EM4X70_H__
#define EM4X70_H__
#include <stdint.h>
#include <stdbool.h>
#define EM4X70_NUM_BLOCKS 16
// Common word/block addresses
@ -26,6 +29,12 @@
#define EM4X70_PIN_WORD_UPPER 11
typedef struct {
// ISSUE: `bool` type does not have a standard-defined size.
// therefore, compatibility between architectures /
// compilers is not guaranteed.
// ISSUE: C99 has no _Static_assert() ... was added in C11
// TODO: add _Static_assert(sizeof(bool)==1);
// TODO: add _Static_assert(sizeof(em4x70_data_t)==36);
bool parity;
// Used for writing address
@ -36,8 +45,9 @@ typedef struct {
uint32_t pin;
// Used for authentication
uint8_t rnd[7];
uint8_t frnd[4];
uint8_t grnd[3];
uint8_t rnd[7];
// Used to write new key
uint8_t crypt_key[12];