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_pl_ldaprequest.h
6  *
7  * LdapRequest Object Definitions
8  *
9  */
10 
11 #ifndef _PKIX_PL_LDAPREQUEST_H
12 #define _PKIX_PL_LDAPREQUEST_H
13 
14 #include "pkix_pl_common.h"
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 typedef enum {
21         USER_CERT,
22         CA_CERT,
23         CROSS_CERT,
24         CRL,
25         ARL,
26         DELTA_CRL
27 } PKIX_PL_LdapAttr;
28 
29 struct PKIX_PL_LdapRequestStruct{
30         PLArenaPool *arena;
31         PKIX_UInt32 msgnum;
32         char *issuerDN;
33         ScopeType scope;
34         DerefType derefAliases;
35         PKIX_UInt32 sizeLimit;
36         PKIX_UInt32 timeLimit;
37         char attrsOnly;
38         LDAPFilter *filter;
39         LdapAttrMask attrBits;
40         SECItem attributes[MAX_LDAPATTRS];
41         SECItem **attrArray;
42         SECItem *encoded;
43 };
44 
45 /* see source file for function documentation */
46 
47 PKIX_Error *
48 pkix_pl_LdapRequest_Create(
49         PLArenaPool *arena,
50         PKIX_UInt32 msgnum,
51         char *issuerDN,
52         ScopeType scope,
53         DerefType derefAliases,
54         PKIX_UInt32 sizeLimit,
55         PKIX_UInt32 timeLimit,
56         char attrsOnly,
57         LDAPFilter *filter,
58         LdapAttrMask attrBits,
59         PKIX_PL_LdapRequest **pRequestMsg,
60         void *plContext);
61 
62 PKIX_Error *
63 pkix_pl_LdapRequest_AttrTypeToBit(
64         SECItem *attrType,
65         LdapAttrMask *pAttrBit,
66         void *plContext);
67 
68 PKIX_Error *
69 pkix_pl_LdapRequest_AttrStringToBit(
70         char *attrString,
71         LdapAttrMask *pAttrBit,
72         void *plContext);
73 
74 PKIX_Error *
75 pkix_pl_LdapRequest_GetEncoded(
76         PKIX_PL_LdapRequest *request,
77         SECItem **pRequestBuf,
78         void *plContext);
79 
80 PKIX_Error *pkix_pl_LdapRequest_RegisterSelf(void *plContext);
81 
82 #ifdef __cplusplus
83 }
84 #endif
85 
86 #endif /* _PKIX_PL_LDAPREQUEST_H */
87