blob: 84ce2794fae9b08c84646ca7930e1a993c79dfb6 [file] [log] [blame]
Dirk Eibach60083262017-02-22 16:07:23 +01001/*
2 * (C) Copyright 2013
3 * Reinhard Pfau, Guntermann & Drunck GmbH, reinhard.pfau@gdsys.cc
4 *
5 * SPDX-License-Identifier: GPL-2.0+
6 */
7
8#ifndef __HRE_H
9#define __HRE_H
10
11struct key_program {
12 uint32_t magic;
13 uint32_t code_crc;
14 uint32_t code_size;
15 uint8_t code[];
16};
17
18struct h_reg {
19 bool valid;
20 uint8_t digest[20];
21};
22
23/* CCDM specific contants */
24enum {
25 /* NV indices */
26 NV_COMMON_DATA_INDEX = 0x40000001,
27 /* magics for key blob chains */
28 MAGIC_KEY_PROGRAM = 0x68726500,
29 MAGIC_HMAC = 0x68616300,
30 MAGIC_END_OF_CHAIN = 0x00000000,
31 /* sizes */
32 NV_COMMON_DATA_MIN_SIZE = 3 * sizeof(uint64_t) + 2 * sizeof(uint16_t),
33};
34
35int hre_verify_program(struct key_program *prg);
36int hre_run_program(const uint8_t *code, size_t code_size);
37
38#endif /* __HRE_H */