1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-06-27 02:12:35 +00:00

bootloader: introduce keymask

This commit is contained in:
Pavol Rusnak 2017-03-06 18:05:21 +01:00
parent 78d82386d1
commit b28fd6327f
No known key found for this signature in database
GPG Key ID: 91F3B339B9A02A3D

View File

@ -48,28 +48,31 @@ bool parse_header(const uint8_t *data, uint32_t *codelen, uint8_t *sigidx, uint8
return true; return true;
} }
const uint8_t *SL_PUBKEY[5] = { #define KEYMASK(A, B, C) ((1 << (A - 1)) | (1 << (B - 1)) | (1 << (C - 1)))
(const uint8_t *)"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
(const uint8_t *)"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
(const uint8_t *)"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC",
(const uint8_t *)"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD",
(const uint8_t *)"EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE",
};
const uint8_t *get_pubkey(uint8_t index) const uint8_t *get_pubkey(uint8_t index)
{ {
// TODO: compute combinations of pubkeys from index
switch (index) { switch (index) {
case 0x01: case KEYMASK(1, 2, 3):
return SL_PUBKEY[0]; return (const uint8_t *)"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
case 0x02: case KEYMASK(1, 2, 4):
return SL_PUBKEY[1]; return (const uint8_t *)"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
case 0x04: case KEYMASK(1, 2, 5):
return SL_PUBKEY[2]; return (const uint8_t *)"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
case 0x08: case KEYMASK(1, 3, 4):
return SL_PUBKEY[3]; return (const uint8_t *)"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
case 0x10: case KEYMASK(1, 3, 5):
return SL_PUBKEY[4]; return (const uint8_t *)"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
case KEYMASK(1, 4, 5):
return (const uint8_t *)"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
case KEYMASK(2, 3, 4):
return (const uint8_t *)"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
case KEYMASK(2, 3, 5):
return (const uint8_t *)"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
case KEYMASK(2, 4, 5):
return (const uint8_t *)"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
case KEYMASK(3, 4, 5):
return (const uint8_t *)"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
default: default:
return NULL; return NULL;
} }