1 // This file was extracted from the TCG Published
2 // Trusted Platform Module Library
3 // Part 3: Commands
4 // Family "2.0"
5 // Level 00 Revision 01.16
6 // October 30, 2014
7 
8 #include "InternalRoutines.h"
9 #include "IncrementalSelfTest_fp.h"
10 //
11 //
12 //     Error Returns                 Meaning
13 //
14 //     TPM_RC_CANCELED               the command was canceled (some tests may have completed)
15 //     TPM_RC_VALUE                  an algorithm in the toTest list is not implemented
16 //
17 TPM_RC
TPM2_IncrementalSelfTest(IncrementalSelfTest_In * in,IncrementalSelfTest_Out * out)18 TPM2_IncrementalSelfTest(
19    IncrementalSelfTest_In        *in,                // IN: input parameter list
20    IncrementalSelfTest_Out       *out                // OUT: output parameter list
21    )
22 {
23    TPM_RC                         result;
24 // Command Output
25 
26    // Call incremental self test function in crypt module. If this function
27    // returns TPM_RC_VALUE, it means that an algorithm on the 'toTest' list is
28    // not implemented.
29    result = CryptIncrementalSelfTest(&in->toTest, &out->toDoList);
30    if(result == TPM_RC_VALUE)
31        return TPM_RC_VALUE + RC_IncrementalSelfTest_toTest;
32    return result;
33 }
34