1 /* 2 * Copyright (c) 2010-2012 United States Government, as represented by 3 * the Secretary of Defense. All rights reserved. 4 * 5 * THIS SOFTWARE AND ITS DOCUMENTATION ARE PROVIDED AS IS AND WITHOUT 6 * ANY EXPRESS OR IMPLIED WARRANTIES WHATSOEVER. ALL WARRANTIES 7 * INCLUDING, BUT NOT LIMITED TO, PERFORMANCE, MERCHANTABILITY, FITNESS 8 * FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT ARE HEREBY 9 * DISCLAIMED. USERS ASSUME THE ENTIRE RISK AND LIABILITY OF USING THE 10 * SOFTWARE. 11 */ 12 13 #ifndef NVM_H 14 #define NVM_H 15 #include <mini-os/types.h> 16 #include <xen/xen.h> 17 #include <tpmfront.h> 18 19 #define NVMKEYSZ 32 20 #define HASHSZ 20 21 #define HASHKEYSZ (NVMKEYSZ + HASHSZ) 22 23 int init_vtpmblk(struct tpmfront_dev* tpmfront_dev); 24 void shutdown_vtpmblk(void); 25 26 /* Encrypts and writes data to blk device */ 27 int write_vtpmblk(struct tpmfront_dev* tpmfront_dev, uint8_t *data, size_t data_length); 28 /* Reads, Decrypts, and returns data from blk device */ 29 int read_vtpmblk(struct tpmfront_dev* tpmfront_dev, uint8_t **data, size_t *data_length); 30 31 #endif 32