cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

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
     25struct tpm_req_hdr {
     26    uint16_t tag;
     27    uint32_t len;
     28    uint32_t ordinal;
     29} QEMU_PACKED;
     30
     31struct 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
     78int tpm_util_get_buffer_size(int tpm_fd, TPMVersion tpm_version,
     79                             size_t *buffersize);
     80
     81typedef struct TPMSizedBuffer {
     82    uint32_t size;
     83    uint8_t  *buffer;
     84} TPMSizedBuffer;
     85
     86void tpm_sized_buffer_reset(TPMSizedBuffer *tsb);
     87
     88#endif /* BACKENDS_TPM_INT_H */