"102657/portal/RDMessage,ver9.xsd" did not exist on "845248d03890257d384c684352b9519fe00f0b9c"
Newer
Older
/**
* @author ETSI / STF481
* @version $URL$
* $Id$
* @desc Module containing templates for Security Protocol
*
*/
module LibItsSecurity_Templates {
// LibCommon
import from LibCommon_BasicTypesAndValues {
type
// LibItsSecurity
import from LibItsSecurity_TypesAndValues all;
import from LibItsSecurity_Pixits all;
group constants {
/**
* @desc Protocol version
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.1 SecuredMessage
*/
const UInt8 c_protocol_version := 2;
/**
* @desc Security profile identifier for CAMs
* @see Draft ETSI TS 103 097 V1.1.6 Clause 7.1 Security profile for CAMs
*/
const UInt8 c_security_profileCAMs := 1;
/**
* @desc Security profile identifier for DENMs
* @see Draft ETSI TS 103 097 V1.1.6 Clause 7.2 Security profile for DENMs
*/
const UInt8 c_security_profileDENMs := 2;
/**
* @desc Security profile identifier for other messages
* @see Draft ETSI TS 103 097 V1.1.6 Clause 7.3 Generic security profile for other signed messages
*/
const UInt8 c_security_profileOthers := 3;
* @desc Certificate version
* @see Draft ETSI TS 103 097 V1.1.6 Clause 6.1 Certificate
* @desc Dummy send/receive templates for security headers
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4 Basic format elements
* @desc Dummy send templates for security headers
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2 Specification of basic format elements
group dummyAlgorithms {
/**
* @desc Generic send template for EccPoint description
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.5 EccPoint
* @see Draft ETSI TS 103 097 V1.1.6 Table 2: Derivation of field sizes depending on the used algorithm
*/
template (value) EccPoint m_eccPoint_dummy := {
} // End of template m_eccPoint_dummy
/**
* @desc Generic send template for AES CCM description
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.5 EccPoint
* @see Draft ETSI TS 103 097 V1.1.6 Table 2: Derivation of field sizes depending on the used algorithm
*/
template (value) EccPoint m_aesccm_dummy := {
algorithm := e_ecies_nistp256,
field_size := f_int2UInt8(1 + lengthof(PX_AESCCM_X_COORDINATE)),
type_ := e_uncompressed,
x := PX_AESCCM_X_COORDINATE,
y := {
y := PX_AESCCM_Y_COORDINATE // WARNING siseof(y) == siseof(x)
} // End of template m_aesccm_dummy
/**
* @desc Generic send template for AES CCM encryption parameters
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.7 EncryptionParameters
template (value) EncryptionParameters m_encryptionParameters_dummy := {
symm_algorithm := e_aes_128_ccm,
public_key := {
nonce := PX_AESCCM_NONCE
}
} // End of template m_encryptionParameters_dummy
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
} // End of group dummyAlgorithms
/**
* @desc Dummy send template for PublicKey/EccPoint
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.4 PublicKey
*/
template (value) PublicKey m_publicKey_eccPoint_dummy := {
algorithm := e_ecdsa_nistp256_with_sha256,
public_key := {
eccPoint := m_eccPoint_dummy
} // End of field public_key
} // End of template PublicKey
/**
* @desc Dummy send template for PublicKey/AES CCM
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.4 PublicKey
*/
template (value) PublicKey m_publicKey_aesccm_dummy := {
algorithm := e_ecies_nistp256,
public_key := {
aesCcm := {
supported_symm_alg := e_aes_128_ccm,
eccPoint := m_aesccm_dummy
} // End of field aesCcm
} // End of field public_key
} // End of template m_publicKey_aesccm_dummy
} // End of group dummyBasicFormatElementsSend
/**
* @desc Dummy receive templates for security headers
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2 Specification of basic format elements
*/
group dummyBasicFormatElementsRecv {
/**
* @desc Dummy receive template for PublicKey/EccPoint
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.4 PublicKey
*/
template (present) PublicKey mw_publicKey_eccPoint_dummy := {
algorithm := e_ecdsa_nistp256_with_sha256,
public_key := {
eccPoint := ?
} // End of field public_key
} // End of template PublicKey
/**
* @desc Dummy send template for PublicKey/AES CCM
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.4 PublicKey
*/
template (present) PublicKey mw_publicKey_aesccm_dummy := {
algorithm := e_ecies_nistp256,
public_key := {
aesCcm := ?
} // End of field public_key
} // End of template m_publicKey_aesccm_dummy
/**
* @desc Dummy receive template for Time64WithStandardDeviation
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.17 Time64WithStandardDeviation
*/
template (present) Time64WithStandardDeviation mw_time64WithStandardDeviation_dummy := {
time := ?,
log_std_dev := ?
} // End of template mw_time64WithStandardDeviation_dummy
/**
* @desc Dummy receive template for TwoDLocation
* @param p_latitude Latitude range from 900 000 000 to +900 000 000
* @param p_longitude Longitude range from 1 800 000 000 to +1 800 000 000
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.19 TwoDLocation
*/
template (present) TwoDLocation mw_twoDLocation_dummy := {
latitude := ?,
longitude := ?
} // End of template mw_twoDLocation_dummy
/**
* @desc Dummy send template for ThreeDLocation
* @param p_latitude Latitude range from 900 000 000 to +900 000 000
* @param p_longitude Longitude range from 1 800 000 000 to +1 800 000 000
* @param p_elevation Elevation relative to the WGS-84 ellipsoid in decimetres
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.20 ThreeDLocation
*/
template (present) ThreeDLocation mdw_threeDLocation_dummy := {
latitude := ?,
longitude := ?,
elevation := ?
} // End of template mdw_threeDLocation_dummy
/**
* @desc Basic receive template rectangular geographic region
* @param p_northwest Upper left corner
* @param p_southeast Lower rigth corner
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.21 GeographicRegion
*/
template (present) GeographicRegion mw_geographicRegion_rectangle_dummy(
in template (present) TwoDLocation p_northwest,
in template (present) TwoDLocation p_southeast
) := {
region_type := e_rectangle,
region := {
rectangular_region := {
{
northwest := p_northwest,
southeast := p_southeast
}
} // End of field rectangular_region
} // End of field region
} // End of template mw_geographicRegion_rectangle_dummy
} // End of group dummyBasicFormatElementsRecv
} // End of group dummyBasicFormatElements
/**
* @desc Send/receive templates for security headers
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4 Basic format elements
*/
group basicFormatElements {
/**
* @desc Send templates for security headers
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2 Specification of basic format elements
*/
group basicFormatElementsSend {
/**
*/
group algorithms {
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
/**
* @desc Send template for EccPoint description
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.5 EccPoint
* @see Draft ETSI TS 103 097 V1.1.6 Table 2: Derivation of field sizes depending on the used algorithm
*/
template (value) EccPoint m_eccPointecdsa_nistp256_with_sha256_x_coordinate_only(
in template (value) octetstring p_x
) modifies m_eccPoint_dummy := {
field_size := f_int2UInt8(1 + lengthof(p_x)),
x := p_x
} // End of template m_eccPointecdsa_nistp256_with_sha256_x_coordinate_only
/**
* @desc Send template for AES CCM description
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.5 EccPoint
* @see Draft ETSI TS 103 097 V1.1.6 Table 2: Derivation of field sizes depending on the used algorithm
*/
template (value) EccPoint m_aesccm_ecies_nistp256_uncompressed(
in template (value) octetstring p_x,
in template (value) octetstring p_y
) modifies m_aesccm_dummy := {
field_size := f_int2UInt8(1 + lengthof(p_x)),
x := p_x,
y := {
y := p_y
} // End of field y
} // End of template m_aesccm_ecies_nistp256_uncompressed
/**
* @desc Generic send template for AES CCM encryption parameters
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.7 EncryptionParameters
*/
template (value) EncryptionParameters m_encryptionParameters_aes_128_ccm(
in template (value) Oct12 p_nonce
) modifies m_encryptionParameters_dummy := {
symm_algorithm := e_aes_128_ccm,
public_key := {
nonce := p_nonce
}
} // End of template m_encryptionParameters_aes_128_ccm
* @desc Send/receive templates for Signature description
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.9 Signature
* @see Draft ETSI TS 103 097 V1.1.6 Table 2: Derivation of field sizes depending on the used algorithm
/**
* @desc Send template for signatures based on ECDSA algorithm
* @member algorithm Algorithm type
* @member p_ecdsaSignature The ECDSA based signature
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.9 Signature
template (value) Signature m_signature(
in template (value) EcdsaSignature p_ecdsaSignature
):= {
} // End of field signature_
} // End of template m_signature_ecdsa
/**
* @desc Send template for ECDSA based signature
* @member algorithm Algorithm type
* @member p_r The coordinate of the elliptic curve point resulting from multiplying the generator element by the ephemeral private key
* @member p_s The signature
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.10 EcdsaSignature
template (value) EcdsaSignature m_ecdsaSignature(
in template (value) EccPoint p_r,
in template (value) octetstring p_s
field_size := f_int2UInt8(1 + lengthof(p_s)),
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
} // End of group signatures
group signerInfos {
/**
* @desc Send template for self signed message
*/
template (value) SignerInfo m_SignerInfo_self := {
type_ := e_self,
signerInfo := omit
} // End of template m_SignerInfo_self
/**
* @desc Send template for self signed message
*/
template (value) SignerInfo m_SignerInfo_digest(
in template (value) HashedId8 p_digest
) := {
type_ := e_certificate_digest_with_ecdsap256,
signerInfo := {
digest := p_digest
} // End of field signerInfo
} // End of template m_SignerInfo_digest
template (value) SignerInfo m_signerInfo_certificate(
in template (value) Certificate p_certificate
) := {
type_ := e_certificate,
signerInfo := {
certificate := p_certificate
} // End of field signerInfo
} // End of template m_signerInfo_certificate
template (value) SignerInfo m_signerInfo_certificates(
in template (value) CertificateChain p_certificates
) := {
type_ := e_certificate_chain,
signerInfo := {
certificates := p_certificates
} // End of field signerInfo
} // End of template m_signerInfo_certificates
} // End of group signerInfos
/**
* @desc Send template for Time64WithStandardDeviation
* @param p_time TODO
* @param p_log_std_dev TODO
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.17 Time64WithStandardDeviation
*/
template (value) Time64WithStandardDeviation m_time64WithStandardDeviation(
in template (value) Time64 p_time,
in template (value) UInt8 p_log_std_dev
) := {
time := p_time,
log_std_dev := p_log_std_dev
} // End of template m_time64WithStandardDeviation
/**
* @desc Send template for Duration (in seconds)
* @param p_duration The duration value
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.18 Duration
*/
template (value) Duration m_duration_in_seconds(
in template (value) Int13 p_duration
) := {
unit := e_seconds,
duration := p_duration
} // End of template m_duration_in_seconds
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
/**
* @desc Send template for TwoDLocation
* @param p_latitude Latitude range from 900 000 000 to +900 000 000
* @param p_longitude Longitude range from 1 800 000 000 to +1 800 000 000
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.19 TwoDLocation
*/
template (value) TwoDLocation m_twoDLocation(
in template (value) Int32 p_latitude,
in template (value) Int32 p_longitude
) := {
latitude := p_latitude,
longitude := p_longitude
} // End of template m_twoDLocation
/**
* @desc Send template for ThreeDLocation
* @param p_latitude Latitude range from 900 000 000 to +900 000 000
* @param p_longitude Longitude range from 1 800 000 000 to +1 800 000 000
* @param p_elevation Elevation relative to the WGS-84 ellipsoid in decimetres
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.20 ThreeDLocation
*/
template (value) ThreeDLocation m_threeDLocation(
in template (value) Int32 p_latitude,
in template (value) Int32 p_longitude,
in template (value) Oct2 p_elevation
) := {
latitude := p_latitude,
longitude := p_longitude,
elevation := p_elevation
} // End of template m_threeDLocation
/**
* @desc Send template circular geographic region
* @param p_center Circle center
* @param p_radius Circle radius
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.21 GeographicRegion
*/
template (value) GeographicRegion m_geographicRegion_circle(
in template (value) TwoDLocation p_center,
in template (value) UInt16 p_radius
region_type := e_circle,
region := {
circular_region := {
center := p_center,
radius := p_radius
} // End of field circular_region
} // End of field region
} // End of template m_geographicRegion_circle
/**
* @desc Send template rectangular geographic region
* @param p_northwest Upper left corner
* @param p_southeast Lower rigth corner
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.21 GeographicRegion
*/
template (value) GeographicRegion m_geographicRegion_rectangle(
in template (value) TwoDLocation p_northwest,
in template (value) TwoDLocation p_southeast
region_type := e_rectangle,
region := {
rectangular_region := {
{
northwest := p_northwest,
southeast := p_southeast
}
} // End of field rectangular_region
} // End of field region
} // End of template m_geographicRegion_rectangle
/**
* @desc Send template polygonial geographic region
* @param p_polygonal_region Polygonial region description
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.21 GeographicRegion
*/
template (value) GeographicRegion m_geographicRegion_polygonial(
in template (value) PolygonalRegion p_polygonal_region
region_type := e_polygon,
region := {
polygonal_region := p_polygonal_region
} // End of field region
} // End of template m_geographicRegion_polygonial
/**
* @desc Send template for geographic identified region
* @param p_id_region Indentified region
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.21 GeographicRegion
*/
template (value) GeographicRegion m_geographicRegion_identifiedRegion(
in template (value) IdentifiedRegion p_id_region
) := {
region_type := e_id,
} // End of template m_geographicRegion_identifiedRegion
/**
* @desc Send template for not specified geographic region
* @param p_id_region Indentified region
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.21 GeographicRegion
*/
template (value) GeographicRegion m_geographicRegion_nonce := {
region_type := e_none,
region := omit
} // End of template m_geographicRegion_nonce
} // End of group basicFormatElementsSend
* @desc Receive templates for security headers
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2 Specification of basic format elements
*/
group basicFormatElementsRecv {
/**
* @desc Receive template for Time64WithStandardDeviation
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.17 Time64WithStandardDeviation
*/
template (present) Time64WithStandardDeviation mw_time64WithStandardDeviation(
in template (present) Time64 p_time,
in template (present) UInt8 p_log_std_dev
) := {
time := p_time,
log_std_dev := p_log_std_dev
} // End of template mw_time64WithStandardDeviation
/**
* @desc Receive template for Duration (in seconds)
* @param p_duration The duration value
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.18 Duration
*/
template (present) Duration mw_duration_in_seconds(
in template (present) Int13 p_duration
) := {
unit := e_seconds,
duration := p_duration
} // End of template mw_duration_in_seconds
* @desc Receive template for TwoDLocation
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
* @param p_latitude Latitude range from 900 000 000 to +900 000 000
* @param p_longitude Longitude range from 1 800 000 000 to +1 800 000 000
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.19 TwoDLocation
*/
template (present) TwoDLocation mw_twoDLocation(
in template (present) Int32 p_latitude,
in template (present) Int32 p_longitude
) := {
latitude := p_latitude,
longitude := p_longitude
} // End of template mw_twoDLocation
/**
* @desc Receive template for ThreeDLocation
* @param p_latitude Latitude range from 900 000 000 to +900 000 000
* @param p_longitude Longitude range from 1 800 000 000 to +1 800 000 000
* @param p_elevation Elevation relative to the WGS-84 ellipsoid in decimetres
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.20 ThreeDLocation
*/
template (present) ThreeDLocation mw_threeDLocation(
in template (present) Int32 p_latitude,
in template (present) Int32 p_longitude,
in template (present) Oct2 p_elevation
) := {
latitude := p_latitude,
longitude := p_longitude,
elevation := p_elevation
} // End of template mw_threeDLocation
/**
* @desc Receive template circular geographic region
* @param p_center Circle center
* @param p_radius Circle radius
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.21 GeographicRegion
*/
template (present) GeographicRegion mw_geographicRegion_circle(
in template (present) TwoDLocation p_center,
in template (present) UInt16 p_radius
region_type := e_circle,
region := {
circular_region := {
center := p_center,
radius := p_radius
} // End of field circular_region
} // End of field region
} // End of template mw_geographicRegion_circle
/**
* @desc Receive template polygonial geographic region
* @param p_polygonal_region Polygonial region description
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.21 GeographicRegion
*/
template (present) GeographicRegion mw_geographicRegion_polygonial(
in template (present) PolygonalRegion p_polygonal_region
region_type := e_polygon,
region := {
polygonal_region := p_polygonal_region
} // End of field region
} // End of template mw_geographicRegion_polygonial
/**
* @desc Receive template for geographic identified region
* @param p_id_region Indentified region
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.21 GeographicRegion
*/
template (present) GeographicRegion mww_geographicRegion_identifiedRegion(
in template (present) IdentifiedRegion p_id_region
) := {
region_type := e_id,
region := {
id_region := p_id_region
} // End of field region
} // End of template mw_geographicRegion_identifiedRegion
/**
* @desc Receive template for not specified geographic region
* @param p_id_region Indentified region
* @see Draft ETSI TS 103 097 V1.1.6 Clause 4.2.21 GeographicRegion
*/
template (present) GeographicRegion mw_geographicRegion_nonce := {
region_type := e_none,
} // End of template mw_geographicRegion_nonce
} // End of group basicFormatElementsRecv
* @desc Dummy send/receive templates for security headers
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5 Specification of security header
* @desc Dummy send templates for security headers
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5 Specification of security header
*/
group dummyMessagesSend {
/**
* @desc Generic send template for Security profile for other messages
* @see Draft ETSI TS 103 097 V1.1.6 Clause 7.3 Generic security profile for other signed messages
*/
template (value) SecuredMessage m_secureMessage_dummy := {
protocol_version := c_protocol_version,
security_profile := c_security_profileOthers,
header_fields := {
m_header_field_signer_info(
m_SignerInfo_self
)
},
} // End of template m_secureMessage_dummy
} // End of group dummyMessagesSend
/**
* @desc Dummy receive templates for security headers
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5 Specification of security header
group dummyMessagesRecv {
/**
* @desc Generic received template for SecuredMessage
*/
template (present) SecuredMessage mw_securedMessage_dummy := {
protocol_version := c_protocol_version,
security_profile := ?,
header_fields := ?,
payload_fields := ?,
trailer_fields := ?
} // End of template mw_securedMessage_dummy
} // End of group dummyMessagesRecv
group dummyPayloads {
* @desc Generic received template for unsecured payload
template (present) SecPayload mw_unsecuredPayload_dummy := {
} // End of template mw_unsecuredPayload_dummy
* @desc Generic received template for SecuredMessage
template (present) SecPayload mw_signedPayload_dummy := {
} // End of template mw_signedPayload_dummy
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
} // End of group payloads
group dummyEciesEncryptedKey {
group dummyEciesEncryptedKeyRecv {
/**
* @desc Basic receive template for an ECIES-encrypted symmetric key as defined in IEEE Std 1363a 2004
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.9 EciesEncryptedKey
*/
template (present) EciesEncryptedKey mw_eciesEncryptedKey_dummy := {
symm_alg := ?,
symm_key_len := ?,
v := ?,
c := ?,
t := ?
} // End of template mw_eciesEncryptedKey_dummy
} // End of group dummyEciesEncryptedKeyRecv
} // End of group dummyEciesEncryptedKey
} // End of group dummyMessages
/**
* @desc Send/receive templates for security headers
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5 Specification of security header
*/
group messages {
/**
* @desc Send templates for security headers
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5 Specification of security header
*/
group messagesSend {
} // End of group messagesSend
/**
* @desc Receive templates for security headers
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5 Specification of security header
*/
group messagesRecv {
/**
* @desc Generic received template for SecuredMessage
*/
template (present) SecuredMessage mw_securedMessage(
template (present) HeaderFields p_header := ?,
template (present) TrailerFields p_trailer := ?
) := {
protocol_version := c_protocol_version,
security_profile := ?,
header_fields := p_header,
payload_fields := p_payloads,
trailer_fields := p_trailer
} // End of template mw_securedMessage
} // End of group messagesRecv
/**
* @desc Send/Receive templates for Payload
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.2 Payload
*/
* @desc Send templates for Payload
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.2 Payload
*/
group payloadsSend {
/**
* @desc Send template for 'signed_external' Payload
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.2 Payload
*/
template (value) SecPayload m_payload_signed_external := {
type_ := e_signed_external,
data := omit
} // End of template m_payload_signed_external
template (value) SecPayload m_data_payload(
in template (value) SecPayloadType p_type,
data := p_data
} // End of template m_data_payload
} // End of group payloadsSend
/**
* @desc Receive templates for Payload
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.2 Payload
*/
group payloadsRecv {
} // End of group payloadsRecv
/**
* @desc Send/Receive templates for HeaderField
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.4 HeaderField
*/
/**
* @desc Send templates for HeaderField
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.4 HeaderField
*/
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
group headerFieldsSend {
/**
* @desc Send template for HeaderField with generation time information
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.4 HeaderField
*/
template (value) HeaderField m_header_field_generation_time(
in template (value) Time64 p_generation_time
) := {
type_ := e_generation_time,
headerField := {
generation_time := p_generation_time
}
} // End of template m_header_field_generation_time
/**
* @desc Send template for HeaderField with generation time and standard deviation information
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.4 HeaderField
*/
template (value) HeaderField m_header_field_generation_time_with_standard_deviation(
in template (value) Time64WithStandardDeviation p_generation_time_with_standard_deviation
) := {
type_ := e_generation_time_standard_deviation,
headerField := {
generation_time_with_standard_deviation := p_generation_time_with_standard_deviation
}
} // End of template m_header_field_generation_time_with_standard_deviation
/**
* @desc Send template for HeaderField with expiration time information
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.4 HeaderField
*/
template (value) HeaderField m_header_field_expiry_time(
in template (value) Time32 p_expiry_time
) := {
type_ := e_expiration,
headerField := {
expiry_time := p_expiry_time
}
} // End of template m_header_field_expiry_time
/**
* @desc Send template for HeaderField with generation location information
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.4 HeaderField
*/
template (value) HeaderField m_header_field_generation_location(
in template (value) ThreeDLocation p_generation_location
) := {
type_ := e_generation_location,
headerField := {
generation_location := p_generation_location
}
} // End of template m_header_field_generation_location
/**
* @desc Send template for HeaderField with generation location information
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.4 HeaderField
*/
template (value) HeaderField m_header_field_digest(
in template (value) HashedId3 p_digest
) := {
type_ := e_request_unrecognized_certificate,
headerField := {
digests := { p_digest }
}
} // End of template m_header_field_digest
/**
* @desc Send template for HeaderField with generation location information
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.4 HeaderField
*/
template (value) HeaderField m_header_field_multiple_digests(
in template (value) HashedId3s p_digests
) := {
type_ := e_request_unrecognized_certificate,
headerField := {
digests := p_digests
}
} // End of template m_header_field_multiple_digests
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
/**
* @desc Send template for HeaderField with generation location information
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.4 HeaderField
*/
template (value) HeaderField m_header_field_message_type(
in template (value) UInt16 p_message_type
) := {
type_ := e_message_type,
headerField := {
message_type := p_message_type
}
} // End of template m_header_field_message_type
/**
* @desc GSend template for HeaderField with signer information
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.4 HeaderField
*/
template (value) HeaderField m_header_field_signer_info(
in template (value) SignerInfo p_signer
) := {
type_ := e_signer_info,
headerField := {
signer := p_signer
}
} // End of template m_header_field_signerInfo_signer_info
/**
* @desc Send template for HeaderField with signer information
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.4 HeaderField
*/
template (value) HeaderField m_header_field_recipient(
in template (value) RecipientInfo p_recipient
) := {
type_ := e_recipient_info,
headerField := {
recipients := { p_recipient }
}
} // End of template m_header_field_recipient
/**
* @desc Send template for HeaderField with signer information
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.4 HeaderField
*/
template (value) HeaderField m_header_field_multiple_recipients(
in template (value) RecipientInfos p_recipients
) := {
type_ := e_recipient_info,
headerField := {
recipients := p_recipients
}
} // End of template m_header_field_multiple_recipients
/**
* @desc Send template for HeaderField with signer information
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.4 HeaderField
*/
template (value) HeaderField m_header_field_enc_params(
in template (value) EncryptionParameters p_enc_params
) := {
type_ := e_encryption_parameters,
headerField := {
enc_params := p_enc_params
}
} // End of template m_header_field_enc_params
} // End of group headerFieldsSend
/**
* @desc Receive templates for HeaderField
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.4 HeaderField
*/
/**
* @desc Receive template for HeaderField with generation time information
* @param p_headerType Type id of the Header field
*/
template (present) HeaderField mw_header_field_any(HeaderFieldType p_headerType) := {
type_ := p_headerType,
headerField := ?
} // End of template mw_header_field_generation_time
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
/**
* @desc Receive template for HeaderField with generation time information
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.4 HeaderField
*/
template (present) HeaderField mw_header_field_generation_time(
in template (present) Time64 p_generation_time
) := {
type_ := e_generation_time,
headerField := {
generation_time := p_generation_time
}
} // End of template mw_header_field_generation_time
/**
* @desc Receive template for HeaderField with generation time and standard deviation information
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.4 HeaderField
*/
template (present) HeaderField mw_header_field_generation_time_with_standard_deviation(
in template (present) Time64WithStandardDeviation p_generation_time_with_standard_deviation
) := {
type_ := e_generation_time_standard_deviation,
headerField := {
generation_time_with_standard_deviation := p_generation_time_with_standard_deviation
}
} // End of template mw_header_field_generation_time_with_standard_deviation
/**
* @desc Receive template for HeaderField with expiration time information
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.4 HeaderField
*/
template (present) HeaderField mw_header_field_expiry_time(
in template (present) Time32 p_expiry_time
) := {
type_ := e_expiration,
headerField := {
expiry_time := p_expiry_time
}
} // End of template mw_header_field_expiry_time
/**
* @desc Receive template for HeaderField with generation location information
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.4 HeaderField
*/
template (present) HeaderField mw_header_field_generation_location(
in template (present) ThreeDLocation p_generation_location
) := {
type_ := e_generation_location,
headerField := {
generation_location := p_generation_location
}
} // End of template mw_header_field_generation_location
/**
* @desc Receive template for HeaderField with generation location information
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.4 HeaderField
*/
template (present) HeaderField mw_header_field_multiple_digests(
in template (present) HashedId3s p_digests
) := {
type_ := e_request_unrecognized_certificate,
headerField := {
digests := p_digests
}
} // End of template mw_header_field_multiple_digests
* @desc Receive template for HeaderField with signer information
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.4 HeaderField
*/
template (present) HeaderField mw_header_field_signer_info(
in template (present) SignerInfo p_signer
type_ := e_signer_info,
signer := p_signer
} // End of template mw_header_field_signerInfo_signer_info
/**
* @desc Receive template for HeaderField with signer information
* containing certificate
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.4 HeaderField
*/
template (present) HeaderField mw_header_field_signer_info_certificate := {
type_ := e_signer_info,
headerField := {
signer := {
type_ := e_certificate,
signerInfo := {
certificate := ?
}
}
} // End of template mw_header_field_signer_info_certificate
/**
* @desc Receive template for HeaderField with signer information
* containing certificate digest
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.4 HeaderField
*/
template (present) HeaderField mw_header_field_signer_info_digest := {
type_ := e_signer_info,
headerField := {
signer := {
type_ := e_certificate_digest_with_ecdsap256,
signerInfo := {
digest := ?
}
}
}
} // End of template mw_header_field_signer_info_digest
/**
* @desc Receive template for HeaderField with signer information
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.4 HeaderField
*/
template (value) HeaderField mw_header_field_multiple_recipients(
in template (value) RecipientInfos p_recipients
) := {
type_ := e_recipient_info,
headerField := {
recipients := p_recipients
} // End of template mw_header_field_multiple_recipients
/**
* @desc Receive template for HeaderField with signer information
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.4 HeaderField
*/
template (present) HeaderField mw_header_field_enc_params(
in template (present) EncryptionParameters p_enc_params
) := {
type_ := e_encryption_parameters,
headerField := {
enc_params := p_enc_params
}
} // End of template mw_header_field_enc_params
} // End of group headerFieldsRecv
} // End of group headerFields
/**
* @desc Send/Receive templates for TrailerField
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.6 TrailerField
*/
/**
* @desc Send template containing signature information used by the security layer after processing the payload
* @param p_signature The signature information
*/
template (value) TrailerField m_trailer_field_signature(
in template (value) Signature p_signature
) := {
type_ := e_signature,
trailerField := {
signature_ := p_signature
}
} // End of template m_trailer_field_dummy
/**
* @desc Receive template containing signature information used by the security layer after processing the payload
* @param p_signature The signature information
*/
template (present) TrailerField mw_trailer_field_signature(
in template (present) Signature p_signature
) := {
type_ := e_signature,
trailerField := {
signature_ := ?
}
} // End of template mw_trailer_field_dummy
} // End of group trailerFields
/**
* @desc Send/Receive templates for RecipientInfo
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.8 RecipientInfo
*/
group recipientInfo {
/**
* @desc Send template containing information for a message's recipient
* @param p_cert_id The recipient's certificate identifier
* @param p_pk_encryption The encryption type
* @param p_enc_key The encrypted key contained in an EciesEncryptedKey structure
*/
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
template (value) RecipientInfo m_recipientInfo_ecies_enc_key(
in template (value) HashedId8 p_cert_id,
in template (value) PublicKeyAlgorithm p_pk_encryption,
in template (value) EciesEncryptedKey p_enc_key
) := {
cert_id := p_cert_id,
pk_encryption := p_pk_encryption,
enc_key := {
enc_key := p_enc_key
} // End of field enc_key
} // End of template m_recipientInfo_ecies_enc_key
template (value) RecipientInfo m_recipientInfo_other_enc_key(
in template (value) HashedId8 p_cert_id,
in template (value) PublicKeyAlgorithm p_pk_encryption,
in template (value) octetstring p_enc_key_other
) := {
cert_id := p_cert_id,
pk_encryption := p_pk_encryption,
enc_key := {
enc_key_other := p_enc_key_other
} // End of field enc_key
} // End of template m_recipientInfo_other_enc_key
/**
* @desc Receive template containing information for a message's recipient
* @param p_cert_id The recipient's certificate identifier
* @param p_pk_encryption The encryption type
* @param p_enc_key The encrypted key contained in an EciesEncryptedKey structure
*/
template (present) RecipientInfo mw_recipientInfo_ecies_enc_key(
in template (present) HashedId8 p_cert_id,
in template (present) PublicKeyAlgorithm p_pk_encryption,
in template (present) EciesEncryptedKey p_enc_key
) := {
cert_id := p_cert_id,
pk_encryption := p_pk_encryption,
enc_key := {
enc_key := p_enc_key
} // End of field enc_key
} // End of template mw_recipientInfo_ecies_enc_key
} // End of group recipientInfo
/**
* @desc Send/Receive templates for EciesEncryptedKey
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.9 EciesEncryptedKey
*/
group eciesEncryptedKey {
/**
* @desc Send template for an ECIES-encrypted symmetric key as defined in IEEE Std 1363a 2004
* @param p_encrypted_key The encrypted (AES) key
* @param p_authentication_tag The authentication tag vector
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.9 EciesEncryptedKey
*/
template (value) EciesEncryptedKey m_eciesEncryptedKey_aesccm(
in template (value) EccPoint p_ecc_key,
in template (value) octetstring p_encrypted_key,
in template (value) Oct20 p_authentication_tag
) := {
symm_alg := e_aes_128_ccm,
symm_key_len := f_int2UInt32(1 + lengthof(p_encrypted_key)),
v := p_ecc_key,
c := p_encrypted_key,
t := p_authentication_tag
} // End of template m_eciesEncryptedKey_aesccm
/**
* @desc Receive template for an ECIES-encrypted symmetric key as defined in IEEE Std 1363a 2004
* @param p_encrypted_key The encrypted (AES) key
* @param p_authentication_tag The authentication tag vector
* @see Draft ETSI TS 103 097 V1.1.6 Clause 5.9 EciesEncryptedKey
*/
template (present) EciesEncryptedKey mw_eciesEncryptedKey_aesccm(
in template (present) EccPoint p_ecc_key,
in template (present) octetstring p_encrypted_key,
in template (present) Oct20 p_authentication_tag
) := {
symm_alg := e_aes_128_ccm,
symm_key_len := ?,
v := p_ecc_key,
c := p_encrypted_key,
t := p_authentication_tag
} // End of template mw_eciesEncryptedKey_aesccm
} // End of group eciesEncryptedKey
} // End of group messages
* @desc Dummy send/receive templates for certificates
* @see Draft ETSI TS 103 097 V1.1.6 Clause 6 Specification of certificate format
*/
group dummyCertifices {
/**
* @desc Dummy send templates for certificates
* @see Draft ETSI TS 103 097 V1.1.6 Clause 6 Specification of certificate format
*/
group dummyCertificesSend {
} // End of group dummyCertificesSend
/**
* @desc Dummy receive templates for certificates
* @see Draft ETSI TS 103 097 V1.1.6 Clause 6 Specification of certificate format
*/
group dummyCertificesRecv {
/**
* @desc Dummy receive certificate template
* @see Draft ETSI TS 103 097 V1.1.6 Clause 6.1 Certificate
*/
template (present) Certificate mw_certificate_dummy := {
version := c_certificate_version,
subject_info := ?,
subject_attributes := ?,
validity_restrictions := ?,
signature_ := ?
} // End of template mw_certificate_dummy
} // End of group dummyCertificesRecv
} // End of group dummyCertifices
/**
* @desc Send/receive templates for certificates
* @see Draft ETSI TS 103 097 V1.1.6 Clause 6 Specification of certificate format
*/
/**
* @desc Send templates for certificates
* @see Draft ETSI TS 103 097 V1.1.6 Clause 6 Specification of certificate format
*/
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
group certificatesSend {
/**
* @desc Send certificate template
* @member p_signer_info List of signer information
* @member p_subject_info The subject information
* @member p_subject_attributes List of subject attribute
* @member p_validity_restrictions List of validity restriction
* @member p_signature The signature
* @see Draft ETSI TS 103 097 V1.1.6 Clause 6.1 Certificate
*/
template (value) Certificate m_certificate(
in template (value) SignerInfos p_signer_infos,
in template (value) SubjectInfo p_subject_info,
in template (value) SubjectAttributes p_subject_attributes,
in template (value) ValidityRestrictions p_validity_restrictions,
in template (value) Signature p_signature
) := {
version := c_certificate_version,
signer_infos := p_signer_infos,
subject_info := p_subject_info,
subject_attributes := p_subject_attributes,
validity_restrictions := p_validity_restrictions,
signature_ := p_signature
} // End of template m_certificate
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
/**
* @desc Send templates for certificates
* @see Draft ETSI TS 103 097 V1.1.6 Clause 6.2 SubjectInfo
*/
group subjectInfo {
template (value) SubjectInfo m_subject_info_root_ca(
in template (value) Oct0to31 p_subject_name
) := {
subject_type := e_root_ca,
subject_name := p_subject_name
} // End of template m_subject_info_root_ca
template (value) SubjectInfo m_subject_info_revocation(
in template (value) Oct0to31 p_subject_name
) := {
subject_type := e_crl_signer,
subject_name := p_subject_name
} // End of template m_subject_info_revocation
} // End of group subjectInfo
group subjectAttribute {
template (value) SubjectAttribute m_subject_attribute_verification_key(
in template (value) PublicKey p_key
) := {
type_ := e_verification_key,
attribute := {
key := p_key
}
} // End of template m_subject_attribute_verification_key
template (value) SubjectAttribute m_subject_attribute_encryption_key(
) := {
type_ := e_encryption_key,
attribute := {
}
} // End of template m_subject_attribute_encryption_key
template (value) SubjectAttribute m_subject_attribute_reconstruction_value(
in template (value) EccPoint p_rv
) := {
type_ := e_reconstruction_value,
attribute := {
rv := p_rv
}
} // End of template m_subject_attribute_reconstruction_value
template (value) SubjectAttribute m_subject_attribute_assurance_level(
in template (value) SubjectAssurance p_assurance_level
) := {
type_ := e_assurance_level,
attribute := {
assurance_level := p_assurance_level
}
} // End of template m_subject_attribute_assurance_level
template (value) SubjectAttribute m_subject_attribute_its_aid_list(
in template (value) IntXs p_its_aid_list
) := {
attribute := {
its_aid_list := p_its_aid_list
}
} // End of template m_subject_attribute_its_aid_list
template (value) SubjectAttribute m_subject_attribute_its_aid_ssp_list(
in template (value) ItsAidSsps p_its_aid_ssp_list
) := {
type_ := e_its_aid_ssp_list,
attribute := {
its_aid_ssp_list := p_its_aid_ssp_list
}
} // End of template m_subject_attribute_its_aid_ssp_list
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
} // End of group subjectAttribute
group subjectAssurance {
template (value) SubjectAssurance m_subjectAssurance(
in template (value) Bit3 p_levels,
in template (value) Bit2 p_confidence
) := {
levels := p_levels,
reserved := '000'B,
confidence := p_confidence
} // End of template m_subjectAssurance
} // End of group subjectAssurance
group validityRestriction {
template (value) ValidityRestriction m_validity_restriction_time_end(
in template (value) Time32 p_end_validity
) := {
type_ := e_time_end,
validity := {
end_validity := p_end_validity
} // End of field validity
} // End of template m_validity_restriction_time_end
template (value) ValidityRestriction m_validity_restriction_time_start_and_end(
in template (value) Time32 p_start_validity,
in template (value) Time32 p_end_validity
) := {
type_ := e_time_start_and_end,
validity := {
time_start_and_end := {
start_validity := p_start_validity,
end_validity := p_end_validity
} // End of field time_start_and_end
} // End of field validity
} // End of template m_validity_restriction_time_start_and_end
template (value) ValidityRestriction m_validity_restriction_time_start_and_duration(
in template (value) Time32 p_start_validity,
in template (value) Duration p_duration
) := {
type_ := e_time_start_and_duration,
validity := {
time_start_and_duration := {
start_validity := p_start_validity,
duration := p_duration
} // End of field time_start_and_duration
} // End of field validity
} // End of template m_validity_restriction_time_start_and_duration
template (value) ValidityRestriction m_validity_restriction_region(
in template (value) GeographicRegion p_region
) := {
type_ := e_region,
validity := {
region := p_region
} // End of field validity
} // End of template m_validity_restriction_region
} // End of group validityRestriction
} // End of group certificatesSend
/**
* @desc Receive templates for certificates
* @see Draft ETSI TS 103 097 V1.1.6 Clause 6 Specification of certificate format
*/
template (present) Certificate mw_certificate(
in template (present) SignerInfo p_signer_info,
in template (present) SubjectInfo p_subject_info,
in template (present) SubjectAttributes p_subject_attributes,
in template (present) ValidityRestrictions p_validity_restrictions,
in template (present) Signature p_signature
) := {
version := c_certificate_version,
signer_infos := { p_signer_info },
subject_info := p_subject_info,
subject_attributes := p_subject_attributes,
validity_restrictions := p_validity_restrictions,
signature_ := p_signature
} // End of template m_certificate
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
group subjectInfo {
template (present) SubjectInfo mw_subject_info_root_ca(
in template (present) Oct0to31 p_subject_name
) := {
subject_type := e_root_ca,
subject_name := p_subject_name
} // End of template mw_subject_info_root_ca
template (present) SubjectInfo mw_subject_info_revocation(
in template (present) Oct0to31 p_subject_name
) := {
subject_type := e_crl_signer,
subject_name := p_subject_name
} // End of template mw_subject_info_revocation
} // End of group subjectInfo
group subjectAttribute {
template (present) SubjectAttribute mw_subject_attribute_verification_key(
in template (present) PublicKey p_key
) := {
type_ := e_verification_key,
attribute := {
key := p_key
}
} // End of template mw_subject_attribute_verification_key
template (present) SubjectAttribute mw_subject_attribute_encryption_key(
in template (present) EccPoint p_rv
) := {
type_ := e_verification_key,
attribute := {
rv := p_rv
}
} // End of template mw_subject_attribute_encryption_key
template (present) SubjectAttribute mw_subject_attribute_assurance_level(
in template (present) SubjectAssurance p_assurance_level
) := {
type_ := e_assurance_level,
attribute := {
assurance_level := p_assurance_level
}
} // End of template mw_subject_attribute_assurance_level
template (present) SubjectAttribute mw_subject_attribute_reconstruction_value(
in template (present) IntXs p_its_aid_list
) := {
type_ := e_reconstruction_value,
attribute := {
its_aid_list := p_its_aid_list
}
} // End of template mw_subject_attribute_reconstruction_value
} // End of group subjectAttribute
group subjectAssurance {
template (present) SubjectAssurance mw_subjectAssurance(
in template (present) Bit3 p_levels,
in template (present) Bit2 p_confidence
) := {
levels := p_levels,
reserved := '000'B,
confidence := p_confidence
} // End of template mw_subjectAssurance
} // End of group subjectAssurance
group validityRestriction {
template (present) ValidityRestriction mw_validity_restriction_time_end(
in template (present) Time32 p_end_validity
) := {
type_ := e_time_end,
validity := {
end_validity := p_end_validity
} // End of field validity
} // End of template mw_validity_restriction_time_end
template (present) ValidityRestriction mw_validity_restriction_time_start_and_end(
in template (present) Time32 p_start_validity,
in template (present) Time32 p_end_validity
) := {
type_ := e_time_start_and_end,
validity := {
time_start_and_end := {
start_validity := p_start_validity,
end_validity := p_end_validity
} // End of field time_start_and_end
} // End of field validity
} // End of template mw_validity_restriction_time_start_and_end
template (present) ValidityRestriction mw_validity_restriction_time_start_and_duration(
in template (present) Time32 p_start_validity,
in template (present) Duration p_duration
) := {
type_ := e_time_start_and_duration,
validity := {
time_start_and_duration := {
start_validity := p_start_validity,
duration := p_duration
} // End of field time_start_and_duration
} // End of field validity
} // End of template mw_validity_restriction_time_start_and_duration
template (present) ValidityRestriction mw_validity_restriction_region(
in template (present) GeographicRegion p_region
) := {
type_ := e_region,
validity := {
region := p_region
} // End of field validity
} // End of template mw_validity_restriction_region
} // End of group validityRestriction
} // End of group certificatesRecv
} // End of group certificates
/**
*/
group securityProfilesCAMsSend {
/**
* @desc Generic send template for Security profile for CAMs with several payloads
*/
template (value) SecuredMessage md_secureMessageCAMs_multiple_payloads(
in template (value) HeaderFields p_header_fields,
in template (value) SecPayloads p_payload_fields,
in template (value) TrailerFields p_trailer_fields
security_profile := c_security_profileCAMs,
header_fields := p_header_fields,
payload_fields := p_payload_fields,
trailer_fields := p_trailer_fields
} // End of template md_secureMessageCAMs
} // End of group securityProfilesCAMsSend
group securityProfilesCAMsRecv {
/**
* @desc Generic received template for Security profile for CAMs
*/
template (present) SecuredMessage mdw_secureMessageCAMs_dummy
modifies mw_securedMessage_dummy := {
security_profile := c_security_profileCAMs
} // End of template mdw_secureMessageCAMs_dummy
/**
* @desc Generic received template for SecuredMessage
*/
template (present) SecuredMessage mdw_securedMessageCAM(
template (present) HeaderFields p_header := ?,
template (present) SecPayloads p_payloads := ?,
template (present) TrailerFields p_trailer := ?
)
modifies mw_securedMessage := {
security_profile := c_security_profileCAMs
} // End of template mdw_securedMessageCAMs
/**
* @desc Generic received template for Security profile for CAMs
*/
template (present) SecuredMessage mdw_secureMessageCAMs
modifies mdw_secureMessageCAMs_dummy := { // TODO To be continued
header_fields := ?,
payload_fields := ?,
trailer_fields := ?
} // End of template mdw_secureMessageCAMs
} // End of group securityProfilesCAMsRecv
} // End of group securityProfilesCAMs
group denmSecurityProfiles {
} // End of group denmSecurityProfiles
group otherSecurityProfiles {
} // End of group otherSecurityProfiles
} // End of group securityProfiles
group utPrimitives {
} // End of group utPrimitives
/**
* @desc Function helpers for static_cast<> operation (to reduce warning in TTWB)
*/
group typeConverters {
/**
* @desc Convert integer into UInt8
*/
/**
* @desc Convert integer into UInt32
*/
function f_int2UInt32(in integer p_value) return UInt32 {
return p_value;
}