1 /* This Source Code Form is subject to the terms of the Mozilla Public
2  * License, v. 2.0. If a copy of the MPL was not distributed with this
3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 /*
5  * pkix_verifynode.h
6  *
7  * VerifyNode Type Definitions
8  *
9  */
10 
11 #ifndef _PKIX_VERIFYNODE_H
12 #define _PKIX_VERIFYNODE_H
13 
14 #include "pkix_tools.h"
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 /* This structure reflects the contents of a verify node...
21  */
22 struct PKIX_VerifyNodeStruct {
23     PKIX_PL_Cert *verifyCert;
24     PKIX_List *children;                /* VerifyNodes */
25     PKIX_UInt32 depth;
26     PKIX_Error *error;
27 };
28 
29 PKIX_Error *
30 pkix_SingleVerifyNode_ToString(
31         PKIX_VerifyNode *node,
32         PKIX_PL_String **pString,
33         void *plContext);
34 
35 PKIX_Error *
36 pkix_VerifyNode_Create(
37         PKIX_PL_Cert *verifyCert,
38         PKIX_UInt32 depth,
39         PKIX_Error *error,
40         PKIX_VerifyNode **pObject,
41         void *plContext);
42 
43 PKIX_Error *
44 pkix_VerifyNode_AddToChain(
45         PKIX_VerifyNode *parentNode,
46         PKIX_VerifyNode *child,
47         void *plContext);
48 
49 PKIX_Error *
50 pkix_VerifyNode_AddToTree(
51         PKIX_VerifyNode *parentNode,
52         PKIX_VerifyNode *child,
53         void *plContext);
54 
55 PKIX_Error *
56 pkix_VerifyNode_SetError(
57         PKIX_VerifyNode *node,
58         PKIX_Error *error,
59         void *plContext);
60 
61 PKIX_Error *
62 pkix_VerifyNode_RegisterSelf(
63         void *plContext);
64 
65 PKIX_Error *
66 pkix_VerifyNode_FindError(
67         PKIX_VerifyNode *node,
68         PKIX_Error **error,
69         void *plContext);
70 
71 #ifdef __cplusplus
72 }
73 #endif
74 
75 #endif /* _PKIX_VERIFYNODE_H */
76