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
98c694df
Commit
98c694df
authored
Oct 10, 2018
by
garciay
Browse files
STF545: Execute first EA tests
parent
0cd5a90b
Changes
1
Hide whitespace changes
Inline
Side-by-side
ttcn/TestCodec/TestCodec_Pki.ttcn
View file @
98c694df
...
...
@@ -123,7 +123,7 @@ module TestCodec_Pki {
var
InnerEcRequest
v_inner_ec_request
;
var
Ieee1609Dot2Data
v_inner_ec_request_signed_for_pop
;
var
bitstring
v_inner_ec_request_signed_for_pop_msg
;
var
Ieee1609Dot2
Data
v_dec_inner_ec_request_signed_for_pop
;
var
EtsiTs102941
Data
v_dec_inner_ec_request_signed_for_pop
;
var
InnerEcRequest
v_dec_inner_ec_request
;
var
bitstring
v_dec_inner_ec_request_msg
;
var
bitstring
v_tbs
;
...
...
@@ -207,7 +207,8 @@ module TestCodec_Pki {
stop
;
}
// Extract InnerEcRequest
v_dec_inner_ec_request_msg
:=
oct2bit
(
v_dec_inner_ec_request_signed_for_pop
.
content
.
signedData
.
tbsData
.
payload
.
data
.
content
.
unsecuredData
);
log
(
"v_dec_inner_ec_request_signed_for_pop.content.enrolmentRequest= "
,
v_dec_inner_ec_request_signed_for_pop
.
content
.
enrolmentRequest
);
v_dec_inner_ec_request_msg
:=
oct2bit
(
v_dec_inner_ec_request_signed_for_pop
.
content
.
enrolmentRequest
.
content
.
signedData
.
tbsData
.
payload
.
data
.
content
.
unsecuredData
);
v_result
:=
decvalue
(
v_dec_inner_ec_request_msg
,
v_dec_inner_ec_request
);
if
(
v_result
==
0
)
{
log
(
"Decode InnerEcRequest: "
,
v_dec_inner_ec_request
);
...
...
@@ -369,6 +370,9 @@ module TestCodec_Pki {
var
bitstring
v_ieee1609dot2_signed_and_encrypted_data_msg
;
var
Ieee1609Dot2Data
v_dec_ieee1609dot2_signed_and_encrypted_data
;
var
Ieee1609Dot2Data
v_dec_ieee1609dot2_signed_data
;
var
bitstring
v_dec_inner_ec_response_msg
;
var
EtsiTs102941Data
v_dec_inner_ec_response
;
var
integer
v_result
;
if
(
not
(
PICS_SEC_FIXED_KEYS
))
{
...
...
@@ -427,7 +431,7 @@ module TestCodec_Pki {
// Build secured PKI message
v_enc_msg
:=
encvalue
(
m_etsiTs102941Data_inner_ec_response
(
v_inner_ec_response
));
if
(
f_build_pki_secured_message
(
v_private_key
,
v_publicKeyCompressed
,
v_compressedMode
,
bit2oct
(
v_enc_msg
),
v_ieee1609dot2_signed_and_encrypted_data
)
==
false
)
{
setverdict
(
fail
,
"Failed to secure InnerEcRe
quest
message"
);
setverdict
(
fail
,
"Failed to secure InnerEcRe
sponse
message"
);
stop
;
}
// Encode it
...
...
@@ -436,7 +440,7 @@ module TestCodec_Pki {
log
(
"Encoded message: "
,
v_ieee1609dot2_signed_and_encrypted_data_msg
);
setverdict
(
pass
,
"Encoded succeed"
);
// Decode encrypted InnerEcRe
quest
// Decode encrypted InnerEcRe
sponse
v_result
:=
decvalue
(
v_ieee1609dot2_signed_and_encrypted_data_msg
,
v_dec_ieee1609dot2_signed_and_encrypted_data
);
if
(
v_result
==
0
)
{
log
(
"Decoded message: "
,
v_dec_ieee1609dot2_signed_and_encrypted_data
);
...
...
@@ -452,10 +456,40 @@ module TestCodec_Pki {
stop
;
}
// Decrypt InnerEcRe
quest
// Decrypt InnerEcRe
sponse
f_decrypt
(
v_private_key
,
v_dec_ieee1609dot2_signed_and_encrypted_data
,
v_dec_ieee1609dot2_signed_data
);
log
(
"v_dec_ieee1609dot2_signed_data= "
,
v_dec_ieee1609dot2_signed_data
);
// Verify signature
v_tbs
:=
encvalue
(
v_dec_ieee1609dot2_signed_data
.
content
.
signedData
.
tbsData
);
if
(
fx_verifyWithEcdsaNistp256WithSha256
(
bit2oct
(
v_tbs
),
int2oct
(
0
,
32
),
v_dec_ieee1609dot2_signed_data
.
content
.
signedData
.
signature_
.
ecdsaNistP256Signature
.
rSig
.
x_only
&
v_dec_ieee1609dot2_signed_data
.
content
.
signedData
.
signature_
.
ecdsaNistP256Signature
.
sSig
,
v_publicKeyCompressed
,
v_compressedMode
)
==
true
)
{
setverdict
(
pass
,
"Check signature succeed"
);
}
else
{
setverdict
(
fail
,
"Check signature failed"
);
stop
;
}
// Extract InnerEcResponse
v_dec_inner_ec_response_msg
:=
oct2bit
(
v_dec_ieee1609dot2_signed_data
.
content
.
signedData
.
tbsData
.
payload
.
data
.
content
.
unsecuredData
);
v_result
:=
decvalue
(
v_dec_inner_ec_response_msg
,
v_dec_inner_ec_response
);
if
(
v_result
==
0
)
{
log
(
"Decoded InnerEcResponse: "
,
v_dec_inner_ec_response
);
setverdict
(
pass
,
"Decoded succeed"
);
if
(
match
(
v_dec_inner_ec_response
.
content
.
enrolmentResponse
,
v_inner_ec_response
))
{
setverdict
(
pass
,
"Decoded match succeed"
);
}
else
{
setverdict
(
fail
,
"Decoded match failed"
);
stop
;
}
}
else
{
setverdict
(
fail
,
"Decoding failed"
);
stop
;
}
}
// End of testcase tc_inner_ec_response_2
control
{
...
...
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