File: defines.go

package info (click to toggle)
golang-openldap 0.2-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster
  • size: 420 kB
  • sloc: ansic: 3,635; makefile: 5
file content (323 lines) | stat: -rw-r--r-- 8,680 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
package openldap

const (
	// first version for this GO API binding
	OPENLDAP_API_BINDING_VERSION = "0.2"
)

const (
	LDAP_VERSION1 = 1
	LDAP_VERSION2 = 2
	LDAP_VERSION3 = 3
)

const (
	LDAP_VERSION_MIN = LDAP_VERSION2
	LDAP_VERSION     = LDAP_VERSION2
	LDAP_VERSION_MAX = LDAP_VERSION3
)

const (
	LDAP_API_VERSION = 3001
	LDAP_VENDOR_NAME = "OpenLDAP"
)

const (
	LDAP_PORT  = 389
	LDAPS_PORT = 636
)

const (
	LDAP_OPT_SUCCESS = 0
	LDAP_OPT_ERROR   = -1
)

// search scopes
const (
	LDAP_SCOPE_BASE        = 0x0000
	LDAP_SCOPE_ONELEVEL    = 0x0001
	LDAP_SCOPE_SUBTREE     = 0x0002
	LDAP_SCOPE_SUBORDINATE = 0x0003 // OpenLDAP extension
	LDAP_SCOPE_DEFAULT     = -1     // OpenLDAP extension
)

const (
	LDAP_SCOPE_BASEOBJECT = LDAP_SCOPE_BASE
	LDAP_SCOPE_ONE        = LDAP_SCOPE_ONELEVEL
	LDAP_SCOPE_SUB        = LDAP_SCOPE_SUBTREE
	LDAP_SCOPE_CHILDREN   = LDAP_SCOPE_SUBORDINATE
)

const (
	LDAP_RES_ANY         = -1
	LDAP_RES_UNSOLICITED = 0
)

//const (
//LDAP_API_FEATURE_THREAD_SAFE           = 1
//LDAP_API_FEATURE_SESSION_THREAD_SAFE   = 1
//LDAP_API_FEATURE_OPERATION_THREAD_SAFE = 1
//)

