# selinux_raw_context_to_color

## NAME



           selinux_raw_context_to_color - Return RGB color string for an
           SELinux security context
    


## SYNOPSIS



           **#include <selinux/selinux.h>**
    
           **int selinux_raw_context_to_color(const char ***_raw_**,**
                  **char ****_color_str_**);**
    


## DESCRIPTION



           **selinux_raw_context_to_color**() returns a _color_str_ associated to
           the raw context _raw_ provided that the mcstransd(8) daemon is
           running, the policy is an MLS type policy (MCS or MLS) and there
           is a color configuration file secolor.conf(5) (see the **FILES**
           section).
    
           The _color_str_ string is a space separated list of eight
           hexadecimal RGB triples, each prefixed by a hash character (#).
           These represent the user:role:type:range components of the
           foreground and background colors. An example string is shown in
           the **EXAMPLE** section.
    
           The returned _color_str_ string must be freed with free(3).
    
           If a color has not been configured for a specific user, role, type
           and/or range component of context _raw_ , then
           **selinux_raw_context_to_color**() will select the color returned in
           _color_str_ in order of precedence as follows:
                  role, type, range
                  user, type, range
                  user, role, range
                  user, role, type
    
           If there are no entries in the secolor.conf(5) file for any of the
           components of context _raw_ (or the file is not present), then the
           default string returned in _color_str_ is:
    
                  ----- user ---- ---- role ----  ---- type ----  ---- range
                  ----
                  #000000 #ffffff #000000 #ffffff #000000 #ffffff #000000
                  #ffffff
    


## RETURN VALUE



           On success, zero is returned.
           On failure, -1 is returned with _errno_ set appropriately.
    


## ERRORS



           **ENOENT** If the mcstransd(8) daemon is not running.
    


## FILES



           **selinux_raw_context_to_color**() obtains the translated entry from
           the active policy secolor.conf(5) file as returned by
           selinux_colors_path(3).  The file format is described in
           secolor.conf(5).
    


## NOTES



           1. The primary use of **selinux_raw_context_to_color**() is to return
           a color that corresponds to a range, that can then be used to
           highlight information at different MLS levels.
    
           2. The mcstransd(8) daemon process security level must dominate
           the _raw_ security level passed to it by the
           **selinux_raw_context_to_color**() function. If not, the range color
           selected will be as defined by the order of precedence.
    


## EXAMPLE



           **selinux_raw_context_to_color**() returns the foreground and
           background colors of the context string components
           (user:role:type:range) as RGB triples as follows:
    
                 user     :       role      :      type      :      range
             fg       bg  :   fg       bg   :  fg       bg   :  fg       bg
           #000000 #ffffff  #ffffff #000000  #d2b48c #ffa500  #000000 #008000
            black   white :  white   black  : tan    orange  : black   green
    


* * *