1
2 /*
3 * Licensed Materials - Property of IBM
4 *
5 * trousers - An open source TCG Software Stack
6 *
7 * (C) Copyright International Business Machines Corp. 2004
8 *
9 */
10
11 #include <stdlib.h>
12 #include <stdio.h>
13 #include <string.h>
14
15 #include "trousers/tss.h"
16 #include "trousers_types.h"
17 #include "spi_utils.h"
18 #include "capabilities.h"
19 #include "tsplog.h"
20 #include "obj.h"
21
22 TSS_RESULT
Tspi_PcrComposite_SetPcrValue(TSS_HPCRS hPcrComposite,UINT32 ulPcrIndex,UINT32 ulPcrValueLength,BYTE * rgbPcrValue)23 Tspi_PcrComposite_SetPcrValue(TSS_HPCRS hPcrComposite, /* in */
24 UINT32 ulPcrIndex, /* in */
25 UINT32 ulPcrValueLength, /* in */
26 BYTE * rgbPcrValue) /* in */
27 {
28 if (ulPcrValueLength == 0 || rgbPcrValue == NULL)
29 return TSPERR(TSS_E_BAD_PARAMETER);
30
31 if (ulPcrValueLength != TCPA_SHA1_160_HASH_LEN)
32 return TSPERR(TSS_E_BAD_PARAMETER);
33
34 return obj_pcrs_set_value(hPcrComposite, ulPcrIndex, ulPcrValueLength, rgbPcrValue);
35 }
36
37 TSS_RESULT
Tspi_PcrComposite_GetPcrValue(TSS_HPCRS hPcrComposite,UINT32 ulPcrIndex,UINT32 * pulPcrValueLength,BYTE ** prgbPcrValue)38 Tspi_PcrComposite_GetPcrValue(TSS_HPCRS hPcrComposite, /* in */
39 UINT32 ulPcrIndex, /* in */
40 UINT32 * pulPcrValueLength, /* out */
41 BYTE ** prgbPcrValue) /* out */
42 {
43 if (pulPcrValueLength == NULL || prgbPcrValue == NULL)
44 return TSPERR(TSS_E_BAD_PARAMETER);
45
46 return obj_pcrs_get_value(hPcrComposite, ulPcrIndex, pulPcrValueLength,
47 prgbPcrValue);
48
49 }
50
51 TSS_RESULT
Tspi_PcrComposite_SelectPcrIndex(TSS_HPCRS hPcrComposite,UINT32 ulPcrIndex)52 Tspi_PcrComposite_SelectPcrIndex(TSS_HPCRS hPcrComposite, /* in */
53 UINT32 ulPcrIndex) /* in */
54 {
55 return obj_pcrs_select_index(hPcrComposite, ulPcrIndex);
56 }
57