const (
	LDAP_SUCCESS                   = 0x00
	LDAP_OPERATIONS_ERROR          = 0x01
	LDAP_PROTOCOL_ERROR            = 0x02
	LDAP_TIMELIMIT_EXCEEDED        = 0x03
	LDAP_SIZELIMIT_EXCEEDED        = 0x04
	LDAP_COMPARE_FALSE             = 0x05
	LDAP_COMPARE_TRUE              = 0x06
	LDAP_AUTH_METHOD_NOT_SUPPORTED = 0x07
	LDAP_STRONG_AUTH_REQUIRED      = 0x08
	// Not used in LDAPv3
	LDAP_PARTIAL_RESULTS = 0x09

	// Next 5 new in LDAPv3
	LDAP_REFERRAL                       = 0x0a
	LDAP_ADMINLIMIT_EXCEEDED            = 0x0b
	LDAP_UNAVAILABLE_CRITICAL_EXTENSION = 0x0c
	LDAP_CONFIDENTIALITY_REQUIRED       = 0x0d
	LDAP_SASL_BIND_INPROGRESS           = 0x0e

	LDAP_NO_SUCH_ATTRIBUTE      = 0x10
	LDAP_UNDEFINED_TYPE         = 0x11
	LDAP_INAPPROPRIATE_MATCHING = 0x12
	LDAP_CONSTRAINT_VIOLATION   = 0x13
	LDAP_TYPE_OR_VALUE_EXISTS   = 0x14
	LDAP_INVALID_SYNTAX         = 0x15

	LDAP_NO_SUCH_OBJECT    = 0x20 /* 32 */
	LDAP_ALIAS_PROBLEM     = 0x21
	LDAP_INVALID_DN_SYNTAX = 0x22
	// Next two not used in LDAPv3
	LDAP_IS_LEAF             = 0x23
	LDAP_ALIAS_DEREF_PROBLEM = 0x24

	LDAP_INAPPROPRIATE_AUTH   = 0x30 /* 48 */
	LDAP_INVALID_CREDENTIALS  = 0x31 /* 49 */
	LDAP_INSUFFICIENT_ACCESS  = 0x32
	LDAP_BUSY                 = 0x33
	LDAP_UNAVAILABLE          = 0x34
	LDAP_UNWILLING_TO_PERFORM = 0x35
	LDAP_LOOP_DETECT          = 0x36

	LDAP_SORT_CONTROL_MISSING = 0x3C /* 60 */
	LDAP_INDEX_RANGE_ERROR    = 0x3D /* 61 */

	LDAP_NAMING_VIOLATION       = 0x40
	LDAP_OBJECT_CLASS_VIOLATION = 0x41
	LDAP_NOT_ALLOWED_ON_NONLEAF = 0x42
	LDAP_NOT_ALLOWED_ON_RDN     = 0x43
	LDAP_ALREADY_EXISTS         = 0x44 /* 68 */
	LDAP_NO_OBJECT_CLASS_MODS   = 0x45
	LDAP_RESULTS_TOO_LARGE      = 0x46
	// Next two for LDAPv3
	LDAP_AFFECTS_MULTIPLE_DSAS = 0x47
	LDAP_OTHER                 = 0x50

	// Used by some APIs
	LDAP_SERVER_DOWN    = 0x51
	LDAP_LOCAL_ERROR    = 0x52
	LDAP_ENCODING_ERROR = 0x53
	LDAP_DECODING_ERROR = 0x54
	LDAP_TIMEOUT        = 0x55
	LDAP_AUTH_UNKNOWN   = 0x56
	LDAP_FILTER_ERROR   = 0x57 /* 87 */
	LDAP_USER_CANCELLED = 0x58
	LDAP_PARAM_ERROR    = 0x59
	LDAP_NO_MEMORY      = 0x5a

	// Preliminary LDAPv3 codes
	LDAP_CONNECT_ERROR           = 0x5b
	LDAP_NOT_SUPPORTED           = 0x5c
	LDAP_CONTROL_NOT_FOUND       = 0x5d
	LDAP_NO_RESULTS_RETURNED     = 0x5e
	LDAP_MORE_RESULTS_TO_RETURN  = 0x5f
	LDAP_CLIENT_LOOP             = 0x60
	LDAP_REFERRAL_LIMIT_EXCEEDED = 0x61
)

const (
	LDAP_DEREF_NEVER     = 0
	LDAP_DEREF_SEARCHING = 1
	LDAP_DEREF_FINDING   = 2
	LDAP_DEREF_ALWAYS    = 3
)

const (
	LDAP_NO_LIMIT = 0
)

const (
	LDAP_MSG_ONE      = 0
	LDAP_MSG_ALL      = 1
	LDAP_MSG_RECEIVED = 2
)

// LDAP_OPTions
// 0x0000 - 0x0fff reserved for api options
// 0x1000 - 0x3fff reserved for api extended options
// 0x4000 - 0x7fff reserved for private and experimental options

