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