#ifndef TCI_TCI_H
#define TCI_TCI_H

#define COMMAND_SIGN   1
#define COMMAND_VERIFY 2

#define MAX_HASH_LEN 64

/* These values must correspond to the values in
 * include/uapi/linux/hash_info.h in Linux Kernel*/
enum hash_type {
  HASH_SHA1 = 2,
  HASH_SHA256 = 4,
  HASH_SHA512 = 6,
};

enum hash_len {
  HASH_SHA1_LEN = 20,
  HASH_SHA256_LEN = 32,
  HASH_SHA512_LEN = 64,
};

struct tci_msg {
  uint8_t hash_type;
  uint8_t hash[MAX_HASH_LEN];
  uint8_t signature[MAX_HASH_LEN];
  uint16_t label_len;
  uint8_t label[0];
} __attribute((packed));

#endif  // TCI_TCI_H