const (
	LDAP_OPT_API_INFO  = 0x0000
	LDAP_OPT_DESC      = 0x0001 // historic
	LDAP_OPT_DEREF     = 0x0002
	LDAP_OPT_SIZELIMIT = 0x0003
	LDAP_OPT_TIMELIMIT = 0x0004
	// 0x05 - 0x07 not defined

	LDAP_OPT_REFERRALS = 0x0008
	LDAP_OPT_RESTART   = 0x0009
	// 0x0a - 0x10 not defined

	LDAP_OPT_PROTOCOL_VERSION = 0x0011
	LDAP_OPT_SERVER_CONTROLS  = 0x0012
	LDAP_OPT_CLIENT_CONTROLS  = 0x0013
	// 0x14 not defined

	LDAP_OPT_API_FEATURE_INFO = 0x0015
	// 0x16 - 0x2f not defined

	LDAP_OPT_HOST_NAME          = 0x0030
	LDAP_OPT_RESULT_CODE        = 0x0031
	LDAP_OPT_ERROR_NUMBER       = LDAP_OPT_RESULT_CODE
	LDAP_OPT_DIAGNOSTIC_MESSAGE = 0x0032
	LDAP_OPT_ERROR_STRING       = LDAP_OPT_DIAGNOSTIC_MESSAGE
	LDAP_OPT_MATCHED_DN         = 0x0033
	// 0x0034 - 0x3fff not defined

	// 0x0091 used by Microsoft for LDAP_OPT_AUTO_RECONNECT

	LDAP_OPT_SSPI_FLAGS = 0x0092
	// 0x0093 used by Microsoft for LDAP_OPT_SSL_INFO

	// 0x0094 used by Microsoft for LDAP_OPT_REF_DEREF_CONN_PER_MSG

	LDAP_OPT_SIGN        = 0x0095
	LDAP_OPT_ENCRYPT     = 0x0096
	LDAP_OPT_SASL_METHOD = 0x0097
	// 0x0098 used by Microsoft for LDAP_OPT_AREC_EXCLUSIVE

	LDAP_OPT_SECURITY_CONTEXT = 0x0099

// 0x009A used by Microsoft for LDAP_OPT_ROOTDSE_CACHE

// 0x009B - 0x3fff not defined

)

// API Extensions

const LDAP_OPT_API_EXTENSION_BASE = 0x4000 // API extensions

// private and experimental options

// OpenLDAP specific options

const (
	LDAP_OPT_DEBUG_LEVEL     = 0x5001 // debug level
	LDAP_OPT_TIMEOUT         = 0x5002 // default timeout
	LDAP_OPT_REFHOPLIMIT     = 0x5003 // ref hop limit
	LDAP_OPT_NETWORK_TIMEOUT = 0x5005 // socket level timeout
	LDAP_OPT_URI             = 0x5006
	LDAP_OPT_REFERRAL_URLS   = 0x5007 // Referral URLs
	LDAP_OPT_SOCKBUF         = 0x5008 // sockbuf
	LDAP_OPT_DEFBASE         = 0x5009 // searchbase
	LDAP_OPT_CONNECT_ASYNC   = 0x5010 // create connections asynchronously
	LDAP_OPT_CONNECT_CB      = 0x5011 // connection callbacks
	LDAP_OPT_SESSION_REFCNT  = 0x5012 // session reference count
)

// OpenLDAP TLS options

const (
	LDAP_OPT_X_TLS              = 0x6000
	LDAP_OPT_X_TLS_CTX          = 0x6001 // OpenSSL CTX*
	LDAP_OPT_X_TLS_CACERTFILE   = 0x6002
	LDAP_OPT_X_TLS_CACERTDIR    = 0x6003
	LDAP_OPT_X_TLS_CERTFILE     = 0x6004
	LDAP_OPT_X_TLS_KEYFILE      = 0x6005
	LDAP_OPT_X_TLS_REQUIRE_CERT = 0x6006
	LDAP_OPT_X_TLS_PROTOCOL_MIN = 0x6007
	LDAP_OPT_X_TLS_CIPHER_SUITE = 0x6008
	LDAP_OPT_X_TLS_RANDOM_FILE  = 0x6009
	LDAP_OPT_X_TLS_SSL_CTX      = 0x600a // OpenSSL SSL*
	LDAP_OPT_X_TLS_CRLCHECK     = 0x600b
	LDAP_OPT_X_TLS_CONNECT_CB   = 0x600c
	LDAP_OPT_X_TLS_CONNECT_ARG  = 0x600d
	LDAP_OPT_X_TLS_DHFILE       = 0x600e
	LDAP_OPT_X_TLS_NEWCTX       = 0x600f
	LDAP_OPT_X_TLS_CRLFILE      = 0x6010 // GNUtls only
	LDAP_OPT_X_TLS_PACKAGE      = 0x6011
)

