|
|
1.1 root 1: -- das-enc.py - manually augmented DirectoryAbstractService module
2:
3: -- $Header: /f/osi/dsap/x500as/RCS/das-enc.py,v 7.0 89/11/23 21:50:14 mrose Rel $
4: --
5: --
6: -- $Log: das-enc.py,v $
7: -- Revision 7.0 89/11/23 21:50:14 mrose
8: -- Release 6.0
9: --
10:
11: --
12: -- NOTICE
13: --
14: -- Acquisition, use, and distribution of this module and related
15: -- materials are subject to the restrictions of a license agreement.
16: -- Consult the Preface in the User's Manual for the full terms of
17: -- this agreement.
18: --
19: --
20:
21:
22: DAS
23: {
24: joint-iso-ccitt
25: ds(5)
26: modules(1)
27: directoryAbstractService(2)
28: }
29:
30: DEFINITIONS ::=
31:
32: %{
33: #include "quipu/util.h"
34: #include "quipu/entry.h"
35: #include "quipu/common.h"
36:
37: extern LLog * log_dsap;
38:
39: #define encode_UNIV_UTCTime build_UNIV_UTCTime
40: %}
41:
42: PREFIXES encode decode print
43:
44: BEGIN
45:
46: -- EXPORTS
47: -- DirectoryBindArgument ,
48: -- ReadArgument ,
49: -- ReadResult ,
50: -- AbandonArgument ,
51: -- AbandonResult ,
52: -- CompareArgument ,
53: -- CompareResult ,
54: -- ListArgument ,
55: -- ListResult ,
56: -- SearchArgument ,
57: -- SearchResult ,
58: -- AddEntryArgument ,
59: -- AddEntryResult ,
60: -- RemoveEntryArgument ,
61: -- RemoveEntryResult ,
62: -- ModifyEntryArgument ,
63: -- ModifyEntryResult ,
64: -- ModifyRDNArgument ,
65: -- ModifyRDNResult ,
66: -- AbandonFailedParm ,
67: -- AttributeErrorParm ,
68: -- NameErrorParm ,
69: -- ReferralParm ,
70: -- SecurityErrorParm ,
71: -- ServiceErrorParm ,
72: -- UpdateErrorParm;
73:
74: IMPORTS
75: Attribute ,
76: AttributeType ,
77: AttributeValue ,
78: AttributeValueAssertion ,
79: DistinguishedName ,
80: Name ,
81: RelativeDistinguishedName
82: FROM IF
83: {
84: joint-iso-ccitt
85: ds(5)
86: modules(1)
87: informationFramework(1)
88: }
89:
90: OperationProgress ,
91: ContinuationReference ,
92: InvokeID
93: FROM DO
94: {
95: joint-iso-ccitt
96: ds(5)
97: modules(1)
98: distributedOperations(3)
99: }
100:
101: Certificate ,
102: CertificationPath ,
103: AlgorithmIdentifier
104: FROM AF
105: {
106: joint-iso-ccitt
107: ds(5)
108: modules(1)
109: authenticationFramework(7)
110: };
111:
112: ENCODER encode
113:
114: SimpleCredentials [[P struct ds_bind_arg *]]
115: %{
116: %}
117: ::=
118: %{
119: DLOG(log_dsap, LLOG_TRACE, ("About to encode SimpleCredentials (DAS)"));
120: %}
121: SEQUENCE
122: {
123: name
124: [0] DistinguishedName [[p parm->dba_dn]]
125: %{
126: %} ,
127: validity
128: [1] SET
129: %{
130: %}
131: {
132: time1
133: [0] UTCTime [[s parm -> dba_time1]]
134: %{
135: %} OPTIONAL <<parm -> dba_time1>> ,
136: time2
137: [1] UTCTime [[s parm -> dba_time2]]
138: %{
139: %} OPTIONAL <<parm -> dba_time2>> ,
140: random1
141: [2] BIT STRING [[x parm->dba_r1.value $ parm->dba_r1.n_bits]]
142: %{
143: %} OPTIONAL <<parm->dba_r1.value != NULLCP>> ,
144: random2
145: [3] BIT STRING [[x parm->dba_r2.value $ parm->dba_r2.n_bits]]
146: %{
147: %} OPTIONAL <<parm->dba_r2.value != NULLCP>>
148: }
149: %{
150: %} OPTIONAL <<parm -> dba_auth_type > DBA_AUTH_SIMPLE>> ,
151: password
152: [2] OCTET STRING [[o parm->dba_passwd $ parm->dba_passwd_len]]
153: %{
154: %}
155: OPTIONAL <<parm->dba_auth_type != DBA_AUTH_NONE>>
156: }
157: %{
158: DLOG(log_dsap, LLOG_TRACE, ("Done encode SimpleCredentials (DAS)"));
159: %}
160:
161: TokenToSign [[P struct ds_bind_arg *]]
162: %{
163: %}
164: ::=
165: %{
166: DLOG(log_dsap, LLOG_TRACE, ("About to encode TokenToSign (DAS)"));
167: %}
168: SEQUENCE
169: {
170: algorithm
171: [0] AlgorithmIdentifier [[p &(parm->dba_sig->alg)]],
172: name
173: [1] DistinguishedName [[p parm->dba_dn]] ,
174: time
175: [2] UTCTime [[s parm->dba_time1]],
176: random
177: [3] BIT STRING [[x parm->dba_r1.value $ parm->dba_r1.n_bits]]
178: }
179: %{
180: DLOG(log_dsap, LLOG_TRACE, ("Done encode TokenToSign (DAS)"));
181: %}
182:
183: Token [[P struct ds_bind_arg *]]
184: ::=
185: %{
186: DLOG(log_dsap, LLOG_TRACE, ("About to encode Token (DAS)"));
187: %}
188: SEQUENCE
189: {
190: TokenToSign [[p parm]],
191: AlgorithmIdentifier [[p &(parm->dba_sig->alg)]],
192: BIT STRING [[x parm->dba_sig->encrypted $ parm->dba_sig->n_bits]]
193: }
194: %{
195: DLOG(log_dsap, LLOG_TRACE, ("Done encode Token (DAS)"));
196: %}
197:
198: StrongCredentials [[P struct ds_bind_arg *]]
199: ::=
200: %{
201: DLOG(log_dsap, LLOG_TRACE, ("About to encode StrongCredentials (DAS)"));
202: %}
203: SET
204: {
205: certificationPath
206: [0] CertificationPath [[p parm->dba_cpath]]
207: OPTIONAL <<parm->dba_cpath>>,
208: bindToken
209: [1] Token [[p parm]]
210: }
211: %{
212: DLOG(log_dsap, LLOG_TRACE, ("Done encode StrongCredentials (DAS)"));
213: %}
214:
215: Credentials [[P struct ds_bind_arg *]]
216: %{
217: %}
218: ::=
219: %{
220: DLOG(log_dsap, LLOG_TRACE, ("About to encode Credentials (DAS)"));
221: %}
222: CHOICE
223: <<(parm->dba_auth_type == DBA_AUTH_STRONG)?2:1>>
224: {
225: simple
226: [0] SimpleCredentials [[p parm]]
227: %{
228: %} ,
229: strong
230: [1] StrongCredentials [[p parm]]
231: %{
232: %} ,
233: externalProcedure
234: [2] EXTERNAL
235: }
236: %{
237: DLOG(log_dsap, LLOG_TRACE, ("Done encode Credentials (DAS)"));
238: %}
239:
240: Versions [[P int]]
241: %{
242: int ver_len = 1;
243: char *ver_bits = int2strb(parm,ver_len);
244: %}
245: ::=
246: %{
247: DLOG(log_dsap, LLOG_TRACE, ("About to encode Versions (DAS)"));
248: %}
249: BIT STRING [[x ver_bits $ ver_len]]
250: {
251: v1988(0)
252: }
253: %{
254: DLOG(log_dsap, LLOG_TRACE, ("Done encode Versions (DAS)"));
255: %}
256:
257: SecurityProblem [[P int]]
258: %{
259: %}
260: ::=
261: %{
262: DLOG(log_dsap, LLOG_TRACE, ("About to encode SecurityProblem (DAS)"));
263: %}
264: INTEGER [[i parm]]
265: {
266: inappropriateAuthentication(1) ,
267: invalidCredentials(2) ,
268: insufficientAccessRights(3) ,
269: invalidSignature(4) ,
270: protectionRequired(5) ,
271: noInformation(6)
272: }
273: %{
274: DLOG(log_dsap, LLOG_TRACE, ("Done encode SecurityProblem (DAS)"));
275: %}
276:
277: ServiceProblem [[P int]]
278: %{
279: %}
280: ::=
281: %{
282: DLOG(log_dsap, LLOG_TRACE, ("About to encode ServiceProblem (DAS)"));
283: %}
284: INTEGER [[i parm]]
285: {
286: busy(1) ,
287: unavailable(2) ,
288: unwillingToPerform(3) ,
289: chainingRequired(4) ,
290: unableToProceed(5) ,
291: invalidReference(6) ,
292: timeLimitExceeded(7) ,
293: administrativeLimitExceeded(8) ,
294: loopDetected(9) ,
295: unavailableCriticalExtension(10) ,
296: outOfScope(11) ,
297: ditError(12)
298: }
299: %{
300: DLOG(log_dsap, LLOG_TRACE, ("Done encode ServiceProblem (DAS)"));
301: %}
302:
303: EntryInformationSelection [[P struct entryinfoselection *]]
304: %{
305: Attr_Sequence attr_temp;
306: %}
307: ::=
308: %{
309: DLOG(log_dsap, LLOG_TRACE, ("About to encode EntryInformationSelection (DAS)"));
310: %}
311: SET
312: {
313: attributeTypes
314: CHOICE
315: <<(parm->eis_allattributes ? 1 : 2)>>
316: {
317: allAttributes
318: [0] NULL ,
319: select
320: [1] SET OF
321: %{
322: %}
323: <<attr_temp=parm->eis_select;attr_temp!=NULLATTR;attr_temp=attr_temp->attr_link>>
324: AttributeType [[p attr_temp->attr_type]]
325: %{
326: %}
327: %{
328: %}
329: }
330: %{
331: %}
332: -- DEFAULT allAttributes NULL <<parm->eis_allattributes != TRUE>> ,
333: OPTIONAL <<parm->eis_allattributes != TRUE>> ,
334: infoTypes
335: [2] INTEGER [[i parm->eis_infotypes]]
336: {
337: attributeTypesOnly(0) ,
338: attributeTypesAndValues(1)
339: }
340: %{
341: %}
342: -- DEFAULT attributeTypesAndValues <<parm->eis_infotypes != EIS_ATTRIBUTESANDVALUES>>
343: OPTIONAL <<parm->eis_infotypes != EIS_ATTRIBUTESANDVALUES>>
344: }
345: %{
346: DLOG(log_dsap, LLOG_TRACE, ("Done encode EntryInformationSelection (DAS)"));
347: %}
348:
349: ServiceControls [[P struct svccontrol *]]
350: %{
351: int opt_len = 5;
352: char *opt_bits;
353: %}
354: ::=
355: %{
356: DLOG(log_dsap, LLOG_TRACE, ("About to encode ServiceControls (DAS)"));
357: opt_bits = int2strb(parm->svc_options,opt_len);
358: %}
359: SET
360: {
361: options
362: [0] BIT STRING [[x opt_bits $ opt_len]]
363: {
364: preferChaining(0) ,
365: chainingProhibited(1) ,
366: localScope(2) ,
367: dontUseCopy(3) ,
368: dontDereferenceAliases(4)
369: }
370: %{
371: %}
372: -- DEFAULT {} <<parm->svc_options != 0>> ,
373: OPTIONAL <<parm->svc_options != 0>> ,
374: priority
375: [1] INTEGER [[i parm->svc_prio]]
376: {
377: low(0) ,
378: medium(1) ,
379: high(2)
380: }
381: %{
382: %}
383: -- DEFAULT medium <<parm->svc_prio != SVC_PRIO_MED>> ,
384: OPTIONAL <<parm->svc_prio != SVC_PRIO_MED>> ,
385: timeLimit
386: [2] INTEGER [[i parm->svc_timelimit]]
387: %{
388: %}
389: OPTIONAL <<parm->svc_timelimit != SVC_NOTIMELIMIT>> ,
390: sizeLimit
391: [3] INTEGER [[i parm->svc_sizelimit]]
392: %{
393: %}
394: OPTIONAL <<parm->svc_sizelimit != SVC_NOSIZELIMIT>> ,
395: scopeOfReferral
396: [4] INTEGER [[i parm->svc_scopeofreferral]]
397: {
398: dmd(0) ,
399: country(1)
400: }
401: OPTIONAL <<parm->svc_scopeofreferral != SVC_REFSCOPE_NONE>>
402: }
403: %{
404: DLOG(log_dsap, LLOG_TRACE, ("Done encode ServiceControls (DAS)"));
405: %}
406:
407: ProtectionRequest [[P int]]
408: ::=
409: %{
410: DLOG(log_dsap, LLOG_TRACE, ("About to encode ProtectionRequest (DAS)"));
411: %}
412: INTEGER [[i parm]]
413: {
414: none (0) ,
415: signed (1)
416: }
417: %{
418: DLOG(log_dsap, LLOG_TRACE, ("Done encode ProtectionRequest (DAS)"));
419: %}
420:
421: SecurityParameters [[P struct security_parms *]]
422: ::=
423: %{
424: DLOG(log_dsap, LLOG_TRACE, ("About to encode SecurityParameters (DAS)"));
425: %}
426: SET
427: {
428: certificationPath
429: [0] CertificationPath [[p parm->sp_path]]
430: OPTIONAL <<parm->sp_path>> ,
431: name
432: [1] DistinguishedName [[p parm->sp_name]]
433: OPTIONAL <<parm->sp_name>> ,
434: time
435: [2] UTCTime [[s parm->sp_time]]
436: OPTIONAL <<parm->sp_time>> ,
437: random
438: [3] BIT STRING [[x parm->sp_random->value $ parm->sp_random->n_bits]]
439: OPTIONAL <<parm->sp_random>> ,
440: target
441: [4] ProtectionRequest [[p ((int) parm->sp_target)]]
442: OPTIONAL <<parm->sp_target != '\0'>>
443: }
444: %{
445: DLOG(log_dsap, LLOG_TRACE, ("Done encode SecurityParameters (DAS)"));
446: %}
447:
448: Extension [[P struct extension *]]
449: ::=
450: %{
451: DLOG(log_dsap, LLOG_TRACE, ("About to encode Extension (DAS)"));
452: %}
453: SET
454: {
455: identifier
456: [0] INTEGER [[i parm->ext_id]] ,
457: critical
458: [1] BOOLEAN [[b parm->ext_critical]]
459: -- DEFAULT FALSE ,
460: OPTIONAL <<parm->ext_critical != FALSE>> ,
461: item
462: [2] ANY DEFINED BY identifier [[a parm->ext_item]]
463: }
464: %{
465: DLOG(log_dsap, LLOG_TRACE, ("Done encode Extension (DAS)"));
466: %}
467:
468: EntryInformation [[P struct entrystruct *]]
469: %{
470: Attr_Sequence attr_temp;
471: %}
472: ::=
473: %{
474: DLOG(log_dsap, LLOG_TRACE, ("About to encode EntryInformation (DAS)"));
475: %}
476: SEQUENCE
477: {
478: DistinguishedName [[p parm->ent_dn]]
479: %{
480: %} ,
481: fromEntry
482: BOOLEAN [[b (parm->ent_iscopy == E_DATA_MASTER)]]
483: %{
484: %}
485: -- DEFAULT TRUE <<parm->ent_iscopy != E_DATA_MASTER>> ,
486: OPTIONAL <<parm->ent_iscopy != E_DATA_MASTER>> ,
487: SET OF
488: %{
489: %}
490: <<attr_temp=parm->ent_attr;attr_temp!=NULLATTR;attr_temp=attr_temp->attr_link>>
491: CHOICE
492: <<((attr_temp->attr_value == NULLAV) ? 1 : 2)>>
493: {
494: AttributeType [[p attr_temp->attr_type]]
495: %{
496: %} ,
497: Attribute [[p attr_temp]]
498: %{
499: %}
500: }
501: %{
502: %}
503: %{
504: %}
505: OPTIONAL <<parm->ent_attr != NULLATTR>>
506: }
507: %{
508: DLOG(log_dsap, LLOG_TRACE, ("Done encode EntryInformation (DAS)"));
509: %}
510:
511: LimitProblem [[P int]]
512: %{
513: %}
514: ::=
515: %{
516: DLOG(log_dsap, LLOG_TRACE, ("About to encode LimitProblem (DAS)"));
517: %}
518: INTEGER [[i parm]]
519: {
520: timeLimitExceeded(0) ,
521: sizeLimitExceeded(1) ,
522: administrativeLimitExceeded(2)
523: }
524: %{
525: DLOG(log_dsap, LLOG_TRACE, ("Done encode LimitProblem (DAS)"));
526: %}
527:
528: PartialOutcomeQualifier [[P struct part_outcome *]]
529: %{
530: ContinuationRef crefp;
531: %}
532: ::=
533: %{
534: DLOG(log_dsap, LLOG_TRACE, ("About to encode PartialOutcomeQualifier (DAS)"));
535: %}
536: SET
537: {
538: limitProblem
539: [0] LimitProblem [[p parm->poq_limitproblem]]
540: %{
541: %}
542: OPTIONAL <<parm->poq_limitproblem != LSR_NOLIMITPROBLEM>> ,
543: unexplored
544: [1] SET OF
545: %{
546: %}
547: <<crefp=parm->poq_cref;crefp!=NULLCONTINUATIONREF;crefp=crefp->cr_next>>
548: ContinuationReference [[p crefp]]
549: %{
550: %}
551: %{
552: %}
553: OPTIONAL <<parm->poq_cref != NULLCONTINUATIONREF>> ,
554: unavailableCriticalExtensions
555: [2] BOOLEAN
556: -- DEFAULT FALSE <<FALSE>>
557: -- OPTIONAL <<FALSE>>
558: OPTIONAL
559: }
560: %{
561: DLOG(log_dsap, LLOG_TRACE, ("Done encode PartialOutcomeQualifier (DAS)"));
562: %}
563:
564: FilterItem [[P struct filter_item *]]
565: %{
566: int subs_type;
567: AV_Sequence avs_temp;
568: Filter_Substrings *subs_temp;
569: %}
570: ::=
571: %{
572: DLOG(log_dsap, LLOG_TRACE, ("About to encode FilterItem (DAS)"));
573: %}
574: CHOICE
575: <<(parm->fi_type + 1)>>
576: {
577: equality
578: [0] AttributeValueAssertion [[p &(parm->fi_un.fi_un_ava)]]
579: %{
580: %} ,
581: substrings
582: %{
583: subs_temp = &(parm->UNSUB);
584: subs_type = 1;
585: if((avs_temp = subs_temp->fi_sub_initial) == NULLAV)
586: {
587: ++subs_type;
588: if((avs_temp = subs_temp->fi_sub_any) == NULLAV)
589: {
590: ++subs_type;
591: avs_temp = subs_temp->fi_sub_final;
592: }
593: }
594: %}
595: [1] SEQUENCE
596: {
597: type
598: AttributeType [[p subs_temp->fi_sub_type]]
599: %{
600: %} ,
601: strings
602: SEQUENCE OF
603: %{
604: %}
605: <<; avs_temp != NULLAV;>>
606: CHOICE
607: <<subs_type>>
608: {
609: initial
610: [0] AttributeValue [[p &avs_temp->avseq_av]]
611: %{
612: if((avs_temp = avs_temp->avseq_next) == NULLAV)
613: {
614: ++subs_type;
615: if((avs_temp = subs_temp->fi_sub_any) == NULLAV)
616: {
617: ++subs_type;
618: avs_temp = subs_temp->fi_sub_final;
619: }
620: }
621: %} ,
622: any
623: [1] AttributeValue [[p &avs_temp->avseq_av]]
624: %{
625: if((avs_temp = avs_temp->avseq_next) == NULLAV)
626: {
627: ++subs_type;
628: avs_temp = subs_temp->fi_sub_final;
629: }
630: %} ,
631: final
632: [2] AttributeValue [[p &avs_temp->avseq_av]]
633: %{
634: avs_temp = avs_temp->avseq_next;
635: %}
636: }
637: %{
638: %}
639: %{
640: %}
641: }
642: %{
643: %} ,
644: greaterOrEqual
645: [2] AttributeValueAssertion [[p &(parm->fi_un.fi_un_ava)]]
646: %{
647: %} ,
648: lessOrEqual
649: [3] AttributeValueAssertion [[p &(parm->fi_un.fi_un_ava)]]
650: %{
651: %} ,
652: present
653: [4] AttributeType [[p parm->fi_un.fi_un_type]]
654: %{
655: %} ,
656: approximateMatch
657: [5] AttributeValueAssertion [[p &(parm->fi_un.fi_un_ava)]]
658: %{
659: %}
660: }
661: %{
662: DLOG(log_dsap, LLOG_TRACE, ("Done encode FilterItem (DAS)"));
663: %}
664:
665: Filter [[P struct filter *]]
666: %{
667: Filter flt_temp;
668: %}
669: ::=
670: %{
671: DLOG(log_dsap, LLOG_TRACE, ("About to encode Filter PE"));
672: %}
673: CHOICE
674: <<(parm->flt_type + 1)>>
675: {
676: item
677: [0] FilterItem [[p &(parm->flt_un.flt_un_item)]]
678: %{
679: %} ,
680: and
681: [1] SET OF
682: %{
683: %}
684: <<flt_temp=parm->flt_un.flt_un_filter;flt_temp!=NULL;flt_temp=flt_temp->flt_next>>
685: Filter [[p flt_temp]]
686: %{
687: %}
688: %{
689: %} ,
690: or
691: [2] SET OF
692: %{
693: %}
694: <<flt_temp=parm->flt_un.flt_un_filter;flt_temp!=NULL;flt_temp=flt_temp->flt_next>>
695: Filter [[p flt_temp]]
696: %{
697: %}
698: %{
699: %} ,
700: not
701: [3] Filter [[p parm->flt_un.flt_un_filter]]
702: %{
703: %}
704: }
705: %{
706: DLOG(log_dsap, LLOG_TRACE, ("Done encode Filter PE"));
707: %}
708:
709: EntryModification [[P struct entrymod *]]
710: %{
711: %}
712: ::=
713: %{
714: DLOG(log_dsap, LLOG_TRACE, ("About to encode EntryModification PE"));
715: %}
716: CHOICE
717: <<(parm->em_type + 1)>>
718: {
719: addAttribute
720: [0] Attribute [[p parm->em_what]]
721: %{
722: %} ,
723: removeAttribute
724: [1] AttributeType [[p parm->em_what->attr_type]]
725: %{
726: %} ,
727: addValues
728: [2] Attribute [[p parm->em_what]]
729: %{
730: %} ,
731: removeValues
732: [3] Attribute [[p parm->em_what]]
733: %{
734: %}
735: }
736: %{
737: DLOG(log_dsap, LLOG_TRACE, ("Done encode EntryModification PE"));
738: %}
739:
740: AbandonProblem [[P int]]
741: %{
742: %}
743: ::=
744: %{
745: DLOG(log_dsap, LLOG_TRACE, ("About to encode AbandonProblem PE"));
746: %}
747: INTEGER [[i parm]]
748: {
749: noSuchOperation(1) ,
750: tooLate(2) ,
751: cannotAbandon(3)
752: }
753: %{
754: DLOG(log_dsap, LLOG_TRACE, ("Done encode AbandonProblem PE"));
755: %}
756:
757: AttributeProblem [[P int]]
758: %{
759: %}
760: ::=
761: %{
762: DLOG(log_dsap, LLOG_TRACE, ("About to encode AttributeProblem PE"));
763: %}
764: INTEGER [[i parm]]
765: {
766: noSuchAttributeOrValue(1) ,
767: invalidAttributeSyntax(2) ,
768: undefinedAttributeType(3) ,
769: inappropriateMatching(4) ,
770: constraintViolation(5) ,
771: attributeOrValueAlreadyExists(6)
772: }
773: %{
774: DLOG(log_dsap, LLOG_TRACE, ("Done encode AttributeProblem PE"));
775: %}
776:
777: NameProblem [[P int]]
778: %{
779: %}
780: ::=
781: %{
782: DLOG(log_dsap, LLOG_TRACE, ("About to encode NameProblem PE"));
783: %}
784: INTEGER [[i parm]]
785: {
786: noSuchObject(1) ,
787: aliasProblem(2) ,
788: invalidAttributeSyntax(3) ,
789: aliasDereferencingProblem(4)
790: }
791: %{
792: DLOG(log_dsap, LLOG_TRACE, ("Done encode NameProblem PE"));
793: %}
794:
795: UpdateProblem [[P int]]
796: %{
797: %}
798: ::=
799: %{
800: DLOG(log_dsap, LLOG_TRACE, ("About to encode UpdateProblem PE"));
801: %}
802: INTEGER [[i parm]]
803: {
804: namingViolation(1) ,
805: objectClassViolation(2) ,
806: notAllowedOnNonLeaf(3) ,
807: notAllowedOnRDN(4) ,
808: entryAlreadyExists(5) ,
809: affectsMultipleDSAs(6) ,
810: objectClassModificationProhibited(7)
811: }
812: %{
813: DLOG(log_dsap, LLOG_TRACE, ("Done encode UpdateProblem PE"));
814: %}
815:
816: DirectoryBindArgument [[P struct ds_bind_arg *]]
817: %{
818: /* Not used !!!
819: USC usc_s;
820: USC * usc = &(usc_s);
821: */
822: %}
823: ::=
824: %{
825: DLOG(log_dsap, LLOG_TRACE, ("About to encode DirectoryBindArgument"));
826: /* Not used !!!
827: * usc->usc_dn = parm->dba_dn;
828: * usc->usc_time1 = parm->dba_time1;
829: * usc->usc_time2 = parm->dba_time2;
830: * if((usc->usc_passwd_len = parm->dba_passwd_len) != 0)
831: * {
832: * usc->usc_passwd = strdup(parm->dba_passwd);
833: * }
834: * else
835: * {
836: * usc->usc_passwd = NULL;
837: * }
838: */
839: %}
840: SET
841: {
842: credentials
843: [0] Credentials [[p parm]]
844: %{
845: %}
846: OPTIONAL <<(parm->dba_auth_type != DBA_AUTH_NONE) || (parm->dba_dn != NULLDN)>> ,
847: versions
848: [1] Versions [[p parm->dba_version]]
849: %{
850: %}
851: -- DEFAULT v1988 <<parm->dba_version != DBA_VERSION_V1988>>
852: OPTIONAL <<parm->dba_version != DBA_VERSION_V1988>>
853: }
854: %{
855: DLOG(log_dsap, LLOG_TRACE, ("Done encode DirectoryBindArgument"));
856: %}
857:
858: DirectoryBindResult [[P struct ds_bind_arg *]]
859: %{
860: %}
861: ::=
862: %{
863: DLOG(log_dsap, LLOG_TRACE, ("About to encode DirectoryBindResult"));
864: %}
865: DirectoryBindArgument [[p parm]]
866: %{
867: DLOG(log_dsap, LLOG_TRACE, ("Done encode DirectoryBindResult"));
868: %}
869:
870: ReadArgumentData [[P struct ds_read_arg *]]
871: %{
872: struct common_args * ca;
873: struct extension * extp;
874: %}
875: ::=
876: %{
877: DLOG(log_dsap, LLOG_TRACE, ("About to encode ReadArgumentData PE"));
878: ca = &(parm->rda_common);
879: %}
880: SET
881: {
882: object
883: [0] Name [[p parm->rda_object]]
884: %{
885: %} ,
886: selection
887: [1] EntryInformationSelection [[p &(parm->rda_eis)]]
888: %{
889: %}
890: -- DEFAULT {} ,
891: OPTIONAL <<TRUE>> ,
892: [30] ServiceControls [[p &(ca->ca_servicecontrol)]]
893: %{
894: %}
895: -- DEFAULT {} ,
896: OPTIONAL <<TRUE>> ,
897: [29] SecurityParameters [[p ca->ca_security]]
898: -- DEFAULT {} ,
899: OPTIONAL <<ca->ca_security>> ,
900: requestor
901: [28] DistinguishedName [[p ca->ca_requestor]]
902: %{
903: %}
904: OPTIONAL <<ca->ca_requestor != NULLDN>> ,
905: [27] OperationProgress [[p &(ca->ca_progress)]]
906: %{
907: %}
908: OPTIONAL <<TRUE>> ,
909: aliasedRDNs
910: [26] INTEGER [[i ca->ca_aliased_rdns]]
911: OPTIONAL <<ca->ca_aliased_rdns != CA_NO_ALIASDEREFERENCED>> ,
912: extensions
913: [25] SET OF
914: <<extp=ca->ca_extensions; extp!=NULLEXT; extp=extp->ext_next>>
915: Extension [[p extp]]
916: OPTIONAL <<ca->ca_extensions != NULLEXT>>
917: }
918: %{
919: DLOG(log_dsap, LLOG_TRACE, ("Done encode ReadArgumentData PE"));
920: %}
921:
922: ReadArgument [[P struct ds_read_arg *]]
923: ::=
924: %{
925: DLOG(log_dsap, LLOG_TRACE, ("At encode ReadArgument"));
926: %}
927: CHOICE
928: <<(parm->rda_common.ca_sig == (struct signature *) 0)? 1:2>>
929: {
930: ReadArgumentData [[p parm]] ,
931: SEQUENCE
932: {
933: ReadArgumentData [[p parm]] ,
934: AlgorithmIdentifier
935: [[p &(parm->rda_common.ca_sig->alg)]],
936: BIT STRING
937: [[x (parm->rda_common.ca_sig->encrypted) $
938: (parm->rda_common.ca_sig->n_bits) ]]
939: }
940: }
941: %{
942: DLOG(log_dsap, LLOG_TRACE, ("Done encode ReadArgument"));
943: %}
944:
945: ReadResultData [[P struct ds_read_result *]]
946: %{
947: %}
948: ::=
949: %{
950: DLOG(log_dsap, LLOG_TRACE, ("About to encode ReadResultData PE"));
951: %}
952: SET
953: {
954: entry
955: [0] EntryInformation [[p &(parm->rdr_entry)]]
956: %{
957: %} ,
958: [30] SecurityParameters [[p (struct security_parms *)0 ]]
959: -- OPTIONAL <<FALSE>> ,
960: OPTIONAL ,
961: performer
962: [29] DistinguishedName [[p parm->rdr_common.cr_requestor]]
963: %{
964: %}
965: OPTIONAL <<parm->rdr_common.cr_requestor != NULLDN>> ,
966: aliasDereferenced
967: [28] BOOLEAN [[b parm->rdr_common.cr_aliasdereferenced]]
968: %{
969: %}
970: -- DEFAULT FALSE <<parm->rdr_common.cr_aliasdereferenced != FALSE>>
971: OPTIONAL <<parm->rdr_common.cr_aliasdereferenced != FALSE>>
972: }
973: %{
974: DLOG(log_dsap, LLOG_TRACE, ("Done encode ReadResultData PE"));
975: %}
976:
977: ReadResult [[P struct ds_read_result *]]
978: ::=
979: %{
980: DLOG(log_dsap, LLOG_TRACE, ("At encode ReadResult"));
981: %}
982: CHOICE
983: <<1>>
984: {
985: ReadResultData [[p parm]] ,
986: SEQUENCE
987: {
988: ReadResultData [[p parm]] ,
989: AlgorithmIdentifier [[p (struct alg_id *)0 ]],
990: BIT STRING
991: }
992: }
993: %{
994: DLOG(log_dsap, LLOG_TRACE, ("Done encode ReadResult"));
995: %}
996:
997: CompareArgumentData [[P struct ds_compare_arg *]]
998: %{
999: struct common_args * ca;
1000: struct extension * extp;
1001: %}
1002: ::=
1003: %{
1004: DLOG(log_dsap, LLOG_TRACE, ("About to encode CompareArgumentData PE"));
1005: ca = &(parm->cma_common);
1006: %}
1007: SET
1008: {
1009: object
1010: [0] Name [[p parm->cma_object]]
1011: %{
1012: %} ,
1013: purported
1014: [1] AttributeValueAssertion [[p &(parm->cma_purported)]]
1015: %{
1016: %} ,
1017: [30] ServiceControls [[p &(ca->ca_servicecontrol)]]
1018: %{
1019: %}
1020: -- DEFAULT {} ,
1021: OPTIONAL <<TRUE>> ,
1022: [29] SecurityParameters [[p ca->ca_security]]
1023: -- DEFAULT {} ,
1024: OPTIONAL <<ca->ca_security>> ,
1025: requestor
1026: [28] DistinguishedName [[p ca->ca_requestor]]
1027: %{
1028: %}
1029: OPTIONAL <<ca->ca_requestor != NULLDN>> ,
1030: [27] OperationProgress [[p &(ca->ca_progress)]]
1031: %{
1032: %}
1033: OPTIONAL <<TRUE>> ,
1034: aliasedRDNs
1035: [26] INTEGER [[i ca->ca_aliased_rdns]]
1036: OPTIONAL <<ca->ca_aliased_rdns != CA_NO_ALIASDEREFERENCED>> ,
1037: extensions
1038: [25] SET OF
1039: <<extp=ca->ca_extensions; extp!=NULLEXT; extp=extp->ext_next>>
1040: Extension [[p extp]]
1041: OPTIONAL <<ca->ca_extensions != NULLEXT>>
1042: }
1043: %{
1044: DLOG(log_dsap, LLOG_TRACE, ("Done encode CompareArgumentData PE"));
1045: %}
1046:
1047: CompareArgument [[P struct ds_compare_arg *]]
1048: ::=
1049: %{
1050: DLOG(log_dsap, LLOG_TRACE, ("At encode CompareArgument"));
1051: %}
1052: CHOICE
1053: <<(parm->cma_common.ca_sig == (struct signature *) 0)? 1:2>>
1054: {
1055: CompareArgumentData [[p parm]] ,
1056: SEQUENCE
1057: {
1058: CompareArgumentData [[p parm]] ,
1059: AlgorithmIdentifier
1060: [[p &(parm->cma_common.ca_sig->alg)]],
1061: BIT STRING
1062: [[x (parm->cma_common.ca_sig->encrypted) $
1063: (parm->cma_common.ca_sig->n_bits) ]]
1064: }
1065: }
1066: %{
1067: DLOG(log_dsap, LLOG_TRACE, ("Done encode CompareArgument"));
1068: %}
1069:
1070: CompareResultData [[P struct ds_compare_result *]]
1071: %{
1072: %}
1073: ::=
1074: %{
1075: DLOG(log_dsap, LLOG_TRACE, ("About to encode CompareResultData PE"));
1076: %}
1077: SET
1078: {
1079: DistinguishedName [[p parm->cmr_object]]
1080: %{
1081: %}
1082: OPTIONAL <<parm->cmr_object != NULLDN>> ,
1083: matched
1084: [0] BOOLEAN [[b parm->cmr_matched]]
1085: %{
1086: %} ,
1087: fromEntry
1088: [1] BOOLEAN [[b (parm->cmr_iscopy == E_DATA_MASTER)]]
1089: %{
1090: %}
1091: -- DEFAULT TRUE <<parm->cmr_iscopy != TRUE>> ,
1092: OPTIONAL <<parm->cmr_iscopy != E_DATA_MASTER>> ,
1093: [30] SecurityParameters [[p (struct security_parms *)0 ]]
1094: -- OPTIONAL <<FALSE>> ,
1095: OPTIONAL ,
1096: performer
1097: [29] DistinguishedName [[p parm->cmr_common.cr_requestor]]
1098: %{
1099: %}
1100: OPTIONAL <<parm->cmr_common.cr_requestor != NULLDN>> ,
1101: aliasDereferenced
1102: [28] BOOLEAN [[b parm->cmr_common.cr_aliasdereferenced]]
1103: %{
1104: %}
1105: -- DEFAULT FALSE <<parm->cmr_common.cr_aliasdereferenced != FALSE>>
1106: OPTIONAL <<parm->cmr_common.cr_aliasdereferenced != FALSE>>
1107: }
1108: %{
1109: DLOG(log_dsap, LLOG_TRACE, ("Done encode CompareResultData PE"));
1110: %}
1111:
1112: CompareResult [[P struct ds_compare_result *]]
1113: ::=
1114: %{
1115: DLOG(log_dsap, LLOG_TRACE, ("At encode CompareResult"));
1116: %}
1117: CHOICE
1118: <<1>>
1119: {
1120: CompareResultData [[p parm]] ,
1121: SEQUENCE
1122: {
1123: CompareResultData [[p parm]] ,
1124: AlgorithmIdentifier [[p (struct alg_id *)0 ]],
1125: BIT STRING
1126: }
1127: }
1128: %{
1129: DLOG(log_dsap, LLOG_TRACE, ("Done encode CompareResult"));
1130: %}
1131:
1132: AbandonArgument [[P struct ds_abandon_arg *]]
1133: %{
1134: %}
1135: ::=
1136: %{
1137: DLOG(log_dsap, LLOG_TRACE, ("About to encode AbandonArgument PE"));
1138: %}
1139: SEQUENCE
1140: {
1141: invokeID
1142: [0] InvokeID [[p parm->aba_invokeid]]
1143: %{
1144: %}
1145: }
1146: %{
1147: DLOG(log_dsap, LLOG_TRACE, ("Done encode AbandonArgument PE"));
1148: %}
1149:
1150: AbandonResult ::= NULL
1151:
1152: ListArgumentData [[P struct ds_list_arg *]]
1153: %{
1154: struct common_args * ca;
1155: struct extension * extp;
1156: %}
1157: ::=
1158: %{
1159: DLOG(log_dsap, LLOG_TRACE, ("About to encode ListArgumentData PE"));
1160: ca = &(parm->lsa_common);
1161: %}
1162: SET
1163: {
1164: object
1165: [0] Name [[p parm->lsa_object]]
1166: %{
1167: %} ,
1168: [30] ServiceControls [[p &(ca->ca_servicecontrol)]]
1169: %{
1170: %}
1171: -- DEFAULT {} ,
1172: OPTIONAL <<TRUE>> ,
1173: [29] SecurityParameters [[p ca->ca_security]]
1174: -- DEFAULT {} ,
1175: OPTIONAL <<ca->ca_security>> ,
1176: requestor
1177: [28] DistinguishedName [[p ca->ca_requestor]]
1178: %{
1179: %}
1180: OPTIONAL <<ca->ca_requestor != NULLDN>> ,
1181: [27] OperationProgress [[p &(ca->ca_progress)]]
1182: %{
1183: %}
1184: OPTIONAL <<TRUE>> ,
1185: aliasedRDNs
1186: [26] INTEGER [[i ca->ca_aliased_rdns]]
1187: OPTIONAL <<ca->ca_aliased_rdns != CA_NO_ALIASDEREFERENCED>> ,
1188: extensions
1189: [25] SET OF
1190: <<extp=ca->ca_extensions; extp!=NULLEXT; extp=extp->ext_next>>
1191: Extension [[p extp]]
1192: OPTIONAL <<ca->ca_extensions != NULLEXT>>
1193: }
1194: %{
1195: DLOG(log_dsap, LLOG_TRACE, ("Done encode ListArgumentData PE"));
1196: %}
1197:
1198: ListArgument [[P struct ds_list_arg *]]
1199: ::=
1200: %{
1201: DLOG(log_dsap, LLOG_TRACE, ("At encode ListArgument"));
1202: %}
1203: CHOICE
1204: <<(parm->lsa_common.ca_sig == (struct signature *) 0)? 1:2>>
1205: {
1206: ListArgumentData [[p parm]] ,
1207: SEQUENCE
1208: {
1209: ListArgumentData [[p parm]] ,
1210: AlgorithmIdentifier
1211: [[p &(parm->lsa_common.ca_sig->alg) ]],
1212: BIT STRING
1213: [[x (parm->lsa_common.ca_sig->encrypted) $
1214: (parm->lsa_common.ca_sig->n_bits) ]]
1215: }
1216: }
1217: %{
1218: DLOG(log_dsap, LLOG_TRACE, ("Done encode ListArgument"));
1219: %}
1220:
1221: ListResultData [[P struct ds_list_result *]]
1222: %{
1223: struct subordinate *sub_temp;
1224: POQ poq_s;
1225: POQ * poq = &(poq_s);
1226: %}
1227: ::=
1228: %{
1229: DLOG(log_dsap, LLOG_TRACE, ("About to encode ListResultData PE"));
1230: poq->poq_limitproblem = parm->lsr_limitproblem;
1231: poq->poq_cref = parm->lsr_cr;
1232: %}
1233: CHOICE
1234: <<1>>
1235: {
1236: listInfo
1237: SET
1238: {
1239: DistinguishedName [[p parm->lsr_object]]
1240: %{
1241: %}
1242: OPTIONAL <<parm->lsr_object != NULLDN>> ,
1243: subordinates
1244: [1] SET OF
1245: %{
1246: %}
1247: <<sub_temp=parm->lsr_subordinates;sub_temp!=NULL;sub_temp=sub_temp->sub_next>>
1248: SEQUENCE
1249: {
1250: RelativeDistinguishedName [[p sub_temp->sub_rdn]]
1251: %{
1252: %} ,
1253: aliasEntry
1254: [0] BOOLEAN [[b sub_temp->sub_aliasentry]]
1255: %{
1256: %}
1257: -- DEFAULT FALSE <<sub_temp->sub_aliasentry != FALSE>> ,
1258: OPTIONAL <<sub_temp->sub_aliasentry != FALSE>> ,
1259: fromEntry
1260: [1] BOOLEAN [[b (sub_temp->sub_copy == E_DATA_MASTER)]]
1261: %{
1262: %}
1263: -- DEFAULT TRUE <<sub_temp->sub_copy != E_DATA_MASTER>>
1264: OPTIONAL <<sub_temp->sub_copy != E_DATA_MASTER>>
1265: }
1266: %{
1267: %}
1268: %{
1269: %} ,
1270: partialOutcomeQualifier
1271: [2] PartialOutcomeQualifier [[p poq]]
1272: %{
1273: %}
1274: OPTIONAL <<((poq->poq_limitproblem != LSR_NOLIMITPROBLEM) || (poq->poq_cref != NULLCONTINUATIONREF))>> ,
1275: [30] SecurityParameters [[p (struct security_parms *)0 ]]
1276: -- OPTIONAL <<FALSE>> ,
1277: OPTIONAL ,
1278: performer
1279: [29] DistinguishedName [[p parm->lsr_common.cr_requestor]]
1280: %{
1281: %}
1282: OPTIONAL <<parm->lsr_common.cr_requestor != NULLDN>> ,
1283: aliasDereferenced
1284: [28] BOOLEAN [[b parm->lsr_common.cr_aliasdereferenced]]
1285: %{
1286: %}
1287: -- DEFAULT FALSE <<parm->lsr_common.cr_aliasdereferenced != FALSE>>
1288: OPTIONAL <<parm->lsr_common.cr_aliasdereferenced != FALSE>>
1289: }
1290: %{
1291: %} ,
1292: uncorrelatedListInfo
1293: [0] SET OF
1294: ListResult [[p ((struct ds_list_result *) 0)]]
1295: }
1296: %{
1297: DLOG(log_dsap, LLOG_TRACE, ("Done encode ListResultData PE"));
1298: %}
1299:
1300: ListResult [[P struct ds_list_result *]]
1301: ::=
1302: %{
1303: DLOG(log_dsap, LLOG_TRACE, ("At encode ListResult"));
1304: %}
1305: CHOICE
1306: <<1>>
1307: {
1308: ListResultData [[p parm]] ,
1309: SEQUENCE
1310: {
1311: ListResultData [[p parm]] ,
1312: AlgorithmIdentifier [[p (struct alg_id *)0 ]],
1313: BIT STRING
1314: }
1315: }
1316: %{
1317: DLOG(log_dsap, LLOG_TRACE, ("Done encode ListResult"));
1318: %}
1319:
1320: SearchArgumentData [[P struct ds_search_arg *]]
1321: %{
1322: struct common_args * ca;
1323: struct extension * extp;
1324: %}
1325: ::=
1326: %{
1327: DLOG(log_dsap, LLOG_TRACE, ("About to encode SearchArgumentData PE"));
1328: ca = &(parm->sra_common);
1329: %}
1330: SET
1331: {
1332: baseObject
1333: [0] Name [[p parm->sra_baseobject]]
1334: %{
1335: %} ,
1336: subset
1337: [1] INTEGER [[i parm->sra_subset]]
1338: {
1339: baseObject(0) ,
1340: oneLevel(1) ,
1341: wholeSubtree(2)
1342: }
1343: %{
1344: %}
1345: -- DEFAULT baseObject <<parm->sra_subset != SRA_BASEOBJECT>> ,
1346: OPTIONAL <<parm->sra_subset != SRA_BASEOBJECT>> ,
1347: filter
1348: [2] Filter [[p parm->sra_filter]]
1349: %{
1350: %}
1351: -- DEFAULT and {} ,
1352: OPTIONAL <<TRUE>> ,
1353: searchAliases
1354: [3] BOOLEAN [[b parm->sra_searchaliases]]
1355: -- DEFAULT TRUE ,
1356: OPTIONAL <<parm->sra_searchaliases != TRUE>> ,
1357: selection
1358: [4] EntryInformationSelection [[p &(parm->sra_eis)]]
1359: %{
1360: %}
1361: -- DEFAULT {} ,
1362: OPTIONAL <<TRUE>> ,
1363: [30] ServiceControls [[p &(ca->ca_servicecontrol)]]
1364: %{
1365: %}
1366: -- DEFAULT {} ,
1367: OPTIONAL <<TRUE>> ,
1368: [29] SecurityParameters [[p ca->ca_security]]
1369: -- DEFAULT {} ,
1370: OPTIONAL <<ca->ca_security>> ,
1371: requestor
1372: [28] DistinguishedName [[p ca->ca_requestor]]
1373: %{
1374: %}
1375: OPTIONAL <<ca->ca_requestor != NULLDN>> ,
1376: [27] OperationProgress [[p &(ca->ca_progress)]]
1377: %{
1378: %}
1379: OPTIONAL <<TRUE>> ,
1380: aliasedRDNs
1381: [26] INTEGER [[i ca->ca_aliased_rdns]]
1382: OPTIONAL <<ca->ca_aliased_rdns != CA_NO_ALIASDEREFERENCED>> ,
1383: extensions
1384: [25] SET OF
1385: <<extp=ca->ca_extensions; extp!=NULLEXT; extp=extp->ext_next>>
1386: Extension [[p extp]]
1387: OPTIONAL <<ca->ca_extensions != NULLEXT>>
1388: }
1389: %{
1390: DLOG(log_dsap, LLOG_TRACE, ("Done encode SearchArgumentData PE"));
1391: %}
1392:
1393: SearchArgument [[P struct ds_search_arg *]]
1394: ::=
1395: %{
1396: DLOG(log_dsap, LLOG_TRACE, ("About to encode SearchArgument (DAS)"));
1397: %}
1398: CHOICE
1399: <<(parm->sra_common.ca_sig == (struct signature *) 0)? 1:2>>
1400: {
1401: SearchArgumentData [[p parm]] ,
1402: SEQUENCE
1403: {
1404: SearchArgumentData [[p parm]] ,
1405: AlgorithmIdentifier
1406: [[p &(parm->sra_common.ca_sig->alg) ]],
1407: BIT STRING
1408: [[x (parm->sra_common.ca_sig->encrypted) $
1409: (parm->sra_common.ca_sig->n_bits) ]]
1410: }
1411: }
1412: %{
1413: DLOG(log_dsap, LLOG_TRACE, ("Done encode SearchArgument (DAS)"));
1414: %}
1415:
1416: SearchResultData [[P struct ds_search_result *]]
1417: %{
1418: struct ds_search_result *srr_temp;
1419: EntryInfo *ent_temp;
1420: POQ poq_s;
1421: POQ * poq = &(poq_s);
1422: %}
1423: ::=
1424: %{
1425: DLOG(log_dsap, LLOG_TRACE, ("About to encode SearchResultData PE"));
1426: %}
1427: CHOICE
1428: <<((parm->srr_correlated == FALSE) ? 2 : 1)>>
1429: {
1430: searchInfo
1431: %{
1432: poq->poq_limitproblem = parm->CSR_limitproblem;
1433: poq->poq_cref = parm->CSR_cr;
1434: %}
1435: SET
1436: {
1437: DistinguishedName [[p parm->CSR_object]]
1438: %{
1439: %}
1440: OPTIONAL <<parm->CSR_object != NULLDN>> ,
1441: entries
1442: [0] SET OF
1443: %{
1444: %}
1445: <<ent_temp=parm->CSR_entries;ent_temp!=NULLENTRYINFO;ent_temp=ent_temp->ent_next>>
1446: EntryInformation [[p ent_temp]]
1447: %{
1448: %}
1449: %{
1450: %} ,
1451: partialOutcomeQualifier
1452: [2] PartialOutcomeQualifier [[p poq]]
1453: %{
1454: %}
1455: OPTIONAL <<((poq->poq_limitproblem != LSR_NOLIMITPROBLEM) || (poq->poq_cref != NULLCONTINUATIONREF))>> ,
1456: [30] SecurityParameters [[p (struct security_parms *)0 ]]
1457: -- OPTIONAL <<FALSE>> ,
1458: OPTIONAL ,
1459: performer
1460: [29] DistinguishedName [[p parm->CSR_common.cr_requestor]]
1461: %{
1462: %}
1463: OPTIONAL <<parm->CSR_common.cr_requestor != NULLDN>> ,
1464: aliasDereferenced
1465: [28] BOOLEAN [[b parm->CSR_common.cr_aliasdereferenced]]
1466: %{
1467: %}
1468: -- DEFAULT FALSE <<parm->CSR_common.cr_aliasdereferenced != FALSE>>
1469: OPTIONAL <<parm->CSR_common.cr_aliasdereferenced != FALSE>>
1470: }
1471: %{
1472: %} ,
1473: uncorrelatedSearchInfo
1474: [0] SET OF
1475: %{
1476: %}
1477: <<srr_temp=parm->srr_un.srr_parts;srr_temp!=NULLSRR;srr_temp=srr_temp->srr_next>>
1478: SearchResult [[p srr_temp]]
1479: %{
1480: %}
1481: %{
1482: %}
1483: }
1484: %{
1485: DLOG(log_dsap, LLOG_TRACE, ("Done encode SearchResultData PE"));
1486: %}
1487:
1488: SearchResult [[P struct ds_search_result *]]
1489: ::=
1490: %{
1491: DLOG(log_dsap, LLOG_TRACE, ("At encode SearchResult"));
1492: %}
1493: CHOICE
1494: <<1>>
1495: {
1496: SearchResultData [[p parm]] ,
1497: SEQUENCE
1498: {
1499: SearchResultData [[p parm]] ,
1500: AlgorithmIdentifier [[p (struct alg_id *)0 ]],
1501: BIT STRING
1502: }
1503: }
1504: %{
1505: DLOG(log_dsap, LLOG_TRACE, ("Done encode SearchResult"));
1506: %}
1507:
1508: AddEntryArgumentData [[P struct ds_addentry_arg *]]
1509: %{
1510: struct common_args * ca;
1511: struct extension * extp;
1512: Attr_Sequence attr_temp;
1513: %}
1514: ::=
1515: %{
1516: DLOG(log_dsap, LLOG_TRACE, ("About to encode AddEntryArgumentData PE"));
1517: ca = &(parm->ada_common);
1518: %}
1519: SET
1520: {
1521: object
1522: [0] DistinguishedName [[p parm->ada_object]]
1523: %{
1524: %} ,
1525: entry
1526: [1] SET OF
1527: %{
1528: %}
1529: <<attr_temp=parm->ada_entry;attr_temp!=NULLATTR;attr_temp=attr_temp->attr_link>>
1530: Attribute [[p attr_temp]]
1531: %{
1532: %}
1533: %{
1534: %} ,
1535: [30] ServiceControls [[p &(ca->ca_servicecontrol)]]
1536: %{
1537: %}
1538: -- DEFAULT {} ,
1539: OPTIONAL <<TRUE>> ,
1540: [29] SecurityParameters [[p ca->ca_security]]
1541: -- DEFAULT {} ,
1542: OPTIONAL <<ca->ca_security>> ,
1543: requestor
1544: [28] DistinguishedName [[p ca->ca_requestor]]
1545: %{
1546: %}
1547: OPTIONAL <<ca->ca_requestor != NULLDN>> ,
1548: [27] OperationProgress [[p &(ca->ca_progress)]]
1549: %{
1550: %}
1551: OPTIONAL <<TRUE>> ,
1552: aliasedRDNs
1553: [26] INTEGER [[i ca->ca_aliased_rdns]]
1554: OPTIONAL <<ca->ca_aliased_rdns != CA_NO_ALIASDEREFERENCED>> ,
1555: extensions
1556: [25] SET OF
1557: <<extp=ca->ca_extensions; extp!=NULLEXT; extp=extp->ext_next>>
1558: Extension [[p extp]]
1559: OPTIONAL <<ca->ca_extensions != NULLEXT>>
1560: }
1561: %{
1562: DLOG(log_dsap, LLOG_TRACE, ("Done encode AddEntryArgumentData PE"));
1563: %}
1564:
1565: AddEntryArgument [[P struct ds_addentry_arg *]]
1566: ::=
1567: %{
1568: DLOG(log_dsap, LLOG_TRACE, ("At encode AddEntryArgument"));
1569: %}
1570: CHOICE
1571: <<(parm->ada_common.ca_sig == (struct signature *) 0)? 1:2>>
1572: {
1573: AddEntryArgumentData [[p parm]] ,
1574: SEQUENCE
1575: {
1576: AddEntryArgumentData [[p parm]] ,
1577: AlgorithmIdentifier
1578: [[p &(parm->ada_common.ca_sig->alg) ]],
1579: BIT STRING
1580: [[x (parm->ada_common.ca_sig->encrypted) $
1581: (parm->ada_common.ca_sig->n_bits) ]]
1582: }
1583: }
1584: %{
1585: DLOG(log_dsap, LLOG_TRACE, ("Done encode AddEntryArgument"));
1586: %}
1587:
1588: AddEntryResult ::= NULL
1589:
1590: RemoveEntryArgumentData [[P struct ds_removeentry_arg *]]
1591: %{
1592: struct common_args * ca;
1593: struct extension * extp;
1594: %}
1595: ::=
1596: %{
1597: DLOG(log_dsap, LLOG_TRACE, ("About to encode RemoveEntryArgumentData PE"));
1598: ca = &(parm->rma_common);
1599: %}
1600: SET
1601: {
1602: object
1603: [0] DistinguishedName [[p parm->rma_object]]
1604: %{
1605: %} ,
1606: [30] ServiceControls [[p &(ca->ca_servicecontrol)]]
1607: %{
1608: %}
1609: -- DEFAULT {} ,
1610: OPTIONAL <<TRUE>> ,
1611: [29] SecurityParameters [[p ca->ca_security]]
1612: -- DEFAULT {} ,
1613: OPTIONAL <<ca->ca_security>> ,
1614: requestor
1615: [28] DistinguishedName [[p ca->ca_requestor]]
1616: %{
1617: %}
1618: OPTIONAL <<ca->ca_requestor != NULLDN>> ,
1619: [27] OperationProgress [[p &(ca->ca_progress)]]
1620: %{
1621: %}
1622: OPTIONAL <<TRUE>> ,
1623: aliasedRDNs
1624: [26] INTEGER [[i ca->ca_aliased_rdns]]
1625: OPTIONAL <<ca->ca_aliased_rdns != CA_NO_ALIASDEREFERENCED>> ,
1626: extensions
1627: [25] SET OF
1628: <<extp=ca->ca_extensions; extp!=NULLEXT; extp=extp->ext_next>>
1629: Extension [[p extp]]
1630: OPTIONAL <<ca->ca_extensions != NULLEXT>>
1631: }
1632: %{
1633: DLOG(log_dsap, LLOG_TRACE, ("Done encode RemoveEntryArgumentData PE"));
1634: %}
1635:
1636: RemoveEntryArgument [[P struct ds_removeentry_arg *]]
1637: ::=
1638: %{
1639: DLOG(log_dsap, LLOG_TRACE, ("At encode RemoveEntryArgument"));
1640: %}
1641: CHOICE
1642: <<(parm->rma_common.ca_sig == (struct signature *) 0)? 1:2>>
1643: {
1644: RemoveEntryArgumentData [[p parm]] ,
1645: SEQUENCE
1646: {
1647: RemoveEntryArgumentData [[p parm]] ,
1648: AlgorithmIdentifier
1649: [[p &(parm->rma_common.ca_sig->alg) ]],
1650: BIT STRING
1651: [[x (parm->rma_common.ca_sig->encrypted) $
1652: (parm->rma_common.ca_sig->n_bits) ]]
1653: }
1654: }
1655: %{
1656: DLOG(log_dsap, LLOG_TRACE, ("Done encode RemoveEntryArgument"));
1657: %}
1658:
1659: RemoveEntryResult ::= NULL
1660:
1661: ModifyEntryArgumentData [[P struct ds_modifyentry_arg *]]
1662: %{
1663: struct common_args * ca;
1664: struct extension * extp;
1665: struct entrymod *em_temp;
1666: %}
1667: ::=
1668: %{
1669: DLOG(log_dsap, LLOG_TRACE, ("About to encode ModifyEntryArgumentData PE"));
1670: ca = &(parm->mea_common);
1671: %}
1672: SET
1673: {
1674: object
1675: [0] DistinguishedName [[p parm->mea_object]]
1676: %{
1677: %} ,
1678: changes
1679: [1] SEQUENCE OF
1680: %{
1681: %}
1682: <<em_temp=parm->mea_changes;em_temp!=NULL;em_temp=em_temp->em_next>>
1683: EntryModification [[p em_temp]]
1684: %{
1685: %}
1686: %{
1687: %} ,
1688: [30] ServiceControls [[p &(ca->ca_servicecontrol)]]
1689: %{
1690: %}
1691: -- DEFAULT {} ,
1692: OPTIONAL <<TRUE>> ,
1693: [29] SecurityParameters [[p ca->ca_security]]
1694: -- DEFAULT {} ,
1695: OPTIONAL <<ca->ca_security>> ,
1696: requestor
1697: [28] DistinguishedName [[p ca->ca_requestor]]
1698: %{
1699: %}
1700: OPTIONAL <<ca->ca_requestor != NULLDN>> ,
1701: [27] OperationProgress [[p &(ca->ca_progress)]]
1702: %{
1703: %}
1704: OPTIONAL <<TRUE>> ,
1705: aliasedRDNs
1706: [26] INTEGER [[i ca->ca_aliased_rdns]]
1707: OPTIONAL <<ca->ca_aliased_rdns != CA_NO_ALIASDEREFERENCED>> ,
1708: extensions
1709: [25] SET OF
1710: <<extp=ca->ca_extensions; extp!=NULLEXT; extp=extp->ext_next>>
1711: Extension [[p extp]]
1712: OPTIONAL <<ca->ca_extensions != NULLEXT>>
1713: }
1714: %{
1715: DLOG(log_dsap, LLOG_TRACE, ("Done encode ModifyEntryArgumentData PE"));
1716: %}
1717:
1718: ModifyEntryArgument [[P struct ds_modifyentry_arg *]]
1719: ::=
1720: %{
1721: DLOG(log_dsap, LLOG_TRACE, ("At encode ModifyEntryArgument"));
1722: %}
1723: CHOICE
1724: <<(parm->mea_common.ca_sig == (struct signature *) 0) ? 1 : 2>>
1725: {
1726: ModifyEntryArgumentData [[p parm]] ,
1727: SEQUENCE
1728: {
1729: ModifyEntryArgumentData [[p parm]] ,
1730: AlgorithmIdentifier [[p &(parm->mea_common.ca_sig->alg)]],
1731: BIT STRING [[x (parm->mea_common.ca_sig->encrypted) $ (parm->mea_common.ca_sig->n_bits) ]]
1732: }
1733: }
1734: %{
1735: DLOG(log_dsap, LLOG_TRACE, ("Done encode ModifyEntryArgument"));
1736: %}
1737:
1738: ModifyEntryResult ::= NULL
1739:
1740: ModifyRDNArgumentData [[P struct ds_modifyrdn_arg *]]
1741: %{
1742: struct common_args * ca;
1743: struct extension * extp;
1744: %}
1745: ::=
1746: %{
1747: DLOG(log_dsap, LLOG_TRACE, ("About to encode ModifyRDNArgumentData PE"));
1748: ca = &(parm->mra_common);
1749: %}
1750: SET
1751: {
1752: object
1753: [0] DistinguishedName [[p parm->mra_object]]
1754: %{
1755: %} ,
1756: newRDN
1757: [1] RelativeDistinguishedName [[p parm->mra_newrdn]]
1758: %{
1759: %} ,
1760: deleteRDN
1761: [2] BOOLEAN [[b parm->deleterdn]]
1762: %{
1763: %}
1764: -- DEFAULT FALSE <<parm->deleterdn != FALSE>> ,
1765: OPTIONAL <<parm->deleterdn != FALSE>> ,
1766: [30] ServiceControls [[p &(ca->ca_servicecontrol)]]
1767: %{
1768: %}
1769: -- DEFAULT {} ,
1770: OPTIONAL <<TRUE>> ,
1771: [29] SecurityParameters [[p ca->ca_security]]
1772: -- DEFAULT {} ,
1773: OPTIONAL <<ca->ca_security>> ,
1774: requestor
1775: [28] DistinguishedName [[p ca->ca_requestor]]
1776: %{
1777: %}
1778: OPTIONAL <<ca->ca_requestor != NULLDN>> ,
1779: [27] OperationProgress [[p &(ca->ca_progress)]]
1780: %{
1781: %}
1782: OPTIONAL <<TRUE>> ,
1783: aliasedRDNs
1784: [26] INTEGER [[i ca->ca_aliased_rdns]]
1785: OPTIONAL <<ca->ca_aliased_rdns != CA_NO_ALIASDEREFERENCED>> ,
1786: extensions
1787: [25] SET OF
1788: <<extp=ca->ca_extensions; extp!=NULLEXT; extp=extp->ext_next>>
1789: Extension [[p extp]]
1790: OPTIONAL <<ca->ca_extensions != NULLEXT>>
1791: }
1792: %{
1793: DLOG(log_dsap, LLOG_TRACE, ("Done encode ModifyRDNArgumentData PE"));
1794: %}
1795:
1796: ModifyRDNArgument [[P struct ds_modifyrdn_arg *]]
1797: ::=
1798: %{
1799: DLOG(log_dsap, LLOG_TRACE, ("At encode ModifyRDNArgument"));
1800: %}
1801: CHOICE
1802: <<(parm->mra_common.ca_sig == (struct signature *) 0)? 1:2>>
1803: {
1804: ModifyRDNArgumentData [[p parm]] ,
1805: SEQUENCE
1806: {
1807: ModifyRDNArgumentData [[p parm]] ,
1808: AlgorithmIdentifier
1809: [[p &(parm->mra_common.ca_sig->alg)]],
1810: BIT STRING [[x (parm->mra_common.ca_sig->encrypted) $
1811: (parm->mra_common.ca_sig->n_bits) ]]
1812: }
1813: }
1814: %{
1815: DLOG(log_dsap, LLOG_TRACE, ("Done encode ModifyRDNArgument"));
1816: %}
1817:
1818: ModifyRDNResult ::= NULL
1819:
1820: DirectoryBindError [[P struct ds_bind_error *]]
1821: %{
1822: %}
1823: ::=
1824: %{
1825: DLOG(log_dsap, LLOG_TRACE, ("About to encode DirectoryBindError"));
1826: %}
1827: SET
1828: {
1829: versions
1830: [0] Versions [[p parm->dbe_version]]
1831: %{
1832: %}
1833: -- DEFAULT v1988 <<parm->dbe_version != DBA_VERSION_V1988>> ,
1834: OPTIONAL <<parm->dbe_version != DBA_VERSION_V1988>> ,
1835: CHOICE
1836: <<(parm->dbe_type + 1)>>
1837: {
1838: serviceError
1839: [1] ServiceProblem [[p parm->dbe_value]]
1840: %{
1841: %} ,
1842: securityError
1843: [2] SecurityProblem [[p parm->dbe_value]]
1844: %{
1845: %}
1846: }
1847: %{
1848: %}
1849: }
1850: %{
1851: DLOG(log_dsap, LLOG_TRACE, ("Done encode DirectoryBindError"));
1852: %}
1853:
1854: AbandonFailedParm [[P struct DSE_abandon_fail *]]
1855: %{
1856: %}
1857: ::=
1858: %{
1859: DLOG(log_dsap, LLOG_TRACE, ("About to encode AbandonFailedParm PE"));
1860: %}
1861: SET
1862: %{
1863: %}
1864: {
1865: problem
1866: [0] AbandonProblem [[p parm->DSE_ab_problem]]
1867: %{
1868: %} ,
1869: operation
1870: [1] InvokeID [[p parm->DSE_ab_invokeid]]
1871: %{
1872: %}
1873: }
1874: %{
1875: DLOG(log_dsap, LLOG_TRACE, ("Done encode AbandonFailedParm PE"));
1876: %}
1877:
1878: AttributeErrorParm [[P struct DSE_attribute *]]
1879: %{
1880: struct DSE_at_problem *atp;
1881: %}
1882: ::=
1883: %{
1884: DLOG(log_dsap, LLOG_TRACE, ("About to encode AttributeErrorParm PE"));
1885: %}
1886: SET
1887: %{
1888: %}
1889: {
1890: object
1891: [0] Name [[p parm->DSE_at_name]]
1892: %{
1893: %} ,
1894: problems
1895: [1] SET OF
1896: %{
1897: %}
1898: <<atp = &(parm->DSE_at_plist);(atp!=DSE_AT_NOPROBLEM) && atp->DSE_at_what;atp=atp->dse_at_next>>
1899: SEQUENCE
1900: %{
1901: %}
1902: {
1903: problem
1904: [0] AttributeProblem [[p atp->DSE_at_what]]
1905: %{
1906: %} ,
1907: type
1908: [1] AttributeType [[p atp->DSE_at_type]]
1909: %{
1910: %} ,
1911: value
1912: [2] AttributeValue [[p atp->DSE_at_value]]
1913: %{
1914: %}
1915: OPTIONAL <<atp->DSE_at_value != NULLAttrV>>
1916: }
1917: %{
1918: %}
1919: %{
1920: %}
1921: }
1922: %{
1923: DLOG(log_dsap, LLOG_TRACE, ("Done encode AttributeErrorParm PE"));
1924: %}
1925:
1926: NameErrorParm [[P struct DSE_name *]]
1927: %{
1928: %}
1929: ::=
1930: %{
1931: DLOG(log_dsap, LLOG_TRACE, ("About to encode NameErrorParm PE"));
1932: %}
1933: SET
1934: %{
1935: %}
1936: {
1937: problem
1938: [0] NameProblem [[p parm->DSE_na_problem]]
1939: %{
1940: %} ,
1941: matched
1942: [1] Name [[p parm->DSE_na_matched]]
1943: %{
1944: %}
1945: }
1946: %{
1947: DLOG(log_dsap, LLOG_TRACE, ("Done encode NameErrorParm PE"));
1948: %}
1949:
1950: ReferralParm [[P struct DSE_referral *]]
1951: %{
1952: %}
1953: ::=
1954: %{
1955: DLOG(log_dsap, LLOG_TRACE, ("About to encode ReferralParm PE"));
1956: %}
1957: SET
1958: %{
1959: %}
1960: {
1961: candidate
1962: [0] ContinuationReference [[p parm->DSE_ref_candidates]]
1963: %{
1964: %}
1965: }
1966: %{
1967: DLOG(log_dsap, LLOG_TRACE, ("Done encode ReferralParm PE"));
1968: %}
1969:
1970: SecurityErrorParm [[P struct DSE_security *]]
1971: %{
1972: %}
1973: ::=
1974: %{
1975: DLOG(log_dsap, LLOG_TRACE, ("About to encode SecurityErrorParm PE"));
1976: %}
1977: SET
1978: %{
1979: %}
1980: {
1981: problem
1982: [0] SecurityProblem [[p parm->DSE_sc_problem]]
1983: %{
1984: %}
1985: }
1986: %{
1987: DLOG(log_dsap, LLOG_TRACE, ("Done encode SecurityErrorParm PE"));
1988: %}
1989:
1990: ServiceErrorParm [[P struct DSE_service *]]
1991: %{
1992: %}
1993: ::=
1994: %{
1995: DLOG(log_dsap, LLOG_TRACE, ("About to encode ServiceErrorParm PE"));
1996: %}
1997: SET
1998: %{
1999: %}
2000: {
2001: problem
2002: [0] ServiceProblem [[p parm->DSE_sv_problem]]
2003: %{
2004: %}
2005: }
2006: %{
2007: DLOG(log_dsap, LLOG_TRACE, ("Done encode ServiceErrorParm PE"));
2008: %}
2009:
2010: UpdateErrorParm [[P struct DSE_update *]]
2011: %{
2012: %}
2013: ::=
2014: %{
2015: DLOG(log_dsap, LLOG_TRACE, ("About to encode UpdateErrorParm PE"));
2016: %}
2017: SET
2018: %{
2019: %}
2020: {
2021: problem
2022: [0] UpdateProblem [[p parm->DSE_up_problem]]
2023: %{
2024: %}
2025: }
2026: %{
2027: DLOG(log_dsap, LLOG_TRACE, ("Done encode UpdateErrorParm PE"));
2028: %}
2029:
2030: END
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.