qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

tpm_int.h (2159B)


      1 /*
      2  * TPM configuration
      3  *
      4  * Copyright (C) 2011-2013 IBM Corporation
      5  *
      6  * Authors:
      7  *  Stefan Berger    <stefanb@us.ibm.com>
      8  *
      9  * This work is licensed under the terms of the GNU GPL, version 2 or later.
     10  * See the COPYING file in the top-level directory.
     11  */
     12 #ifndef BACKENDS_TPM_INT_H
     13 #define BACKENDS_TPM_INT_H
     14 
     15 #include "qemu/option.h"
     16 #include "sysemu/tpm.h"
     17 
     18 #define TPM_STANDARD_CMDLINE_OPTS \
     19     { \
     20         .name = "type", \
     21         .type = QEMU_OPT_STRING, \
     22         .help = "Type of TPM backend", \
     23     }
     24 
     25 struct tpm_req_hdr {
     26     uint16_t tag;
     27     uint32_t len;
     28     uint32_t ordinal;
     29 } QEMU_PACKED;
     30 
     31 struct tpm_resp_hdr {
     32     uint16_t tag;
     33     uint32_t len;
     34     uint32_t errcode;
     35 } QEMU_PACKED;
     36 
     37 #define TPM_TAG_RQU_COMMAND       0xc1
     38 #define TPM_TAG_RQU_AUTH1_COMMAND 0xc2
     39 #define TPM_TAG_RQU_AUTH2_COMMAND 0xc3
     40 
     41 #define TPM_TAG_RSP_COMMAND       0xc4
     42 #define TPM_TAG_RSP_AUTH1_COMMAND 0xc5
     43 #define TPM_TAG_RSP_AUTH2_COMMAND 0xc6
     44 
     45 #define TPM_BAD_PARAMETER         3
     46 #define TPM_FAIL                  9
     47 #define TPM_KEYNOTFOUND           13
     48 #define TPM_BAD_PARAM_SIZE        25
     49 #define TPM_ENCRYPT_ERROR         32
     50 #define TPM_DECRYPT_ERROR         33
     51 #define TPM_BAD_KEY_PROPERTY      40
     52 #define TPM_BAD_MODE              44
     53 #define TPM_BAD_VERSION           46
     54 #define TPM_BAD_LOCALITY          61
     55 
     56 #define TPM_ORD_ContinueSelfTest  0x53
     57 #define TPM_ORD_GetTicks          0xf1
     58 #define TPM_ORD_GetCapability     0x65
     59 
     60 #define TPM_CAP_PROPERTY          0x05
     61 
     62 #define TPM_CAP_PROP_INPUT_BUFFER 0x124
     63 
     64 /* TPM2 defines */
     65 #define TPM2_ST_NO_SESSIONS       0x8001
     66 
     67 #define TPM2_CC_ReadClock         0x00000181
     68 #define TPM2_CC_GetCapability     0x0000017a
     69 
     70 #define TPM2_CAP_TPM_PROPERTIES   0x6
     71 
     72 #define TPM2_PT_MAX_COMMAND_SIZE  0x11e
     73 
     74 #define TPM_RC_INSUFFICIENT       0x9a
     75 #define TPM_RC_FAILURE            0x101
     76 #define TPM_RC_LOCALITY           0x907
     77 
     78 int tpm_util_get_buffer_size(int tpm_fd, TPMVersion tpm_version,
     79                              size_t *buffersize);
     80 
     81 typedef struct TPMSizedBuffer {
     82     uint32_t size;
     83     uint8_t  *buffer;
     84 } TPMSizedBuffer;
     85 
     86 void tpm_sized_buffer_reset(TPMSizedBuffer *tsb);
     87 
     88 #endif /* BACKENDS_TPM_INT_H */