Go to main content

Trusted Extensions Developer's Guide

Exit Print View

Updated: November 2020
 
 

Obtaining the Color Names of Labels

This code example uses the label_to_str() function to obtain the color name of a label. The mappings between color names and labels are defined in the label_encodings file.

#include <stdlib.h>
#include <stdio.h>

#include <tsol/label.h>

int
main()
{
    m_label_t *plabel;
    char *label = NULL;
    char *color = NULL;

    plabel = m_label_alloc(MAC_LABEL);

    if (getplabel(plabel) == -1) {
        perror("getplabel");
        exit(1);
    }

    if (label_to_str(plabel, &color, M_COLOR, 0) != 0) {
        perror("label_to_string(M_COLOR)");
        exit(1);
    }
    if (label_to_str(plabel, &label, M_LABEL, DEF_NAMES) != 0) {
        perror("label_to_str(M_LABEL)");
        exit(1);
    }

    printf("The color for the \"%s\" label is \"%s\".\n, label, color);

    m_label_free(plabel);

    return (0);
}

If the label_encodings file maps the color blue to the label CONFIDENTIAL, the program prints the following:

The color for the "CONFIDENTIAL" label is "BLUE".