Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
ITS - Intelligent Transport Systems
ITS
Commits
65fa3f87
Commit
65fa3f87
authored
Nov 30, 2017
by
garciay
Browse files
Start Security support
Add Service Advertisement support
parent
06138be7
Changes
4
Hide whitespace changes
Inline
Side-by-side
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Functions.ttcn
View file @
65fa3f87
...
@@ -840,4 +840,12 @@ module ItsRSUsSimulator_Functions {
...
@@ -840,4 +840,12 @@ module ItsRSUsSimulator_Functions {
return
vc_sequenceNumber
;
return
vc_sequenceNumber
;
}
}
function
f_payload_template
(
in
integer
p_dest_port
,
in
integer
p_src_port
)
return
template
(
present
)
octetstring
{
template
(
present
)
octetstring
v_out
:=
int2oct
(
PICS_SREM_BTP_DESTINATION_PORT
,
2
)
&
int2oct
(
PICS_SREM_BTP_SOURCE_PORT
,
2
)
&
?
length
(
1
..
65535
);
return
v_out
}
}
// End of module ItsRSUsSimulator_Functions
}
// End of module ItsRSUsSimulator_Functions
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Templates.ttcn
View file @
65fa3f87
...
@@ -124,10 +124,7 @@ module ItsRSUsSimulator_Templates {
...
@@ -124,10 +124,7 @@ module ItsRSUsSimulator_Templates {
in
template
(
present
)
UInt16
p_seqNumber
:=
?
,
in
template
(
present
)
UInt16
p_seqNumber
:=
?
,
in
template
(
present
)
NextHeader
p_nextHeader
:=
?
in
template
(
present
)
NextHeader
p_nextHeader
:=
?
)
modifies
mw_geoNwBroadcastPacketWithNextHeader
:=
{
)
modifies
mw_geoNwBroadcastPacketWithNextHeader
:=
{
payload
:=
payload
:=
f_payload_template
(
PICS_SREM_BTP_DESTINATION_PORT
,
PICS_SREM_BTP_SOURCE_PORT
)
int2oct
(
PICS_SREM_BTP_DESTINATION_PORT
,
2
)
&
int2oct
(
PICS_SREM_BTP_SOURCE_PORT
,
2
)
&
'*'
O
}
}
/**
/**
...
@@ -141,10 +138,7 @@ module ItsRSUsSimulator_Templates {
...
@@ -141,10 +138,7 @@ module ItsRSUsSimulator_Templates {
in
template
(
present
)
LongPosVector
p_sourceLongPosVec
:=
?
,
in
template
(
present
)
LongPosVector
p_sourceLongPosVec
:=
?
,
in
template
(
value
)
NextHeader
p_nextHeader
in
template
(
value
)
NextHeader
p_nextHeader
)
modifies
mw_geoNwTsbPacketWithNextHeader
:=
{
)
modifies
mw_geoNwTsbPacketWithNextHeader
:=
{
payload
:=
payload
:=
f_payload_template
(
PICS_SREM_BTP_DESTINATION_PORT
,
PICS_SREM_BTP_SOURCE_PORT
)
int2oct
(
PICS_SREM_BTP_DESTINATION_PORT
,
2
)
&
int2oct
(
PICS_SREM_BTP_SOURCE_PORT
,
2
)
&
'?'
O
}
}
/**
/**
...
@@ -157,10 +151,7 @@ module ItsRSUsSimulator_Templates {
...
@@ -157,10 +151,7 @@ module ItsRSUsSimulator_Templates {
in
template
(
present
)
UInt16
p_seqNumber
:=
?
,
in
template
(
present
)
UInt16
p_seqNumber
:=
?
,
in
template
(
present
)
LongPosVector
p_sourceLongPosVec
:=
?
in
template
(
present
)
LongPosVector
p_sourceLongPosVec
:=
?
)
modifies
mw_geoNwTsbPacket
:=
{
)
modifies
mw_geoNwTsbPacket
:=
{
payload
:=
payload
:=
f_payload_template
(
PICS_DENM_BTP_DESTINATION_PORT
,
PICS_DENM_BTP_SOURCE_PORT
)
int2oct
(
PICS_DENM_BTP_DESTINATION_PORT
,
2
)
&
int2oct
(
PICS_DENM_BTP_SOURCE_PORT
,
2
)
&
'?'
O
}
// End of template mw_geoNwTsbPacketWithNextHeader_denm
}
// End of template mw_geoNwTsbPacketWithNextHeader_denm
/**
/**
...
@@ -175,10 +166,7 @@ module ItsRSUsSimulator_Templates {
...
@@ -175,10 +166,7 @@ module ItsRSUsSimulator_Templates {
in
template
(
present
)
NextHeader
p_nextHeader
,
in
template
(
present
)
NextHeader
p_nextHeader
,
in
template
(
present
)
CAM
p_cam
:=
?
in
template
(
present
)
CAM
p_cam
:=
?
)
modifies
mw_geoNwShbPacket
:=
{
)
modifies
mw_geoNwShbPacket
:=
{
payload
:=
payload
:=
f_payload_template
(
PICS_CAM_BTP_DESTINATION_PORT
,
PICS_CAM_BTP_SOURCE_PORT
)
int2oct
(
PICS_CAM_BTP_DESTINATION_PORT
,
2
)
&
int2oct
(
PICS_CAM_BTP_SOURCE_PORT
,
2
)
&
'?'
O
}
// End of template mw_geoNwShbPacketWithNextHeader_cam
}
// End of template mw_geoNwShbPacketWithNextHeader_cam
}
// End of group geoNetworkingTemplates
}
// End of group geoNetworkingTemplates
...
...
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_TypesAndValues.ttcn
View file @
65fa3f87
...
@@ -14,6 +14,7 @@ module ItsRSUsSimulator_TypesAndValues {
...
@@ -14,6 +14,7 @@ module ItsRSUsSimulator_TypesAndValues {
import
from
EVCSN_PDU_Descriptions
language
"ASN.1:1997"
all
;
import
from
EVCSN_PDU_Descriptions
language
"ASN.1:1997"
all
;
import
from
SSEM_PDU_Descriptions
language
"ASN.1:1997"
all
;
import
from
SSEM_PDU_Descriptions
language
"ASN.1:1997"
all
;
import
from
DSRC
language
"ASN.1:1997"
all
;
import
from
DSRC
language
"ASN.1:1997"
all
;
import
from
DSRC_REGION_noCircular
language
"ASN.1:1997"
all
;
import
from
EfcDsrcApplication
language
"ASN.1:1997"
all
;
import
from
EfcDsrcApplication
language
"ASN.1:1997"
all
;
// LibItsGeoNetworking
// LibItsGeoNetworking
...
...
ttcn/TestCodec/TestCodec_Certificates.ttcn
View file @
65fa3f87
...
@@ -37,6 +37,12 @@ module TestCodec_Certificates {
...
@@ -37,6 +37,12 @@ module TestCodec_Certificates {
signature_
:=
omit
signature_
:=
omit
}
// End of template m_etsiTs103097Certificate
}
// End of template m_etsiTs103097Certificate
template
(
value
)
IssuerIdentifier
m_issuerIdentifier_self
(
in
template
(
value
)
HashAlgorithm
p_self
)
:=
{
self_
:=
p_self
}
// End of template m_issuerIdentifier_self
template
(
value
)
IssuerIdentifier
m_issuerIdentifier_sha256AndDigest
(
template
(
value
)
IssuerIdentifier
m_issuerIdentifier_sha256AndDigest
(
in
template
(
value
)
HashedId8
p_sha256AndDigest
in
template
(
value
)
HashedId8
p_sha256AndDigest
)
:=
{
)
:=
{
...
@@ -53,11 +59,11 @@ module TestCodec_Certificates {
...
@@ -53,11 +59,11 @@ module TestCodec_Certificates {
in
template
(
value
)
CertificateId
p_id
,
in
template
(
value
)
CertificateId
p_id
,
in
template
(
value
)
HashedId3
p_cracaId
,
in
template
(
value
)
HashedId3
p_cracaId
,
in
template
(
value
)
CrlSeries
p_crlSeries
,
in
template
(
value
)
CrlSeries
p_crlSeries
,
in
template
(
value
)
ValidityPeriod
p_validityPeriod
,
in
template
(
value
)
SequenceOfPsidSsp
p_appPermissions
,
in
template
(
value
)
SequenceOfPsidSsp
p_appPermissions
,
in
template
(
value
)
SequenceOfPsidGroupPermissions
p_certIssuePermissions
,
in
template
(
value
)
SequenceOfPsidGroupPermissions
p_certIssuePermissions
,
in
template
(
value
)
SequenceOfPsidGroupPermissions
p_certRequestPermissions
,
in
template
(
value
)
SequenceOfPsidGroupPermissions
p_certRequestPermissions
,
in
template
(
value
)
VerificationKeyIndicator
p_verifyKeyIndicator
,
in
template
(
value
)
VerificationKeyIndicator
p_verifyKeyIndicator
,
in
template
(
omit
)
ValidityPeriod
p_validityPeriod
:=
omit
,
in
template
(
omit
)
GeographicRegion
p_region
:=
omit
,
in
template
(
omit
)
GeographicRegion
p_region
:=
omit
,
in
template
(
omit
)
SubjectAssurance
p_assuranceLevel
:=
omit
,
in
template
(
omit
)
SubjectAssurance
p_assuranceLevel
:=
omit
,
in
template
(
omit
)
PublicEncryptionKey
p_encryptionKey
:=
omit
in
template
(
omit
)
PublicEncryptionKey
p_encryptionKey
:=
omit
...
@@ -84,13 +90,13 @@ module TestCodec_Certificates {
...
@@ -84,13 +90,13 @@ module TestCodec_Certificates {
duration
:=
p_duration
duration
:=
p_duration
}
// End of template m_validity_period
}
// End of template m_validity_period
template
(
omit
)
PsidSsp
m_
psidSsp
(
template
(
omit
)
PsidSsp
m_
appPermissions
(
in
template
(
value
)
Psid
p_psid
,
in
template
(
value
)
Psid
p_psid
,
in
template
(
omit
)
ServiceSpecificPermissions
p_ssp
:=
omit
in
template
(
omit
)
ServiceSpecificPermissions
p_ssp
:=
omit
)
:=
{
)
:=
{
psid
:=
p_psid
,
psid
:=
p_psid
,
ssp
:=
p_ssp
ssp
:=
p_ssp
}
// End of template m_
psidSsp
}
// End of template m_
appPermissions
template
(
omit
)
PsidSspRange
m_psidSspRange
(
template
(
omit
)
PsidSspRange
m_psidSspRange
(
in
Psid
p_psid
,
in
Psid
p_psid
,
...
@@ -143,28 +149,40 @@ module TestCodec_Certificates {
...
@@ -143,28 +149,40 @@ module TestCodec_Certificates {
}
// End of template m_eccP256CurvePoint_compressed_y_0
}
// End of template m_eccP256CurvePoint_compressed_y_0
testcase
tc_certificate_1
()
runs
on
TCType
system
TCType
{
testcase
tc_certificate_1
()
runs
on
TCType
system
TCType
{
var
template
(
value
)
EtsiTs103097Certificate
v_cert
;
var
template
(
value
)
EtsiTs103097Certificate
v_cert
;
// ETSI TS 103 097 V1.3.1 Clause 6 Bullet 1
var
HashedId8
v_sha256AndDigest
:=
'0000000000000000'O
;
var
charstring
v_certId
:=
"STF528 Root Certificate"
;
var
HashedId3
v_cracaId
:=
'000000'O
;
var
HashAlgorithm
v_self
:=
sha256
;
// ETSI TS 103 097 V1.3.1 Clause 7.2.3 Root CA certificates Bullet 1
var
CrlSeries
v_crlSeries
:=
0
;
var
HashedId3
v_cracaId
:=
'000000'O
;
// ETSI TS 103 097 V1.3.1 Clause 6 Bullet 2
var
SequenceOfPsidSspRange
v_certIssuePermissions
:=
{
valueof
(
m_psidSspRange
(
1
))
};
var
CrlSeries
v_crlSeries
:=
0
;
// ETSI TS 103 097 V1.3.1 Clause 6 Bullet 3
var
SequenceOfPsidSspRange
v_certRequestPermissions
:=
{
valueof
(
m_psidSspRange
(
2
))
};
var
SequenceOfPsidSsp
v_appPermissions
:=
{
// ETSI TS 102 965 Table A.1: ETSI ITS standardized ITS-AIDs
valueof
(
m_appPermissions
(
36
,
{
bitmapSsp
:=
'001100110011'O
})),
valueof
(
m_appPermissions
(
37
,
{
bitmapSsp
:=
'001100110011'O
}))
};
var
SequenceOfPsidSspRange
v_certIssuePermissions
:=
{
// ETSI TS 103 097 V1.3.1 Clause 7.2.3 Root CA certificates Bullet 3
valueof
(
m_psidSspRange
(
1
))
// FIXME What is the content of certIssuePermissions?
};
var
SequenceOfPsidSspRange
v_certRequestPermissions
:=
{
// FIXME Could this componet be present? If yes, What is the content of certIssuePermissions?
valueof
(
m_psidSspRange
(
2
))
};
var
Oct32
v_compressed_y_0
:=
'0000000000000000000000000000000000000000000000000000000000000000'O
;
var
Oct32
v_compressed_y_0
:=
'0000000000000000000000000000000000000000000000000000000000000000'O
;
var
HashedId8
v_sha256AndDigest
;
var
bitstring
v_encMsg
;
var
bitstring
v_encMsg
;
var
integer
v_res
:=
0
;
var
integer
v_res
:=
0
;
var
bitstring
v_expEncMsg
:=
oct2bit
(
'310020'O
);
var
bitstring
v_expEncMsg
:=
oct2bit
(
'310020'O
);
// Generate Private/Public keys
var
Oct32
private_key
;
//f_generate_keys_pair(private_key, v_compressed_y_0, "compressed-y-0");
// Store Private key in binary format
//f_save_key(private_key);
// Fill Certificate template with the public key
v_cert
:=
m_etsiTs103097Certificate
(
v_cert
:=
m_etsiTs103097Certificate
(
m_issuerIdentifier_s
ha256AndDigest
(
v_sha256AndDigest
),
m_issuerIdentifier_s
elf
(
v_self
),
m_toBeSignedCertificate
(
m_toBeSignedCertificate
(
{
name
:=
"tc
_cert
ificate_1"
},
{
name
:=
v
_cert
Id
},
v_cracaId
,
v_cracaId
,
v_crlSeries
,
v_crlSeries
,
m_validity_period
(
0
,
{
milliseconds
:=
1000
}),
v_appPermissions
,
{
m_psidSsp
(
1
),
m_psidSsp
(
2
,
{
bitmapSsp
:=
'001100110011'O
})
},
{
{
m_PsidGroupPermissions
(
m_PsidGroupPermissions
(
m_subjectPermissions_explicit
(
m_subjectPermissions_explicit
(
...
@@ -184,21 +202,15 @@ module TestCodec_Certificates {
...
@@ -184,21 +202,15 @@ module TestCodec_Certificates {
)))
)))
)
)
);
);
// Encode it ==> Get octetstring
// Encode template
log
(
"Encode template "
,
valueof
(
v_cert
));
log
(
"Encode template "
,
valueof
(
v_cert
));
v_encMsg
:=
encvalue
(
v_cert
);
v_encMsg
:=
encvalue
(
v_cert
);
log
(
"Encoded message: "
,
bit2oct
(
v_encMsg
));
// Update v_sha256AndDigest
// Check result
//f_hashWithSha256(bit2oct(v_encMsg));
if
(
not
isbound
(
v_encMsg
))
{
//f_HashedId8FromSha256();
setverdict
(
fail
,
"Encoding failed!"
);
// Sign the certificate
stop
;
//f_signWithEcdsaNistp256WithSha256();
}
if
(
not
match
(
v_encMsg
,
v_expEncMsg
))
{
log
(
"Expected message: "
,
bit2oct
(
valueof
(
v_expEncMsg
)));
setverdict
(
fail
,
"Encoding failed, not the expected result!"
);
stop
;
}
setverdict
(
pass
,
"Encoding passed."
);
setverdict
(
pass
,
"Encoding passed."
);
}
// End of testcase tc_certificate_1
}
// End of testcase tc_certificate_1
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment