プロセス認可上限の初期化、比較、変換、および検証に、ライブラリルーチンを使用できます。
次のルーチンは、認可上限を ADMIN_HIGH、ADMIN_LOW、または NULL に似た未定義の状態に初期化します。詳細は、blmanifest(3) のマニュアルページを参照してください。
void bclearhigh( bclear_t *clearance); void bclearlow( bclear_t *clearance); void bclearundef( bclear_t *clearance);
次のルーチンは、2 つのレベルを比較し、両者が同等か、level1 が level2 よりも優位であるか、あるいは level1 が level2 よりも完全に優位であるかを確認します。レベルとは、機密ラベル、情報ラベル、認可上限のいずれかの、格付けとコンパートメントセットのことです。biltolev(3) ルーチンを使用して情報ラベル (格付け、コンパートメント、マーキング) をレベル (格付けとコンパートメントのみ) に変換するか、あるいは次の 2 つの節のルーチンを使用して、2 つの情報ラベルや 2 つのマーキングセットを比較してください。
返される値のうち、0 以外の値は true で、0 は false です。詳細は、blcompare(3) のマニュアルページを参照してください。
int blequal( const blevel_t *level1, const blevel_t *level2); int bldominates( const blevel_t *level1, const blevel_t *level2); int blstrictdom( const blevel_t *level1, const blevel_t *level2); int blinrange( const blevel_t *level, const brange_t *range);
bltype(3) ルーチンは、認可上限の型を検査します。setbltype(3) ルーチンは、認可上限の型を設定します。認可上限は、定義してもしなくてもかまいません。詳細は、bltype(3) のマニュアルページを参照してください。
int bltype( const void *clearance, const unsigned char type); void setbltype( void *clearance, const unsigned char type);
次のルーチンは、2 つのレベルを比較します。2 つのレベルで定められた範囲内で、blminimum(3) によりもっとも高い下限の機密レベルを見つけ、blmaximum(3) によりもっとも低い上限の機密レベルを見つけます。レベルとは、機密ラベル、情報ラベル、認可上限のいずれかの、格付けとコンパートメントセットのことです。情報ラベルをレベルに変換するには、biltolev(3) ルーチンを使用します。詳細は、blminmax(3) のマニュアルページを参照してください。
void blmaximum( blevel_t *maximum_label, const blevel_t *bounding_label); void blminimum( blevel_t *minimum_label, const blevel_t *bounding_label);
次のルーチンは、指定された認可上限がシステムで有効であるかを確認します。詳細は、blvalid(3) のマニュアルページを参照してください。
int bclearvalid( const bclear_t *clearance);
次のルーチンは、認可上限をバイナリから ASCII に変換し、再び元に戻します。詳細は、stobl(3) のマニュアルページを参照してください。
バイナリラベルを ASCII に変換したり、Motif ベースのグラフィカルユーザーインタフェース (GUI) で表示するために、目的のラベルを指定された幅とフォントリストに従ってクリッピングするインタフェースの詳細は、第 15 章「トラステッド X ウィンドウシステム」を参照してください。
int bcleartos( const bclear_t *clearance, char **string, const int len, const int flags); int stobclear( const char *string, bclear_t *clearance, const int flags, int *error); char* sbcleartos( const bclear_t *clearance, const int len);
次のルーチンは、認可上限をバイナリから 16 進に変換し、再び元に戻します。詳細は、btohex(3) のマニュアルページを参照してください。
char *h_alloc( const unsigned char id); void h_free( char *hex); char *bcleartoh_r( const bclear_t *clearance, char *hex); char *bcleartoh( const bclear_t *clearance); int htobclear( const char *s, bclear_t *clearance);