RPC ライブラリコールのサーバーハンドルは、SVCXPRT データ構造体に対するポインタです。また、RPC ライブラリコールのクライアントハンドルは、CLIENT データ構造体に対するポインタです。Trusted Solaris 7 では、これら両構造体にセキュリティ属性情報を指す追加フィールドがあります。
サーバーハンドルとクライアントハンドルが指すセキュリティ属性は、TSIX ライブラリに基づいています。セキュリティ属性の変更に必要な TSIX ライブラリルーチンと特権の詳細は、第 13 章「トラステッドセキュリティ情報交換ライブラリ」を参照してください。
呼び出し元は、セキュリティ属性ポインタに割り当てられたすべてのメモリーブロックを解放する必要があります。
次に示す、SVCXPRT 構造体のセキュリティ属性フィールドは、サーバープロセスを使用して直接アクセスできます。
t6attr_t xp_tsol_incoming_attrsp
t6attr_t xp_tsol_outgoing_attrsp
t6mask_t xp_tsol_incoming_new_attrs
サーバーは、t6alloc_blk(3N) を使用してセキュリティ属性の領域を持つ不透明な構造体を割り当て、SVCXPRT 構造体内の xp_tsol_incoming_attrsp フィールドを設定してそのセキュリティ属性構造体を指すことにより、着信クライアント要求の 1 つ以上のセキュリティ属性を受信できます。
特権を持つサーバーは、t6alloc_blk(3N) を使用してセキュリティ属性の領域を持つ不透明な構造体を割り当て、SVCXPRT 構造体内の xp_tsol_outgoing_attrsp フィールドを設定してセキュリティ属性構造体を指すことにより、サーバーへの要求にセキュリティ属性を設定できます。RPC ライブラリルーチンは、属性をピックアップし、それらを応答の属性として送信します。
サーバーは、SVCXPRT 構造体内の xp_tsol_incoming_new_attrs フィールドを使用して、確認される特定の着信属性を指すことにより、データの次のバイトと最後のバイトのセキュリティ属性を確認できます。
次に示す CLIENT 構造体のセキュリティ属性フィールドは、クライアントプロセスを使用して直接アクセスできます。
t6attr_t cl_tsol_incoming_attrsp
t6attr_t cl_tsol_outgoing_attrsp
クライアントは、t6alloc_blk(3N) を使用して属性の領域を持つ不透明な構造を割り当て、CLIENT 構造体内の cl_tsol_incoming_attrsp フィールドを設定してセキュリティ属性構造を指すことにより、着信サーバー応答の 1 つ以上のセキュリティ属性を受信できます。
特権を持つクライアントは、t6alloc_blk(3N) を使用してセキュリティ属性の領域を持つ不透明な構造体を割り当て、CLIENT 構造体内の xp_tsol_outgoing_attrsp フィールドを設定してセキュリティ属性構造体を指すことにより、サーバーへの要求にセキュリティ属性を設定できます。RPC ライブラリルーチンは、属性を取り出し、それらを応答の属性として送信します。