15679752bf24c21135884e987c4077e2f7184897Vadim Bendebury// This file was extracted from the TCG Published 25679752bf24c21135884e987c4077e2f7184897Vadim Bendebury// Trusted Platform Module Library 35679752bf24c21135884e987c4077e2f7184897Vadim Bendebury// Part 3: Commands 45679752bf24c21135884e987c4077e2f7184897Vadim Bendebury// Family "2.0" 55679752bf24c21135884e987c4077e2f7184897Vadim Bendebury// Level 00 Revision 01.16 65679752bf24c21135884e987c4077e2f7184897Vadim Bendebury// October 30, 2014 75679752bf24c21135884e987c4077e2f7184897Vadim Bendebury 85679752bf24c21135884e987c4077e2f7184897Vadim Bendebury#include "InternalRoutines.h" 95679752bf24c21135884e987c4077e2f7184897Vadim Bendebury#include "IncrementalSelfTest_fp.h" 105679752bf24c21135884e987c4077e2f7184897Vadim Bendebury// 115679752bf24c21135884e987c4077e2f7184897Vadim Bendebury// 125679752bf24c21135884e987c4077e2f7184897Vadim Bendebury// Error Returns Meaning 135679752bf24c21135884e987c4077e2f7184897Vadim Bendebury// 145679752bf24c21135884e987c4077e2f7184897Vadim Bendebury// TPM_RC_CANCELED the command was canceled (some tests may have completed) 155679752bf24c21135884e987c4077e2f7184897Vadim Bendebury// TPM_RC_VALUE an algorithm in the toTest list is not implemented 165679752bf24c21135884e987c4077e2f7184897Vadim Bendebury// 175679752bf24c21135884e987c4077e2f7184897Vadim BendeburyTPM_RC 185679752bf24c21135884e987c4077e2f7184897Vadim BendeburyTPM2_IncrementalSelfTest( 195679752bf24c21135884e987c4077e2f7184897Vadim Bendebury IncrementalSelfTest_In *in, // IN: input parameter list 205679752bf24c21135884e987c4077e2f7184897Vadim Bendebury IncrementalSelfTest_Out *out // OUT: output parameter list 215679752bf24c21135884e987c4077e2f7184897Vadim Bendebury ) 225679752bf24c21135884e987c4077e2f7184897Vadim Bendebury{ 235679752bf24c21135884e987c4077e2f7184897Vadim Bendebury TPM_RC result; 245679752bf24c21135884e987c4077e2f7184897Vadim Bendebury// Command Output 255679752bf24c21135884e987c4077e2f7184897Vadim Bendebury 265679752bf24c21135884e987c4077e2f7184897Vadim Bendebury // Call incremental self test function in crypt module. If this function 275679752bf24c21135884e987c4077e2f7184897Vadim Bendebury // returns TPM_RC_VALUE, it means that an algorithm on the 'toTest' list is 285679752bf24c21135884e987c4077e2f7184897Vadim Bendebury // not implemented. 295679752bf24c21135884e987c4077e2f7184897Vadim Bendebury result = CryptIncrementalSelfTest(&in->toTest, &out->toDoList); 305679752bf24c21135884e987c4077e2f7184897Vadim Bendebury if(result == TPM_RC_VALUE) 31065e0d7552ad876e067e56dcd8cc2a8f84bd8cc4Vadim Bendebury return TPM_RC_VALUE + RC_IncrementalSelfTest_toTest; 325679752bf24c21135884e987c4077e2f7184897Vadim Bendebury return result; 335679752bf24c21135884e987c4077e2f7184897Vadim Bendebury} 34