Trusted Solaris 開発ガイド

ラベルの妥当性検査

有効なラベルとは、label_encodings ファイルに定義されたラベルのことです。bslvalid(3) ルーチンを使用して、機密ラベルが有効であるかを検査できます。呼び出し元プロセスの機密ラベルは、検査される機密ラベルよりも優位でなければなりません。そうでない場合にこの処理を実行するには、呼び出し元プロセスの有効セットに sys_trans_label 特権を必要とします。

#include <tsol/label.h>

 main()
 {
 	int			retval, error;
 	bslabel_t			senslabel;
 	 	char			*string = "CONFIDENTIAL", *string1 = "UNCLASSIFIED";

 	retval = stobsl(string, &senslabel, NEW_LABEL, &error);
 	retval = bslvalid(&senslabel);
 	printf("Valid Sensitivity Label? = %d¥n", retval);
 }

printf 文によって、次のように出力されます。1 は、ラベルが有効であることを示します。-1 は、label_encodings ファイルがアクセス可能でないことを示します。0 は、ラベルが有効でないか、プロセスの機密ラベルが認可上限より優位でなく、プロセスの有効セット内に sys_trans_label 特権がないことを示します。

Valid Sensitivity Label? = 1