Newer
Older
int GeoNetworkingLayer::decode_basic_header(const OCTETSTRING& p_data, LibItsGeoNetworking__TypesAndValues::BasicHeader& p_basic_header) {
loggers::get_instance().log_msg(">>> GeoNetworkingLayer::decode_basic_header: ", p_data);
// Update security mode
OCTETSTRING bh = OCTETSTRING(4, static_cast<const unsigned char*>(p_data)); // Extract the basic header as specified in ETSI EN 302 636-4-1 V1.3.1 (2017-08) Clause 9.6
loggers::get_instance().log_msg("GeoNetworkingLayer::decode_basic_header: bh: ", bh);
TTCN_Buffer decoding_buffer(bh);
p_basic_header.RAW_decode(*p_basic_header.get_descriptor(), decoding_buffer, decoding_buffer.get_len() * 8, raw_order_t::ORDER_MSB);
loggers::get_instance().log_msg("GeoNetworkingLayer::decode_basic_header: ", p_basic_header);
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
int GeoNetworkingLayer::setup_secured_mode() {
loggers::get_instance().log(">>> GeoNetworkingLayer::setup_secured_mode");
loggers::get_instance().log("GeoNetworkingLayer::setup_secured_mode: GN Layer address = %p", this);
Params::const_iterator it = _params.find(Params::certificate);
if (it == _params.cend()) {
_params.insert(std::pair<std::string, std::string>(std::string("certificate"), "CERT_TS_A_AT"));
}
it = _params.find(Params::sec_db_path);
if (it == _params.cend()) {
_params.insert(std::pair<std::string, std::string>(std::string("sec_db_path"), ""));
}
it = _params.find(Params::hash);
if (it == _params.cend()) {
_params.insert(std::pair<std::string, std::string>(std::string("hash"), "SHA-256"));
}
it = _params.find(Params::signature);
if (it == _params.cend()) {
_params.insert(std::pair<std::string, std::string>(std::string("signature"), "NISTP-256"));
}
// Set up security services even if secured_mode is set to 0. Later, we can receive an AcEnableSecurity request, the sertificate caching will be ready to go
security_services::get_instance().setup(_params);
security_services::get_instance().set_position(_latitude, _longitude);
return 0;
}
GeoNetworkingLayerFactory GeoNetworkingLayerFactory::_f;