Trusted Solaris 開発ガイド

ライブラリルーチン

プロセス認可上限の初期化、比較、変換、および検証に、ライブラリルーチンを使用できます。

初期化

次のルーチンは、認可上限を ADMIN_HIGHADMIN_LOW、または NULL に似た未定義の状態に初期化します。詳細は、blmanifest(3) のマニュアルページを参照してください。

void		bclearhigh(				bclear_t *clearance);
 void		bclearlow(				bclear_t *clearance);
 void		bclearundef(				bclear_t *clearance);

比較

次のルーチンは、2 つのレベルを比較し、両者が同等か、level1level2 よりも優位であるか、あるいは 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 間の変換

次のルーチンは、認可上限をバイナリから 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 進間の変換

次のルーチンは、認可上限をバイナリから 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);