harbor/vendor/github.com/mqu/openldap/defines.go

351 lines
9.7 KiB
Go

/*
*
* Copyright (C) 2012 - Marc Quinton.
*
* Use of this source code is governed by the MIT Licence :
* http://opensource.org/licenses/mit-license.php
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
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
)