Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

781 lines
22 KiB

  1. /******************************************************************/
  2. /* Copyright (C) 1998 Microsoft Corporation. All rights reserved.*/
  3. /******************************************************************/
  4. /* Abstract syntax: ldap */
  5. /* Created: Tue Jan 27 10:27:59 1998 */
  6. /* ASN.1 compiler version: 4.2 Beta B */
  7. /* Target operating system: Windows NT 3.5 or later/Windows 95 */
  8. /* Target machine type: Intel x86 */
  9. /* C compiler options required: -Zp8 (Microsoft) or equivalent */
  10. /* ASN.1 compiler options specified:
  11. * -noshortennames -nouniquepdu -c++ -noconstraints -ber -gendirectives
  12. * ldapnew.gen
  13. */
  14. #ifndef OSS_ldap
  15. #define OSS_ldap
  16. #ifdef __cplusplus
  17. extern "C" {
  18. #endif /* __cplusplus */
  19. #include "asn1hdr.h"
  20. #include "asn1code.h"
  21. #define ObjectID_PDU 1
  22. #define DistinguishedName_PDU 2
  23. #define LDAPMsg_PDU 3
  24. #define Attribute_PDU 4
  25. #define PagedResultsSearchControlValue_PDU 5
  26. #define ReplicationSearchControlValue_PDU 6
  27. #define SecurityDescriptorSearchControlValue_PDU 7
  28. #define SearchResultFull_PDU 8
  29. #define ProtectedPassword_PDU 9
  30. #define StrongCredentials_PDU 10
  31. #define SortKeyList_PDU 11
  32. #define SortResult_PDU 12
  33. typedef struct ObjectID_ {
  34. struct ObjectID_ *next;
  35. unsigned short value;
  36. } *ObjectID;
  37. typedef struct TYPE_IDENTIFIER {
  38. struct ObjectID_ *id;
  39. unsigned short Type;
  40. } TYPE_IDENTIFIER;
  41. typedef struct ObjectID_ *ID;
  42. typedef struct UniqueIdentifier {
  43. unsigned int length; /* number of significant bits */
  44. unsigned char *value;
  45. } UniqueIdentifier;
  46. typedef struct AlgorithmIdentifier {
  47. unsigned char bit_mask;
  48. # define parameters_present 0x80
  49. struct ObjectID_ *algorithm;
  50. OpenType parameters; /* optional */
  51. } AlgorithmIdentifier;
  52. typedef struct RDNSequence_ *DistinguishedName;
  53. typedef struct Token {
  54. struct {
  55. AlgorithmIdentifier algorithm;
  56. struct RDNSequence_ *name;
  57. UTCTime time;
  58. struct {
  59. unsigned int length; /* number of significant bits */
  60. unsigned char *value;
  61. } random;
  62. } toBeSigned;
  63. AlgorithmIdentifier algorithmIdentifier;
  64. struct {
  65. unsigned int length; /* number of significant bits */
  66. unsigned char *value;
  67. } encrypted;
  68. } Token;
  69. typedef int Version;
  70. #define v1 0
  71. #define v2 1
  72. typedef int CertificateSerialNumber;
  73. typedef struct Name {
  74. unsigned short choice;
  75. # define rdnSequence_chosen 1
  76. union _union {
  77. struct RDNSequence_ *rdnSequence;
  78. } u;
  79. } Name;
  80. typedef struct Validity {
  81. UTCTime notBefore;
  82. UTCTime notAfter;
  83. } Validity;
  84. typedef struct SubjectPublicKeyInfo {
  85. AlgorithmIdentifier algorithm;
  86. struct _bit1 {
  87. unsigned int length; /* number of significant bits */
  88. unsigned char *value;
  89. } subjectPublicKey;
  90. } SubjectPublicKeyInfo;
  91. typedef struct Certificate {
  92. struct {
  93. unsigned char bit_mask;
  94. # define version_present 0x80
  95. # define issuerUniqueIdentifier_present 0x40
  96. # define subjectUniqueIdentifier_present 0x20
  97. Version version; /* default assumed if omitted */
  98. CertificateSerialNumber serialNumber;
  99. AlgorithmIdentifier signature;
  100. Name issuer;
  101. Validity validity;
  102. Name subject;
  103. SubjectPublicKeyInfo subjectPublicKeyInfo;
  104. UniqueIdentifier issuerUniqueIdentifier; /* optional */
  105. UniqueIdentifier subjectUniqueIdentifier; /* optional */
  106. } toBeSigned;
  107. AlgorithmIdentifier algorithmIdentifier;
  108. struct {
  109. unsigned int length; /* number of significant bits */
  110. unsigned char *value;
  111. } encrypted;
  112. } Certificate;
  113. typedef TYPE_IDENTIFIER ALGORITHM;
  114. typedef struct CertificatePair {
  115. unsigned char bit_mask;
  116. # define forward_present 0x80
  117. # define reverse_present 0x40
  118. Certificate forward; /* optional */
  119. Certificate reverse; /* optional */
  120. } CertificatePair;
  121. typedef struct CertificationPath {
  122. unsigned char bit_mask;
  123. # define theCACertificates_present 0x80
  124. Certificate userCertificate;
  125. struct _seqof1 {
  126. struct _seqof1 *next;
  127. CertificatePair value;
  128. } *theCACertificates; /* optional */
  129. } CertificationPath;
  130. typedef struct AttributeTypeAndValue {
  131. struct ObjectID_ *type;
  132. OpenType value;
  133. } AttributeTypeAndValue;
  134. typedef struct RDNSequence_ {
  135. struct RDNSequence_ *next;
  136. struct RelativeDistinguishedName_ *value;
  137. } *RDNSequence;
  138. typedef struct RelativeDistinguishedName_ {
  139. struct RelativeDistinguishedName_ *next;
  140. AttributeTypeAndValue value;
  141. } *RelativeDistinguishedName;
  142. typedef enum AttributeUsage {
  143. userApplications = 0,
  144. directoryOperation = 1,
  145. distributedOperation = 2,
  146. dSAOperation = 3
  147. } AttributeUsage;
  148. typedef struct ATTRIBUTE {
  149. unsigned char bit_mask;
  150. # define Type_present 0x80
  151. # define single_valued_present 0x40
  152. # define collective_present 0x20
  153. # define no_user_modification_present 0x10
  154. # define usage_present 0x08
  155. struct ATTRIBUTE *derivation; /* NULL for not present */
  156. unsigned short Type; /* optional */
  157. struct MATCHING_RULE *equality_match; /* NULL for not present */
  158. struct MATCHING_RULE *ordering_match; /* NULL for not present */
  159. struct MATCHING_RULE *substrings_match; /* NULL for not present */
  160. ossBoolean single_valued; /* default assumed if omitted */
  161. ossBoolean collective; /* default assumed if omitted */
  162. ossBoolean no_user_modification; /* default assumed if omitted */
  163. AttributeUsage usage; /* default assumed if omitted */
  164. struct ObjectID_ *id;
  165. } ATTRIBUTE;
  166. typedef struct MATCHING_RULE {
  167. unsigned char bit_mask;
  168. # define AssertionType_present 0x80
  169. unsigned short AssertionType; /* optional */
  170. struct ObjectID_ *id;
  171. } MATCHING_RULE;
  172. typedef unsigned int MessageID;
  173. typedef struct LDAPString {
  174. unsigned int length;
  175. unsigned char *value;
  176. } LDAPString;
  177. typedef LDAPString LDAPDN;
  178. typedef struct SaslCredentials {
  179. LDAPString mechanism;
  180. struct _octet1 {
  181. unsigned int length;
  182. unsigned char *value;
  183. } credentials;
  184. } SaslCredentials;
  185. typedef struct AuthenticationChoice {
  186. unsigned short choice;
  187. # define simple_chosen 1
  188. # define sasl_chosen 2
  189. # define sicilyNegotiate_chosen 3
  190. # define sicilyInitial_chosen 4
  191. # define sicilySubsequent_chosen 5
  192. # define sasl_v3response_chosen 1001
  193. union _union {
  194. struct _octet2 {
  195. unsigned int length;
  196. unsigned char *value;
  197. } simple;
  198. SaslCredentials sasl;
  199. struct _octet1 {
  200. unsigned int length;
  201. unsigned char *value;
  202. } sicilyNegotiate;
  203. struct _octet2_2 {
  204. unsigned int length;
  205. unsigned char *value;
  206. } sicilyInitial;
  207. struct _octet3 {
  208. unsigned int length;
  209. unsigned char *value;
  210. } sicilySubsequent;
  211. } u;
  212. } AuthenticationChoice;
  213. typedef struct BindRequest {
  214. unsigned short version;
  215. LDAPDN name;
  216. AuthenticationChoice authentication;
  217. } BindRequest;
  218. typedef enum _enum1 {
  219. success = 0,
  220. operationsError = 1,
  221. protocolError = 2,
  222. timeLimitExceeded = 3,
  223. sizeLimitExceeded = 4,
  224. compareFalse = 5,
  225. compareTrue = 6,
  226. authMethodNotSupported = 7,
  227. strongAuthRequired = 8,
  228. referralv2 = 9,
  229. referral = 10,
  230. adminLimitExceeded = 11,
  231. unavailableCriticalExtension = 12,
  232. confidentialityRequired = 13,
  233. saslBindInProgress = 14,
  234. noSuchAttribute = 16,
  235. undefinedAttributeType = 17,
  236. inappropriateMatching = 18,
  237. constraintViolation = 19,
  238. attributeOrValueExists = 20,
  239. invalidAttributeSyntax = 21,
  240. noSuchObject = 32,
  241. aliasProblem = 33,
  242. invalidDNSyntax = 34,
  243. aliasDereferencingProblem = 36,
  244. inappropriateAuthentication = 48,
  245. invalidCredentials = 49,
  246. insufficientAccessRights = 50,
  247. busy = 51,
  248. unavailable = 52,
  249. unwillingToPerform = 53,
  250. loopDetect = 54,
  251. sortControlMissing = 60,
  252. indexRangeError = 61,
  253. namingViolation = 64,
  254. objectClassViolation = 65,
  255. notAllowedOnNonLeaf = 66,
  256. notAllowedOnRDN = 67,
  257. entryAlreadyExists = 68,
  258. objectClassModsProhibited = 69,
  259. resultsTooLarge = 70,
  260. affectsMultipleDSAs = 71,
  261. virtualListViewError = 76,
  262. other = 80
  263. } _enum1;
  264. typedef struct BindResponse {
  265. unsigned char bit_mask;
  266. # define BindResponse_referral_present 0x80
  267. # define serverCreds_present 0x40
  268. # define BindResponse_ldapv3 0x20
  269. _enum1 resultCode;
  270. LDAPDN matchedDN;
  271. LDAPString errorMessage;
  272. struct Referral_ *BindResponse_referral; /* optional */
  273. AuthenticationChoice serverCreds; /* optional */
  274. } BindResponse;
  275. typedef Nulltype UnbindRequest;
  276. typedef LDAPString AttributeDescription;
  277. typedef struct AssertionValue {
  278. unsigned int length;
  279. unsigned char *value;
  280. } AssertionValue;
  281. typedef struct AttributeValueAssertion {
  282. AttributeDescription attributeDesc;
  283. AssertionValue assertionValue;
  284. } AttributeValueAssertion;
  285. typedef struct SubstringFilter {
  286. AttributeDescription type;
  287. struct SubstringFilterList_ *substrings;
  288. } SubstringFilter;
  289. typedef LDAPString AttributeType;
  290. typedef LDAPString MatchingRuleId;
  291. typedef struct MatchingRuleAssertion {
  292. unsigned char bit_mask;
  293. # define matchingRule_present 0x80
  294. # define type_present 0x40
  295. # define dnAttributes_present 0x20
  296. MatchingRuleId matchingRule; /* optional */
  297. AttributeDescription type; /* optional */
  298. AssertionValue matchValue;
  299. ossBoolean dnAttributes; /* default assumed if omitted */
  300. } MatchingRuleAssertion;
  301. typedef struct Filter {
  302. unsigned short choice;
  303. # define and_chosen 1
  304. # define or_chosen 2
  305. # define not_chosen 3
  306. # define equalityMatch_chosen 4
  307. # define substrings_chosen 5
  308. # define greaterOrEqual_chosen 6
  309. # define lessOrEqual_chosen 7
  310. # define present_chosen 8
  311. # define approxMatch_chosen 9
  312. # define extensibleMatch_chosen 10
  313. union _union {
  314. struct _setof3_ *and;
  315. struct _setof4_ *or;
  316. struct Filter *not;
  317. AttributeValueAssertion equalityMatch;
  318. SubstringFilter substrings;
  319. AttributeValueAssertion greaterOrEqual;
  320. AttributeValueAssertion lessOrEqual;
  321. AttributeType present;
  322. AttributeValueAssertion approxMatch;
  323. MatchingRuleAssertion extensibleMatch;
  324. } u;
  325. } Filter;
  326. typedef struct _setof3_ {
  327. struct _setof3_ *next;
  328. Filter value;
  329. } *_setof3;
  330. typedef struct _setof4_ {
  331. struct _setof4_ *next;
  332. Filter value;
  333. } *_setof4;
  334. typedef enum _enum2 {
  335. baseObject = 0,
  336. singleLevel = 1,
  337. wholeSubtree = 2
  338. } _enum2;
  339. typedef enum _enum3 {
  340. neverDerefAliases = 0,
  341. derefInSearching = 1,
  342. derefFindingBaseObj = 2,
  343. derefAlways = 3
  344. } _enum3;
  345. typedef struct SearchRequest {
  346. LDAPDN baseObject;
  347. _enum2 scope;
  348. _enum3 derefAliases;
  349. unsigned int sizeLimit;
  350. unsigned int timeLimit;
  351. ossBoolean typesOnly;
  352. Filter filter;
  353. struct AttributeDescriptionList_ *attributes;
  354. } SearchRequest;
  355. typedef struct SearchResultEntry {
  356. LDAPDN objectName;
  357. struct PartialAttributeList_ *attributes;
  358. } SearchResultEntry;
  359. typedef struct LDAPResult {
  360. unsigned char bit_mask;
  361. # define LDAPResult_referral_present 0x80
  362. _enum1 resultCode;
  363. LDAPDN matchedDN;
  364. LDAPString errorMessage;
  365. struct Referral_ *LDAPResult_referral; /* optional */
  366. } LDAPResult;
  367. typedef LDAPResult SearchResultDone;
  368. typedef struct ModifyRequest {
  369. LDAPDN object;
  370. struct ModificationList_ *modification;
  371. } ModifyRequest;
  372. typedef LDAPResult ModifyResponse;
  373. typedef struct AddRequest {
  374. LDAPDN entry;
  375. struct AttributeList_ *attributes;
  376. } AddRequest;
  377. typedef LDAPResult AddResponse;
  378. typedef LDAPDN DelRequest;
  379. typedef LDAPResult DelResponse;
  380. typedef LDAPString RelativeLDAPDN;
  381. typedef struct ModifyDNRequest {
  382. unsigned char bit_mask;
  383. # define newSuperior_present 0x80
  384. LDAPDN entry;
  385. RelativeLDAPDN newrdn;
  386. ossBoolean deleteoldrdn;
  387. LDAPDN newSuperior; /* optional */
  388. } ModifyDNRequest;
  389. typedef LDAPResult ModifyDNResponse;
  390. typedef struct CompareRequest {
  391. LDAPDN entry;
  392. AttributeValueAssertion ava;
  393. } CompareRequest;
  394. typedef LDAPResult CompareResponse;
  395. typedef MessageID AbandonRequest;
  396. typedef struct LDAPOID {
  397. unsigned int length;
  398. unsigned char *value;
  399. } LDAPOID;
  400. typedef struct ExtendedRequest {
  401. LDAPOID requestName;
  402. struct {
  403. unsigned int length;
  404. unsigned char *value;
  405. } requestValue;
  406. } ExtendedRequest;
  407. typedef struct ExtendedResponse {
  408. unsigned char bit_mask;
  409. # define ExtendedResponse_referral_present 0x80
  410. # define responseName_present 0x40
  411. # define response_present 0x20
  412. _enum1 resultCode;
  413. LDAPDN matchedDN;
  414. LDAPString errorMessage;
  415. struct Referral_ *ExtendedResponse_referral; /* optional */
  416. LDAPOID responseName; /* optional */
  417. struct {
  418. unsigned int length;
  419. unsigned char *value;
  420. } response; /* optional */
  421. } ExtendedResponse;
  422. typedef struct _choice1_1 {
  423. unsigned short choice;
  424. # define bindRequest_chosen 1
  425. # define bindResponse_chosen 2
  426. # define unbindRequest_chosen 3
  427. # define searchRequest_chosen 4
  428. # define searchResEntry_chosen 5
  429. # define searchResDone_chosen 6
  430. # define searchResRef_chosen 7
  431. # define modifyRequest_chosen 8
  432. # define modifyResponse_chosen 9
  433. # define addRequest_chosen 10
  434. # define addResponse_chosen 11
  435. # define delRequest_chosen 12
  436. # define delResponse_chosen 13
  437. # define modDNRequest_chosen 14
  438. # define modDNResponse_chosen 15
  439. # define compareRequest_chosen 16
  440. # define compareResponse_chosen 17
  441. # define abandonRequest_chosen 18
  442. # define extendedReq_chosen 19
  443. # define extendedResp_chosen 20
  444. union _union {
  445. BindRequest bindRequest;
  446. BindResponse bindResponse;
  447. UnbindRequest unbindRequest;
  448. SearchRequest searchRequest;
  449. SearchResultEntry searchResEntry;
  450. SearchResultDone searchResDone;
  451. struct SearchResultReference_ *searchResRef;
  452. ModifyRequest modifyRequest;
  453. ModifyResponse modifyResponse;
  454. AddRequest addRequest;
  455. AddResponse addResponse;
  456. DelRequest delRequest;
  457. DelResponse delResponse;
  458. ModifyDNRequest modDNRequest;
  459. ModifyDNResponse modDNResponse;
  460. CompareRequest compareRequest;
  461. CompareResponse compareResponse;
  462. AbandonRequest abandonRequest;
  463. ExtendedRequest extendedReq;
  464. ExtendedResponse extendedResp;
  465. } u;
  466. } _choice1_1;
  467. typedef struct LDAPMsg {
  468. unsigned char bit_mask;
  469. # define controls_present 0x80
  470. MessageID messageID;
  471. _choice1_1 protocolOp;
  472. struct Controls_ *controls; /* optional */
  473. } LDAPMsg;
  474. typedef struct AttributeDescriptionList_ {
  475. struct AttributeDescriptionList_ *next;
  476. AttributeDescription value;
  477. } *AttributeDescriptionList;
  478. typedef struct AttributeValue {
  479. unsigned int length;
  480. unsigned char *value;
  481. } AttributeValue;
  482. typedef struct AttributeVals_ {
  483. struct AttributeVals_ *next;
  484. AttributeValue value;
  485. } *AttributeVals;
  486. typedef struct Attribute {
  487. AttributeDescription type;
  488. struct AttributeVals_ *vals;
  489. } Attribute;
  490. typedef LDAPString LDAPURL;
  491. typedef struct Referral_ {
  492. struct Referral_ *next;
  493. LDAPURL value;
  494. } *Referral;
  495. typedef struct Control {
  496. unsigned char bit_mask;
  497. # define criticality_present 0x80
  498. LDAPOID controlType;
  499. ossBoolean criticality; /* default assumed if omitted */
  500. struct _octet4 {
  501. unsigned int length;
  502. unsigned char *value;
  503. } controlValue;
  504. } Control;
  505. typedef struct Controls_ {
  506. struct Controls_ *next;
  507. Control value;
  508. } *Controls;
  509. typedef struct _choice1 {
  510. unsigned short choice;
  511. # define initial_chosen 1
  512. # define any_chosen 2
  513. # define final_chosen 3
  514. union _union {
  515. LDAPString initial;
  516. LDAPString any;
  517. LDAPString final;
  518. } u;
  519. } _choice1;
  520. typedef struct SubstringFilterList_ {
  521. struct SubstringFilterList_ *next;
  522. _choice1 value;
  523. } *SubstringFilterList;
  524. typedef struct PagedResultsSearchControlValue {
  525. unsigned int size;
  526. struct _octet4 {
  527. unsigned int length;
  528. unsigned char *value;
  529. } cookie;
  530. } PagedResultsSearchControlValue;
  531. typedef struct ReplicationSearchControlValue {
  532. unsigned int flag;
  533. unsigned int size;
  534. struct _octet4 {
  535. unsigned int length;
  536. unsigned char *value;
  537. } cookie;
  538. } ReplicationSearchControlValue;
  539. typedef struct SecurityDescriptorSearchControlValue {
  540. unsigned int flags;
  541. } SecurityDescriptorSearchControlValue;
  542. typedef struct AttributeListElement {
  543. AttributeDescription type;
  544. struct AttributeVals_ *vals;
  545. } AttributeListElement;
  546. typedef struct PartialAttributeList_ {
  547. struct PartialAttributeList_ *next;
  548. AttributeListElement value;
  549. } *PartialAttributeList;
  550. typedef struct SearchResultReference_ {
  551. struct SearchResultReference_ *next;
  552. LDAPURL value;
  553. } *SearchResultReference;
  554. typedef struct _choice3 {
  555. unsigned short choice;
  556. # define entry_chosen 1
  557. # define reference_chosen 2
  558. # define resultCode_chosen 3
  559. union _union {
  560. SearchResultEntry entry;
  561. struct SearchResultReference_ *reference;
  562. SearchResultDone resultCode;
  563. } u;
  564. } _choice3;
  565. typedef struct SearchResultFull_ {
  566. struct SearchResultFull_ *next;
  567. _choice3 value;
  568. } *SearchResultFull;
  569. typedef struct AttributeTypeAndValues {
  570. AttributeDescription type;
  571. struct _setof1 {
  572. struct _setof1 *next;
  573. AttributeValue value;
  574. } *vals;
  575. } AttributeTypeAndValues;
  576. typedef enum _enum1_2 {
  577. add = 0,
  578. operation_delete = 1,
  579. replace = 2
  580. } _enum1_2;
  581. typedef struct ModificationList_ {
  582. struct ModificationList_ *next;
  583. struct {
  584. _enum1_2 operation;
  585. AttributeTypeAndValues modification;
  586. } value;
  587. } *ModificationList;
  588. typedef struct AttributeList_ {
  589. struct AttributeList_ *next;
  590. AttributeListElement value;
  591. } *AttributeList;
  592. typedef struct ProtectedPassword {
  593. unsigned char bit_mask;
  594. # define time1_present 0x80
  595. # define time2_present 0x40
  596. # define random1_present 0x20
  597. # define random2_present 0x10
  598. UTCTime time1; /* optional */
  599. UTCTime time2; /* optional */
  600. struct {
  601. unsigned int length; /* number of significant bits */
  602. unsigned char *value;
  603. } random1; /* optional */
  604. struct {
  605. unsigned int length; /* number of significant bits */
  606. unsigned char *value;
  607. } random2; /* optional */
  608. LDAPOID algorithmIdentifier;
  609. struct {
  610. unsigned int length; /* number of significant bits */
  611. unsigned char *value;
  612. } encipheredPassword;
  613. } ProtectedPassword;
  614. typedef struct StrongCredentials {
  615. unsigned char bit_mask;
  616. # define certification_path_present 0x80
  617. CertificationPath certification_path; /* optional */
  618. Token bind_token;
  619. } StrongCredentials;
  620. typedef struct SortKeyList_ {
  621. struct SortKeyList_ *next;
  622. struct {
  623. unsigned char bit_mask;
  624. # define orderingRule_present 0x80
  625. # define reverseOrder_present 0x40
  626. AttributeType attributeType;
  627. MatchingRuleId orderingRule; /* optional */
  628. ossBoolean reverseOrder; /* default assumed if omitted */
  629. } value;
  630. } *SortKeyList;
  631. typedef enum _enum1_4 {
  632. sortSuccess = 0,
  633. sortOperationsError = 1,
  634. sortTimeLimitExceeded = 2,
  635. sortStrongAuthRequired = 8,
  636. sortAdminLimitExceeded = 11,
  637. sortNoSuchAttribute = 16,
  638. sortInappropriateMatching = 18,
  639. sortInsufficientAccessRights = 50,
  640. sortBusy = 51,
  641. sortUnwillingToPerform = 53,
  642. sortOther = 80
  643. } _enum1_4;
  644. typedef struct SortResult {
  645. unsigned char bit_mask;
  646. # define attributeType_present 0x80
  647. _enum1_4 sortResult;
  648. AttributeType attributeType; /* optional */
  649. } SortResult;
  650. extern ID ds;
  651. extern ID attributeType;
  652. extern ID matchingRule;
  653. extern ID id_at;
  654. extern ID id_mr;
  655. extern ATTRIBUTE objectClass;
  656. extern ATTRIBUTE aliasedEntryName;
  657. extern MATCHING_RULE objectIdentifierMatch;
  658. extern MATCHING_RULE distinguishedNameMatch;
  659. extern ObjectID id_at_objectClass;
  660. extern ObjectID id_at_aliasedEntryName;
  661. extern ObjectID id_mr_objectIdentifierMatch;
  662. extern ObjectID id_mr_distinguishedNameMatch;
  663. extern int maxInt;
  664. extern void *ldap; /* encoder-decoder control table */
  665. #ifdef __cplusplus
  666. } /* extern "C" */
  667. #endif /* __cplusplus */
  668. #endif /* OSS_ldap */