Newer
Older
* Clause 7.1.3 Generic security profile for other signed messages
*/
template (present) HeaderInfo mw_headerInfo_gn(
template (present) Psid p_psid := c_its_aid_GN,
template (present) Time64 p_generationTime := ?
) modifies mw_ieee1609Dot2_headerInfo := {
generationTime := p_generationTime,
expiryTime := *,
generationLocation := *,
encryptionKey := *,
inlineP2pcdRequest := *,
requestedCertificate := *
} // End of template mw_headerInfo_gn
template (omit) HeaderInfo m_headerInfo_inner_pki_request(
in template (value) Psid p_psid := c_its_aid_SCR,
in template (value) Time64 p_generationTime
) modifies m_headerInfo_gn := {};
template (omit) HeaderInfo m_headerInfo_inner_pki_response(
in template (value) Psid p_psid := c_its_aid_SCR,
in template (value) Time64 p_generationTime
) modifies m_headerInfo_gn := {};
template (present) HeaderInfo mw_headerInfo_inner_pki_request(
template (present) Psid p_psid := c_its_aid_SCR,
template (present) Time64 p_generationTime := ?
) modifies mw_headerInfo_gn := {};
template HeaderInfo mw_headerInfo_inner_pki_response(
template (present) Psid p_psid := c_its_aid_SCR,
template Time64 p_generationTime := *
) modifies mw_ieee1609Dot2_headerInfo := {
generationTime := p_generationTime,
expiryTime := omit,
generationLocation := omit
}
} // End of group headerFields
group signatures {
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
template (value) Signature m_signature_ecdsaNistP256(
in template (value) EcdsaP256Signature p_ecdsaNistP256Signature
) := {
ecdsaNistP256Signature := p_ecdsaNistP256Signature
} // End of template m_signature_ecdsaNistP256
template (present) Signature mw_signature_ecdsaNistP256(
template (present) EcdsaP256Signature p_ecdsaNistP256Signature := ?
) := {
ecdsaNistP256Signature := p_ecdsaNistP256Signature
} // End of template mw_signature_ecdsaNistP256
template (value) Signature m_signature_ecdsaBrainpoolP256r1(
in template (value) EcdsaP256Signature p_ecdsaBrainpoolP256r1Signature
) := {
ecdsaBrainpoolP256r1Signature := p_ecdsaBrainpoolP256r1Signature
} // End of template m_signature_ecdsaBrainpoolP256r1
template (present) Signature mw_signature_ecdsaBrainpoolP256r1(
template (present) EcdsaP256Signature p_ecdsaBrainpoolP256r1Signature := ?
) := {
ecdsaBrainpoolP256r1Signature := p_ecdsaBrainpoolP256r1Signature
} // End of template m_signature_ecdsaBrainpoolP256r1
template (value) Signature m_signature_ecdsaBrainpoolP384r1(
in template (value) EcdsaP384Signature p_ecdsaBrainpoolP384r1Signature
) := {
ecdsaBrainpoolP384r1Signature := p_ecdsaBrainpoolP384r1Signature
} // End of template m_signature_ecdsaBrainpoolP384r1
template (present) Signature mw_signature_ecdsaBrainpoolP384r1(
template (present) EcdsaP384Signature p_ecdsaBrainpoolP384r1Signature := ?
) := {
ecdsaBrainpoolP384r1Signature := p_ecdsaBrainpoolP384r1Signature
} // End of template mw_signature_ecdsaBrainpoolP384r1
template (value) EcdsaP256Signature m_ecdsaP256Signature(
in template (value) EccP256CurvePoint p_rSig,
in template (value) Oct32 p_sSig
) := {
rSig := p_rSig,
sSig := p_sSig
} // End of template m_ecdsaP256Signature
template (present) EcdsaP256Signature mw_ecdsaP256Signature(
template (present) EccP256CurvePoint p_rSig := ?,
template (present) Oct32 p_sSig := ?
) := {
rSig := p_rSig,
sSig := p_sSig
} // End of template mw_ecdsaP256Signature
template (value) EcdsaP384Signature m_ecdsaP384Signature(
in template (value) EccP384CurvePoint p_rSig,
in template (value) Oct48 p_sSig
) := {
rSig := p_rSig,
sSig := p_sSig
} // End of template m_ecdsaP384Signature
template (present) EcdsaP384Signature mw_ecdsaP384Signature(
template (present) EccP384CurvePoint p_rSig := ?,
template (present) Oct48 p_sSig := ?
) := {
rSig := p_rSig,
sSig := p_sSig
} // End of template mw_ecdsaP384Signature
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
template (value) EccP256CurvePoint m_eccP256CurvePoint_x_only(
in template (value) Oct32 p_x_only
) := {
x_only := p_x_only
} // End of template m_eccP256CurvePoint_x_only
template (present) EccP256CurvePoint mw_eccP256CurvePoint_x_only(
template (present) Oct32 p_x_only := ?
) := {
x_only := p_x_only
} // End of template mw_eccP256CurvePoint_x_only
template (value) EccP256CurvePoint m_eccP256CurvePoint_compressed_y_0(
in template (value) Oct32 p_compressed_y_0
) := {
compressed_y_0 := p_compressed_y_0
} // End of template m_eccP256CurvePoint_compressed_y_0
template (present) EccP256CurvePoint mw_eccP256CurvePoint_compressed_y_0(
template (present) Oct32 p_compressed_y_0 := ?
) := {
compressed_y_0 := p_compressed_y_0
} // End of template mw_eccP256CurvePoint_compressed_y_0
template (value) EccP256CurvePoint m_eccP256CurvePoint_compressed_y_1(
in template (value) Oct32 p_compressed_y_1
) := {
compressed_y_1 := p_compressed_y_1
} // End of template m_eccP256CurvePoint_compressed_y_1
template (present) EccP256CurvePoint mw_eccP256CurvePoint_compressed_y_1(
template (present) Oct32 p_compressed_y_1 := ?
) := {
compressed_y_1 := p_compressed_y_1
} // End of template mw_eccP256CurvePoint_compressed_y_1
template (value) EccP256CurvePoint m_eccP256CurvePoint_uncompressed(
in template (value) Oct32 p_x,
in template (value) Oct32 p_y
) := {
uncompressedP256 := {
x := p_x,
y := p_y
}
} // End of template m_eccP256CurvePoint_uncompressed
template (present) EccP256CurvePoint mw_eccP256CurvePoint_uncompressed(
template (present) Oct32 p_x := ?,
template (present) Oct32 p_y := ?
) := {
uncompressedP256 := {
x := p_x,
y := p_y
}
} // End of template mw_eccP256CurvePoint_uncompressed
template (value) EccP384CurvePoint m_eccP384CurvePoint_x_only(
in template (value) Oct48 p_x_only
) := {
x_only := p_x_only
} // End of template m_eccP384CurvePoint_x_only
template (present) EccP384CurvePoint mw_eccP384CurvePoint_x_only(
template (present) Oct48 p_x_only := ?
) := {
x_only := p_x_only
} // End of template mw_eccP384CurvePoint_x_only
template (value) EccP384CurvePoint m_eccP384CurvePoint_compressed_y_0(
in template (value) Oct48 p_compressed_y_0
) := {
compressed_y_0 := p_compressed_y_0
} // End of template m_eccP384CurvePoint_compressed_y_0
template (present) EccP384CurvePoint mw_eccP384CurvePoint_compressed_y_0(
template (present) Oct48 p_compressed_y_0 := ?
) := {
compressed_y_0 := p_compressed_y_0
} // End of template mw_eccP384CurvePoint_compressed_y_0
template (value) EccP384CurvePoint m_eccP384CurvePoint_compressed_y_1(
in template (value) Oct48 p_compressed_y_1
) := {
compressed_y_1 := p_compressed_y_1
} // End of template m_eccP384CurvePoint_compressed_y_1
template (present) EccP384CurvePoint mw_eccP384CurvePoint_compressed_y_1(
template (present) Oct48 p_compressed_y_1 := ?
) := {
compressed_y_1 := p_compressed_y_1
} // End of template mw_eccP384CurvePoint_compressed_y_1
template (value) EccP384CurvePoint m_eccP384CurvePoint_uncompressed(
in template (value) Oct48 p_x,
in template (value) Oct48 p_y
) := {
uncompressedP384 := {
x := p_x,
y := p_y
}
} // End of template m_eccP384CurvePoint_uncompressed
template (present) EccP384CurvePoint mw_eccP384CurvePoint_uncompressed(
template (present) Oct48 p_x := ?,
template (present) Oct48 p_y := ?
) := {
uncompressedP384 := {
x := p_x,
y := p_y
}
} // End of template mw_eccP384CurvePoint_uncompressed
} // End of group signatures
* @see Draft ETSI TS 103 097 V1.3.1 Clause 6 Specification of certificate format
* @desc Send certificate template of type explicit (signature is included)
* @member p_signer_info 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.3.1 Clause 6.1 Certificate
template (omit) EtsiTs103097Certificate m_etsiTs103097Certificate(
in template (value) IssuerIdentifier p_issuer,
in template (value) ToBeSignedCertificate p_toBeSigned,
in template (omit) Signature p_signature_ := omit
) := {
version := c_certificate_version,
type_ := explicit,
issuer := p_issuer,
toBeSigned := p_toBeSigned,
signature_ := p_signature_
} // End of template m_etsiTs103097Certificate
* @desc Send certificate template of type explicit (signature is included)
* @member p_signer_info 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.3.1 Clause 6.1 Certificate
template (present) EtsiTs103097Certificate mw_etsiTs103097Certificate(
template (present) IssuerIdentifier p_issuer := ?,
template (present) ToBeSignedCertificate p_toBeSigned := ?,
template (present) Signature p_signature_ := ?
) := {
version := c_certificate_version,
type_ := explicit,
issuer := p_issuer,
toBeSigned := p_toBeSigned,
signature_ := p_signature_
} // End of template mw_etsiTs103097Certificate
group issuerIdentifier {
template (value) IssuerIdentifier m_issuerIdentifier_self(
in template (value) HashAlgorithm p_self := sha256
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
) := {
self_ := p_self
} // End of template m_issuerIdentifier_self
template (present) IssuerIdentifier mw_issuerIdentifier_self(
template (present) HashAlgorithm p_self := ?
) := {
self_ := p_self
} // End of template mw_issuerIdentifier_self
template (value) IssuerIdentifier m_issuerIdentifier_sha256AndDigest( // FIXME Add opque field for unknown issuer?
in template (value) HashedId8 p_sha256AndDigest
) := {
sha256AndDigest := p_sha256AndDigest
} // End of template m_issuerIdentifier_sha256AndDigest
template (present) IssuerIdentifier mw_issuerIdentifier_sha256AndDigest( // FIXME Add opque field for unknown issuer?
template (present) HashedId8 p_sha256AndDigest := ?
) := {
sha256AndDigest := p_sha256AndDigest
} // End of template mw_issuerIdentifier_sha256AndDigest
template (value) IssuerIdentifier m_issuerIdentifier_sha384AndDigest(
in template (value) HashedId8 p_sha384AndDigest
) := {
sha384AndDigest := p_sha384AndDigest
} // End of template m_issuerIdentifier_sha384AndDigest
template (present) IssuerIdentifier mw_issuerIdentifier_sha384AndDigest(
template (present) HashedId8 p_sha384AndDigest := ?
) := {
sha384AndDigest := p_sha384AndDigest
} // End of template mw_issuerIdentifier_sha384AndDigest
} // End of group issuerIdentifier
group toBeSignedCertificate {
/**
* @desc Send template for ToBeSignedCertificate with CA restrictions
* @see ETSI TS 103 097 V1.3.1 Clause 7.2.3 Root CA certificate
*/
template (omit) ToBeSignedCertificate m_toBeSignedCertificate_ca(
in template (value) CertificateId p_id,
in template (value) SequenceOfPsidSsp p_appPermissions,
in template (value) SequenceOfPsidGroupPermissions p_certIssuePermissions,
in template (value) VerificationKeyIndicator p_verifyKeyIndicator,
in template (omit) ValidityPeriod p_validityPeriod := omit,
in template (omit) GeographicRegion p_region := omit,
in template (omit) SubjectAssurance p_assuranceLevel := omit,
in template (omit) PublicEncryptionKey p_encryptionKey := omit
cracaId := '000000'O, // ETSI TS 103 097 V1.3.1 Clause 6 Bullet 2
crlSeries := 0, // ETSI TS 103 097 V1.3.1 Clause 6 Bullet 3
validityPeriod := p_validityPeriod,
region := p_region,
assuranceLevel := p_assuranceLevel,
appPermissions := p_appPermissions,
certIssuePermissions := p_certIssuePermissions, // ETSI TS 103 097 V1.3.1 Clause 7.2.3 Root CA certificates Bullet 4
certRequestPermissions := omit,
canRequestRollover := omit,
encryptionKey := p_encryptionKey,
verifyKeyIndicator := p_verifyKeyIndicator
} // End of template m_toBeSignedCertificate_ca
/**
* @desc Receive template for ToBeSignedCertificate with CA restrictions
* @see ETSI TS 103 097 V1.3.1 Clause 7.2.3 Root CA certificate
*/
template ToBeSignedCertificate mw_toBeSignedCertificate_ca(
template (present) CertificateId p_id := ?,
template (present) SequenceOfPsidSsp p_appPermissions := ?,
template (present) SequenceOfPsidGroupPermissions p_certIssuePermissions := ?,
template (present) SequenceOfPsidGroupPermissions p_certRequestPermissions := ?,
template (present) VerificationKeyIndicator p_verifyKeyIndicator := ?,
template (present) ValidityPeriod p_validityPeriod := ?,
template GeographicRegion p_region := *,
template SubjectAssurance p_assuranceLevel := *,
template PublicEncryptionKey p_encryptionKey := *
validityPeriod := p_validityPeriod,
region := p_region,
assuranceLevel := p_assuranceLevel,
certIssuePermissions := p_certIssuePermissions,
certRequestPermissions := p_certRequestPermissions,
encryptionKey := p_encryptionKey,
verifyKeyIndicator := p_verifyKeyIndicator
} // End of template mw_toBeSignedCertificate
/**
* @desc Send template for ToBeSignedCertificate with Enrolment credential restrictions
* @see ETSI TS 103 097 V1.3.1 Clause 7.2.2 Enrolment credential
*/
template (omit) ToBeSignedCertificate m_toBeSignedCertificate_ea(
in template (value) CertificateId p_id,
in template (value) SequenceOfPsidSsp p_appPermissions,
in template (value) VerificationKeyIndicator p_verifyKeyIndicator,
in template (value) ValidityPeriod p_validityPeriod,
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
in template (omit) GeographicRegion p_region := omit,
in template (omit) SubjectAssurance p_assuranceLevel := omit,
in template (omit) PublicEncryptionKey p_encryptionKey := omit
) := {
id := p_id,
cracaId := '000000'O, // ETSI TS 103 097 V1.3.1 Clause 6 Bullet 2
crlSeries := 0, // ETSI TS 103 097 V1.3.1 Clause 6 Bullet 3
validityPeriod := p_validityPeriod,
region := p_region,
assuranceLevel := p_assuranceLevel,
appPermissions := p_appPermissions,
certIssuePermissions := omit,
certRequestPermissions := omit,
canRequestRollover := omit,
encryptionKey := p_encryptionKey,
verifyKeyIndicator := p_verifyKeyIndicator
} // End of template m_toBeSignedCertificate_ea
/**
* @desc Send template for ToBeSignedCertificate with Enrolment credential restrictions
* @see ETSI TS 103 097 V1.3.1 Clause 7.2.2 Enrolment credential
*/
template ToBeSignedCertificate mw_toBeSignedCertificate_ea(
template (present) CertificateId p_id := ?,
template (present) SequenceOfPsidSsp p_appPermissions := ?,
template (present) VerificationKeyIndicator p_verifyKeyIndicator := ?,
template (present) ValidityPeriod p_validityPeriod := ?,
template GeographicRegion p_region := *,
template SubjectAssurance p_assuranceLevel := *,
template PublicEncryptionKey p_encryptionKey := *
) := {
id := p_id,
cracaId := '000000'O, // ETSI TS 103 097 V1.3.1 Clause 6 Bullet 2
crlSeries := 0, // ETSI TS 103 097 V1.3.1 Clause 6 Bullet 3
validityPeriod := p_validityPeriod,
region := p_region,
assuranceLevel := p_assuranceLevel,
appPermissions := p_appPermissions,
certIssuePermissions := omit,
certRequestPermissions := omit,
canRequestRollover := omit,
encryptionKey := p_encryptionKey,
verifyKeyIndicator := p_verifyKeyIndicator
} // End of template mw_toBeSignedCertificate_ea
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
template (omit) ToBeSignedCertificate m_toBeSignedCertificate_ec(
in template (value) CertificateId p_id,
in template (value) SequenceOfPsidSsp p_appPermissions,
in template (value) VerificationKeyIndicator p_verifyKeyIndicator,
in template (value) ValidityPeriod p_validityPeriod,
in template (omit) GeographicRegion p_region := omit,
in template (omit) SubjectAssurance p_assuranceLevel := omit,
in template (omit) PublicEncryptionKey p_encryptionKey := omit
) := {
id := p_id,
cracaId := '000000'O, // ETSI TS 103 097 V1.3.1 Clause 6 Bullet 2
crlSeries := 0, // ETSI TS 103 097 V1.3.1 Clause 6 Bullet 3
validityPeriod := p_validityPeriod,
region := p_region,
assuranceLevel := p_assuranceLevel,
appPermissions := p_appPermissions,
certIssuePermissions := omit,
certRequestPermissions := omit,
canRequestRollover := omit,
encryptionKey := p_encryptionKey,
verifyKeyIndicator := p_verifyKeyIndicator
} // End of template m_toBeSignedCertificate_ec
/**
* @desc Send template for ToBeSignedCertificate with Enrolment credential restrictions
* @see ETSI TS 103 097 V1.3.1 Clause 7.2.2 Enrolment credential
*/
template ToBeSignedCertificate mw_toBeSignedCertificate_ec(
template (present) CertificateId p_id := ?,
template (present) SequenceOfPsidSsp p_appPermissions := ?,
template (present) VerificationKeyIndicator p_verifyKeyIndicator := ?,
template (present) ValidityPeriod p_validityPeriod := ?,
template GeographicRegion p_region := *,
template SubjectAssurance p_assuranceLevel := *,
template PublicEncryptionKey p_encryptionKey := *
) := {
id := p_id,
cracaId := '000000'O, // ETSI TS 103 097 V1.3.1 Clause 6 Bullet 2
crlSeries := 0, // ETSI TS 103 097 V1.3.1 Clause 6 Bullet 3
validityPeriod := p_validityPeriod,
region := p_region,
assuranceLevel := p_assuranceLevel,
appPermissions := p_appPermissions,
certIssuePermissions := omit,
certRequestPermissions := omit,
canRequestRollover := omit,
encryptionKey := p_encryptionKey,
verifyKeyIndicator := p_verifyKeyIndicator
} // End of template mw_toBeSignedCertificate_ec
/**
* @desc Send template for ToBeSignedCertificate with Authorization authority restrictions
* @see ETSI TS 103 097 V1.3.1 Clause 7.2.4 Subordinate certification authority certificates
*/
template (omit) ToBeSignedCertificate m_toBeSignedCertificate_aa(
in template (value) CertificateId p_id,
in template (value) SequenceOfPsidSsp p_appPermissions,
in template (value) VerificationKeyIndicator p_verifyKeyIndicator,
in template (value) ValidityPeriod p_validityPeriod,
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
in template (omit) GeographicRegion p_region := omit,
in template (omit) SubjectAssurance p_assuranceLevel := omit,
in template (omit) PublicEncryptionKey p_encryptionKey := omit
) := {
id := p_id,
cracaId := '000000'O, // ETSI TS 103 097 V1.3.1 Clause 6 Bullet 2
crlSeries := 0, // ETSI TS 103 097 V1.3.1 Clause 6 Bullet 3
validityPeriod := p_validityPeriod,
region := p_region,
assuranceLevel := p_assuranceLevel,
appPermissions := p_appPermissions,
certIssuePermissions := omit,
certRequestPermissions := omit,
canRequestRollover := omit,
encryptionKey := p_encryptionKey,
verifyKeyIndicator := p_verifyKeyIndicator
} // End of template m_toBeSignedCertificate_aa
/**
* @desc Send template for ToBeSignedCertificate with Authorization authority restrictions
* @see ETSI TS 103 097 V1.3.1 Clause 7.2.4 Subordinate certification authority certificates
*/
template ToBeSignedCertificate mw_toBeSignedCertificate_aa(
template (present) CertificateId p_id := ?,
template (present) SequenceOfPsidSsp p_appPermissions := ?,
template (present) VerificationKeyIndicator p_verifyKeyIndicator := ?,
template (present) ValidityPeriod p_validityPeriod := ?,
template GeographicRegion p_region := *,
template SubjectAssurance p_assuranceLevel := *,
template PublicEncryptionKey p_encryptionKey := *
) := {
id := p_id,
cracaId := '000000'O, // ETSI TS 103 097 V1.3.1 Clause 6 Bullet 2
crlSeries := 0, // ETSI TS 103 097 V1.3.1 Clause 6 Bullet 3
validityPeriod := p_validityPeriod,
region := p_region,
assuranceLevel := p_assuranceLevel,
appPermissions := p_appPermissions,
certIssuePermissions := omit,
certRequestPermissions := omit,
canRequestRollover := omit,
encryptionKey := p_encryptionKey,
verifyKeyIndicator := p_verifyKeyIndicator
} // End of template mw_toBeSignedCertificate_aa
template (present) CertificateId mw_certificateId_name(
template (present) charstring p_name := ?
) := {
name := p_name
} // End of template mw_certificateId_name
template CertificateId mw_certificateId_none := {
none_ := NULL
} // End of template mw_certificateId_none
/**
* @desc Send template for ToBeSignedCertificate with AT restrictions
* @see ETSI TS 103 097 V1.3.1 Clause 7.2.1 Authorization tickets
*/
template (omit) ToBeSignedCertificate m_toBeSignedCertificate_at(
in template (value) SequenceOfPsidSsp p_appPermissions,
in template (value) VerificationKeyIndicator p_verifyKeyIndicator,
in template (omit) ValidityPeriod p_validityPeriod := omit,
in template (omit) GeographicRegion p_region := omit,
in template (omit) SubjectAssurance p_assuranceLevel := omit,
in template (omit) PublicEncryptionKey p_encryptionKey := omit
) := {
id := { none_ := NULL },
cracaId := '000000'O, // ETSI TS 103 097 V1.3.1 Clause 6 Bullet 2
crlSeries := 0, // ETSI TS 103 097 V1.3.1 Clause 6 Bullet 3
validityPeriod := p_validityPeriod,
region := p_region,
assuranceLevel := p_assuranceLevel,
appPermissions := p_appPermissions,
certIssuePermissions := omit,
canRequestRollover := omit,
encryptionKey := p_encryptionKey,
verifyKeyIndicator := p_verifyKeyIndicator
} // End of template m_toBeSignedCertificate_at
/**
* @desc Send template for ToBeSignedCertificate with AT restrictions
* @see ETSI TS 103 097 V1.3.1 Clause 7.2.1 Authorization tickets
*/
template ToBeSignedCertificate mw_toBeSignedCertificate_at(
template (present) SequenceOfPsidSsp p_appPermissions := ?,
template (present) VerificationKeyIndicator p_verifyKeyIndicator := ?,
template (present) ValidityPeriod p_validityPeriod := ?,
template GeographicRegion p_region := *,
template SubjectAssurance p_assuranceLevel := *,
template PublicEncryptionKey p_encryptionKey := *
) := {
id := { none_ := NULL },
cracaId := '000000'O, // ETSI TS 103 097 V1.3.1 Clause 6 Bullet 2
crlSeries := 0, // ETSI TS 103 097 V1.3.1 Clause 6 Bullet 3
validityPeriod := p_validityPeriod,
region := p_region,
assuranceLevel := p_assuranceLevel,
appPermissions := p_appPermissions,
certIssuePermissions := omit,
certRequestPermissions := omit,
canRequestRollover := omit,
encryptionKey := p_encryptionKey,
verifyKeyIndicator := p_verifyKeyIndicator
} // End of template mw_toBeSignedCertificate_at
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
template (value) VerificationKeyIndicator m_verificationKeyIndicator_verificationKey(
in template (value) PublicVerificationKey p_verificationKey
) := {
verificationKey := p_verificationKey
} // End of template m_verificationKeyIndicator_verificationKey
template (present) VerificationKeyIndicator mw_verificationKeyIndicator_verificationKey(
template (present) PublicVerificationKey p_verificationKey := ?
) := {
verificationKey := p_verificationKey
} // End of template mw_verificationKeyIndicator_verificationKey
template (value) VerificationKeyIndicator m_verificationKeyIndicator_reconstructionValue(
in template (value) EccP256CurvePoint p_reconstructionValue
) := {
reconstructionValue := p_reconstructionValue
} // End of template m_verificationKeyIndicator_reconstructionValue
template (present) VerificationKeyIndicator mw_verificationKeyIndicator_reconstructionValue(
template (present) EccP256CurvePoint p_reconstructionValue := ?
) := {
reconstructionValue := p_reconstructionValue
} // End of template mw_verificationKeyIndicator_reconstructionValue
template (value) PublicVerificationKey m_publicVerificationKey_ecdsaNistP256(
in template (value) EccP256CurvePoint p_ecdsaNistP256
) := {
ecdsaNistP256 := p_ecdsaNistP256
} // End of template m_publicVerificationKey_ecdsaNistP256
template (present) PublicVerificationKey mw_publicVerificationKey_ecdsaNistP256(
template (present) EccP256CurvePoint p_ecdsaNistP256 := ?
) := {
ecdsaNistP256 := p_ecdsaNistP256
} // End of template mw_publicVerificationKey_ecdsaNistP256
template (value) PublicVerificationKey m_publicVerificationKey_ecdsaBrainpoolP256r1(
in template (value) EccP256CurvePoint p_ecdsaBrainpoolP256r1
) := {
ecdsaBrainpoolP256r1 := p_ecdsaBrainpoolP256r1
} // End of template m_publicVerificationKey_ecdsaBrainpoolP256r1
template (present) PublicVerificationKey mw_publicVerificationKey_ecdsaBrainpoolP256r1(
template (present) EccP256CurvePoint p_ecdsaBrainpoolP256r1 := ?
) := {
ecdsaBrainpoolP256r1 := p_ecdsaBrainpoolP256r1
} // End of template mw_publicVerificationKey_ecdsaBrainpoolP256r1
template (value) PublicVerificationKey m_publicVerificationKey_ecdsaBrainpoolP384r1(
in template (value) EccP384CurvePoint p_ecdsaBrainpoolP384r1
) := {
ecdsaBrainpoolP384r1 := p_ecdsaBrainpoolP384r1
} // End of template m_publicVerificationKey_ecdsaBrainpoolP384r1
template (present) PublicVerificationKey mw_publicVerificationKey_ecdsaBrainpoolP384r1(
template (present) EccP384CurvePoint p_ecdsaBrainpoolP384r1 := ?
) := {
ecdsaBrainpoolP384r1 := p_ecdsaBrainpoolP384r1
} // End of template mw_publicVerificationKey_ecdsaBrainpoolP384r1
} // End of group verificationKeys
group encryptionKey {
template (value) PublicEncryptionKey m_encryptionKey(
in template (value) SymmAlgorithm p_supportedSymmAlg := aes128Ccm,
in template (value) BasePublicEncryptionKey p_publicKey
) := {
supportedSymmAlg := p_supportedSymmAlg,
publicKey := p_publicKey
} // End of template m_encryptionKey
template (present) PublicEncryptionKey mw_encryptionKey(
template (present) SymmAlgorithm p_supportedSymmAlg := aes128Ccm,
template (present) BasePublicEncryptionKey p_publicKey := ?
) := {
supportedSymmAlg := p_supportedSymmAlg,
publicKey := p_publicKey
} // End of template mw_encryptionKey
template (value) BasePublicEncryptionKey m_publicEncryptionKey_eciesNistP256(
in template (value) EccP256CurvePoint p_eciesNistP256
) := {
eciesNistP256 := p_eciesNistP256
} // End of template m_publicEncryptionKey_eciesNistP256
template (present) BasePublicEncryptionKey mw_publicEncryptionKey_eciesNistP256(
template (present) EccP256CurvePoint p_eciesNistP256 := ?
) := {
eciesNistP256 := p_eciesNistP256
} // End of template mw_publicEncryptionKey_eciesNistP256
template (value) BasePublicEncryptionKey m_publicEncryptionKey_eciesBrainpoolP256r1(
in template (value) EccP256CurvePoint p_eciesBrainpoolP256r1
) := {
eciesBrainpoolP256r1 := p_eciesBrainpoolP256r1
} // End of template m_publicEncryptionKey_eciesBrainpoolP256r1
template (present) BasePublicEncryptionKey mw_publicEncryptionKey_eciesBrainpoolP256r1(
template (present) EccP256CurvePoint p_eciesBrainpoolP256r1 := ?
) := {
eciesBrainpoolP256r1 := p_eciesBrainpoolP256r1
} // End of template mw_publicEncryptionKey_eciesBrainpoolP256r1
} // End of group encryptionKey
group appPermissions {
template (omit) PsidSsp m_appPermissions(
in template (value) Psid p_psid,
in template (omit) ServiceSpecificPermissions p_ssp := omit
) := {
psid := p_psid,
ssp := p_ssp
} // End of template m_appPermissions
template (present) PsidSsp mw_appPermissions(
template (present) Psid p_psid := ?,
template ServiceSpecificPermissions p_ssp := *
) := {
psid := p_psid,
ssp := p_ssp
} // End of template mw_appPermissions
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
template (value) PsidSspRange m_psidSspRange(
in Psid p_psid,
in template (value) SspRange p_sspRange := m_SspRange_all
) := {
psid := p_psid,
sspRange := p_sspRange
} // End of template m_psidSspRange
template (value) SspRange m_SspRange_all := {
all_ := NULL
} // End of template m_SspRange_all
template (value) SspRange m_SspRange_opaque(
in template (value) SequenceOfOctetString p_opaque
) := {
opaque := p_opaque
} // End of template m_SspRange_opaque
template (value) SspRange m_SspRange_bitmapSspRange(
in template (value) BitmapSspRange p_bitmapSspRange
) := {
bitmapSspRange := p_bitmapSspRange
} // End of template m_SspRange_bitmapSspRange
template (value) PsidGroupPermissions m_psidGroupPermissions(
in template (value) SubjectPermissions p_subjectPermissions,
in integer p_minChainLength := 1,
in integer p_chainLengthRange := 0,
in EndEntityType p_eeType := oct2bit('00'O)
) := {
subjectPermissions := p_subjectPermissions,
minChainLength := p_minChainLength,
chainLengthRange := p_chainLengthRange,
eeType := p_eeType
} // End of template m_psidGroupPermissions
template (present) PsidGroupPermissions mw_psidGroupPermissions(
template (present) SubjectPermissions p_subjectPermissions := ?,
integer p_minChainLength := 1,
integer p_chainLengthRange := 0,
template (present) EndEntityType p_eeType := ?
) := {
subjectPermissions := p_subjectPermissions,
minChainLength := p_minChainLength,
chainLengthRange := p_chainLengthRange,
eeType := p_eeType
} // End of template mw_psidGroupPermissions
template (value) SubjectPermissions m_subjectPermissions_explicit(
in template (value) SequenceOfPsidSspRange p_certIssuePermissions
) := {
explicit := p_certIssuePermissions
} // End of template m_subjectPermissions_explicit
template (present) SubjectPermissions mw_subjectPermissions_explicit(
template (present) SequenceOfPsidSspRange p_certIssuePermissions := ?
) := {
explicit := p_certIssuePermissions
} // End of template mw_subjectPermissions_explicit
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
template (value) SubjectPermissions m_subjectPermissions_all := {
all_ := NULL
} // End of template m_subjectPermissions_all
} // End of group appPermissions
group validityRestriction {
template (value) ValidityPeriod m_validityPeriod(
in template (value) Time32 p_start_,
in template (value) Duration p_duration
) := {
start_ := p_start_,
duration := p_duration
} // End of template m_validityPeriod
template (present) ValidityPeriod mw_validityPeriod(
template (present) Time32 p_start_ := ?,
template (present) Duration p_duration := ?
) := {
start_ := p_start_,
duration := p_duration
} // End of template mw_validityPeriod
* @desc Send template for Duration (in seconds)
* @param p_duration The duration value
* @see Draft ETSI TS 103 097 V1.3.1 Clause 4.2.18 Duration
template (value) Duration m_duration_in_seconds(
in template (value) Int16 p_duration
) := {
seconds := p_duration
} // End of template m_duration_in_seconds
/**
* @desc Send template for Duration (in hours)
* @param p_duration The duration value
* @see Draft ETSI TS 103 097 V1.3.1 Clause 4.2.18 Duration
*/
template (value) Duration m_duration_in_hours(
in template (value) Int16 p_duration
) := {
hours := p_duration
} // End of template m_duration_in_hours
* @desc Receive template for Duration (in seconds)
* @param p_duration The duration value
* @see Draft ETSI TS 103 097 V1.3.1 Clause 4.2.18 Duration
template (present) Duration mw_duration_in_seconds(
template (present) Int16 p_duration := ?
) := {
seconds := p_duration
} // End of template mw_duration_in_seconds
template (value) Duration m_duration_years(
in template (value) Uint16 p_years
) := {
years := p_years
} // End of template m_duration_years
template (present) Duration mw_duration_years(
template (present) Uint16 p_years := ?
) := {
years := p_years
} // End of template mw_duration_years
} // End of group validityRestriction
group sspCam {
group sspCamSend {
template (value) SspCAM m_sspCAMContainer_sign_all := {
cenDsrcTollingZone := '1'B,
publicTransport := '1'B,
specialTransport := '1'B,
dangerousGoods := '1'B,
roadwork := '1'B,
rescue := '1'B,
emergency := '1'B,
safetyCar := '1'B,
closedLanes := '1'B,
requestForRightOfWay := '1'B,
requestForFreeCrossingAtATrafficLight := '1'B,
noPassing := '1'B,
noPassingForTrucks := '1'B,
speedLimit := '1'B,
} // End of template m_sspCAMContainer_sign_all
template (value) SspCAM m_sspCAMContainer_vehicle
modifies m_sspCAMContainer_sign_all := {
cenDsrcTollingZone := '0'B,
closedLanes := '0'B,
noPassing := '0'B,
noPassingForTrucks := '0'B,
speedLimit := '0'B
} // End of template m_sspCAMContainer_vehicle
template (value) ServiceSpecificPermissions m_sspCAM(
in template (value) BitmapSsp p_bitmapSsp
) := {
bitmapSsp := p_bitmapSsp
} // End of template m_sspCAM
} // End of group sspCamSend
group sspCamRecv {
template (present) SspCAM mw_sspCAMContainer_dummy := {
cenDsrcTollingZone := ?,
publicTransport := ?,
specialTransport := ?,
dangerousGoods := ?,
roadwork := ?,
rescue := ?,
emergency := ?,
safetyCar := ?,
closedLanes := ?,
requestForRightOfWay := ?,
requestForFreeCrossingAtATrafficLight := ?,
noPassing := ?,
noPassingForTrucks := ?,
speedLimit := ?,
} // End of template mw_sspCAMContainer_dummy
template (present) ServiceSpecificPermissions mw_sspCAM_dummy := {
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
} // End of group sspCamRecv
} // End of group sspCam
group sspDenm {
group sspDenmSend {
template (value) SspDENM m_sspDENMContainer_sign_all := {
trafficCondition := '1'B,
accident := '1'B,
roadworks := '1'B,
adverseWeatherCondition_Adhesion := '1'B,
hazardousLocation_SurfaceCondition := '1'B,
hazardousLocation_ObstacleOnTheRoad := '1'B,
hazardousLocation_AnimalOnTheRoad := '1'B,
humanPresenceOnTheRoad := '1'B,
wrongWayDriving := '1'B,
rescueAndRecoveryWorkInProgress := '1'B,
adverseWeatherCondition_ExtremeWeatherCondition := '1'B,
adverseWeatherCondition_Visibility := '1'B,
adverseWeatherCondition_Precipitation := '1'B,
slowVehicle := '1'B,
dangerousEndOfQueue := '1'B,
vehicleBreakdown := '1'B,
postCrash := '1'B,
humanProblem := '1'B,
stationaryVehicle := '1'B,
emergencyVehicleApproaching := '1'B,
hazardousLocation_DangerousCurve := '1'B,
collisionRisk := '1'B,
signalViolation := '1'B,
dangerousSituation := '1'B,
reserved := '00000000'B
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
} // End of template m_sspDENMContainer_sign_all
template (value) SspDENM m_sspDENMContainer_vehicle
modifies m_sspDENMContainer_sign_all:= {
trafficCondition := '0'B,
accident := '0'B,
roadworks := '0'B,
adverseWeatherCondition_Adhesion := '0'B,
hazardousLocation_SurfaceCondition := '0'B,
hazardousLocation_ObstacleOnTheRoad := '0'B,
hazardousLocation_AnimalOnTheRoad := '0'B,
slowVehicle := '0'B,
dangerousEndOfQueue := '0'B,
vehicleBreakdown := '0'B,
stationaryVehicle := '0'B
} // End of template m_sspDENMContainer_sign_all
template (value) SspDENM m_sspDENMContainer_roadSideUnit
modifies m_sspDENMContainer_sign_all:= {
trafficCondition := '0'B,
accident := '0'B,
roadworks := '0'B,
adverseWeatherCondition_Adhesion := '0'B,
hazardousLocation_SurfaceCondition := '0'B,
hazardousLocation_ObstacleOnTheRoad := '0'B,
hazardousLocation_AnimalOnTheRoad := '0'B,
humanPresenceOnTheRoad := '0'B,
wrongWayDriving := '0'B,
rescueAndRecoveryWorkInProgress := '0'B,
adverseWeatherCondition_ExtremeWeatherCondition := '0'B,
adverseWeatherCondition_Visibility := '0'B,
adverseWeatherCondition_Precipitation := '0'B,
postCrash := '0'B,
humanProblem := '0'B,
stationaryVehicle := '0'B,
hazardousLocation_DangerousCurve := '0'B,
collisionRisk := '0'B,
dangerousSituation := '0'B
} // End of template m_sspDENMContainer_roadSideUnit
template (value) ServiceSpecificPermissions m_sspDENM(
in template (value) BitmapSsp p_bitmapSsp
) := {
bitmapSsp := p_bitmapSsp
} // End of template m_sspDENM