325 lines
12 KiB
PHP
325 lines
12 KiB
PHP
|
<?php
|
||
|
namespace nur\ldap;
|
||
|
|
||
|
use nur\ldap\syntaxes\BinarySyntax;
|
||
|
use nur\ldap\syntaxes\BooleanSyntax;
|
||
|
use nur\ldap\syntaxes\DateSyntax;
|
||
|
use nur\ldap\syntaxes\IntegerSyntax;
|
||
|
use nur\ldap\syntaxes\MailSyntax;
|
||
|
use nur\ldap\syntaxes\PostalAddressSyntax;
|
||
|
use nur\ldap\syntaxes\PrintableSyntax;
|
||
|
use nur\ldap\syntaxes\StringSyntax;
|
||
|
use nur\ldap\syntaxes\TelephoneSyntax;
|
||
|
|
||
|
class consts {
|
||
|
/**
|
||
|
* @var array[] définitions connues des syntaxes, au cas où le serveur ne les
|
||
|
* retourne pas
|
||
|
*/
|
||
|
const KNOWN_SLAPD_SYNTAXES = [
|
||
|
'1.3.6.1.4.1.1466.115.121.1.4' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.4',
|
||
|
'desc' => 'Audio',
|
||
|
'x_not_human_readable' => true,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.5' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.5',
|
||
|
'desc' => 'Binary',
|
||
|
'x_not_human_readable' => true,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.6' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.6',
|
||
|
'desc' => 'Bit String',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.7' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.7',
|
||
|
'desc' => 'Boolean',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.8' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.8',
|
||
|
'desc' => 'Certificate',
|
||
|
'x_not_human_readable' => true,
|
||
|
'x_binary_transfer_required' => true,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.9' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.9',
|
||
|
'desc' => 'Certificate List',
|
||
|
'x_not_human_readable' => true,
|
||
|
'x_binary_transfer_required' => true,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.10' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.10',
|
||
|
'desc' => 'Certificate Pair',
|
||
|
'x_not_human_readable' => true,
|
||
|
'x_binary_transfer_required' => true,
|
||
|
],
|
||
|
'1.3.6.1.4.1.4203.666.11.10.2.1' => [
|
||
|
'oid' => '1.3.6.1.4.1.4203.666.11.10.2.1',
|
||
|
'desc' => 'X.509 AttributeCertificate',
|
||
|
'x_not_human_readable' => true,
|
||
|
'x_binary_transfer_required' => true,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.12' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.12',
|
||
|
'desc' => 'Distinguished Name',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.2.36.79672281.1.5.0' => [
|
||
|
'oid' => '1.2.36.79672281.1.5.0',
|
||
|
'desc' => 'RDN',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.14' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.14',
|
||
|
'desc' => 'Delivery Method',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.15' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.15',
|
||
|
'desc' => 'Directory String',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.22' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.22',
|
||
|
'desc' => 'Facsimile Telephone Number',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.23' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.23',
|
||
|
'desc' => 'Fax image',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.24' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.24',
|
||
|
'desc' => 'Generalized Time',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.25' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.25',
|
||
|
'desc' => 'Guide',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.26' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.26',
|
||
|
'desc' => 'IA5 String',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.27' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.27',
|
||
|
'desc' => 'Integer',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.28' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.28',
|
||
|
'desc' => 'JPEG',
|
||
|
'x_not_human_readable' => true,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.34' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.34',
|
||
|
'desc' => 'Name And Optional UID',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.36' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.36',
|
||
|
'desc' => 'Numeric String',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.38' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.38',
|
||
|
'desc' => 'OID',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.39' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.39',
|
||
|
'desc' => 'Other Mailbox',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.40' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.40',
|
||
|
'desc' => 'Octet String',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.41' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.41',
|
||
|
'desc' => 'Postal Address',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.44' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.44',
|
||
|
'desc' => 'Printable String',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.11' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.11',
|
||
|
'desc' => 'Country String',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.45' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.45',
|
||
|
'desc' => 'SubtreeSpecification',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.49' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.49',
|
||
|
'desc' => 'Supported Algorithm',
|
||
|
'x_not_human_readable' => true,
|
||
|
'x_binary_transfer_required' => true,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.50' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.50',
|
||
|
'desc' => 'Telephone Number',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.51' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.51',
|
||
|
'desc' => 'Teletex Terminal Identifier',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.52' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.52',
|
||
|
'desc' => 'Telex Number',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.53' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.53',
|
||
|
'desc' => 'UTC Time',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.4.1.1466.115.121.1.54' => [
|
||
|
'oid' => '1.3.6.1.4.1.1466.115.121.1.54',
|
||
|
'desc' => 'LDAP Syntax Description',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.1.1.0.0' => [
|
||
|
'oid' => '1.3.6.1.1.1.0.0',
|
||
|
'desc' => 'RFC2307 NIS Netgroup Triple',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.1.1.0.1' => [
|
||
|
'oid' => '1.3.6.1.1.1.0.1',
|
||
|
'desc' => 'RFC2307 Boot Parameter',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
'1.3.6.1.1.16.1' => [
|
||
|
'oid' => '1.3.6.1.1.16.1',
|
||
|
'desc' => 'UUID',
|
||
|
'x_not_human_readable' => false,
|
||
|
'x_binary_transfer_required' => false,
|
||
|
],
|
||
|
];
|
||
|
|
||
|
const KNOWN_SYNTAX_CLASSES = [
|
||
|
'1.3.6.1.4.1.1466.115.121.1.4' => BinarySyntax::class, // audio
|
||
|
'1.3.6.1.4.1.1466.115.121.1.5' => BinarySyntax::class, // binary
|
||
|
'1.3.6.1.4.1.1466.115.121.1.6' => BinarySyntax::class, // bit string
|
||
|
'1.3.6.1.4.1.1466.115.121.1.7' => BooleanSyntax::class, // boolean
|
||
|
'1.3.6.1.4.1.1466.115.121.1.8' => BinarySyntax::class, // certificate
|
||
|
'1.3.6.1.4.1.1466.115.121.1.9' => BinarySyntax::class, // certificate list
|
||
|
'1.3.6.1.4.1.1466.115.121.1.10' => BinarySyntax::class, // certificate pair
|
||
|
'1.3.6.1.4.1.4203.666.11.10.2.1' => BinarySyntax::class, // X.509 AttributeCertificate
|
||
|
'1.3.6.1.4.1.1466.115.121.1.12' => StringSyntax::class, // DN
|
||
|
'1.2.36.79672281.1.5.0' => StringSyntax::class, // RDN
|
||
|
'1.3.6.1.4.1.1466.115.121.1.14' => StringSyntax::class, // delivery method
|
||
|
'1.3.6.1.4.1.1466.115.121.1.15' => StringSyntax::class, // directory string
|
||
|
'1.3.6.1.4.1.1466.115.121.1.22' => TelephoneSyntax::class, // fax number
|
||
|
'1.3.6.1.4.1.1466.115.121.1.24' => DateSyntax::class, // generalized time
|
||
|
'1.3.6.1.4.1.1466.115.121.1.26' => StringSyntax::class, // IA5 string
|
||
|
'1.3.6.1.4.1.1466.115.121.1.27' => IntegerSyntax::class, // integer
|
||
|
'1.3.6.1.4.1.1466.115.121.1.28' => BinarySyntax::class, // jpeg
|
||
|
'1.3.6.1.4.1.1466.115.121.1.34' => StringSyntax::class, // name and (opt.) oid
|
||
|
'1.3.6.1.4.1.1466.115.121.1.36' => IntegerSyntax::class, // numeric string
|
||
|
'1.3.6.1.4.1.1466.115.121.1.38' => StringSyntax::class, // oid
|
||
|
'1.3.6.1.4.1.1466.115.121.1.39' => MailSyntax::class, // other mailbox
|
||
|
'1.3.6.1.4.1.1466.115.121.1.40' => StringSyntax::class, // octet string
|
||
|
'1.3.6.1.4.1.1466.115.121.1.41' => PostalAddressSyntax::class, // postal address
|
||
|
'1.3.6.1.4.1.1466.115.121.1.44' => PrintableSyntax::class, // printable string
|
||
|
'1.3.6.1.4.1.1466.115.121.1.11' => StringSyntax::class, // country string
|
||
|
'1.3.6.1.4.1.1466.115.121.1.45' => StringSyntax::class, // subtree spec
|
||
|
'1.3.6.1.4.1.1466.115.121.1.49' => BinarySyntax::class, // supported algorithm
|
||
|
'1.3.6.1.4.1.1466.115.121.1.50' => TelephoneSyntax::class, // telephone number
|
||
|
'1.3.6.1.4.1.1466.115.121.1.52' => TelephoneSyntax::class, // telex number
|
||
|
'1.3.6.1.1.1.0.0' => StringSyntax::class, // RFC2307 NIS Netgroup Triple
|
||
|
'1.3.6.1.1.1.0.1' => StringSyntax::class, // RFC2307 Boot Parameter
|
||
|
'1.3.6.1.1.16.1' => StringSyntax::class, // uuid
|
||
|
];
|
||
|
|
||
|
const LDAP_CONTROL_CONSTANTS = [
|
||
|
# pas toutes ne sont définies en fonction de la version de PHP
|
||
|
"LDAP_CONTROL_MANAGEDSAIT",
|
||
|
"LDAP_CONTROL_PROXY_AUTHZ",
|
||
|
"LDAP_CONTROL_SUBENTRIES",
|
||
|
"LDAP_CONTROL_VALUESRETURNFILTER",
|
||
|
"LDAP_CONTROL_ASSERT",
|
||
|
"LDAP_CONTROL_PRE_READ",
|
||
|
"LDAP_CONTROL_POST_READ",
|
||
|
"LDAP_CONTROL_SORTREQUEST",
|
||
|
"LDAP_CONTROL_SORTRESPONSE",
|
||
|
"LDAP_CONTROL_PAGEDRESULTS",
|
||
|
"LDAP_CONTROL_SYNC",
|
||
|
"LDAP_CONTROL_SYNC_STATE",
|
||
|
"LDAP_CONTROL_SYNC_DONE",
|
||
|
"LDAP_CONTROL_DONTUSECOPY",
|
||
|
"LDAP_CONTROL_PASSWORDPOLICYREQUEST",
|
||
|
"LDAP_CONTROL_PASSWORDPOLICYRESPONSE",
|
||
|
"LDAP_CONTROL_X_INCREMENTAL_VALUES",
|
||
|
"LDAP_CONTROL_X_DOMAIN_SCOPE",
|
||
|
"LDAP_CONTROL_X_PERMISSIVE_MODIFY",
|
||
|
"LDAP_CONTROL_X_SEARCH_OPTIONS",
|
||
|
"LDAP_CONTROL_X_TREE_DELETE",
|
||
|
"LDAP_CONTROL_X_EXTENDED_DN",
|
||
|
"LDAP_CONTROL_VLVREQUEST",
|
||
|
"LDAP_CONTROL_VLVRESPONSE",
|
||
|
"LDAP_EXOP_MODIFY_PASSWD",
|
||
|
"LDAP_EXOP_REFRESH",
|
||
|
"LDAP_EXOP_START_TLS",
|
||
|
"LDAP_EXOP_TURN",
|
||
|
"LDAP_EXOP_WHO_AM_I",
|
||
|
"LDAP_CONTROL_AUTHZID_REQUEST",
|
||
|
"LDAP_CONTROL_AUTHZID_RESPONSE",
|
||
|
];
|
||
|
|
||
|
const ROOT_DSE_LITERALS = [
|
||
|
# Constantes non définies de façon normalisée
|
||
|
["1.3.6.1.1.8", "/*Cancel Extended Request*/ \"1.3.6.1.1.8\""],
|
||
|
["1.3.6.1.1.14", "/*Modify-Increment*/ \"1.3.6.1.1.14\""],
|
||
|
["1.3.6.1.4.1.4203.1.5.1", "/*All Op Attrs*/ \"1.3.6.1.4.1.4203.1.5.1\""],
|
||
|
["1.3.6.1.4.1.4203.1.5.2", "/*OC AD Lists*/ \"1.3.6.1.4.1.4203.1.5.2\""],
|
||
|
["1.3.6.1.4.1.4203.1.5.3", "/*LDAP Protocol Mechanism*/ \"1.3.6.1.4.1.4203.1.5.3\""],
|
||
|
["1.3.6.1.4.1.4203.1.5.4", "/*draft-zeilenga-ldap-rfc2596*/ \"1.3.6.1.4.1.4203.1.5.4\""],
|
||
|
["1.3.6.1.4.1.4203.1.5.5", "/*draft-zeilenga-ldap-rfc2596*/ \"1.3.6.1.4.1.4203.1.5.5\""],
|
||
|
];
|
||
|
}
|