/************************************************************************************* /*************************************************************************************
This file contains the EtsiTs102941MessagesItss module providing the ITS-S subset This file contains the EtsiTs102941MessagesItss module providing the ITS-S subset
of messages defined in the module EtsiTs102941MessagesCA of messages defined in the module EtsiTs102941MessagesCA
It should never be imported together with the module EtsiTs102941MessagesCA. It should never be imported together with the module EtsiTs102941MessagesCA.
Use the EtsiTs102941MessagesCA if all possible PKI message types are needed. Use the EtsiTs102941MessagesCA if all possible PKI message types are needed.
This module blocks the usage of unencrypted EC signature for AA requests. This module blocks the usage of unencrypted EC signature for AA requests.
**************************************************************************************/ **************************************************************************************/
EtsiTs102941MessagesItss EtsiTs102941MessagesItss
{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) messagesItss(1) version1(1)} { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) messagesItss(1) version1(1)}
DEFINITIONS AUTOMATIC TAGS ::= DEFINITIONS AUTOMATIC TAGS ::=
BEGIN BEGIN
IMPORTS IMPORTS
EtsiTs103097Data-Signed EtsiTs103097Data-Signed
--EtsiTs103097Data-Encrypted, --EtsiTs103097Data-Encrypted,
--EtsiTs103097Data-SignedAndEncrypted --EtsiTs103097Data-SignedAndEncrypted
FROM EtsiTs103097Module FROM EtsiTs103097Module
{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103097) securedMessageV1(0) } { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103097) securedMessageV1(0) }
EtsiTs103097Data-Encrypted-Unicast, EtsiTs103097Data-Encrypted-Unicast,
EtsiTs103097Data-SignedAndEncrypted-Unicast, EtsiTs103097Data-SignedAndEncrypted-Unicast,
Version Version
FROM EtsiTs102941BaseTypes FROM EtsiTs102941BaseTypes
{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) baseTypes(3) version1(1) } { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) baseTypes(3) version1(1) }
InnerEcRequestSignedForPop, InnerEcResponse InnerEcRequestSignedForPop, InnerEcResponse
FROM EtsiTs102941TypesEnrolment FROM EtsiTs102941TypesEnrolment
{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) enrolment(4) version1(1) } { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) enrolment(4) version1(1) }
InnerAtRequest, InnerAtResponse InnerAtRequest, InnerAtResponse
FROM EtsiTs102941TypesAuthorization FROM EtsiTs102941TypesAuthorization
{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) authorization(5) version1(1) } { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) authorization(5) version1(1) }
ToBeSignedCrl, ToBeSignedTlmCtl, ToBeSignedRcaCtl ToBeSignedCrl, ToBeSignedTlmCtl, ToBeSignedRcaCtl
FROM EtsiTs102941TrustLists FROM EtsiTs102941TrustLists
{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) trustLists(6) version1(1) } { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) trustLists(6) version1(1) }
; ;
/************ /************
-- Messages -- Messages
************/ ************/
EnrolmentRequestMessage ::= EtsiTs103097Data-SignedAndEncrypted-Unicast {EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{enrolmentRequest PRESENT})})} EnrolmentRequestMessage ::= EtsiTs103097Data-SignedAndEncrypted-Unicast {EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{enrolmentRequest PRESENT})})}
EnrolmentResponseMessage ::= EtsiTs103097Data-SignedAndEncrypted-Unicast {EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{enrolmentResponse PRESENT})})} EnrolmentResponseMessage ::= EtsiTs103097Data-SignedAndEncrypted-Unicast {EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{enrolmentResponse PRESENT})})}
AuthorizationRequestMessage ::= EtsiTs103097Data-Encrypted-Unicast {EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{authorizationRequest PRESENT})})} AuthorizationRequestMessage ::= EtsiTs103097Data-Encrypted-Unicast {EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{authorizationRequest PRESENT})})}
AuthorizationRequestMessageWithPop ::= EtsiTs103097Data-SignedAndEncrypted-Unicast {EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{authorizationRequest PRESENT})})} AuthorizationRequestMessageWithPop ::= EtsiTs103097Data-SignedAndEncrypted-Unicast {EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{authorizationRequest PRESENT})})}
AuthorizationResponseMessage ::= EtsiTs103097Data-SignedAndEncrypted-Unicast {EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{authorizationResponse PRESENT})})} AuthorizationResponseMessage ::= EtsiTs103097Data-SignedAndEncrypted-Unicast {EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{authorizationResponse PRESENT})})}
CertificateRevocationListMessage ::= EtsiTs103097Data-Signed{EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{certificateRevocationList PRESENT})})} CertificateRevocationListMessage ::= EtsiTs103097Data-Signed{EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{certificateRevocationList PRESENT})})}
TlmCertificateTrustListMessage ::= EtsiTs103097Data-Signed{EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{certificateTrustListTlm PRESENT})})} TlmCertificateTrustListMessage ::= EtsiTs103097Data-Signed{EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{certificateTrustListTlm PRESENT})})}
RcaCertificateTrustListMessage ::= EtsiTs103097Data-Signed{EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{certificateTrustListRca PRESENT})})} RcaCertificateTrustListMessage ::= EtsiTs103097Data-Signed{EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{certificateTrustListRca PRESENT})})}
/************ /************
-- EtsiTs102941Data -- EtsiTs102941Data
************/ ************/
EtsiTs102941Data::= SEQUENCE { EtsiTs102941Data::= SEQUENCE {
version Version (v1), version Version (v1),
content EtsiTs102941DataContent content EtsiTs102941DataContent
} }
EtsiTs102941DataContent ::= CHOICE { EtsiTs102941DataContent ::= CHOICE {
enrolmentRequest InnerEcRequestSignedForPop, enrolmentRequest InnerEcRequestSignedForPop,
enrolmentResponse InnerEcResponse, enrolmentResponse InnerEcResponse,
authorizationRequest InnerAtRequest, authorizationRequest InnerAtRequest,
authorizationResponse InnerAtResponse, authorizationResponse InnerAtResponse,
certificateRevocationList ToBeSignedCrl, certificateRevocationList ToBeSignedCrl,
certificateTrustListTlm ToBeSignedTlmCtl, certificateTrustListTlm ToBeSignedTlmCtl,
certificateTrustListRca ToBeSignedRcaCtl, certificateTrustListRca ToBeSignedRcaCtl,
... ...
} (WITH COMPONENTS{..., } (WITH COMPONENTS{...,
authorizationRequest (WITH COMPONENTS{..., authorizationRequest (WITH COMPONENTS{...,
ecSignature (WITH COMPONENTS{..., ecSignature (WITH COMPONENTS{...,
encryptedEcSignature PRESENT encryptedEcSignature PRESENT
}) })
}) })
}) })
END END
/************************************************************************************* /*************************************************************************************
This file contains the EtsiTs102941MessagesItss-OptionalPrivacy module providing the This file contains the EtsiTs102941MessagesItss-OptionalPrivacy module providing the
same subset of messages as the EtsiTs102941MessagesItss module. same subset of messages as the EtsiTs102941MessagesItss module.
It should never be used together with the EtsiTs102941MessagesCA and EtsiTs102941MessagesItss It should never be used together with the EtsiTs102941MessagesCA and EtsiTs102941MessagesItss
This module allows the usage of unencrypted EC signature for AA requests. This module allows the usage of unencrypted EC signature for AA requests.
**************************************************************************************/ **************************************************************************************/
EtsiTs102941MessagesItss-OptionalPrivacy EtsiTs102941MessagesItss-OptionalPrivacy
{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) messagesItssOp(2) version1(1)} { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) messagesItssOp(2) version1(1)}
DEFINITIONS AUTOMATIC TAGS ::= DEFINITIONS AUTOMATIC TAGS ::=
BEGIN BEGIN
IMPORTS IMPORTS
EtsiTs103097Data-Signed EtsiTs103097Data-Signed
--EtsiTs103097Data-Encrypted, --EtsiTs103097Data-Encrypted,
--EtsiTs103097Data-SignedAndEncrypted --EtsiTs103097Data-SignedAndEncrypted
FROM EtsiTs103097Module FROM EtsiTs103097Module
{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103097) securedMessageV1(0) } { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103097) securedMessageV1(0) }
EtsiTs103097Data-Encrypted-Unicast, EtsiTs103097Data-Encrypted-Unicast,
EtsiTs103097Data-SignedAndEncrypted-Unicast, EtsiTs103097Data-SignedAndEncrypted-Unicast,
Version Version
FROM EtsiTs102941BaseTypes FROM EtsiTs102941BaseTypes
{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) baseTypes(3) version1(1) } { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) baseTypes(3) version1(1) }
InnerEcRequestSignedForPop, InnerEcResponse InnerEcRequestSignedForPop, InnerEcResponse
FROM EtsiTs102941TypesEnrolment FROM EtsiTs102941TypesEnrolment
{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) enrolment(4) version1(1) } { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) enrolment(4) version1(1) }
InnerAtRequest, InnerAtRequest, InnerAtResponse
InnerAtResponse FROM EtsiTs102941TypesAuthorization
FROM EtsiTs102941TypesAuthorization { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) authorization(5) version1(1) }
{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) authorization(5) version1(1) }
ToBeSignedCrl, ToBeSignedTlmCtl, ToBeSignedRcaCtl
ToBeSignedCrl, ToBeSignedTlmCtl, ToBeSignedRcaCtl FROM EtsiTs102941TrustLists
FROM EtsiTs102941TrustLists { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) trustLists(6) version1(1) }
{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) trustLists(6) version1(1) }
;
;
/************
/************ -- Messages
-- Messages ************/
************/
EnrolmentRequestMessage ::= EtsiTs103097Data-SignedAndEncrypted-Unicast {EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{enrolmentRequest PRESENT})})}
EnrolmentRequestMessage ::= EtsiTs103097Data-SignedAndEncrypted-Unicast {EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{enrolmentRequest PRESENT})})} EnrolmentResponseMessage ::= EtsiTs103097Data-SignedAndEncrypted-Unicast {EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{enrolmentResponse PRESENT})})}
EnrolmentResponseMessage ::= EtsiTs103097Data-SignedAndEncrypted-Unicast {EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{enrolmentResponse PRESENT})})} AuthorizationRequestMessage ::= EtsiTs103097Data-Encrypted-Unicast {EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{authorizationRequest PRESENT})})}
AuthorizationRequestMessage ::= EtsiTs103097Data-Encrypted-Unicast {EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{authorizationRequest PRESENT})})} AuthorizationRequestMessageWithPop ::= EtsiTs103097Data-SignedAndEncrypted-Unicast {EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{authorizationRequest PRESENT})})}
AuthorizationRequestMessageWithPop ::= EtsiTs103097Data-SignedAndEncrypted-Unicast {EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{authorizationRequest PRESENT})})} AuthorizationResponseMessage ::= EtsiTs103097Data-SignedAndEncrypted-Unicast {EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{authorizationResponse PRESENT})})}
AuthorizationResponseMessage ::= EtsiTs103097Data-SignedAndEncrypted-Unicast {EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{authorizationResponse PRESENT})})} CertificateRevocationListMessage ::= EtsiTs103097Data-Signed{EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{certificateRevocationList PRESENT})})}
CertificateRevocationListMessage ::= EtsiTs103097Data-Signed{EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{certificateRevocationList PRESENT})})} TlmCertificateTrustListMessage ::= EtsiTs103097Data-Signed{EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{certificateTrustListTlm PRESENT})})}
TlmCertificateTrustListMessage ::= EtsiTs103097Data-Signed{EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{certificateTrustListTlm PRESENT})})} RcaCertificateTrustListMessage ::= EtsiTs103097Data-Signed{EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{certificateTrustListRca PRESENT})})}
RcaCertificateTrustListMessage ::= EtsiTs103097Data-Signed{EtsiTs102941Data (WITH COMPONENTS{..., content (WITH COMPONENTS{certificateTrustListRca PRESENT})})}
/************
/************ -- EtsiTs102941Data
-- EtsiTs102941Data ************/
************/
EtsiTs102941Data::= SEQUENCE {
EtsiTs102941Data::= SEQUENCE { version Version (v1),
version Version (v1), content EtsiTs102941DataContent
content EtsiTs102941DataContent }
}
EtsiTs102941DataContent ::= CHOICE {
EtsiTs102941DataContent ::= CHOICE { enrolmentRequest InnerEcRequestSignedForPop,
enrolmentRequest InnerEcRequestSignedForPop, enrolmentResponse InnerEcResponse,
enrolmentResponse InnerEcResponse, authorizationRequest InnerAtRequest,
authorizationRequest InnerAtRequest, authorizationResponse InnerAtResponse,
authorizationResponse InnerAtResponse, certificateRevocationList ToBeSignedCrl,
certificateRevocationList ToBeSignedCrl, certificateTrustListTlm ToBeSignedTlmCtl,
certificateTrustListTlm ToBeSignedTlmCtl, certificateTrustListRca ToBeSignedRcaCtl,
certificateTrustListRca ToBeSignedRcaCtl, ...
... }
}
END
END
EtsiTs102941TrustLists EtsiTs102941TrustLists
{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) trustLists(6) version1(1)} { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) trustLists(6) version1(1)}
DEFINITIONS AUTOMATIC TAGS ::= DEFINITIONS AUTOMATIC TAGS ::=
BEGIN BEGIN
IMPORTS IMPORTS
EtsiTs103097Certificate, EtsiTs103097Data-SignedAndEncrypted, EtsiTs103097Data-Signed EtsiTs103097Certificate, EtsiTs103097Data-SignedAndEncrypted, EtsiTs103097Data-Signed
FROM FROM
EtsiTs103097Module EtsiTs103097Module
{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103097) securedMessageV1(0)} {itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103097) securedMessageV1(0)}
HashedId8, Time32, Version --, CertificateAuthorityConstraints HashedId8, Time32, Version --, CertificateAuthorityConstraints
FROM EtsiTs102941BaseTypes FROM EtsiTs102941BaseTypes
{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) baseTypes(3) version1(1)} {itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) baseTypes(3) version1(1)}
; ;
/************ /************
-- CRL -- CRL
************/ ************/
ToBeSignedCrl ::= SEQUENCE { ToBeSignedCrl ::= SEQUENCE {
version Version, version Version,
thisUpdate Time32, thisUpdate Time32,
nextUpdate Time32, nextUpdate Time32,
entries SEQUENCE OF CrlEntry, entries SEQUENCE OF CrlEntry,
... ...
} }
CrlEntry ::= HashedId8 CrlEntry ::= HashedId8
/************ /************
-- TLM CTL -- TLM CTL
************/ ************/
ToBeSignedTlmCtl ::= CtlFormat (FullCtl | DeltaCtl) (WITH COMPONENTS {..., ToBeSignedTlmCtl ::= CtlFormat (FullCtl | DeltaCtl) (WITH COMPONENTS {...,
ctlCommands ( WITH COMPONENT( ctlCommands ( WITH COMPONENT(
( WITH COMPONENTS {..., ( WITH COMPONENTS {...,
add ( WITH COMPONENTS {..., add ( WITH COMPONENTS {...,
ea ABSENT, ea ABSENT,
aa ABSENT aa ABSENT
}) })
}) })
)) ))
}) })
/************ /************
-- RCA CTL -- RCA CTL
************/ ************/
ToBeSignedRcaCtl ::= CtlFormat (FullCtl | DeltaCtl) ( WITH COMPONENTS {..., ToBeSignedRcaCtl ::= CtlFormat (FullCtl | DeltaCtl) ( WITH COMPONENTS {...,
ctlCommands ( WITH COMPONENT( ctlCommands ( WITH COMPONENT(
( WITH COMPONENTS {..., ( WITH COMPONENTS {...,
add ( WITH COMPONENTS {..., add ( WITH COMPONENTS {...,
rca ABSENT, rca ABSENT,
tlm ABSENT tlm ABSENT
}) })
}) })
)) ))
}) })
/************ /************
-- CTL -- CTL
************/ ************/
FullCtl::= CtlFormat ( WITH COMPONENTS {..., FullCtl::= CtlFormat ( WITH COMPONENTS {...,
isFullCtl ( TRUE ), isFullCtl ( TRUE ),
ctlCommands ( WITH COMPONENT( ctlCommands ( WITH COMPONENT(
( WITH COMPONENTS {..., ( WITH COMPONENTS {...,
delete ABSENT delete ABSENT
}) })
)) ))
}) })
DeltaCtl::= CtlFormat (WITH COMPONENTS {..., DeltaCtl::= CtlFormat (WITH COMPONENTS {...,
isFullCtl(FALSE) isFullCtl(FALSE)
}) })
CtlFormat ::= SEQUENCE { CtlFormat ::= SEQUENCE {
version Version, version Version,
nextUpdate Time32, nextUpdate Time32,
isFullCtl BOOLEAN, isFullCtl BOOLEAN,
ctlSequence INTEGER (0..255), ctlSequence INTEGER (0..255),
ctlCommands SEQUENCE OF CtlCommand, ctlCommands SEQUENCE OF CtlCommand,
... ...
} }
CtlCommand ::= CHOICE { CtlCommand ::= CHOICE {
add CtlEntry, add CtlEntry,
delete CtlDelete, delete CtlDelete,
... ...
} }
CtlEntry ::= CHOICE { CtlEntry ::= CHOICE {
rca RootCaEntry, rca RootCaEntry,
ea EaEntry, ea EaEntry,
aa AaEntry, aa AaEntry,
dc DcEntry, dc DcEntry,
tlm TlmEntry, tlm TlmEntry,
... ...
} }
CtlDelete ::= CHOICE { CtlDelete ::= CHOICE {
cert HashedId8, cert HashedId8,
dc DcDelete, dc DcDelete,
... ...
} }
TlmEntry::= SEQUENCE { TlmEntry::= SEQUENCE {
selfSignedTLMCertificate EtsiTs103097Certificate, selfSignedTLMCertificate EtsiTs103097Certificate,
linkTLMCertificate EtsiTs103097Certificate OPTIONAL, linkTLMCertificate EtsiTs103097Certificate OPTIONAL,
accessPoint Url accessPoint Url
} }
RootCaEntry ::= SEQUENCE { RootCaEntry ::= SEQUENCE {
selfsignedRootCa EtsiTs103097Certificate, selfsignedRootCa EtsiTs103097Certificate,
linkRootCaCertificate EtsiTs103097Certificate OPTIONAL linkRootCaCertificate EtsiTs103097Certificate OPTIONAL
} }
EaEntry ::= SEQUENCE { EaEntry ::= SEQUENCE {
eaCertificate EtsiTs103097Certificate, eaCertificate EtsiTs103097Certificate,
aaAccessPoint Url, aaAccessPoint Url,
itsAccessPoint Url OPTIONAL itsAccessPoint Url OPTIONAL
} }
AaEntry ::= SEQUENCE { AaEntry ::= SEQUENCE {
aaCertificate EtsiTs103097Certificate, aaCertificate EtsiTs103097Certificate,
accessPoint Url accessPoint Url
} }
DcEntry ::= SEQUENCE { DcEntry ::= SEQUENCE {
url Url, url Url,
cert SEQUENCE OF HashedId8 cert SEQUENCE OF HashedId8
} }
DcDelete ::= Url DcDelete ::= Url
Url::= IA5String Url::= IA5String
END END
EtsiTs102941TypesAuthorization EtsiTs102941TypesAuthorization
{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) authorization(5) version1(1)} { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) authorization(5) version1(1)}
DEFINITIONS AUTOMATIC TAGS ::= DEFINITIONS AUTOMATIC TAGS ::=
BEGIN BEGIN
IMPORTS IMPORTS
EtsiTs103097Certificate, EtsiTs103097Certificate,
EtsiTs103097Data-Signed EtsiTs103097Data-Signed
FROM EtsiTs103097Module FROM EtsiTs103097Module
{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103097) securedMessageV1(0)} { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103097) securedMessageV1(0)}
CertificateFormat, CertificateSubjectAttributes, EcSignature, HashedId8, PublicKeys, Version CertificateFormat, CertificateSubjectAttributes, EcSignature, HashedId8, PublicKeys, Version
FROM EtsiTs102941BaseTypes FROM EtsiTs102941BaseTypes
{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) baseTypes(3) version1(1) } { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) baseTypes(3) version1(1) }
; ;
/************ /************
-- AuthorizationRequest/Response -- AuthorizationRequest/Response
************/ ************/
AuthorizationResponseCode ::= ENUMERATED { AuthorizationResponseCode ::= ENUMERATED {
ok(0), ok(0),
-- ITS->AA -- ITS->AA
its-aa-cantparse, -- valid for any structure its-aa-cantparse, -- valid for any structure
its-aa-badcontenttype, -- not encrypted, not signed, not authorizationrequest its-aa-badcontenttype, -- not encrypted, not signed, not authorizationrequest
its-aa-imnottherecipient, -- the recipients of the outermost encrypted data doesnt include me its-aa-imnottherecipient, -- the recipients of the outermost encrypted data doesnt include me
its-aa-unknownencryptionalgorithm, -- either kexalg or contentencryptionalgorithm its-aa-unknownencryptionalgorithm, -- either kexalg or contentencryptionalgorithm
its-aa-decryptionfailed, -- works for ECIES-HMAC and AES-CCM its-aa-decryptionfailed, -- works for ECIES-HMAC and AES-CCM
its-aa-keysdontmatch, -- HMAC keyTag verification fails its-aa-keysdontmatch, -- HMAC keyTag verification fails
its-aa-incompleterequest, -- some elements are missing its-aa-incompleterequest, -- some elements are missing
its-aa-invalidencryptionkey, -- the responseEncryptionKey is bad its-aa-invalidencryptionkey, -- the responseEncryptionKey is bad
its-aa-outofsyncrequest, -- signingTime is outside acceptable limits its-aa-outofsyncrequest, -- signingTime is outside acceptable limits
its-aa-unknownea, -- the EA identified by eaId is unknown to me its-aa-unknownea, -- the EA identified by eaId is unknown to me
its-aa-invalidea, -- the EA certificate is revoked its-aa-invalidea, -- the EA certificate is revoked
its-aa-deniedpermissions, -- I, the AA, deny the requested permissions its-aa-deniedpermissions, -- I, the AA, deny the requested permissions
-- AA->EA -- AA->EA
aa-ea-cantreachea, -- the EA is unreachable (network error?) aa-ea-cantreachea, -- the EA is unreachable (network error?)
-- EA->AA -- EA->AA
ea-aa-cantparse, -- valid for any structure ea-aa-cantparse, -- valid for any structure
ea-aa-badcontenttype, -- not encrypted, not signed, not authorizationrequest ea-aa-badcontenttype, -- not encrypted, not signed, not authorizationrequest
ea-aa-imnottherecipient, -- the recipients of the outermost encrypted data doesnt include me ea-aa-imnottherecipient, -- the recipients of the outermost encrypted data doesnt include me
ea-aa-unknownencryptionalgorithm, -- either kexalg or contentencryptionalgorithm ea-aa-unknownencryptionalgorithm, -- either kexalg or contentencryptionalgorithm
ea-aa-decryptionfailed, -- works for ECIES-HMAC and AES-CCM ea-aa-decryptionfailed, -- works for ECIES-HMAC and AES-CCM
-- TODO: to be continued... -- TODO: to be continued...
invalidaa, -- the AA certificate presented is invalid/revoked/whatever invalidaa, -- the AA certificate presented is invalid/revoked/whatever
invalidaasignature, -- the AA certificate presented cant validate the request signature invalidaasignature, -- the AA certificate presented cant validate the request signature
wrongea, -- the encrypted signature doesnt designate me as the EA wrongea, -- the encrypted signature doesnt designate me as the EA
unknownits, -- cant retrieve the EC/ITS in my DB unknownits, -- cant retrieve the EC/ITS in my DB
invalidsignature, -- signature verification of the request by the EC fails invalidsignature, -- signature verification of the request by the EC fails
invalidencryptionkey, -- signature is good, but the key is bad invalidencryptionkey, -- signature is good, but the key is bad
deniedpermissions, -- permissions not granted deniedpermissions, -- permissions not granted
deniedtoomanycerts, -- parallel limit deniedtoomanycerts, -- parallel limit
... } ... }
InnerAtRequest ::= SEQUENCE { InnerAtRequest ::= SEQUENCE {
publicKeys PublicKeys, publicKeys PublicKeys,
hmacKey OCTET STRING (SIZE(32)), hmacKey OCTET STRING (SIZE(32)),
sharedAtRequest SharedAtRequest, sharedAtRequest SharedAtRequest,
ecSignature EcSignature, ecSignature EcSignature,
... ...
} }
SharedAtRequest ::= SEQUENCE { SharedAtRequest ::= SEQUENCE {
eaId HashedId8, eaId HashedId8,
keyTag OCTET STRING (SIZE(16)), keyTag OCTET STRING (SIZE(16)),
certificateFormat CertificateFormat, certificateFormat CertificateFormat,
requestedSubjectAttributes CertificateSubjectAttributes (WITH COMPONENTS{certIssuePermissions ABSENT}), requestedSubjectAttributes CertificateSubjectAttributes (WITH COMPONENTS{...,certIssuePermissions ABSENT}),
... ...
} }
InnerAtResponse ::= SEQUENCE { InnerAtResponse ::= SEQUENCE {
requestHash OCTET STRING (SIZE(16)), requestHash OCTET STRING (SIZE(16)),
responseCode AuthorizationResponseCode, responseCode AuthorizationResponseCode,
certificate EtsiTs103097Certificate OPTIONAL, certificate EtsiTs103097Certificate OPTIONAL,
... ...
} }
(WITH COMPONENTS { responseCode (ok), certificate PRESENT } (WITH COMPONENTS { responseCode (ok), certificate PRESENT }
| WITH COMPONENTS { responseCode (ALL EXCEPT ok), certificate ABSENT } | WITH COMPONENTS { responseCode (ALL EXCEPT ok), certificate ABSENT }
) )
END END
EtsiTs102941TypesAuthorizationValidation EtsiTs102941TypesAuthorizationValidation
{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) authValidation(7) version1(1)} { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) authValidation(7) version1(1)}
DEFINITIONS AUTOMATIC TAGS ::= DEFINITIONS AUTOMATIC TAGS ::=
BEGIN BEGIN
IMPORTS IMPORTS
EtsiTs103097Certificate EtsiTs103097Certificate
FROM EtsiTs103097Module FROM EtsiTs103097Module
{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103097) securedMessageV1(0)} { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103097) securedMessageV1(0)}
CertificateFormat, CertificateSubjectAttributes,EcSignature, HashedId8, PublicKeys, Version CertificateFormat, CertificateSubjectAttributes,EcSignature, HashedId8, PublicKeys, Version
FROM EtsiTs102941BaseTypes FROM EtsiTs102941BaseTypes
{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) baseTypes(3) version1(1) } { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) baseTypes(3) version1(1) }
SharedAtRequest SharedAtRequest
FROM EtsiTs102941TypesAuthorization FROM EtsiTs102941TypesAuthorization
{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) authorization(5) version1(1)} { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) authorization(5) version1(1)}
; ;
/************ /************
-- AuthorizationValidationRequest/Response -- AuthorizationValidationRequest/Response
************/ ************/
AuthorizationValidationResponseCode ::= ENUMERATED { AuthorizationValidationResponseCode ::= ENUMERATED {
ok(0), ok(0),
cantparse, -- valid for any structure cantparse, -- valid for any structure
badcontenttype, -- not encrypted, not signed, not permissionsverificationrequest badcontenttype, -- not encrypted, not signed, not permissionsverificationrequest
imnottherecipient, -- the “recipients” of the outermost encrypted data doesn’t include me imnottherecipient, -- the “recipients” of the outermost encrypted data doesn’t include me
unknownencryptionalgorithm, -- either kexalg or contentencryptionalgorithm unknownencryptionalgorithm, -- either kexalg or contentencryptionalgorithm
decryptionfailed, -- works for ECIES-HMAC and AES-CCM decryptionfailed, -- works for ECIES-HMAC and AES-CCM
invalidaa, -- the AA certificate presented is invalid/revoked/whatever invalidaa, -- the AA certificate presented is invalid/revoked/whatever
invalidaasignature, -- the AA certificate presented can’t validate the request signature invalidaasignature, -- the AA certificate presented can’t validate the request signature
wrongea, -- the encrypted signature doesn’t designate me as the EA wrongea, -- the encrypted signature doesn’t designate me as the EA
unknownits, -- can’t retrieve the EC/ITS in my DB unknownits, -- can’t retrieve the EC/ITS in my DB
invalidsignature, -- signature verification of the request by the EC fails invalidsignature, -- signature verification of the request by the EC fails
invalidencryptionkey, -- signature is good, but the responseEncryptionKey is bad invalidencryptionkey, -- signature is good, but the responseEncryptionKey is bad
deniedpermissions, -- requested permissions not granted deniedpermissions, -- requested permissions not granted
deniedtoomanycerts, -- parallel limit deniedtoomanycerts, -- parallel limit
deniedrequest, -- any other reason? deniedrequest, -- any other reason?
... } ... }
AuthorizationValidationRequest ::= SEQUENCE { AuthorizationValidationRequest ::= SEQUENCE {
sharedAtRequest SharedAtRequest, sharedAtRequest SharedAtRequest,
ecSignature EcSignature, ecSignature EcSignature,
... ...
} }
AuthorizationValidationResponse ::= SEQUENCE { AuthorizationValidationResponse ::= SEQUENCE {
requestHash OCTET STRING (SIZE(16)), requestHash OCTET STRING (SIZE(16)),
responseCode AuthorizationValidationResponseCode, responseCode AuthorizationValidationResponseCode,
confirmedSubjectAttributes CertificateSubjectAttributes (WITH COMPONENTS{certIssuePermissions ABSENT}) OPTIONAL, confirmedSubjectAttributes CertificateSubjectAttributes (WITH COMPONENTS{certIssuePermissions ABSENT}) OPTIONAL,
... ...
} }
(WITH COMPONENTS { responseCode (ok), confirmedSubjectAttributes PRESENT }
END | WITH COMPONENTS { responseCode (ALL EXCEPT ok), confirmedSubjectAttributes ABSENT }
)
END
EtsiTs102941TypesCaManagement EtsiTs102941TypesCaManagement
{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) caManagement(8) version1(1)} { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) caManagement(8) version1(1)}
DEFINITIONS AUTOMATIC TAGS ::= DEFINITIONS AUTOMATIC TAGS ::=
BEGIN BEGIN
IMPORTS IMPORTS
EtsiTs103097Certificate, EtsiTs103097Data-Signed EtsiTs103097Certificate, EtsiTs103097Data-Signed
FROM FROM
EtsiTs103097Module EtsiTs103097Module
{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103097) securedMessageV1(0)} {itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103097) securedMessageV1(0)}
PublicKeys, CertificateSubjectAttributes PublicKeys, CertificateSubjectAttributes
FROM EtsiTs102941BaseTypes FROM EtsiTs102941BaseTypes
{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) baseTypes(3) version1(1)} { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) baseTypes(3) version1(1)}
; ;
/************ /************
-- CA certificate request -- CA certificate request
************/ ************/
CaCertificateRequest ::= SEQUENCE { CaCertificateRequest ::= SEQUENCE {
publicKeys PublicKeys, publicKeys PublicKeys,
requestedSubjectAttributes CertificateSubjectAttributes, requestedSubjectAttributes CertificateSubjectAttributes,
... ...
} }
END END
EtsiTs102941TypesEnrolment EtsiTs102941TypesEnrolment
{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) enrolment(4) version1(1)} { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) enrolment(4) version1(1)}
DEFINITIONS AUTOMATIC TAGS ::= DEFINITIONS AUTOMATIC TAGS ::=
BEGIN BEGIN
IMPORTS IMPORTS
EtsiTs103097Certificate, EtsiTs103097Certificate,
EtsiTs103097Data-Signed EtsiTs103097Data-Signed
FROM EtsiTs103097Module FROM EtsiTs103097Module
{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103097) securedMessageV1(0)} { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(103097) securedMessageV1(0)}
CertificateFormat, CertificateSubjectAttributes, EcSignature, HashedId8, PublicKeys, Version CertificateFormat, CertificateSubjectAttributes, EcSignature, HashedId8, PublicKeys, Version
FROM EtsiTs102941BaseTypes FROM EtsiTs102941BaseTypes
{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) baseTypes(3) version1(1) } { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg5(5) ts(102941) baseTypes(3) version1(1) }
; ;
/************ /************
-- EnrolmentRequest/Response -- EnrolmentRequest/Response
************/ ************/
EnrolmentResponseCode ::= ENUMERATED { EnrolmentResponseCode ::= ENUMERATED {
ok(0), ok(0),
cantparse, -- valid for any structure cantparse, -- valid for any structure
badcontenttype, -- not encrypted, not signed, not enrolmentrequest badcontenttype, -- not encrypted, not signed, not enrolmentrequest
imnottherecipient, -- the “recipients” doesn’t include me imnottherecipient, -- the “recipients” doesn’t include me
unknownencryptionalgorithm, -- either kexalg or contentencryptionalgorithm unknownencryptionalgorithm, -- either kexalg or contentencryptionalgorithm
decryptionfailed, -- works for ECIES-HMAC and AES-CCM decryptionfailed, -- works for ECIES-HMAC and AES-CCM
unknownits, -- can’t retrieve the ITS from the itsId unknownits, -- can’t retrieve the ITS from the itsId
invalidsignature, -- signature verification of the request fails invalidsignature, -- signature verification of the request fails
invalidencryptionkey, -- signature is good, but the responseEncryptionKey is bad invalidencryptionkey, -- signature is good, but the responseEncryptionKey is bad
baditsstatus, -- revoked, not yet active baditsstatus, -- revoked, not yet active
incompleterequest, -- some elements are missing incompleterequest, -- some elements are missing
deniedpermissions, -- requested permissions are not granted deniedpermissions, -- requested permissions are not granted
invalidkeys, -- either the verification_key of the encryption_key is bad invalidkeys, -- either the verification_key of the encryption_key is bad
deniedrequest, -- any other reason? deniedrequest, -- any other reason?
... } ... }
InnerEcRequestSignedForPop::= EtsiTs103097Data-Signed{InnerEcRequest} InnerEcRequestSignedForPop::= EtsiTs103097Data-Signed{InnerEcRequest}
InnerEcRequest ::= SEQUENCE { InnerEcRequest ::= SEQUENCE {
itsId IA5String, itsId OCTET STRING,
certificateFormat CertificateFormat, certificateFormat CertificateFormat,
publicKeys PublicKeys, publicKeys PublicKeys,
requestedSubjectAttributes CertificateSubjectAttributes (WITH COMPONENTS{certIssuePermissions ABSENT}), requestedSubjectAttributes CertificateSubjectAttributes (WITH COMPONENTS{certIssuePermissions ABSENT}),
... ...
} }
InnerEcResponse ::= SEQUENCE { InnerEcResponse ::= SEQUENCE {
requestHash OCTET STRING (SIZE(16)), requestHash OCTET STRING (SIZE(16)),
responseCode EnrolmentResponseCode, responseCode EnrolmentResponseCode,
certificate EtsiTs103097Certificate OPTIONAL, certificate EtsiTs103097Certificate OPTIONAL,
... ...
} }
(WITH COMPONENTS { responseCode (ok), certificate PRESENT } (WITH COMPONENTS { responseCode (ok), certificate PRESENT }
| WITH COMPONENTS { responseCode (ALL EXCEPT ok), certificate ABSENT } | WITH COMPONENTS { responseCode (ALL EXCEPT ok), certificate ABSENT }
) )
END END
...@@ -27,9 +27,9 @@ module LibItsCommon_ASN1_NamedNumbers { ...@@ -27,9 +27,9 @@ module LibItsCommon_ASN1_NamedNumbers {
const AltitudeValue AltitudeValue_unavailable_ := 800001; const AltitudeValue AltitudeValue_unavailable_ := 800001;
const CurvatureValue CurvatureValue_straight_ := 0; const CurvatureValue CurvatureValue_straight_ := 0;
const CurvatureValue CurvatureValue_reciprocalOf1MeterRadiusToRight_ := -30000; const CurvatureValue CurvatureValue_reciprocalOf1MeterRadiusToRight_ := -1023;
const CurvatureValue CurvatureValue_reciprocalOf1MeterRadiusToLeft_ := 30000; const CurvatureValue CurvatureValue_reciprocalOf1MeterRadiusToLeft_ := 1023;
const CurvatureValue CurvatureValue_unavailable_ := 30001; const CurvatureValue CurvatureValue_unavailable_ := 1023;
const ExteriorLights ExteriorLights_lowBeamHeadlightsOn_ := '10000000'B; const ExteriorLights ExteriorLights_lowBeamHeadlightsOn_ := '10000000'B;
const ExteriorLights ExteriorLights_highBeamHeadlightsOn_ := '01000000'B; const ExteriorLights ExteriorLights_highBeamHeadlightsOn_ := '01000000'B;
......
...@@ -192,7 +192,7 @@ module LibItsPki_Functions { ...@@ -192,7 +192,7 @@ module LibItsPki_Functions {
} // End of function f_utInitializeIut } // End of function f_utInitializeIut
function f_sendUtTriggerPrimitive( function f_sendUtTriggerPrimitive(
in charstring p_canonical_id, in octetstring p_canonical_id,
in Oct1 p_enc_algorithm, in Oct1 p_enc_algorithm,
in octetstring p_private_key, in octetstring p_private_key,
in octetstring p_public_key_compressed, in octetstring p_public_key_compressed,
......
...@@ -123,6 +123,6 @@ module LibItsPki_Pics { ...@@ -123,6 +123,6 @@ module LibItsPki_Pics {
/** /**
* @desc Canonical ITSS-S identifier * @desc Canonical ITSS-S identifier
*/ */
modulepar charstring PICS_ITS_S_CANONICAL_ID := "1B4CA1210123AE900BBE6C3EBAE7E87DA20DBDAB1E7B2EC0691C51C1021900AA"; modulepar octetstring PICS_ITS_S_CANONICAL_ID := '1B4CA1210123AE900BBE6C3EBAE7E87DA20DBDAB1E7B2EC0691C51C1021900AA'O;
} // End of module LibItsPki_Pics } // End of module LibItsPki_Pics
...@@ -173,7 +173,7 @@ module LibItsPki_Templates { ...@@ -173,7 +173,7 @@ module LibItsPki_Templates {
} // End of template mw_authorizationValidationResponse } // End of template mw_authorizationValidationResponse
template (value) InnerEcRequest m_innerEcRequest( template (value) InnerEcRequest m_innerEcRequest(
in template (value) charstring p_itsId, in template (value) octetstring p_itsId,
in template (value) PublicKeys p_publicKeys, in template (value) PublicKeys p_publicKeys,
in template (value) CertificateSubjectAttributes p_requestedSubjectAttributes in template (value) CertificateSubjectAttributes p_requestedSubjectAttributes
) := { ) := {
...@@ -184,7 +184,7 @@ module LibItsPki_Templates { ...@@ -184,7 +184,7 @@ module LibItsPki_Templates {
} // End of template m_innerEcRequest } // End of template m_innerEcRequest
template (present) InnerEcRequest mw_innerEcRequest( template (present) InnerEcRequest mw_innerEcRequest(
template (present) charstring p_itsId := ?, template (present) octetstring p_itsId := ?,
template (present) PublicKeys p_publicKeys := ?, template (present) PublicKeys p_publicKeys := ?,
template (present) CertificateSubjectAttributes p_requestedSubjectAttributes := ? template (present) CertificateSubjectAttributes p_requestedSubjectAttributes := ?
) := { ) := {
......
...@@ -63,7 +63,7 @@ module LibItsPki_TypesAndValues { ...@@ -63,7 +63,7 @@ module LibItsPki_TypesAndValues {
* @member compressedPublickey The compressed public key to be used for signature of the requested EA certificate (format: [02|03]<compressed public key> * @member compressedPublickey The compressed public key to be used for signature of the requested EA certificate (format: [02|03]<compressed public key>
*/ */
type record TriggerEnrolmentRequest { type record TriggerEnrolmentRequest {
charstring cannonicalId, octetstring cannonicalId,
Oct1 encAlgorithm, Oct1 encAlgorithm,
octetstring privateKey, octetstring privateKey,
octetstring compressedPublickey octetstring compressedPublickey
......