名前 | 形式 | 機能説明 | 属性 | 戻り値 | プロセス属性 | ファイル | 関連項目 | 注意事項
#include <tsol/label.h>int bltos(const blevel_t *label, char **string, const int str_len, const int flags);
呼び出し元プロセスは、現在のプロセスの機密ラベルより優位にあるラベル上でラベル変換を実行するために、有効な特権セットの中に PRIV_SYS_TRANS_LABEL
を持っていなくてはなりません。
これらのルーチンは、バイナリラベルを文字列に変換します。この文字列は flags パラメータの値によって制御されます。
出力される文字コード形式のラベルの汎用形式は次のとおりです。
CLASSIFICATION WORD1 WORD2 WORD3/WORD4 SUFFIX PREFIX WORD5/WORD6
Classification 名と Word は大文字で表示します。格付け (Classifications) と Word は、文字コード形式のラベルにある Word と空白文字 (スペース)で区分されます。ただし、同じ prefix または suffix を要求する複数の Word が存在する場合は例外です。この場合は、Word と Word の間は「/」(スラッシュ) で区切ります。
string は、事前に割り当てられたメモリーへのポインタ、値 (char *)0 のうち、いずれかを指します。事前に割り当てられたメモリーへのポインタを指す場合は、str_len で、メモリーのサイズを示します。値 (char *)0 を指す場合は、変換された文字コード形式のラベルを含むように、malloc() を使ってメモリーが割り当てられます。変換された label は割り当てられた、(または事前に割り当てられた) メモリーにコピーされます。
flags は 0 (ゼロ)、または次の論理和になります。
label に定義されている Word の長形式名を使って変換します。
label に定義されている Word の短形式名を使って変換します。label_encodings ファイルの中に Word の短形式名が定義されていない場合は、長形式名が使用されます。
label に定義されている格付けの長形式名を使って変換します。
label に定義されている格付けの短形式名を使って変換します。
情報ラベル label に定義されているアクセス関連のエントリだけを変換します。
ADMIN_LOW
ラベルと ADMIN_HIGH
ラベルを label_encodings ファイルに定義されている最下位ラベルと最上位ラベルに変換します。
ADMIN_LOW
ラベルと ADMIN_HIGH
ラベルを label_encodings ファイルに指定されている admin low name 文字列と admin high name 文字列に変換します。文字列が指定されていない場合は、文字列「ADMIN_LOW
」と「ADMIN_HIGH
」が使用されます。
label に定義されている Classification は変換されません。
bcltos() は、バイナリ形式の CMW ラベルを次の形式の文字列に変換します。
INFORMATION LABEL [ SENSITIVITY LABEL ]
適用可能な flags は、LONG_WORDS または SHORT_WORDS と、VIEW_EXTERNAL または VIEW_INTERNAL です。flags 値 0 は、(LONG_WORDS) と同等です。
bsltos() は、バイナリ形式の機密ラベルを文字列に変換します。適用可能な flags は、LONG_CLASSIFICATION または SHORT_CLASSIFICATION、LONG_WORDS または SHORT_WORDS、VIEW_EXTERNAL または VIEW_INTERNAL、および NO_CLASSIFICATION です。flags 値 0 は、(SHORT_CLASSIFICATION | LONG_WORDS) と同等です。
biltos() は、バイナリ形式の情報ラベルを文字列に変換します。適用可能な flags は、LONG_CLASSIFICATION または SHORT_CLASSIFICATION、LONG_WORDS または SHORT_WORDS、ALL_ENTRIES または ACCESS_RELATED、VIEW_EXTERNAL または VIEW_INTERNAL、および NO_CLASSIFICATION です。flags 値 0 は、(LONG_CLASSIFICATION | LONG_WORDS | ALL_ENTRIES) と同等です。
bcleartos() は、バイナリ形式の認可上限を文字列に変換します。適用可能な flags は、LONG_CLASSIFICATION または SHORT_CLASSIFICATION、LONG_WORDS または SHORT_WORDS、VIEW_EXTERNAL または VIEW_INTERNAL、および NO_CLASSIFICATION です。flags 値 0 は、(SHORT_CLASSIFICATION | LONG_WORDS) と同等です。認可上限の変換結果は、機密ラベルの変換結果と同じでないことがあります。これらの関数は、別々の label_encodings ファイルテーブルを使用します。それぞれのテーブルに含まれる Word と制約条件は異なっている場合があります。
次の属性の説明については、attributes(5) のマニュアルページを参照してください。
属性タイプ | 属性値 |
---|---|
使用条件 | SUNWtsu |
MT レベル | MT- 安全 |
これらのルーチンは次の値を返します。
ラベルのタイプが、要求された有効な定義済みのものでない場合、プロセスの機密ラベルがラベルより優位でなく、プロセスの有効な特権セットの中に PRIV_SYS_TRANS_LABEL
がない場合、label_encodings ファイルにアクセス不能な場合。
戻り文字列にメモリーを割り当てられない場合、事前に割り当てられた戻り文字列のメモリーに文字列が収まらない場合。事前に割り当てられた文字列の値は NULL 文字列に設定されます (*string[0]='¥00';)
成功の場合、NULL ターミネータを含む文字コード形式のラベルの長さが表示されます。
VIEW_EXTERNAL
または VIEW_INTERNAL
フラグが指定されていない場合、ADMIN_LOW
ラベルと ADMIN_HIGH
ラベルの変換は、ラベル表示プロセスの属性フラグによって制御されます。ラベル表示プロセスの属性フラグが定義されていない場合は、label_encodings ファイルに設定されているラベル表示によって制御されます。External の値は、ADMIN_LOW
ラベルとADMIN_HIGH
ラベルが label_encodings ファイルに定義されている最下位ラベルと最上位ラベルになることを指定します。Internal の値は、ADMIN_LOW
ラベルと ADMIN_HIGH
ラベルが label_encodings ファイルに指定されている admin low name 文字列と admin high name 文字列に変換されることを指定します。このような名前が指定されていない場合は、文字列「ADMIN_LOW」と「ADMIN_HIGH」が使用されます。
bcltobanner(3), blcompare(3), blinset(3), blmanifest(3), blminmax(3), blportion(3), bltocolor(3), bltype(3), blvalid(3), btohex(3), hextob(3), labelinfo(3), labelvers(3), sbltos(3), stobl(3), label_encodings(4)
Trusted Solaris 開発ガイド, Trusted Solaris の管理者用のマニュアル
これらのルーチンでメモリーを割り当てている場合は、使用しなくなったメモリーは、呼び出し元で free() を使って解放します。