MISB 0102 Security Metadata Local Sets

Security Metadata Local Sets for Motion Imagery Data

This standard defines a Security Metadata Universal Set and a Security Metadata Local Set encoded as KLV (Key-Length-Value) elements for marking Motion Imagery Data with security classification information.

It is mandatory to include the Security Metadata Local Set as a nested item within the MISB601 Local Set.

Encoding data

Using predefined strings, as described in the standard

{
    "1": "UNCLASSIFIED//",
    "2": "ISO_3166_TwoLetter",
    "3": "//IL",
    "4": "Impleo test flight",
    "5": "Test data set",
    "6": "Releasing Instructions Test",
    "7": "Classified By Impleo",
    "8": "Derived From test",
    "9": "Classification Test",
    "10": "20201021",
    "11": "Marking System",
    "12": "ISO_3166_TwoLetter",
    "13": "IL",
    "14": "Comments",
    "22": 9,
    "23": "2020-10-21",
    "24": "2020-10-21"
}

Alternatively, you can use integer values. The result will be the same and work slightly faster because no conversion is required.

{
    "1": 1,
    "2": 1,
    "3": "//IL",
    "4": "Impleo test flight",
    "5": "Test data set",
    "6": "Releasing Instructions Test",
    "7": "Classified By Impleo",
    "8": "Derived From test",
    "9": "Classification Test",
    "10": "20201021",
    "11": "Marking System",
    "12": 1,
    "13": "IL",
    "14": "Comments",
    "22": 12,
    "23": "2020-10-21",
    "24": "2020-10-21"
}

Note: In most cases, handle the Security Metadata Local Set as nested data and use a parent MISB601 instance instead of working directly with the MISB102 library.

To encode the MISB102 payload we need to create an instance of MISB102 and pass the string to the EncodePayload method. Note, we're using EncodePayload and not EncodePacket as the results are used by the parent local set which assigns a tag (48, in case of MISB601) and uses the length of the encoded buffer as Klv length.

MISB102 misb102 = new MISB102();
var buf = misb102.EncodePayload(pckt);

Decoding data

Note: As with encoding, you will typically handle the Security Metadata Local Set as nested data and use a parent MISB601 instance rather than working directly with the MISB102 library.

MISB102 misb102 = new MISB102();
var pckt = misb102.DecodePayload(buf);

Supported MISB 102 tags