Annotation of 43BSDReno/contrib/isode-beta/dsap/x500as/das-enc.py, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.