7 #if !defined(_Keyblob_h_) 10 #include "smart_ptr.h" 11 #include "OptionContext.h" 12 #include "DataTarget.h" 14 #include "AESCounter.h" 17 #define kKeyblobOptionNameStart "start" 18 #define kKeyblobOptionNameEnd "end" 19 #define kKeyblobOptionNameKey "key" 20 #define kKeyblobOptionNameCounter "counter" 54 void setIdentifier(uint32_t identifier) {
m_id = identifier; }
55 uint32_t getIdentifier()
const {
return m_id; }
95 typedef struct KeyBlob
100 unsigned int endaddr;
102 unsigned int zero_fill;
103 unsigned int key_blob_crc32;
105 unsigned char expanded_wrap_data[8];
107 unsigned char unused_filler[16];
110 void populateKeyBlob(
keyblob_t *blob, uint32_t start, uint32_t end,
const char *keyHex,
const char *counterHex);
112 bool getOptionValues(OptionContext &opt,
const char **key,
const char **ctr, uint32_t *start, uint32_t *end);
120 #endif // _Keyblob_h_ Expanded KeK size.
Definition: Keyblob.h:79
bool encryptMatchingRange(uint32_t start, uint32_t len, uint8_t *data)
Encrypt for OTFAD if range is within a keyblob entry range.
Definition: Keyblob.cpp:135
Number of bytes in KeK.
Definition: Keyblob.h:88
Number of characters in ctr string.
Definition: Keyblob.h:90
Number of bytes in Ctr.
Definition: Keyblob.h:87
AES-128.
Definition: Keyblob.h:78
_keywrap_constants
Keywrap constants.
Definition: Keyblob.h:76
Block size for AES-128 encryption.
Definition: Keyblob.h:35
std::vector< OptionContext * > option_vector_t
List of options entries.
Definition: Keyblob.h:30
Key Blob format.
Definition: Keyblob.h:95
Key flags mask.
Definition: Keyblob.h:84
Definition: BootImage.h:13
Number of key blobs.
Definition: Keyblob.h:80
Number of characters in key string.
Definition: Keyblob.h:89
void addOptions(OptionContext *context)
Add options.
Definition: Keyblob.h:57
Pure abstract interface class to a table of options.
Definition: apps/elftosb/common/OptionContext.h:18
Default flags: RO=0, ADE=1, VLD=1.
Definition: Keyblob.h:85
Keyblob specification.
Definition: Keyblob.h:27
Number of bytes covered by CRC32.
Definition: Keyblob.h:91
Number of bytes per output line.
Definition: Keyblob.h:82
Region addresses are modulo 1024.
Definition: Keyblob.h:83
Number of bytes in AES-128 key.
Definition: Keyblob.h:86
uint8_t * createWrappedKeyblobData(uint8_t *kek, uint32_t *byteCount)
Create and wrap keyblob data based on options.
Definition: Keyblob.cpp:225
option_vector_t m_options
List of option entries.
Definition: Keyblob.h:115
Key blob size in bytes.
Definition: Keyblob.h:81
option_vector_t * getOptions()
Return options vector.
Definition: Keyblob.h:59
uint32_t m_id
Unique identifier.
Definition: Keyblob.h:114
_encryption_constants
Constants for encryption.
Definition: Keyblob.h:33