xref: /aosp_15_r20/external/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Ticket_fp.h (revision 5c591343844d1f9da7da26467c4bf7efc8a7a413)
1 /* Microsoft Reference Implementation for TPM 2.0
2  *
3  *  The copyright in this software is being made available under the BSD License,
4  *  included below. This software may be subject to other third party and
5  *  contributor rights, including patent rights, and no such rights are granted
6  *  under this license.
7  *
8  *  Copyright (c) Microsoft Corporation
9  *
10  *  All rights reserved.
11  *
12  *  BSD License
13  *
14  *  Redistribution and use in source and binary forms, with or without modification,
15  *  are permitted provided that the following conditions are met:
16  *
17  *  Redistributions of source code must retain the above copyright notice, this list
18  *  of conditions and the following disclaimer.
19  *
20  *  Redistributions in binary form must reproduce the above copyright notice, this
21  *  list of conditions and the following disclaimer in the documentation and/or
22  *  other materials provided with the distribution.
23  *
24  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ""AS IS""
25  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27  *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
28  *  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
29  *  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30  *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
31  *  ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32  *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33  *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34  */
35 /*(Auto-generated)
36  *  Created by TpmPrototypes; Version 3.0 July 18, 2017
37  *  Date: Mar 28, 2019  Time: 08:25:19PM
38  */
39 
40 #ifndef    _TICKET_FP_H_
41 #define    _TICKET_FP_H_
42 
43 //*** TicketIsSafe()
44 // This function indicates if producing a ticket is safe.
45 // It checks if the leading bytes of an input buffer is TPM_GENERATED_VALUE
46 // or its substring of canonical form.  If so, it is not safe to produce ticket
47 // for an input buffer claiming to be TPM generated buffer
48 //  Return Type: BOOL
49 //      TRUE(1)         safe to produce ticket
50 //      FALSE(0)        not safe to produce ticket
51 BOOL
52 TicketIsSafe(
53     TPM2B           *buffer
54 );
55 
56 //*** TicketComputeVerified()
57 // This function creates a TPMT_TK_VERIFIED ticket.
58 void
59 TicketComputeVerified(
60     TPMI_RH_HIERARCHY    hierarchy,     // IN: hierarchy constant for ticket
61     TPM2B_DIGEST        *digest,        // IN: digest
62     TPM2B_NAME          *keyName,       // IN: name of key that signed the values
63     TPMT_TK_VERIFIED    *ticket         // OUT: verified ticket
64 );
65 
66 //*** TicketComputeAuth()
67 // This function creates a TPMT_TK_AUTH ticket.
68 void
69 TicketComputeAuth(
70     TPM_ST               type,          // IN: the type of ticket.
71     TPMI_RH_HIERARCHY    hierarchy,     // IN: hierarchy constant for ticket
72     UINT64               timeout,       // IN: timeout
73     BOOL                 expiresOnReset,// IN: flag to indicate if ticket expires on
74                                         //      TPM Reset
75     TPM2B_DIGEST        *cpHashA,       // IN: input cpHashA
76     TPM2B_NONCE         *policyRef,     // IN: input policyRef
77     TPM2B_NAME          *entityName,    // IN: name of entity
78     TPMT_TK_AUTH        *ticket         // OUT: Created ticket
79 );
80 
81 //*** TicketComputeHashCheck()
82 // This function creates a TPMT_TK_HASHCHECK ticket.
83 void
84 TicketComputeHashCheck(
85     TPMI_RH_HIERARCHY    hierarchy,     // IN: hierarchy constant for ticket
86     TPM_ALG_ID           hashAlg,       // IN: the hash algorithm for 'digest'
87     TPM2B_DIGEST        *digest,        // IN: input digest
88     TPMT_TK_HASHCHECK   *ticket         // OUT: Created ticket
89 );
90 
91 //*** TicketComputeCreation()
92 // This function creates a TPMT_TK_CREATION ticket.
93 void
94 TicketComputeCreation(
95     TPMI_RH_HIERARCHY    hierarchy,     // IN: hierarchy for ticket
96     TPM2B_NAME          *name,          // IN: object name
97     TPM2B_DIGEST        *creation,      // IN: creation hash
98     TPMT_TK_CREATION    *ticket         // OUT: created ticket
99 );
100 
101 #endif  // _TICKET_FP_H_
102