const (
	LDAP_OPT_X_TLS_NEVER  = 0
	LDAP_OPT_X_TLS_HARD   = 1
	LDAP_OPT_X_TLS_DEMAND = 2
	LDAP_OPT_X_TLS_ALLOW  = 3
	LDAP_OPT_X_TLS_TRY    = 4
)

const (
	LDAP_OPT_X_TLS_CRL_NONE = 0
	LDAP_OPT_X_TLS_CRL_PEER = 1
	LDAP_OPT_X_TLS_CRL_ALL  = 2
)

// for LDAP_OPT_X_TLS_PROTOCOL_MIN

//!!! const (
//!!! LDAP_OPT_X_TLS_PROTOCOL(maj,min) = (((maj) << 8) + (min))
//!!! LDAP_OPT_X_TLS_PROTOCOL_SSL2 = (2 << 8)
//!!! LDAP_OPT_X_TLS_PROTOCOL_SSL3 = (3 << 8)
//!!! LDAP_OPT_X_TLS_PROTOCOL_TLS1_0 = ((3 << 8) + 1)
//!!! LDAP_OPT_X_TLS_PROTOCOL_TLS1_1 = ((3 << 8) + 2)
//!!! LDAP_OPT_X_TLS_PROTOCOL_TLS1_2 = ((3 << 8) + 3)
//!!! )

// OpenLDAP SASL options

const (
	LDAP_OPT_X_SASL_MECH         = 0x6100
	LDAP_OPT_X_SASL_REALM        = 0x6101
	LDAP_OPT_X_SASL_AUTHCID      = 0x6102
	LDAP_OPT_X_SASL_AUTHZID      = 0x6103
	LDAP_OPT_X_SASL_SSF          = 0x6104 // read-only
	LDAP_OPT_X_SASL_SSF_EXTERNAL = 0x6105 // write-only
	LDAP_OPT_X_SASL_SECPROPS     = 0x6106 // write-only
	LDAP_OPT_X_SASL_SSF_MIN      = 0x6107
	LDAP_OPT_X_SASL_SSF_MAX      = 0x6108
	LDAP_OPT_X_SASL_MAXBUFSIZE   = 0x6109
	LDAP_OPT_X_SASL_MECHLIST     = 0x610a // read-only
	LDAP_OPT_X_SASL_NOCANON      = 0x610b
	LDAP_OPT_X_SASL_USERNAME     = 0x610c // read-only
	LDAP_OPT_X_SASL_GSS_CREDS    = 0x610d
)

// OpenLDAP GSSAPI options

const (
	LDAP_OPT_X_GSSAPI_DO_NOT_FREE_CONTEXT    = 0x6200
	LDAP_OPT_X_GSSAPI_ALLOW_REMOTE_PRINCIPAL = 0x6201
)

// 
// OpenLDAP per connection tcp-keepalive settings
// (Linux only, ignored where unsupported)
const (
	LDAP_OPT_X_KEEPALIVE_IDLE     = 0x6300
	LDAP_OPT_X_KEEPALIVE_PROBES   = 0x6301
	LDAP_OPT_X_KEEPALIVE_INTERVAL = 0x6302
)

/* authentication methods available */
const (
	LDAP_AUTH_NONE   = 0x00 // no authentication
	LDAP_AUTH_SIMPLE = 0x80 // context specific + primitive
	LDAP_AUTH_SASL   = 0xa3 // context specific + constructed
	LDAP_AUTH_KRBV4  = 0xff // means do both of the following
	LDAP_AUTH_KRBV41 = 0x81 // context specific + primitive
	LDAP_AUTH_KRBV42 = 0x82 // context specific + primitive
)