-- ASN module extracted from ITU-T X.1080.0 (03/2017)

Pbact-access { joint-iso-itu-t(2) telebiometrics(42) e-health-protocol(3) modules(0) pbact-access(6) version1(1) } DEFINITIONS IMPLICIT TAGS ::= BEGIN -- EXPORTS All IMPORTS -- from Rec. ITU-T X.501 | ISO/IEC 9594-2 ATTRIBUTE, Attribute{}, AttributeType, AttributeTypeAndValue, AttributeValueAssertion, DistinguishedName, OBJECT-CLASS, SupportedAttributes FROM InformationFramework {joint-iso-itu-t ds(5) module(1) informationFramework(1) 8} -- from Rec. ITU-T X.509 | ISO/IEC 9594-8 AttributeCertificate FROM AttributeCertificateDefinitions {joint-iso-itu-t ds(5) module(1) attributeCertificateDefinitions(32) 8} CmsErrorCode, CONTENT-TYPE FROM CmsTelebiometric { joint-iso-itu-t(2) telebiometrics(42) th(3) part0(0) modules(0) cmsProfile(1) version1(1) } ; accessService ATTRIBUTE ::= { WITH SYNTAX AccessService ID id-at-accessService } AccessService ::= SEQUENCE { serviceId OBJECT IDENTIFIER, objectDef SEQUENCE SIZE (1..MAX) OF ObjectSel, ... } ObjectSel ::= SEQUENCE { objecClass OBJECT-CLASS.&id, objSelect CHOICE { allObj [0] TargetSelect, objectNames [1] SEQUENCE SIZE (1..MAX) OF SEQUENCE { object CHOICE { names [1] SEQUENCE SIZE (1..MAX) OF DistinguishedName, subtree [2] DistinguishedName, ... }, select TargetSelect, ... }, ... }, ... } TargetSelect ::= SEQUENCE { objOper ObjectOperations OPTIONAL, attrSel AttributeSel OPTIONAL, ... } (WITH COMPONENTS {..., objOper PRESENT } | WITH COMPONENTS {..., attrSel PRESENT } ) AttributeSel ::= SEQUENCE { attSelect CHOICE { allAttr [0] SEQUENCE { attrOper1 [0] AttributeOperations OPTIONAL, ... }, attributes [1] SEQUENCE SIZE (1..MAX) OF SEQUENCE { select SEQUENCE SIZE (1..MAX) OF ATTRIBUTE.&id, attrOper2 [0] AttributeOperations OPTIONAL, ... }, ... }, ... } ObjectOperations ::= BIT STRING { read (0), add (1), modify (2), delete (3), rename (4), discloseOnError (5) } AttributeOperations ::= BIT STRING { read (0), compare (1), add (2), modify (3), delete (4), deleteValue (5), replaceAttribute (6), discloseOnError (7) } PbactContentTypes CONTENT-TYPE ::= { privAssignRequest | privAssignResult | readRequest | readResult | compareRequest | compareResult | addRequest | addResult | deleteRequest | deleteResult | modifyRequest | modifyResult | renameRequest | renameResult, ... } CommonReqComp ::= SEQUENCE { attrCerts [31] AttributeCertificates OPTIONAL, serviceId [30] OBJECT IDENTIFIER, invokId [29] INTEGER, ... } AttributeCertificates ::= SEQUENCE SIZE (1..MAX) OF AttributeCertificate readRequest CONTENT-TYPE ::= { ReadRequest IDENTIFIED BY id-readRequest } ReadRequest ::= SEQUENCE { COMPONENTS OF CommonReqComp, object [1] DistinguishedName, selection [2] InformationSelection, ... } readResult CONTENT-TYPE ::= { ReadResult IDENTIFIED BY id-readResult } ReadResult ::= SEQUENCE { object DistinguishedName, result CHOICE { success [0] ObjectInformation, failure [1] AccessdErr, ... }, ... } compareRequest CONTENT-TYPE ::= { CompareRequest IDENTIFIED BY id-compareRequest } CompareRequest ::= SEQUENCE { COMPONENTS OF CommonReqComp, object [1] DistinguishedName, purported [2] AttributeValueAssertion, ... } compareResult CONTENT-TYPE ::= { CompareResult IDENTIFIED BY id-compareResult } CompareResult ::= SEQUENCE { object DistinguishedName, result CHOICE { success [0] CompareOK, failure [1] AccessdErr, ... }, ... } CompareOK ::= SEQUENCE { matched [0] BOOLEAN, matchedSubtype [1] BOOLEAN DEFAULT FALSE, ... } addRequest CONTENT-TYPE ::= { AddRequest IDENTIFIED BY id-addRequest } AddRequest ::= SEQUENCE { COMPONENTS OF CommonReqComp, object [1] DistinguishedName, attr [2] SEQUENCE SIZE (1..MAX) OF Attribute {{SupportedAttributes}} OPTIONAL, ... } addResult CONTENT-TYPE ::= { AddResult IDENTIFIED BY id-addResult } AddResult ::= CHOICE { success [0] NULL, failure [1] AccessdErr, ... } deleteRequest CONTENT-TYPE ::= { DeleteRequest IDENTIFIED BY id-deleteRequest } DeleteRequest ::= SEQUENCE { COMPONENTS OF CommonReqComp, object DistinguishedName, ... } deleteResult CONTENT-TYPE ::= { DeleteResult IDENTIFIED BY id-deleteResult } DeleteResult ::= CHOICE { success [0] NULL, failure [1] AccessdErr, ... } modifyRequest CONTENT-TYPE ::= { ModifyRequest IDENTIFIED BY id-modifyRequest } ModifyRequest ::= SEQUENCE { COMPONENTS OF CommonReqComp, object DistinguishedName, changes SEQUENCE SIZE (1..MAX) OF ObjectModification, select InformationSelection, ... } ObjectModification ::= CHOICE { addAttribute [0] Attribute{{SupportedAttributes}}, deleteAttribute [1] AttributeType, addValues [2] Attribute{{SupportedAttributes}}, deleteValues [3] Attribute{{SupportedAttributes}}, replaceAttribute [4] Attribute{{SupportedAttributes}}, ... } modifyResult CONTENT-TYPE ::= { ModifyResult IDENTIFIED BY id-modifyResult } ModifyResult ::= SEQUENCE { result CHOICE { success [0] ObjectInformation, failure [1] AccessdErr, ... }, ... } renameRequest CONTENT-TYPE ::= { RenameRequest IDENTIFIED BY id-renameRequest } RenameRequest ::= SEQUENCE { COMPONENTS OF CommonReqComp, object DistinguishedName, new DistinguishedName, ... } renameResult CONTENT-TYPE ::= { RenameResult IDENTIFIED BY id-renameResult } RenameResult ::= SEQUENCE { result CHOICE { success [0] NULL, failure [1] AccessdErr, ... }, ... } AccessdErr ::= CHOICE { cmsErr [0] CmsErrorCode, pbactErr [1] PbactErr, ... } InformationSelection ::= SEQUENCE { attributes CHOICE { allAttributes [0] NULL, select [1] SEQUENCE SIZE (1..MAX) OF ATTRIBUTE.&id, ... }, infoTypes ENUMERATED { attributeTypesOnly (0), attributeTypeAndValue (1), ... }, ... } ObjectInformation ::= SEQUENCE { name DistinguishedName, info SET SIZE (1..MAX) OF Attribute {{SupportedAttributes}}, ... } PbactErr ::= ENUMERATED { noSuchService, invalidOperationForService, insufficientAccessRigth, noSuchObject, noSuchAttribute, noSuchAttributeValue, objectAlreadyExists, attributeAlreadyExists, attributeValueAlreadyExists, noInformation, ... } privAssignRequest CONTENT-TYPE ::= { PrivAssignRequest IDENTIFIED BY id-privAssignRequest } PrivAssignRequest ::= SEQUENCE { attrCerts [1] AttributeCertificates OPTIONAL, ... } privAssignResult CONTENT-TYPE ::= { PrivAssignResult IDENTIFIED BY id-privAssignResult } PrivAssignResult ::= SEQUENCE { result CHOICE { success NULL, failure PrivAssignErr }, ... } PrivAssignErr ::= CHOICE { cmsErr [0] CmsErrorCode, assignErr [1] AssignErr, ... } AssignErr ::= ENUMERATED { invalidAttributeCertificate (0), ... } -- object identifier allocations -- top tree id-pbact OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) telebiometrics(42) e-health-protocol(3) pbact(20) } id-pbactmodule OBJECT IDENTIFIER ::= { id-pbact module(0) } id-pbactCont OBJECT IDENTIFIER ::= { id-pbact cmsCont(1) } id-pbactPrivAttr OBJECT IDENTIFIER ::= { id-pbact prAttr(2) } -- Content types id-privAssignRequest OBJECT IDENTIFIER ::= { id-pbactCont privAssignRequest(1) } id-privAssignResult OBJECT IDENTIFIER ::= { id-pbactCont privAssignResult(2) } id-readRequest OBJECT IDENTIFIER ::= { id-pbactCont readRequest(3) } id-readResult OBJECT IDENTIFIER ::= { id-pbactCont readResult(4) } id-compareRequest OBJECT IDENTIFIER ::= { id-pbactCont compareRequest(5) } id-compareResult OBJECT IDENTIFIER ::= { id-pbactCont compareResult(6) } id-addRequest OBJECT IDENTIFIER ::= { id-pbactCont addRequest(7) } id-addResult OBJECT IDENTIFIER ::= { id-pbactCont addResult(8) } id-deleteRequest OBJECT IDENTIFIER ::= { id-pbactCont deleteRequest(9) } id-deleteResult OBJECT IDENTIFIER ::= { id-pbactCont deleteResult(10) } id-modifyRequest OBJECT IDENTIFIER ::= { id-pbactCont modifyRequest(11) } id-modifyResult OBJECT IDENTIFIER ::= { id-pbactCont modifyResult(12) } id-renameRequest OBJECT IDENTIFIER ::= { id-pbactCont renameRequest(13) } id-renameResult OBJECT IDENTIFIER ::= { id-pbactCont renameResult(14) } -- Artribute types for carring privilege definitions id-at-accessService OBJECT IDENTIFIER ::= { id-pbactPrivAttr 1 } END