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