5 #include <libkern/crypto/sha2.h>
8 * Chunklist file format
11 #define CHUNKLIST_MAGIC 0x4C4B4E43
12 #define CHUNKLIST_FILE_VERSION_10 1
13 #define CHUNKLIST_CHUNK_METHOD_10 1
14 #define CHUNKLIST_SIGNATURE_METHOD_10 1
15 #define CHUNKLIST_SIG_LEN 256
16 #define CHUNKLIST_PUBKEY_LEN (2048/8)
18 struct chunklist_hdr
{
20 uint32_t cl_header_size
;
22 uint8_t cl_chunk_method
;
23 uint8_t cl_sig_method
;
25 uint64_t cl_chunk_count
;
26 uint64_t cl_chunk_offset
;
27 uint64_t cl_sig_offset
;
28 } __attribute__((packed
));
30 struct chunklist_chunk
{
32 uint8_t chunk_sha256
[SHA256_DIGEST_LENGTH
];
33 } __attribute__((packed
));
35 struct chunklist_sig
{
36 uint8_t cl_sig
[CHUNKLIST_SIG_LEN
];
41 * Chunklist signing public keys
44 struct chunklist_pubkey
{
46 const uint8_t key
[CHUNKLIST_PUBKEY_LEN
];
49 const struct chunklist_pubkey chunklist_pubkeys
[] = {
53 #define CHUNKLIST_NPUBKEYS (sizeof(chunklist_pubkeys)/sizeof(chunklist_pubkeys[0]))