ukeyset_add_key、ukeyset_remove_key、ukeyset_add_set または ukeyset_remove_set サブルーチン

目的

ユーザー・キー・セットに対して操作および変更を行います。

ライブラリー

標準 C ライブラリー (libc.a)

構文

#include <sys/ukeys.h>

int ukeyset_add_key (uset, key, flags)
ukeyset_t * uset;
ukey_t key;
unsigned int flags;

int ukeyset_remove_key (uset, key, flags)
ukeyset_t * uset;
ukey_t key;
unsigned int flags;

int ukeyset_add_set (uset, aset)
ukeyset_t * uset;
ukeyset_t aset;

int ukeyset_remove_set (uset, rset)
ukeyset_t * uset;
ukeyset_t rset;

説明

これらのサブルーチンは、ユーザー・キー・セットに対して操作および変更を行います。 ユーザー・キー・セットは、最初に 鍵セット初期化 サブルーチンによって初期化されていなければなりません。

ユーザー・キーの個別またはグループ (セット) を追加または削除できます。 個々のキーを追加または除去する場合は、追加または除去するアクセス (読み取りまたは書き込み、あるいは読み取りと書き込みの両方) を フラグ パラメーターで指定する必要があります。 ユーザー・キー・セットを追加または除去する場合、キー・セットには、どのキーが使用可能になっているかに関する情報だけでなく、それらのキーのそれぞれについてどの特定のアクセス許可が使用可能になっているかに関する情報も含まれているため、指定する必要はありません。

ukeyset_add_key サブルーチンは、 フラグ パラメーターで指定されたアクセス権を持つ キー パラメーターで指定されたユーザー・キーを、 USET パラメーターで指定されたユーザー・キー・セットに追加します。 ukeyset_remove_key サブルーチンは、 キー パラメーターによって指定されたキーの フラグ パラメーターによって指定されたアクセスを、 USET パラメーターによって指定されたユーザー・キー・セットから除去します。 ukeyset_add_set サブルーチンは、 ASET キー・セット・パラメーターによって指定されたキーとアクセスを、 USET パラメーターによって指定されたユーザー・キー・セットに追加します。 jpkeyset_remove_set サブルーチンは、 RSET キー・セット・パラメーターによって指定されたキーおよびアクセスを、 USET パラメーターによって指定されたユーザー・キー・セットから除去します。

注: 鍵 (または鍵セット) の追加操作と、その後の同じ鍵 (または鍵セット) の削除操作では、元の鍵セットが作成されない場合があります。 例えば、キーが既にキー・セットに存在する場合、同じキーを追加してもキー・セットには影響しませんが、その後にキーの削除操作を実行すると、新しいキー・セットから削除されたキーを減算することになります。

ソース・キー・セットに存在しない定義済みユーザー・キーを除去しようとすると、シグナル・セット・サービスと同様の方法でサイレントに無視されます。

ukey_enable サブルーチンがプロセス内のスレッドによって既に正常に実行されていない限り、これらのサブルーチンは失敗します。 詳しくは、 Storage Protect Keys の記事 を参照してください。

パラメーター

項目 説明
USET 変更されるユーザー・キー・セット。
rset 除去するユーザー・キー・セット。
ASET 追加するユーザー・キー・セット。
key キー・セットに追加またはキー・セットから削除するユーザー・キー。 このパラメーターは、追加操作または削除操作の実行時に読み取りフラグまたは書き込みフラグと結合されます。
flags ukeyset_add_key () および ukeyset_remove_key () サービスには、以下のフラグが定義されています。
  • 英国読み取り -鍵の読み取りアクセス権限を追加または削除することを指定します。
  • 英国書き込み -鍵の書き込みアクセス権限を追加または削除することを指定します。
  • 英国 RW -読み取りおよび書き込みアクセスを追加または削除することを指定します。

戻り値

正常に実行された場合、ユーザー・キー・セット・サブルーチンは値 0 を戻します。 そうでない場合は-1を返し、エラーを示すグローバル変数errnoをセットする。

エラー・コード

以下の条件に該当する場合、 ukeyset_add_key および ukeyset_remove_key サブルーチンは失敗します。

項目 説明
EINVAL フラグ パラメーターが無効です。 USET パラメーターに無効なキー・セットが指定されているか、 キー パラメーターに無効な (未定義の) キーが指定されています。
ENOSYS キー パラメーターまたはプロセスで指定された未構成の (使用不可の) 秘密鍵が、ユーザー鍵対応ではありません。

ukeyset_add_setukeyset_remove_setukeyset_add_set および ukeyset_remove_set サブルーチンは、以下の条件が真の場合には失敗します。

項目 説明
EINVAL USETRSET 、または ASET パラメーターに無効なキー・セットが指定されました。
ENOSYS プロセスでユーザー・キーが有効になっていません。

追加または除去のために (キー・セットではなく) キーを取るサブルーチンのみが、無効または未使用のキー番号または無効なアクセス・フラグのために失敗する可能性があります。