Solaris Trusted Extensions 開発ガイド

Trusted Extensions X ウィンドウシステム API

Trusted X11 API を使用するには、次のヘッダーファイルが必要です。


#include <X11/extensions/Xtsol.h>

Trusted X11 の例は、-lXtsol および -ltsol ライブラリオプションによってコンパイルされます。

X11 ラベルクリッピング API を使用するには、次のヘッダーファイルが必要です。


#include <Dt/label_clipping.h>

ラベルクリッピングの例は、-lDtTsol および -ltsol ライブラリオプションによってコンパイルされます。

次の節で、Trusted X11 インタフェースおよび X11 ラベルクリッピングインタフェースのデータ型および宣言を示します。

X11 のデータ型

次のデータ型が X11/extensions/Xtsol.h で定義されていて、Trusted Extensions X ウィンドウシステム API に使用されます。

属性へのアクセス

リソース、プロパティー、およびクライアント属性にアクセスするために、次のルーチンが使用されます。

Status XTSOLgetResAttributes(Display *display, XID object, ResourceType type, XTSOLResAttributes *winattrp);

このルーチンは、winattrp のウィンドウ ID のリソース属性を返します。XTSOLgetResAttributes(3XTSOL) のマニュアルページを参照してください。

Status XTSOLgetPropAttributes(Display *display, Window window, Atom property, XTSOLPropAttributes *propattrp);

このルーチンは、propattrp のウィンドウ ID によって決まるプロパティーのプロパティー属性を返します。XTSOLgetPropAttributes(3XTSOL) のマニュアルページを参照してください。

Status XTSOLgetClientAttributes(Display *display, XID windowid, XTsolClientAttributes *clientattrp);

このルーチンは clientattrp のクライアント属性を返します。XTSOLgetClientAttributes(3XTSOL) のマニュアルページを参照してください。

ウィンドウラベルへのアクセスと設定

ウィンドウの機密ラベルを取得および設定するために、XTSOLgetResLabel() および XTSOLsetResLabel() ルーチンが使用されます。

Status XTSOLgetResLabel(Display *display, XID object, ResourceType type, m_label_t *sl);

このルーチンはウィンドウの機密ラベルを取得します。XTSOLgetResLabel(3XTSOL) のマニュアルページを参照してください。

Status XTSOLsetResLabel(Display *display, XID object, ResourceType type, m_label_t *sl);

このルーチンはウィンドウの機密ラベルを設定します。XTSOLsetResLabel(3XTSOL) のマニュアルページを参照してください。

ウィンドウユーザー ID へのアクセスと設定

ウィンドウのユーザー ID を取得および設定するために、XTSOLgetResUID() および XTSOLsetResUID() ルーチンが使用されます。

Status XTSOLgetResUID(Display *display, XID object, ResourceType type, uid_t *uidp);

このルーチンはウィンドウのユーザー ID を取得します。XTSOLgetResUID(3XTSOL) のマニュアルページを参照してください。

Status XTSOLsetResUID(Display *display, XID object, ResourceType type, uid_t *uidp);

このルーチンはウィンドウのユーザー ID を設定します。XTSOLsetResUID(3XTSOL) のマニュアルページを参照してください。

ウィンドウプロパティーラベルへのアクセスと設定

ウィンドウ ID によって決まるプロパティーの機密ラベルを取得および設定するために、XTSOLgetPropLabel() および XTSOLsetPropLabel() ルーチンが使用されます。

Status XTSOLgetPropLabel(Display *display, Window window, Atom property, m_label_t *sl);

このルーチンは、ウィンドウ ID によって決まるプロパティーの機密ラベルを取得します。XTSOLgetPropLabel(3XTSOL) のマニュアルページを参照してください。

Status XTSOLsetPropLabel(Display *display, Window window, Atom property, m_label_t *sl);

このルーチンは、ウィンドウ ID によって決まるプロパティーの機密ラベルを設定します。XTSOLsetPropLabel(3XTSOL) のマニュアルページを参照してください。

ウィンドウプロパティーユーザー ID へのアクセスと設定

ウィンドウ ID によって決まるプロパティーのユーザー ID を取得および設定するために、XTSOLgetPropUID() および XTSOLsetPropUID() ルーチンが使用されます。

Status XTSOLgetPropUID(Display *display, Window window, Atom property, uid_t *uidp);

このルーチンは、ウィンドウ ID によって決まるプロパティーのユーザー ID を取得します。XTSOLgetPropUID(3XTSOL) のマニュアルページを参照してください。

Status XTSOLsetPropUID(Display *display, Window window, Atom property, uid_t *uidp);

このルーチンは、ウィンドウ ID によって決まるプロパティーのユーザー ID を設定します。XTSOLsetPropUID(3XTSOL) のマニュアルページを参照してください。

ワークステーション所有者 ID へのアクセスと設定

ワークステーションサーバーの所有者のユーザー ID を取得および設定するために、XTSOLgetWorkstationOwner() および XTSOLsetWorkstationOwner() ルーチンが使用されます。


