Solaris Trusted Extensions 開発ガイド

ラベルと文字列との変換

label_to_str() および str_to_label() ルーチンが、ラベルと文字列との変換に使用されます。次のルーチンの記述には、各ルーチンのプロトタイプ宣言が含まれます。

int label_to_str(const m_label_t *label, char **string, const m_label_str_t conversion_type, uint_t flags);

label_to_str() ルーチンは、ラベル m_label_t を文字列に変換します。このルーチンを使用して、格付け名を表示しない文字列にレベルを変換できます。この形式は、共通オブジェクトでの格納に適します。呼び出し元プロセスは変換されるラベルより優位であるか、プロセスに sys_trans_label 特権がある必要があります。

label_to_str(3TSOL) のマニュアルページを参照してください。

label_to_str() ルーチンは、変換される文字列にメモリーを割り当てます。呼び出し元は、free() ルーチンを呼び出してこのメモリーを解放する必要があります。

free(3C) のマニュアルページを参照してください。

int str_to_label(const char *string, m_label_t **label, const m_label_type_t label_type, uint_t flags, int *error);

str_to_label() ルーチンは、ラベル文字列をラベル m_label_t に変換します。m_label_t 構造体を割り当てる場合、割り当てられたメモリーを m_label_free() ルーチンを使用して解放する必要があります。

str_to_label() ルーチンを使用してラベルを作成する場合、機密ラベルまたは認可上限ラベルになるようにラベルタイプを設定できます。

str_to_label(3TSOL) および m_label(3TSOL) のマニュアルページを参照してください。

ラベルの読み取り可能バージョン

label_to_str() ルーチンは、ラベルの読み取り可能バージョンを提供します。M_LABEL 変換タイプは、そのラベルで格付けされている文字列を返します。M_INTERNAL 変換タイプは、格付けされていない文字列を返します。格付けされた文字列バージョンは、通常、ウィンドウなどの表示用に使用します。格付けされた文字列は格納に適さない場合があります。印刷のために、いくつかの変換タイプが提供されています。すべての印刷用タイプは、文字列が示すラベルで格付けされる読み取り可能文字列を示します。

conversion_type パラメータはラベル変換のタイプを制御します。次は、conversion_type の有効な値ですが、変換のすべてのタイプが両方のレベルタイプに有効ではありません。

ラベルエンコーディングファイル

label_to_str() ルーチンは label_encodings ファイルのラベル定義を使用します。エンコーディングファイルは、セキュリティー管理者が管理するテキストファイルです。ファイルには、サイト固有のラベルの定義および制約が含まれます。このファイルは /etc/security/tsol/label_encodings に保存されます。label_encodings ファイルについての詳細は、『Solaris Trusted Extensions ラベルの管理』, 『コンパートメントモードワークステーションのラベル作成: エンコード形式』 および label_encodings(4) のマニュアルページを参照してください。