Trusted Solaris 開発ガイド

データ型、ヘッダーファイル、ライブラリ

この章で説明しているプログラミングインタフェースを使用するには、次のヘッダーファイルが必要です。

#include <tsol/label.h>

この章の例は、次のライブラリを使用してコンパイルしています。

-ltsol

CMW ラベル

データ構造体 bclabel_t は、バイナリの CMW ラベルを示します。インタフェースでは、bclabel_t 型構造のバイナリ CMW ラベルを使用します。

フラグの設定

CMW ラベルフラグの値を定義する setting_flag 型の定義を次に示します。

SETCL_SL - CMW ラベルの機密ラベル部を設定する。

SETCL_ALL - CMW ラベル全体を設定する。

機密ラベル

bslabel_t 型の定義は、バイナリ CMW ラベルの機密ラベル部を示します。インタフェースでは、バイナリの機密ラベルは、bslabel_t 型の変数のパラメータとして受け渡されます。bslabel_t 型の定義は、blevel_t 構造と互換性があります。

バイナリレベル

blevel_t 構造は、機密ラベル、情報ラベル、または認可上限の、格付けとコンパートメントセットのバイナリレベルを示します。インタフェースでは、blevel_t 型構造体のバイナリレベルが受け渡されます。

型の互換性

bclear_t 型または bslabel_t 型の変数は、blevel_t 型のパラメータを受け入れる関数に渡すことができます。

機密ラベルの範囲

brange_t データ構造体は、機密ラベルの範囲を示します。この構造は、最下位ラベルと最上位ラベルを保持します。構造フィールドは、variable.lower_boundvariable.upper_bound として参照されます。

認可範囲

set_id データ構造体は、現在、次の整数値を受け入れます。1 = SYSTEM_ACCREDITATION_RANGE (システム認可範囲); 2 = USER_ACCREDITATION_RANGE (ユーザー認可範囲)

ラベル情報

label_info 構造には、label_encodings ファイル内の項目の長さが指定されます。この構造は、labelinfo(3) によって返されます。

フィールド 

内容 

slabel_len

機密ラベルの最大長 

clabel_len

CMW ラベルの最大長 

clear_len

認可上限ラベルの最大長 

vers_len

バージョン文字列の長さ 

header_len

プリンタバナーの最大長 

protect_as_len

bcltobanner(3) が返すプリンタバナーページの、ヘッダー文字列の最大長

caveats_len

bcltobanner(3) が返すプリンタバナーページの、文字列の最大長

channels_len

プリンタバナーページのチャネル文字列の最大長 

バナーフィールド

banner_field 構造には、ASCII コードに変換されたラベルと文字列が含まれます。このラベルと文字列は、プリンタバナー、トレーラページ、および文書の本文ページの先頭と最後に表示されます。この構造は、bcltobanner(3) によって返されます。最初の 5 つのフィールドは、文字列へのポインタです。次の 5 つのフィールドは、対応する文字列ポインタの指す領域に対して事前に割り当てられたメモリーの長さを示すショート整数 (short integer) です。

フィールド 

内容 

header

バナーページとトレーラページの先頭と最後に表示される文字列 

protect_as

バナーページの protect as セクションに表示される文字列 

caveats

バナーページの caveats セクションに表示される文字列 

channels

handling channels セクションに表示される文字列 

header_len

ヘッダーの文字列に事前に割り当てられたメモリーの長さ 

protect_as_len

protect as セクションの文字列に事前に割り当てられたメモリーの長さ 

ilabel_len

情報ラベルの文字列に事前に割り当てられたメモリーの長さ 

caveats_len

caveats セクションの文字列に事前に割り当てられたメモリーの長さ 

channels_len

channels セクションの文字列に事前に割り当てられたメモリーの長さ