Vanetza
Loading...
Searching...
No Matches
delegating_security_entity.cpp
1#include <vanetza/common/its_aid.hpp>
2#include <vanetza/security/delegating_security_entity.hpp>
3#include <stdexcept>
4
5namespace vanetza
6{
7namespace security
8{
9
10DelegatingSecurityEntity::DelegatingSecurityEntity(std::unique_ptr<SignService> sign, std::unique_ptr<VerifyService> verify) :
11 m_sign_service(std::move(sign)),
12 m_verify_service(std::move(verify))
13{
14 if (!m_sign_service) {
15 throw std::invalid_argument("SN-SIGN service is not callable");
16 } else if (!m_verify_service) {
17 throw std::invalid_argument("SN-VERIFY service is not callable");
18 }
19}
20
22{
23 return dispatch(std::move(encap_request), m_sign_service.get());
24}
25
27{
28 SecuredMessageView msg_view { decap_request.sec_packet };
29 auto verify_confirm = m_verify_service->verify(VerifyRequest { msg_view });
30 return DecapConfirm::from(std::move(verify_confirm), msg_view);
31}
32
33} // namespace security
34} // namespace vanetza
EncapConfirm encapsulate_packet(EncapRequest &&encap_request) override
Creates a security envelope covering the given payload.
DelegatingSecurityEntity(std::unique_ptr< SignService > sign, std::unique_ptr< VerifyService > verify)
Create security entity from primitive services.
DecapConfirm decapsulate_packet(DecapRequest &&decap_request) override
Decapsulates the payload within a SecuredMessage.
STL namespace.
static DecapConfirm from(VerifyConfirm &&verify_confirm, const SecuredMessageView &msg_view)
Input data for decapsulating a secured message.