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-util.h (1989B)


      1/*
      2 * QTest TPM utilities
      3 *
      4 * Copyright (c) 2018 IBM Corporation
      5 *
      6 * Authors:
      7 *   Stefan Berger <stefanb@linux.vnet.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
     13#ifndef TESTS_TPM_UTIL_H
     14#define TESTS_TPM_UTIL_H
     15
     16#include "io/channel-socket.h"
     17
     18extern uint64_t tpm_tis_base_addr;
     19
     20#define TIS_REG(LOCTY, REG) \
     21    (tpm_tis_base_addr + ((LOCTY) << 12) + REG)
     22
     23typedef void (tx_func)(QTestState *s,
     24                       const unsigned char *req, size_t req_size,
     25                       unsigned char *rsp, size_t rsp_size);
     26
     27void tpm_util_crb_transfer(QTestState *s,
     28                           const unsigned char *req, size_t req_size,
     29                           unsigned char *rsp, size_t rsp_size);
     30void tpm_util_tis_transfer(QTestState *s,
     31                           const unsigned char *req, size_t req_size,
     32                           unsigned char *rsp, size_t rsp_size);
     33
     34void tpm_util_startup(QTestState *s, tx_func *tx);
     35void tpm_util_pcrextend(QTestState *s, tx_func *tx);
     36void tpm_util_pcrread(QTestState *s, tx_func *tx,
     37                      const unsigned char *exp_resp, size_t exp_resp_size);
     38
     39bool tpm_util_swtpm_has_tpm2(void);
     40
     41gboolean tpm_util_swtpm_start(const char *path, GPid *pid,
     42                              SocketAddress **addr, GError **error);
     43void tpm_util_swtpm_kill(GPid pid);
     44
     45void tpm_util_migrate(QTestState *who, const char *uri);
     46
     47void tpm_util_migration_start_qemu(QTestState **src_qemu,
     48                                   QTestState **dst_qemu,
     49                                   SocketAddress *src_tpm_addr,
     50                                   SocketAddress *dst_tpm_addr,
     51                                   const char *miguri,
     52                                   const char *ifmodel,
     53                                   const char *machine_options);
     54
     55void tpm_util_wait_for_migration_complete(QTestState *who);
     56
     57#endif /* TESTS_TPM_UTIL_H */