Commit 3322fc51 authored by garciay's avatar garciay
Browse files

Add support of secured beacon with certificate in TA

parent 7e714d0e
......@@ -123,32 +123,55 @@ module LibItsSecurity_Functions {
/**
* @desc Build a template of a secured beacon to be used for the Test Adapter secured beaconing processing
*/
function f_buildSecuredMessagePayloadToBeSigned()
function f_buildSecuredMessagePayloadToBeSigned(in boolean p_includeCertificate := false)
return ToBeSignedSecuredMessage {
// Local variables
var template (value) ToBeSignedSecuredMessage v_toBeSignedSecuredMessage;
// Build the beacon template
v_toBeSignedSecuredMessage := m_toBeSignedSecuredMessage(
c_security_profileOthers,
{ // Field HeaderFields
m_header_field_signer_info(
m_signerInfo_certificate(
PX_TA_CONFIGS[PX_CERTIFICATE_CONFIG_IDX].atCertificate
) // End of template m_signerInfo_certificate
), // End of template m_header_field_signer_info
m_header_field_generation_time(oct2int('BBBBBBBB'O)), // To be replaced by TA with current time
m_header_field_generation_location(
PX_TA_CONFIGS[PX_CERTIFICATE_CONFIG_IDX].location
)
}, // End of field HeaderFields
{
m_payload_unsecured(
'AAAAAAAAAA'O // To be replaced by TA with real payload
)
}, // End of field HeaderFields
e_signature
);
if (p_includeCertificate == true) {
v_toBeSignedSecuredMessage := m_toBeSignedSecuredMessage(
c_security_profileOthers,
{ // Field HeaderFields
m_header_field_signer_info(
m_signerInfo_certificate(
PX_TA_CONFIGS[PX_CERTIFICATE_CONFIG_IDX].atCertificate
) // End of template m_signerInfo_certificate
), // End of template m_header_field_signer_info
m_header_field_generation_time(oct2int('BBBBBBBB'O)), // To be replaced by TA with generation time
m_header_field_generation_location(
PX_TA_CONFIGS[PX_CERTIFICATE_CONFIG_IDX].location
)
}, // End of field HeaderFields
{
m_payload_unsecured(
'AAAAAAAAAA'O // To be replaced by TA with real payload
)
}, // End of field HeaderFields
e_signature
);
} else {
v_toBeSignedSecuredMessage := m_toBeSignedSecuredMessage(
c_security_profileOthers,
{ // Field HeaderFields
m_header_field_signer_info(
m_signerInfo_digest(
PX_TA_CONFIGS[PX_CERTIFICATE_CONFIG_IDX].atCertificate.signer_infos[0].signerInfo.digest
) // End of template m_signerInfo_certificate
), // End of template m_header_field_signer_info
m_header_field_generation_time(oct2int('BBBBBBBB'O)), // To be replaced by TA with generation time
m_header_field_generation_location(
PX_TA_CONFIGS[PX_CERTIFICATE_CONFIG_IDX].location
)
}, // End of field HeaderFields
{
m_payload_unsecured(
'AAAAAAAAAA'O // To be replaced by TA with real payload
)
}, // End of field HeaderFields
e_signature
);
}
return valueof(v_toBeSignedSecuredMessage);
}
......@@ -656,11 +679,12 @@ module LibItsSecurity_Functions {
out HeaderField p_return
) return boolean {
var integer v_length := lengthof(p_securedMessage.header_fields);
var SecuredMessage v_securedMessage := valueof(p_securedMessage);
for (var integer i := 0; i < v_length; i := i + 1) {
if (valueof(p_securedMessage).header_fields[i].type_ == p_headerFieldType) {
p_return := valueof(p_securedMessage).header_fields[i];
// log("f_getMsgHeaderField: p_return=", p_return);
if (v_securedMessage.header_fields[i].type_ == p_headerFieldType) {
p_return := v_securedMessage.header_fields[i];
log("f_getMsgHeaderField: p_return=", p_return);
return true;
}
}
......
......@@ -2040,15 +2040,17 @@ module LibItsSecurity_Templates {
in Oct32 p_encryptPrivateKey,
in Oct32 p_encryptPublicKeyX,
in Oct32 p_encryptPublicKeyY,
in octetstring p_ToBeSignedSecuredMessageTemplate
in octetstring p_toBeSignedSecuredMessageTemplateDigest,
in octetstring p_toBeSignedSecuredMessageTemplateCertificate
) := {
signingPrivateKey := p_signingPrivateKey,
signingPublicKeyX := p_signingPublicKeyX,
signingPublicKeyY := p_signingPublicKeyY,
encryptPrivateKey := p_encryptPrivateKey,
encryptPublicKeyX := p_encryptPublicKeyX,
encryptPublicKeyY := p_encryptPublicKeyY,
ToBeSignedSecuredMessageTemplate := p_ToBeSignedSecuredMessageTemplate
signingPrivateKey := p_signingPrivateKey,
signingPublicKeyX := p_signingPublicKeyX,
signingPublicKeyY := p_signingPublicKeyY,
encryptPrivateKey := p_encryptPrivateKey,
encryptPublicKeyX := p_encryptPublicKeyX,
encryptPublicKeyY := p_encryptPublicKeyY,
toBeSignedSecuredMessageTemplateDigest := p_toBeSignedSecuredMessageTemplateDigest,
toBeSignedSecuredMessageTemplateCertificate := p_toBeSignedSecuredMessageTemplateCertificate
} // End of template m_enableSecurity
/**
......
......@@ -837,7 +837,8 @@ module LibItsSecurity_TypesAndValues {
Oct32 encryptPrivateKey,
Oct32 encryptPublicKeyX,
Oct32 encryptPublicKeyY,
octetstring ToBeSignedSecuredMessageTemplate
octetstring toBeSignedSecuredMessageTemplateDigest,
octetstring toBeSignedSecuredMessageTemplateCertificate
} // End of type AcEnableSecurity
/**
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment