1
TConstrChoice DEFINITIONS ::=
5
FilterItem ::= CHOICE {
6
equality [0] AttributeValueAssertion,
7
substrings [1] SEQUENCE {
8
type ATTRIBUTE.&id({SupportedAttributes}),
9
strings SEQUENCE OF CHOICE {
10
initial [0] ATTRIBUTE.&Type
11
({SupportedAttributes}{@substrings.type}),
12
any [1] ATTRIBUTE.&Type
13
({SupportedAttributes}{@substrings.type}),
14
final [2] ATTRIBUTE.&Type
15
({SupportedAttributes}{@substrings.type}) }},
16
greaterOrEqual [2] AttributeValueAssertion,
17
lessOrEqual [3] AttributeValueAssertion,
18
present [4] AttributeType,
19
approximateMatch [5] AttributeValueAssertion,
20
extensibleMatch [6] MatchingRuleAssertion }
22
AttributeValueAssertion ::= SEQUENCE {
23
type ATTRIBUTE.&id({SupportedAttributes}),
24
assertion ATTRIBUTE.&equality-match.&AssertionType
25
({SupportedAttributes}{@type}) }
27
MatchingRuleAssertion ::= SEQUENCE {
28
type MATCHING-RULE.&id({MatchingRules}),
29
assertion MATCHING-RULE.&AssertionType ({MatchingRules}{@type})
32
AttributeType ::= INTEGER(0..127)
35
&derivation ATTRIBUTE OPTIONAL,
37
&equality-match MATCHING-RULE OPTIONAL,
38
&ordering-match MATCHING-RULE OPTIONAL,
39
&substrings-match MATCHING-RULE OPTIONAL,
40
&single-valued BOOLEAN DEFAULT FALSE,
41
&collective BOOLEAN DEFAULT FALSE,
42
&no-user-modification BOOLEAN DEFAULT FALSE,
43
&usage Attribute-Usage DEFAULT userApplications,
44
&id OBJECT IDENTIFIER UNIQUE }
46
[SUBTYPE OF &derivation]
48
[EQUALITY MATCHING RULE &equality-match]
49
[ORDERING MATCHING RULE &ordering-match]
50
[SUBSTRINGS MATCHING RULE &substrings-match]
51
[SINGLE VALUE &single-valued]
52
[COLLECTIVE &collective]
53
[NO USER MODIFICATION &no-user-modification]
57
Attribute-Usage ::= ENUMERATED { userApplications(0),
58
directoryOperation(1), distributedOperation(2),
62
surname ATTRIBUTE ::= { -- family name
64
WITH SYNTAX DirectoryString
67
givenName ATTRIBUTE ::= { -- first name
69
WITH SYNTAX DirectoryString
72
countryName ATTRIBUTE ::= { -- country
74
WITH SYNTAX PrintableString (SIZE (2)) -- [ISO3166] codes
78
SupportedAttributes ATTRIBUTE ::=
79
{surname | givenName | countryName}
81
-- id-at-surname DirectoryString ::= universalString:"SureName"
83
id-at-surname OBJECT IDENTIFIER ::= {2 4}
85
-- id-at-givenName DirectoryString ::= printableString:"GivenName"
87
id-at-givenName OBJECT IDENTIFIER ::= {2 5}
89
-- id-at-countryName PrintableString (SIZE (2)) ::= "CN"
91
id-at-countryName OBJECT IDENTIFIER ::= {2 6}
93
MATCHING-RULE ::= CLASS {
94
&AssertionType OPTIONAL,
95
&id OBJECT IDENTIFIER UNIQUE }
97
[SYNTAX &AssertionType]
100
MatchingRules MATCHING-RULE ::= {
101
caseIgnoreMatch | booleanMatch | integerMatch }
103
LessMatchingRules MATCHING-RULE ::= {
104
MatchingRules EXCEPT caseIgnoreMatch }
106
ExtensibleMatchingRules MATCHING-RULE ::= {
107
caseIgnoreMatch | booleanMatch | integerMatch, ... }
110
WITH SYNTAX DirectoryString
111
EQUALITY MATCHING RULE caseIgnoreMatch
115
DirectoryString ::= CHOICE {
116
teletexString TeletexString (SIZE (1..maxSize)),
117
printableString PrintableString (SIZE (1..maxSize)),
118
universalString UniversalString (SIZE (1..maxSize)),
119
bmpString BMPString (SIZE (1..maxSize))
120
-- utf8String UTF8String (SIZE (1..maxSize))
123
maxSize INTEGER ::= 25
125
caseIgnoreMatch MATCHING-RULE ::= {
126
SYNTAX DirectoryString
127
ID id-caseIgnoreMatch
130
booleanMatch MATCHING-RULE ::= {
135
integerMatch MATCHING-RULE ::= {
140
id-mr OBJECT IDENTIFIER ::=
143
id-name OBJECT IDENTIFIER ::= {2 5 11 5}
145
id-caseIgnoreMatch OBJECT IDENTIFIER ::= {2 5 11 2}
147
id-booleanMatch OBJECT IDENTIFIER ::= {2 5 11 13}
149
id-integerMatch OBJECT IDENTIFIER ::= {2 5 11 14}
151
--{joint-iso-itu-t ds(5) matchingRule(13)}
153
-- test code for OTP-4248
155
NOTUNIQUE ::= CLASS {
165
nuObject NOTUNIQUE ::= {VALUE 3 TYPE FilterItem}
167
NuObjectSet NOTUNIQUE ::= {nuObject}
170
a NOTUNIQUE.&value ({NuObjectSet}),
171
b NOTUNIQUE.&Type ({NuObjectSet}{@a})