|
libnmbs 1.0.0
|
Struct representation of the ADatP-4774 "Confidentiality Label". More...
#include <nmbs/confidentiality_label.h>
Classes | |
| struct | ConfidentialityInformation |
| A core element of the nmbs::confidentiality_label containing the classification (e.g. PUBLIC UNMARKED). More... | |
| struct | OriginatorId |
Public Types | |
| enum | ConfidentialityLabelType { originator , alternative , successor } |
| identifier for the specialisation of the label. More... | |
Public Member Functions | |
| ConfidentialityLabel (const ConfidentialityLabelType label_type=originator) | |
| ConfidentialityLabel (const ConfidentialityLabel &)=default | |
| ConfidentialityLabel & | operator= (const ConfidentialityLabel &rhs)=default |
| bool | operator== (const ConfidentialityLabel &) const =default |
Public Attributes | |
| ConfidentialityLabelType | label_type |
| Field to save having to implement the type inheritance here. | |
| ConfidentialityInformation | confidentiality_information |
| <s4774::ConfidentialityInformation> | |
| std::optional< OriginatorId > | originator_id |
| <s4774:OriginatorID> | |
| std::chrono::time_point< std::chrono::utc_clock, std::chrono::seconds > | creation_date_time |
| <s4774::CreationDateTime> | |
Struct representation of the ADatP-4774 "Confidentiality Label".
More information can be found on this in section 2.4 of ADatP-4774.1 Ed. A V. 1. The standard specifies three types of label containing identical data. This struct represents all three originatorConfidentialityLabel, alternativeConfidentialityLabel and successorConfidentialityLabel. See nmbs::confidentiality_label::confidentiality_label_type and the nmbs::confidentiality_label::label_type field.
Noteworthy is that the label couples "confidentiality information" with a timestamp and additional metadata such as the user and review dates.
identifier for the specialisation of the label.
There is no <s4774::ConfidentialityLabel> in the standard, but all specialisations share the exact same values. The specialisation is used in validation steps with logic for deciding which classification applies.
| Enumerator | |
|---|---|
| originator | <s4774::originatorConfidentialityLabel>
|
| alternative | <s4774::alternativeConfidentialityLabel>
|
| successor | <s4774::successorConfidentialityLabel>
|
|
inlineexplicit |
Overloaded constructor taking the label type as a parameter. The label type can be changed later.
| label_type | the type of label this instance will represent |
|
default |
|
default |
|
default |
| ConfidentialityInformation nmbs::ConfidentialityLabel::confidentiality_information |
<s4774::ConfidentialityInformation>
| std::chrono::time_point<std::chrono::utc_clock, std::chrono::seconds> nmbs::ConfidentialityLabel::creation_date_time |
<s4774::CreationDateTime>
| ConfidentialityLabelType nmbs::ConfidentialityLabel::label_type |
Field to save having to implement the type inheritance here.
| std::optional<OriginatorId> nmbs::ConfidentialityLabel::originator_id |
<s4774:OriginatorID>