xref: /openbsd/usr.sbin/ldapd/aldap.h (revision d4b95dc4)
1 /*	$OpenBSD: aldap.h,v 1.2 2019/05/11 17:46:02 rob Exp $ */
2 
3 /*
4  * Copyright (c) 2008 Alexander Schrijver <aschrijver@openbsd.org>
5  * Copyright (c) 2006, 2007 Marc Balmer <mbalmer@openbsd.org>
6  *
7  * Permission to use, copy, modify, and distribute this software for any
8  * purpose with or without fee is hereby granted, provided that the above
9  * copyright notice and this permission notice appear in all copies.
10  *
11  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18  */
19 
20 #include <ber.h>
21 #include <stdio.h>
22 
23 enum protocol_op {
24 	LDAP_REQ_BIND		= 0,
25 	LDAP_RES_BIND		= 1,
26 	LDAP_REQ_UNBIND_30	= 2,
27 	LDAP_REQ_SEARCH		= 3,
28 	LDAP_RES_SEARCH_ENTRY	= 4,
29 	LDAP_RES_SEARCH_RESULT	= 5,
30 	LDAP_REQ_MODIFY		= 6,
31 	LDAP_RES_MODIFY		= 7,
32 	LDAP_REQ_ADD		= 8,
33 	LDAP_RES_ADD		= 9,
34 	LDAP_REQ_DELETE_30	= 10,
35 	LDAP_RES_DELETE		= 11,
36 	LDAP_REQ_MODRDN		= 12,
37 	LDAP_RES_MODRDN		= 13,
38 	LDAP_REQ_COMPARE	= 14,
39 	LDAP_RES_COMPARE	= 15,
40 	LDAP_REQ_ABANDON_30	= 16,
41 
42 	LDAP_RES_SEARCH_REFERENCE = 19,
43 	LDAP_REQ_EXTENDED	= 23,
44 	LDAP_RES_EXTENDED	= 24,
45 };
46 
47 enum deref_aliases {
48 	LDAP_DEREF_NEVER	= 0,
49 	LDAP_DEREF_SEARCHING	= 1,
50 	LDAP_DEREF_FINDING	= 2,
51 	LDAP_DEREF_ALWAYS	= 3,
52 };
53 
54 enum authentication_choice {
55 	LDAP_AUTH_SIMPLE	= 0,
56 	LDAP_AUTH_SASL		= 3,
57 };
58 
59 enum scope {
60 	LDAP_SCOPE_BASE		= 0,
61 	LDAP_SCOPE_ONELEVEL	= 1,
62 	LDAP_SCOPE_SUBTREE	= 2,
63 };
64 
65 enum result_code {
66 	LDAP_SUCCESS				= 0,
67 	LDAP_OPERATIONS_ERROR			= 1,
68 	LDAP_PROTOCOL_ERROR			= 2,
69 	LDAP_TIMELIMIT_EXCEEDED			= 3,
70 	LDAP_SIZELIMIT_EXCEEDED			= 4,
71 	LDAP_COMPARE_FALSE			= 5,
72 	LDAP_COMPARE_TRUE			= 6,
73 	LDAP_STRONG_AUTH_NOT_SUPPORTED		= 7,
74 	LDAP_STRONG_AUTH_REQUIRED		= 8,
75 
76 	LDAP_REFERRAL				= 10,
77 	LDAP_ADMINLIMIT_EXCEEDED		= 11,
78 	LDAP_UNAVAILABLE_CRITICAL_EXTENSION	= 12,
79 	LDAP_CONFIDENTIALITY_REQUIRED		= 13,
80 	LDAP_SASL_BIND_IN_PROGRESS		= 14,
81 	LDAP_NO_SUCH_ATTRIBUTE			= 16,
82 	LDAP_UNDEFINED_TYPE			= 17,
83 	LDAP_INAPPROPRIATE_MATCHING		= 18,
84 	LDAP_CONSTRAINT_VIOLATION		= 19,
85 	LDAP_TYPE_OR_VALUE_EXISTS		= 20,
86 	LDAP_INVALID_SYNTAX			= 21,
87 
88 	LDAP_NO_SUCH_OBJECT			= 32,
89 	LDAP_ALIAS_PROBLEM			= 33,
90 	LDAP_INVALID_DN_SYNTAX			= 34,
91 
92 	LDAP_ALIAS_DEREF_PROBLEM		= 36,
93 
94 	LDAP_INAPPROPRIATE_AUTH			= 48,
95 	LDAP_INVALID_CREDENTIALS		= 49,
96 	LDAP_INSUFFICIENT_ACCESS		= 50,
97 	LDAP_BUSY				= 51,
98 	LDAP_UNAVAILABLE			= 52,
99 	LDAP_UNWILLING_TO_PERFORM		= 53,
100 	LDAP_LOOP_DETECT			= 54,
101 
102 	LDAP_NAMING_VIOLATION			= 64,
103 	LDAP_OBJECT_CLASS_VIOLATION		= 65,
104 	LDAP_NOT_ALLOWED_ON_NONLEAF		= 66,
105 	LDAP_NOT_ALLOWED_ON_RDN			= 67,
106 	LDAP_ALREADY_EXISTS			= 68,
107 	LDAP_NO_OBJECT_CLASS_MODS		= 69,
108 
109 	LDAP_AFFECTS_MULTIPLE_DSAS		= 71,
110 
111 	LDAP_OTHER				= 80,
112 };
113 
114 enum filter {
115 	LDAP_FILT_AND		= 0,
116 	LDAP_FILT_OR		= 1,
117 	LDAP_FILT_NOT		= 2,
118 	LDAP_FILT_EQ		= 3,
119 	LDAP_FILT_SUBS		= 4,
120 	LDAP_FILT_GE		= 5,
121 	LDAP_FILT_LE		= 6,
122 	LDAP_FILT_PRES		= 7,
123 	LDAP_FILT_APPR		= 8,
124 };
125 
126 enum subfilter {
127 	LDAP_FILT_SUBS_INIT	= 0,
128 	LDAP_FILT_SUBS_ANY	= 1,
129 	LDAP_FILT_SUBS_FIN	= 2,
130 };
131 
132 enum modify_op {
133 	LDAP_MOD_ADD		= 0,
134 	LDAP_MOD_DELETE		= 1,
135 	LDAP_MOD_REPLACE	= 2,
136 };
137 
138