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-2006
8 *
9 */
10
11
12 #include <stdlib.h>
13 #include <stdio.h>
14 #include <string.h>
15
16 #include "trousers/tss.h"
17 #include "trousers/trousers.h"
18 #include "trousers_types.h"
19 #include "spi_utils.h"
20 #include "capabilities.h"
21 #include "tsplog.h"
22 #include "obj.h"
23
24
25 TSS_RESULT
Tspi_Hash_SetHashValue(TSS_HHASH hHash,UINT32 ulHashValueLength,BYTE * rgbHashValue)26 Tspi_Hash_SetHashValue(TSS_HHASH hHash, /* in */
27 UINT32 ulHashValueLength, /* in */
28 BYTE * rgbHashValue) /* in */
29 {
30 if (ulHashValueLength == 0 || rgbHashValue == NULL)
31 return TSPERR(TSS_E_BAD_PARAMETER);
32
33 return obj_hash_set_value(hHash, ulHashValueLength, rgbHashValue);
34 }
35
36 TSS_RESULT
Tspi_Hash_GetHashValue(TSS_HHASH hHash,UINT32 * pulHashValueLength,BYTE ** prgbHashValue)37 Tspi_Hash_GetHashValue(TSS_HHASH hHash, /* in */
38 UINT32 * pulHashValueLength, /* out */
39 BYTE ** prgbHashValue) /* out */
40 {
41 if (pulHashValueLength == NULL || prgbHashValue == NULL)
42 return TSPERR(TSS_E_BAD_PARAMETER);
43
44 return obj_hash_get_value(hHash, pulHashValueLength, prgbHashValue);
45 }
46
47 TSS_RESULT
Tspi_Hash_UpdateHashValue(TSS_HHASH hHash,UINT32 ulDataLength,BYTE * rgbData)48 Tspi_Hash_UpdateHashValue(TSS_HHASH hHash, /* in */
49 UINT32 ulDataLength, /* in */
50 BYTE *rgbData) /* in */
51 {
52 if (rgbData == NULL && ulDataLength != 0)
53 return TSPERR(TSS_E_BAD_PARAMETER);
54
55 if (ulDataLength == 0)
56 return TSS_SUCCESS;
57
58 return obj_hash_update_value(hHash, ulDataLength, rgbData);
59 }
60