#pragma once #include #include #define ROTS_MAGIC "ROTS-IMG" struct rots_hdr { uint64_t timestamp; uint64_t size; }; struct rots_sig_hdr { char *name; char *digest; uint64_t timestamp; uint32_t size; }; size_t read_u8(FILE *fp, uint8_t *val); size_t read_u32(FILE *fp, uint32_t *val); size_t read_u64(FILE *fp, uint64_t *val); size_t write_u8(FILE *fp, uint8_t val); size_t write_u32(FILE *fp, uint32_t val); size_t write_u64(FILE *fp, uint64_t val); int rots_read_hdr(FILE *fp, struct rots_hdr *hdr); int rots_write_hdr(FILE *fp, struct rots_hdr *hdr); int rots_read_sig_hdr(FILE *fp, struct rots_sig_hdr *sig_hdr); int rots_write_sig_hdr(FILE *fp, struct rots_sig_hdr *sig_hdr); void rots_cleanup_sig_hdr(struct rots_sig_hdr *sig_hdr);