17b722a06b8c03235a06731ec4a465bd5e2b5a381Vadim Bendebury/*
27b722a06b8c03235a06731ec4a465bd5e2b5a381Vadim Bendebury * Copyright 2015 The Chromium OS Authors. All rights reserved.
37b722a06b8c03235a06731ec4a465bd5e2b5a381Vadim Bendebury * Use of this source code is governed by a BSD-style license that can be
47b722a06b8c03235a06731ec4a465bd5e2b5a381Vadim Bendebury * found in the LICENSE file.
57b722a06b8c03235a06731ec4a465bd5e2b5a381Vadim Bendebury */
67b722a06b8c03235a06731ec4a465bd5e2b5a381Vadim Bendebury
77b722a06b8c03235a06731ec4a465bd5e2b5a381Vadim Bendebury#ifndef __TPM2_TICKET_FP_H
87b722a06b8c03235a06731ec4a465bd5e2b5a381Vadim Bendebury#define __TPM2_TICKET_FP_H
97b722a06b8c03235a06731ec4a465bd5e2b5a381Vadim Bendebury
10c5193c5b37cc5667d110d65ae8b03d5b96fc3c71Vadim Bendeburyvoid TicketComputeAuth(
11f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury    TPM_ST type,                  //   IN: the type of ticket.
12f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury    TPMI_RH_HIERARCHY hierarchy,  //   IN: hierarchy constant for ticket
13f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury    UINT64 timeout,               //   IN: timeout
14f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury    TPM2B_DIGEST *cpHashA,        //   IN: input cpHashA
15f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury    TPM2B_NONCE *policyRef,       //   IN: input policyRef
16f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury    TPM2B_NAME *entityName,       //   IN: name of entity
17f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury    TPMT_TK_AUTH *ticket          //   OUT: Created ticket
18f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury    );
197b722a06b8c03235a06731ec4a465bd5e2b5a381Vadim Bendeburyvoid TicketComputeCreation(
20f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury    TPMI_RH_HIERARCHY hierarchy,  //   IN: hierarchy for ticket
21f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury    TPM2B_NAME *name,             //   IN: object name
22f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury    TPM2B_DIGEST *creation,       //   IN: creation hash
23f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury    TPMT_TK_CREATION *ticket      //   OUT: created ticket
24f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury    );
25ccc99fecf622c9d35a9ff935724548968dc59bcbVadim Bendeburyvoid TicketComputeHashCheck(
26f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury    TPMI_RH_HIERARCHY hierarchy,  //   IN: hierarchy constant for ticket
27f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury    TPM_ALG_ID hashAlg,    //   IN: the hash algorithm used to create 'digest'
28f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury    TPM2B_DIGEST *digest,  //   IN: input digest
29f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury    TPMT_TK_HASHCHECK *ticket  //   OUT: Created ticket
30f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury    );
315b7832d0dac10777765bd3968494d918acd78122Vadim Bendeburyvoid TicketComputeVerified(
32f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury    TPMI_RH_HIERARCHY hierarchy,  //   IN: hierarchy constant for ticket
33f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury    TPM2B_DIGEST *digest,         //   IN: digest
34f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury    TPM2B_NAME *keyName,          //   IN: name of key that signed the value
35f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury    TPMT_TK_VERIFIED *ticket      //   OUT: verified ticket
36f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury    );
37f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim BendeburyBOOL TicketIsSafe(TPM2B *buffer);
387b722a06b8c03235a06731ec4a465bd5e2b5a381Vadim Bendebury
39f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury#endif  // __TPM2_TICKET_FP_H
40