Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TTCN-3 Libraries
LibIts
Commits
a0f36c26
Commit
a0f36c26
authored
Oct 09, 2014
by
garciay
Browse files
Rebuild LibIts with TCT3
parent
30b30d7d
Changes
2
Hide whitespace changes
Inline
Side-by-side
ttcn/GeoNetworking/LibItsGeoNetworking_Functions.ttcn
View file @
a0f36c26
...
...
@@ -801,7 +801,7 @@ module LibItsGeoNetworking_Functions {
inout
GeoAreaTable
p_areaTable
)
runs
on
ItsBaseGeoNetworking
{
var
LongPosVector
v_longPosVectorIut
,
v_longPosVectorNodeA
,
v_longPosVectorNodeB
,
v_longPosVectorNodeC
,
v_longPosVectorNodeD
,
v_longPosVectorNodeE
,
v_longPosVectorNodeF
;
var
LongPosVector
v_longPosVectorIut
,
v_longPosVectorNodeA
,
v_longPosVectorNodeB
,
v_longPosVectorNodeC
,
v_longPosVectorNodeD
,
v_longPosVectorNodeE
,
v_longPosVectorNodeF
;
// Get positions
v_longPosVectorIut
:=
f_getIutLongPosVector
();
...
...
@@ -2561,17 +2561,22 @@ module LibItsGeoNetworking_Functions {
var
template
(
value
)
SecuredMessage
v_securedMessage
;
// Build signed SecuredMessage
v_gnNonSecuredPacket
:=
m_geoNwShbPacket
(
v_gnNonSecuredPacket
:=
valueof
(
m_geoNwShbPacket
(
f_getPosition
(
c_compMTC
)
);
)
);
// Add CAM payload
v_gnNonSecuredPacket
.
payload
:=
f_adaptPayload_m
(
p_payload
);
v_gnNonSecuredPacket
.
payload
:=
valueof
(
f_adaptPayload_m
(
p_payload
)
)
;
f_buildGnSecuredCam
(
v_securedMessage
,
bit2oct
(
encvalue
(
v_gnNonSecuredPacket
)),
e_certificate
,
{
m_header_field_unrecognised_certificate
(
f_HashedId3FromHashedId8
(
p_digest
))
}
{
m_header_field_unrecognised_certificate
(
f_HashedId3FromHashedId8
(
p_digest
))
}
);
// Build secured Gn packet
...
...
ttcn/Security/LibItsSecurity_Functions.ttcn3
View file @
a0f36c26
...
...
@@ -192,12 +192,12 @@ module LibItsSecurity_Functions {
* @verdict Unchanged
*/
function
f_buildGnSecuredCam
(
out
template
(
value
)
SecuredMessage
p_securedMessage
,
in
octetstring
p_unsecuredPayload
,
in
template
(
omit
)
SignerInfoType
p_signerInfoType
:=
e_certificate_digest_with_ecdsap256
,
in
template
(
omit
)
HeaderFields
p_headerFields
:=
omit
,
in
template
(
omit
)
charstring
p_certificateName
:=
omit
,
in
boolean
p_addMissingHeaders
:=
true
out
template
(
value
)
SecuredMessage
p_securedMessage
,
in
octetstring
p_unsecuredPayload
,
in
template
(
omit
)
SignerInfoType
p_signerInfoType
:=
e_certificate_digest_with_ecdsap256
,
in
template
(
omit
)
HeaderFields
p_headerFields
:=
omit
,
in
template
(
omit
)
charstring
p_certificateName
:=
omit
,
in
boolean
p_addMissingHeaders
:=
true
)
runs
on
ItsSecurityBaseComponent
return
boolean
{
// Local variables
...
...
@@ -207,15 +207,15 @@ module LibItsSecurity_Functions {
var
template
(
value
)
ToBeSignedSecuredMessage
v_toBeSignedSecuredMessage
;
var
integer
i
,
j
,
k
,
n
;
var
HeaderFields
v_mandatoryHeaders
:=
{};
var
template
(
value
)
HeaderFields
v_headerFields
:=
{};
var
template
(
value
)
HeaderField
v_signerInfo
;
var
HeaderFields
v_headerFields
:=
{};
var
HeaderField
v_signerInfo
;
// Sanity check
if
(
ispresent
(
p_certificateName
)
and
(
p_certificateName
!=
"TA_CONFIG_A"
))
{
if
(
f_readCertificate
(
p_certificateName
&
".AA_CERT"
,
v_aaCertificate
)
==
false
)
{
if
(
ispresent
(
p_certificateName
)
and
(
valueof
(
p_certificateName
)
!=
"TA_CONFIG_A"
))
{
if
(
f_readCertificate
(
valueof
(
p_certificateName
)
&
".AA_CERT"
,
v_aaCertificate
)
==
false
)
{
return
false
;
}
if
(
f_readCertificate
(
p_certificateName
&
".AT_CERT"
,
v_atCertificate
)
==
false
)
{
if
(
f_readCertificate
(
valueof
(
p_certificateName
)
&
".AT_CERT"
,
v_atCertificate
)
==
false
)
{
return
false
;
}
}
else
{
...
...
@@ -228,29 +228,29 @@ module LibItsSecurity_Functions {
}
else
{
// Prepare mandatory headers
if
(
p_signerInfoType
==
e_certificate
)
{
// Add the AT certificate
v_signerInfo
:=
m_header_field_signer_info
(
m_signerInfo_certificate
(
v_atCertificate
));
if
(
valueof
(
p_signerInfoType
)
==
e_certificate
)
{
// Add the AT certificate
v_signerInfo
:=
valueof
(
m_header_field_signer_info
(
m_signerInfo_certificate
(
v_atCertificate
))
)
;
}
if
(
p_signerInfoType
==
e_certificate_chain
)
{
// Add the AT certificate + AA Certificate
v_signerInfo
:=
m_header_field_signer_info
(
if
(
valueof
(
p_signerInfoType
)
==
e_certificate_chain
)
{
// Add the AT certificate + AA Certificate
v_signerInfo
:=
valueof
(
m_header_field_signer_info
(
m_signerInfo_certificates
(
{
v_aaCertificate
,
v_atCertificate
}
)
);
)
);
}
if
(
p_signerInfoType
==
e_certificate_digest_with_ecdsap256
)
{
// Add the AT certificate digest
v_signerInfo
:=
m_header_field_signer_info
(
m_signerInfo_digest
(
v_atCertificate
.
signer_infos
[
0
].
signerInfo
.
digest
));
if
(
valueof
(
p_signerInfoType
)
==
e_certificate_digest_with_ecdsap256
)
{
// Add the AT certificate digest
v_signerInfo
:=
valueof
(
m_header_field_signer_info
(
m_signerInfo_digest
(
v_atCertificate
.
signer_infos
[
0
].
signerInfo
.
digest
))
)
;
}
v_mandatoryHeaders
:=
{
v_signerInfo
,
m_header_field_generation_time
(
f_getCurrentTime
()),
m_header_field_message_type
(
c_messageType_CAM
)
valueof
(
m_header_field_generation_time
(
f_getCurrentTime
())
)
,
valueof
(
m_header_field_message_type
(
c_messageType_CAM
)
)
}
if
(
not
(
ispresent
(
p_headerFields
)))
{
if
(
not
(
ispresent
(
valueof
(
p_headerFields
)))
)
{
v_toBeSignedSecuredMessage
.
header_fields
:=
v_mandatoryHeaders
;
}
else
{
...
...
@@ -261,8 +261,8 @@ module LibItsSecurity_Functions {
k
:=
0
;
// index for v_headerFields
// Special processing for signer_info
if
(
lengthof
(
p_headerFields
)
>
0
and
p_headerFields
[
i
].
type_
==
e_signer_info
)
{
v_headerFields
[
k
]
:=
p_headerFields
[
i
];
if
(
lengthof
(
valueof
(
p_headerFields
)
)
>
0
and
valueof
(
p_headerFields
[
i
]
)
.
type_
==
e_signer_info
)
{
v_headerFields
[
k
]
:=
valueof
(
p_headerFields
[
i
]
)
;
k
:=
k
+
1
;
i
:=
i
+
1
;
}
...
...
@@ -270,7 +270,7 @@ module LibItsSecurity_Functions {
for
(
j
:=
j
;
j
<
lengthof
(
v_mandatoryHeaders
);
j
:=
j
+
1
)
{
// Search for mandatory header in p_HeaderFields
for
(
n
:=
0
;
n
<
lengthof
(
p_headerFields
);
n
:=
n
+
1
)
{
if
(
p_headerFields
[
n
].
type_
==
v_mandatoryHeaders
[
j
].
type_
)
{
if
(
valueof
(
p_headerFields
[
n
]
)
.
type_
==
v_mandatoryHeaders
[
j
].
type_
)
{
// mandatory header already in p_HeaderFields
break
;
}
...
...
@@ -278,8 +278,8 @@ module LibItsSecurity_Functions {
if
(
n
>=
lengthof
(
p_headerFields
))
{
if
(
v_mandatoryHeaders
[
j
].
type_
!=
e_signer_info
)
{
// Add headers from p_headerFields having lower number than mandatory header
for
(
n
:=
i
;
n
<
lengthof
(
p_headerFields
)
and
p_headerFields
[
n
].
type_
<
v_mandatoryHeaders
[
j
].
type_
;
n
:=
n
+
1
)
{
v_headerFields
[
k
]
:=
p_headerFields
[
n
];
for
(
n
:=
i
;
n
<
lengthof
(
p_headerFields
)
and
valueof
(
p_headerFields
[
n
]
)
.
type_
<
v_mandatoryHeaders
[
j
].
type_
;
n
:=
n
+
1
)
{
v_headerFields
[
k
]
:=
valueof
(
p_headerFields
[
n
]
)
;
k
:=
k
+
1
;
i
:=
i
+
1
;
}
...
...
@@ -294,7 +294,7 @@ module LibItsSecurity_Functions {
// Add remaining headers from p_HeaderFields
for
(
i
:=
i
;
i
<
lengthof
(
p_headerFields
);
i
:=
i
+
1
)
{
// Add headers from p_headerFields having lower number than mandatory header
v_headerFields
[
k
]
:=
p_headerFields
[
i
];
v_headerFields
[
k
]
:=
valueof
(
p_headerFields
[
i
]
)
;
k
:=
k
+
1
;
}
}
...
...
@@ -834,13 +834,17 @@ module LibItsSecurity_Functions {
* @return true on success, false otherwise
*/
function
f_readCertificate
(
in
charstring
p_certificateId
,
out
Certificate
p_certificate
in
charstring
p_certificateId
,
out
Certificate
p_certificate
)
runs
on
ItsSecurityBaseComponent
return
boolean
{
var
octetstring
v_certificate
;
if
(
fx_readCertificate
(
p_certificateId
,
v_certificate
)
==
true
)
{
var
integer
v_result
:=
decvalue
(
oct2bit
(
v_certificate
),
p_certificate
);
var
bitstring
v_oct2bit
;
var
integer
v_result
;
v_oct2bit
:=
oct2bit
(
v_certificate
);
v_result
:=
decvalue
(
v_oct2bit
,
p_certificate
);
if
(
v_result
==
0
)
{
return
true
;
}
...
...
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