この付録では、アプリケーションプログラミングインタフェース (API) をリストし、その使用法の相互参照を示します。宣言はセキュリティー項目ごとにまとめられています。
この付録の内容は次のとおりです。
次の Solaris API は Trusted Extensions パラメータを受け入れます。
uint_t getpflags(uint_t flag);
int setpflags(uint_t flag, uint_t value);
ラベル API は、第 2 章「ラベルと認可上限」で概説されています。コーティング例は、第 3 章「ラベルのコーディング例」にありあす。詳しく説明されている例は、第 4 章「印刷とラベル API」にあります。
次に、ラベル関連 API のタイプをリストし、各タイプのルーチンおよびシステムコールのプロトタイプ宣言を示します。
m_label_t *m_label_alloc(const m_label_type_t label_type);
int m_label_dup(m_label_t **dst, const m_label_t *src);
void m_label_free(m_label_t *label);
int label_to_str(const m_label_t *label, char **string, const m_label_str_t conversion_type, uint_t flags);
int blequal(const m_label_t *level1, const m_label_t *level2);
int bldominates(const m_label_t *level1, const m_label_t *level2);
int blstrictdom(const m_label_t *level1, const m_label_t *level2);
int blinrange(const m_label_t *level, const brange_t *range);
void blmaximum(m_label_t *maximum_label, const m_label_t *bounding_label);
void blminimum(m_label_t *minimum_label, const m_label_t *bounding_label);
m_range_t *getuserrange(const char *username);
blrange_t *getdevicerange(const char *device);
char *getpathbylabel(const char *path, char *resolved_path, size_t bufsize, const m_label_t *sl);
m_label_t *getzonelabelbyid(zoneid_t zoneid);
m_label_t *getzonelabelbyname(const char *zonename);
zoneid_t *getzoneidbylabel(const m_label_t *label);
char *getzonerootbyid(zoneid_t zoneid);
char *getzonerootbylabel(const m_label_t *label);
char *getzonerootbyname(const char *zonename);
tsol_host_type_t tsol_getrhtype(char *hostname);
int fgetlabel(int fd, m_label_t *label_p);
int getlabel(const char *path, m_label_t *label_p);
int setflabel(const char *path, const m_label_t *label_p);
int getplabel(m_label_t *label_p);
int label_to_str(const m_label_t *label, char **string, const m_label_str_t conversion_type, uint_t flags);
int str_to_label(const char *string, m_label_t **label, const m_label_type_t label_type, uint_t flags, int *error);
ラベルクリッピング API については、第 6 章「トラステッド X ウィンドウシステム」を参照してください。
int label_to_str(const m_label_t *label, char **string, const m_label_str_t conversion_type, uint_t flags);
Trusted Extensions には、遠隔手続き呼び出し (RPC) 用のインタフェースがありません。Trusted Extensions と機能するように RPC インタフェースが変更されています。理論的な説明は、第 5 章「プロセス間通信」を参照してください。getpeerucred() および ucred_getlabel() ルーチンを使用する例は、第 4 章「印刷とラベル API」を参照してください。
ラベルビルダーのユーザーインタフェースについては、第 7 章「ラベルビルダー API」を参照してください。
ModLabelData *tsol_lbuild_create(Widget widget, void (*event_handler)() ok_callback, lbuild_attributes extended_operation, ..., NULL);
void tsol_lbuild_destroy(ModLabelData *lbdata);
void *tsol_lbuild_get(ModLabelData *lbdata, lbuild_attributes extended_operation);
void tsol_lbuild_set(ModLabelData *lbdata, lbuild_attributes extended_operation, ..., NULL);
トラステッド X ウィンドウシステム API については、第 6 章「トラステッド X ウィンドウシステム」を参照してください。
Status XTSOLgetResAttributes(Display *display, XID object, ResourceType type, XTSOLResAttributes *winattrp);
Status XTSOLgetPropAttributes(Display *display, Window window, Atom property, XTSOLPropAttributes *propattrp);
Status XTSOLgetClientAttributes(Display *display, XID windowid, XTsolClientAttributes *clientattrp);
Status XTSOLgetResLabel(Display *display, XID object, ResourceType type, m_label_t *sl);
Status XTSOLsetResLabel(Display *display, XID object, ResourceType type, m_label_t *sl);
Status XTSOLgetResUID(Display *display, XID object, ResourceType type, uid_t *uidp);
Status XTSOLsetResUID(Display *display, XID object, ResourceType type, uid_t *uidp);
Status XTSOLgetPropLabel(Display *display, Window window, Atom property, m_label_t *sl);
Status XTSOLsetPropLabel(Display *display, Window window, Atom property, m_label_t *sl);
Status XTSOLgetPropUID(Display *display, Window window, Atom property, uid_t *uidp);
Status XTSOLsetPropUID(Display *display, Window window, Atom property, uid_t *uidp);
Status XTSOLgetWorkstationOwner(Display *display, uid_t *uidp);
Status XTSOLsetWorkstationOwner(Display *display, uid_t *uidp);
Status XTSOLsetSessionHI(Display *display, m_label_t *sl);
Status XTSOLsetSessionLO(Display *display, m_label_t *sl);
Status XTSOLMakeTPWindow(Display *display, Window *w);
Bool XTSOLIsWindowTrusted(Display *display, Window *window);
Status XTSOLgetSSHeight(Display *display, int screen_num, int *newheight);
Status XTSOLsetSSHeight(Display *display, int screen_num, int newheight);
Status XTSOLsetPolyInstInfo(Display *display, m_label_t sl, uid_t *uidp, int enabled);
次の Solaris インタフェースは、Trusted Extensions パラメータを含むか、Trusted Extensions インタフェースとともにこのマニュアルで使用されます。
int auditon(int cmd, caddr_t data, int length);
void free(void *ptr);
int getpeerucred(int fd, ucred_t **ucred);
uint_t getpflags(uint_t flag);
int is_system_labeled(void);
int setpflags(uint_t flag, uint_t value);
int getsockopt(int s, int level, int optname, void *optval, int *optlen);
int setsockopt(int s, int level, int optname, const void *optval, int optlen);
int socket(int domain, int type, int protocol);
ucred_t *ucred_get(pid_t pid);
m_label_t *ucred_getlabel(const ucred_t *uc);
次の表に Trusted Extensions システムコールとルーチンを示します。さらに、インタフェースの説明と宣言についてのこのマニュアルにおける参照先、およびインタフェースの例の参照先を示します。マニュアルページセクションは、各システムコールおよびルーチンの名前の一部として含まれます。
表 B–1 Trusted Extensions で使用されるシステムコールとライブラリルーチン
システムコールまたはライブラリルーチン |
説明の相互参照 |
例の相互参照 |
---|---|---|
bldominates(3TSOL) | ||
blequal(3TSOL) | ||
blinrange(3TSOL) | ||
blmaximum(3TSOL) |
|
|
blminimum(3TSOL) |
|
|
blstrictdom(3TSOL) |
|
|
fgetlabel(2) |
|
|
free(3C) |
|
|
getdevicerange(3TSOL) | ||
getlabel(2) | ||
getpathbylabel(3TSOL) |
|
|
getpeerucred(3C) | ||
getpflags(2) |
|
|
getplabel(3TSOL) | ||
getuserrange(3TSOL) |
|
|
getzoneidbylabel(3TSOL) |
|
|
getzonelabelbyid(3TSOL) |
|
|
getzonelabelbyname(3TSOL) |
|
|
getzonerootbyid(3TSOL) |
|
|
getzonerootbylabel(3TSOL) |
|
|
getzonerootbyname(3TSOL) |
|
|
is_system_labeled(3C) | ||
labelbuilder(3TSOL) | ||
label_to_str(3TSOL) | ||
m_label_alloc(3TSOL) | ||
m_label_dup(3TSOL) |
|
|
m_label_free(3TSOL) | ||
setflabel(3TSOL) |
|
|
setpflags(2) |
|
|
str_to_label(3TSOL) | ||
tsol_getrhtype(3TSOL) |
|
|
ucred_get(3C) |
|
|
ucred_getlabel(3C) |
|
|
XTSOLgetClientAttributes(3XTSOL) |
|
|
XTSOLgetPropAttributes(3XTSOL) |
|
|
XTSOLgetPropLabel(3XTSOL) |
|
|
XTSOLgetPropUID(3XTSOL) |
|
|
XTSOLgetResAttributes(3XTSOL) |
|
|
XTSOLgetResLabel(3XTSOL) |
|
|
XTSOLgetResUID(3XTSOL) |
|
|
XTSOLgetSSHeight(3XTSOL) |
|
|
XTSOLgetWorkstationOwner(3XTSOL) |
|
|
XTSOLIsWindowTrusted(3XTSOL) |
|
|
XTSOLMakeTPWindow(3XTSOL) |
|
|
XTSOLsetPolyInstInfo(3XTSOL) |
|
|
XTSOLsetPropLabel(3XTSOL) |
|
|
XTSOLsetPropUID(3XTSOL) |
|
|
XTSOLsetResLabel(3XTSOL) |
|
|
XTSOLsetResUID(3XTSOL) |
|
|
XTSOLsetSessionHI(3XTSOL) |
|
|
XTSOLsetSessionLO(3XTSOL) |
|
|
XTSOLsetSSHeight(3XTSOL) |
|
|
XTSOLsetWorkstationOwner(3XTSOL) |
|