この章で説明しているプログラミングインタフェースを使用するには、次のヘッダーファイルが必要です。
#include <tsol/label.h>
この章の例は、次のライブラリを使用してコンパイルしています。
-ltsol
データ構造体 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_bound と variable.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 セクションの文字列に事前に割り当てられたメモリーの長さ |