ITS
SecurityManager.cpp
Go to the documentation of this file.
2 
4 {
5  m_appli = 0;
6  m_secu = 0;
7  m_gps = 0;
8 }
9 
11 {
12  m_appli = (ParameterApplication*)man->hashMap["Application"];
13  m_secu = (ParameterSecurity*)man->hashMap["Security"];
14  m_gps = (FakeGPSProvider*)man->hashMap["GPS"];
15 
16  QFile file(m_secu->pathToPrivateKey());
17  file.open(QIODevice::ReadOnly);
18  m_privateKey = file.readAll();
19  file.close();
20 
21  file.setFileName(m_secu->pathToCertificate());
22  file.open(QIODevice::ReadOnly);
23  m_certificate = file.readAll();
24  file.close();
25  decode_Certificate((unsigned char*)m_certificate.data(), &m_certif);
26 }
27 
29 {
30  QByteArray signedPayload;
31 
32  switch (profile) {
35  signedPayload += securedTrailer(signedPayload);
36  break;
37  default:
38  break;
39  }
40 
41  return signedPayload;
42 }
43 
44 QByteArray SecurityManager::securedTrailer(QByteArray payload)
45 {
46  SecureTrailer_t trailer;
47 
48  TrailerField_t *field = (TrailerField_t*)calloc(1, sizeof *field);
54 
55  trailer.trailer_fields.list.array = (TrailerField_t**)calloc(1, sizeof *trailer.trailer_fields.list.array);
56  trailer.trailer_fields.list.count = 0;
57  trailer.trailer_fields.list.free = 0;
58  trailer.trailer_fields.list.size = 0;
59  trailer.trailer_fields.list.array[0] = (TrailerField_t*)calloc(1, sizeof *trailer.trailer_fields.list.array[0]);
60  asn_sequence_add(&trailer.trailer_fields, field);
61 
62  return encode_SecureTrailer(trailer);
63 }
FakeGPSProvider * m_gps
QByteArray securedTrailer(QByteArray payload)
securedTrailer Adds secured trailer to the payload.
QByteArray pathToPrivateKey() const
pathToPrivateKey Path to the private key file getter.
sign_PR present
Definition: Signature.h:35
ParameterApplication * m_appli
enum SecurityProfile::securityProfileType e_securityProfileType
The e_securityProfileType enum defines the profile type.
SecurityManager definitions.
TrailerFieldType_t type
Definition: TrailerField.h:33
QHash< QString, void * > hashMap
Definition: Manager.h:53
struct TrailerField::trailer_field trailer_field
union TrailerField::trailer_field::TrailerField__trailer_field_u choice
SecurityManager()
SecurityManager SecurityManager constructor.
QByteArray m_certificate
QByteArray m_privateKey
struct Signature::sign sign
QByteArray encode_SecureTrailer(SecureTrailer_t trailer)
encode_SecureTrailer Encode a SecureTrailer.
#define asn_sequence_add
Certificate_t m_certif
QByteArray signPayload(QByteArray payload, SecurityProfile::e_securityProfileType profile)
signPayload Sign a payload.
struct Signature::sign::Signature__sign_u::ecdsa_nistp256_with_sha256_signature ecdsa_nistp256_with_sha256_signature
quint64 decode_Certificate(uchar *field, Certificate_t *certificate)
decode_Certificate Decode a Certificate.
struct TrailerField::trailer_field::TrailerField__trailer_field_u::signature_trailer_field signature_trailer_field
PublicKeyAlgorithm_t algorithm
Definition: Signature.h:33
static QByteArray secureHeader(SignerInfoType_t m_type, Certificate_t m_certificate, FakeGPSProvider *m_gps)
secureHeader Generate the secured header.
union Signature::sign::Signature__sign_u choice
ParameterSecurity * m_secu
QByteArray pathToCertificate() const
pathToCertificate Path to the certificate file getter.
struct SecureTrailer::trailer_fields trailer_fields
trailer_field_PR present
Definition: TrailerField.h:35