Trusted Solaris 開発ガイド

プログラミングインタフェース宣言

これらのネットワークライブラリルーチンは、Trusted Solaris 7 ホストとの間で送受信されるメッセージのセキュリティ属性を処理します。

属性マスクの取得

これらのルーチンは、システムによりサポートされるセキュリティ属性の属性マスク、属性構造に割り当てられる領域の属性、属性構造内の属性を作成します。マスク変数に t6mask_t 列挙型値を割り当てる代わりに、これらのルーチンを使用できます。

t6mask_t				t6supported_attrs(void);
 t6mask_t				t6allocated_attrs(t6attr_t t6ctl);
 t6mask_t				t6present_attrs(t6attr_t t6ctl);

領域の割り当てと解放

t6alloc_blk(3N) ルーチンは、new_attrs で指定されているセキュリティ属性に割り当てられた十分な領域を使用して、セキュリティ属性構造を作成します。 t6free_blk(3N) ルーチンは、セキュリティ属性構造 t6ctl に割り当てられた領域を解放します。詳細は、t6alloc_blk(3N) のマニュアルページを参照してください。

t6attr_t			t6alloc_blk(				t6mask_t *new_attrs);
 void 			t6free_blk(				t6attr_t t6ctl);

データの送受信

t6sendto(3N) ルーチンは、メッセージとともにセキュリティ属性を送信します。t6recvfrom(3N) ルーチンは、メッセージとそのセキュリティ属性を受信します。t6new_attr(3N)有効な場合、t6recvfrom(3N) は、new_attrs 内の属性が変更されているときだけセキュリティ属性を受信します。詳細は、t6sendto(3N)t6recvfrom(3N)t6new_attr(3N) のマニュアルページを参照してください。


注 -

これらのルーチンは、ソケット固有のものです。トランスポートレイヤーインタフェース (TLI) では、t6recvfrom(3N)t6new_attr(3N) の代わりに t6last_attr(3N) を、t6sendto(3N) の代わりに t6set_endpt_default(3N) を使用してください。


int 			t6sendto(				int sock,
 							const char *msg,
 							int len,
 							int flags,
 							const struct sockaddr *to,
 							int tolen,
 							const t6attr_t *attr_ptr);

 int 			t6recvfrom(				int sock,
 							char *buf,
 							int len,
 							int flags,
 							struct sockaddr *from,
 							int *fromlen,
 							t6attr_t *attr_ptr,
 							t6mask_t *new_attrs);

 int			t6new_attr(				int sock, t6cmd_t cmd);

セキュリティ属性の取得と設定

t6get_attr(3N) ルーチンは、attr_type 内の属性をセキュリティ属性構造 t6ctl から取得します。戻り値は、「属性の列挙」で説明しているように、正しい型に変換する必要があります。

t6set_attr(3N) ルーチンは、セキュリティ属性構造 t6ctl 内の attr に指定された値を使用して、attr_type 内の属性を設定します。

詳細は、t6get_attr(3N) のマニュアルページを参照してください。

void * 			t6get_attr(				t6attr_id_t attr_type,
 							const t6attr_t t6ctl);

 int 			t6set_attr(				t6attr_id_t attr_type,
 							const void *attr,
 							t6attr_t *t6ctl);

セキュリティ属性の確認

t6peek_attr(3N) ルーチンは、受信されるデータの次のバイトの attr_ptr 内のセキュリティ属性を確認します。t6last_attr(3N) ルーチンは、受信されたデータの最後のバイトのセキュリティ属性を確認します。詳細は、t6peek_attr(3N) のマニュアルページを参照してください。

int 			t6peek_attr(				int sock,
 							t6attr_t attr_ptr,
 							t6mask_t *new_attrs);

 int		 	t6last_attr(				int sock,
 							t6attr_t attr_ptr,
 							t6mask_t *new_attrs);

1 つのセキュリティ属性のサイズの取得

t6size_attr(3N) ルーチンは、セキュリティ属性構造 t6ctlattr_type で指定されたセキュリティ属性の値のサイズをバイト単位で取得します。t6size_attr(3N) のマニュアルページを参照してください。

size_t 			t6size_attr(				t6attr_id_t attr_type,
 							const t6attr_t t6ctl);

セキュリティ属性のコピーと複製

これらのルーチンは、attr_src をコピーします。詳細は、t6copy_blk(3N)t6dup_blk(3N) のマニュアルページを参照してください。

void 			t6copy_blk(				const t6attr_t attr_src,
 							t6attr_t attr_dest);

 t6attr_t 			t6dup_blk(				const t6attr_t attr_src);

セキュリティ属性の比較

このルーチンは、1 つのセキュリティ属性を別のセキュリティ属性と比較します。詳細は、t6comp_blk(3N) のマニュアルページを参照してください。

int			t6cmp_blk(				t6attr_t t6ctl1,
 							t6attr_t t6ctl2);

セキュリティ属性のクリア

このルーチンは、maskt6ctl に基づいて指定された属性をクリアします。詳細は、t6clear_blk(3N) のマニュアルページを参照してください。

void 				t6clear_blk(							t6mask_t mask, t6attr_t t6ctl);

終端属性の取得と設定

t6set_endpt_default(3N) ルーチンは、mask で示された attr 内のセキュリティ属性値を、通信終端に設定します。t6set_endpt_mask(3N) ルーチンは、終端 mask だけを設定します。

t6get_endpt_default(3N) ルーチンは、mask で示された attr 内のセキュリティ属性値を、通信終端から取得します。t6get_endpt_mask(3N) ルーチンは、終端 mask だけを取得します。

詳細は、t6get_endpt_mask(3N) のマニュアルページを参照してください。

int			t6get_endpt_default(						int sock,
 									t6mask_t *mask,
 									t6attr_t attr);

 int 			t6set_endpt_mask(						int sock,
 									t6mask_t mask);

 int 			t6set_endpt_default(						int sock,
 									t6mask_t mask,
 									const t6attr_t attr_ptr);

 int 			t6get_endpt_mask(						int sock,
 									t6mask_t *mask);

拡張セキュリティオペレーションの有効化と無効化

このルーチンは、ほかのベンダーとの互換性のために、拡張セキュリティオペレーションを有効または無効にします。このオペレーションは、デフォルトでは有効です。無効にされる場合、通信がシステムの必須アクセス制御および任意アクセス制御のもとにあるかぎり、メッセージは送受信できます。詳細は、t6ext_attr(3N) のマニュアルページを参照してください。

int				t6ext_attr(										int fd, t6cmd_t cmd);