注 –

XTSOLsetWorkstationOwner() ルーチンはウィンドウマネージャーによってのみ使用されます。


Status XTSOLgetWorkstationOwner(Display *display, uid_t *uidp);

このルーチンは、ワークステーションサーバーの所有者のユーザー ID を取得します。XTSOLgetWorkstationOwner(3XTSOL) のマニュアルページを参照してください。

Status XTSOLsetWorkstationOwner(Display *display, uid_t *uidp);

このルーチンは、ワークステーションサーバーの所有者のユーザー ID を設定します。XTSOLsetWorkstationOwner(3XTSOL) のマニュアルページを参照してください。

X ウィンドウサーバーの認可上限と最下位ラベルの設定

X ウィンドウサーバーにセッション高位認可上限およびセッション最下位ラベルを設定するために、XTSOLsetSessionHI() および XTSOLsetSessionLO() ルーチンを使用します。セッション高位認可上限は、ラベルビルダー GUI から選択でき、ユーザーの範囲内である必要があります。セッション最下位ラベルは、マルチレベルセッションの場合のユーザーの最下位ラベルと同じです。


注 –

これらのインタフェースはウィンドウマネージャーによってのみ使用されます。


Status XTSOLsetSessionHI(Display *display, m_label_t *sl);

セッションの高位認可上限は、ログイン時のワークステーション所有者の認可上限から設定されます。セッションの高位認可上限は、所有者の認可上限およびマシンモニターのラベル範囲の上限のほうが優位です。これが変更されると、ウィンドウサーバーの認可上限より高位の機密ラベルで実行されるクライアントからの接続要求は、特権がなければ拒否されます。XTSOLsetSessionHI(3XTSOL) のマニュアルページを参照してください。

Status XTSOLsetSessionLO(Display *display, m_label_t *sl);

セッションの最下位ラベルは、ログイン時のワークステーション所有者の最下位ラベルから設定されます。セッションの最下位ラベルは、管理のために設定されるユーザーの最下位ラベルおよびマシンモニターのラベル範囲の下限より高位です。この設定を変更すると、ウィンドウサーバーの機密ラベルより下位の機密ラベルで実行されるクライアントからの接続要求は、特権がなければ拒否されます。XTSOLsetSessionLO(3XTSOL) のマニュアルページを参照してください。。

トラステッドパスウィンドウでの作業

指定したウィンドウをトラステッドパスウィンドウにするため、および、指定したウインドウがトラステッドパスウィンドウであるかどうかを検査するために、XTSOLMakeTPWindow() および XTSOLIsWindowTrusted() ルーチンが使用されます。

Status XTSOLMakeTPWindow(Display *display, Window *w);

このルーチンは、指定したウィンドウをトラステッドパスウィンドウにします。XTSOLMakeTPWindow(3XTSOL) のマニュアルページを参照してください。

Bool XTSOLIsWindowTrusted(Display *display, Window *window);

このルーチンは、指定したウィンドウがトラステッドパスウィンドウであるかどうかを検査します。XTSOLIsWindowTrusted(3XTSOL) のマニュアルページを参照してください。

スクリーンストライプの高さへのアクセスと設定

スクリーンストライプの高さを取得および設定するために、XTSOLgetSSHeight() および XTSOLsetSSHeight() ルーチンが使用されます。


注 –

これらのインタフェースはウィンドウマネージャーによってのみ使用されます。


Status XTSOLgetSSHeight(Display *display, int screen_num, int *newHeight);

このルーチンはスクリーンストライプの高さを取得します。XTSOLgetSSHeight(3XTSOL) のマニュアルページを参照してください。

Status XTSOLsetSSHeight(Display *display, int screen_num, int newHeight);

このルーチンはスクリーンストライプの高さを設定します。スクリーンストライプがなくなったり、非常に大きなスクリーンストライプになったりしないように注意してください。XTSOLsetSSHeight(3XTSOL) のマニュアルページを参照してください。

ウィンドウの多インスタンス化情報の設定

Status XTSOLsetPolyInstInfo(Display *display, m_label_t sl, uid_t *uidp, int enabled);

XTSOLsetPolyInstInfo() ルーチンは、クライアントとは異なる機密ラベルで、クライアントがプロパティーからプロパティー情報を取得できるようにします。最初の呼び出しで、必要な機密ラベルとユーザー ID を指定し、enabled プロパティーを True に設定します。次に、XTSOLgetPropAttributes()XTSOLgetPropLabel()、または XTSOLgetPropUID() を呼び出します。終了するには、enabled プロパティーを False に設定して XTSOLsetPolyInstInfo() ルーチンを再び呼び出します。XTSOLsetPolyInstInfo(3XTSOL) のマニュアルページを参照してください。

X11 ラベルクリッピングインタフェースでの作業

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

label_to_str() ルーチンは、機密ラベルまたは認可上限を文字列に変換します。label_to_str(3TSOL) のマニュアルページを参照してください。