.\" Copyright (C) 2006 Red Hat, Inc. All Rights Reserved. .\" Written by David Howells (dhowells@redhat.com) .\" .\" %%%LICENSE_START(GPLv2+_SW_ONEPARA) .\" This program is free software; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License .\" as published by the Free Software Foundation; either version .\" 2 of the License, or (at your option) any later version. .\" %%%LICENSE_END .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH ADD_KEY 2 2010\-02\-25 Linux "Linux Key Management Calls" .SH 名前 add_key \- カーネルの鍵管理機能に鍵を追加する .SH 書式 .nf \fB#include \fP .sp \fBkey_serial_t add_key(const char *\fP\fItype\fP\fB, const char *\fP\fIdescription\fP\fB,\fP \fB const void *\fP\fIpayload\fP\fB, size_t \fP\fIplen\fP\fB,\fP \fB key_serial_t \fP\fIkeyring\fP\fB);\fP .fi .SH 説明 \fBadd_key\fP() は、 指定した \fItype\fP と \fIdescription\fP を持つ鍵の作成、更新を行うようにカーネルに指示し、 長さ \fIplen\fP の \fIpayload\fP で鍵を生成し、 指定された \fIkeyring\fP にその鍵を追加し、 鍵リングのシリアル番号を返す。 .P 鍵タイプによっては、 フォーマットが違っていたり、その他にも無効なものがあると、 指定したデータが拒否される場合もある。 .P 対象の \fIkeyring\fP に指定された \fItype\fP と \fIdescription\fP に合致する鍵がすでに含まれる場合、 鍵タイプがサポートしていれば、 新しい鍵が作成されるのではなく、 その鍵が更新される。 鍵タイプがサポートしていない場合、 新しい鍵が作成され、 鍵リングの現在の鍵のリンクはこの鍵で置き換えられる。 .P 対象の \fIkeyring\fP のシリアル番号には、 呼び出し元が書き込み許可を持つ有効な鍵リングのシリアル番号か、 以下の特別な鍵リング ID を指定する。 .TP \fBKEY_SPEC_THREAD_KEYRING\fP この値は呼び出し元スレッド固有の鍵リングを指定する。 .TP \fBKEY_SPEC_PROCESS_KEYRING\fP この値は呼び出し元プロセス固有の鍵リングを指定する。 .TP \fBKEY_SPEC_SESSION_KEYRING\fP この値は呼び出し元セッション固有の鍵リングを指定する。 .TP \fBKEY_SPEC_USER_KEYRING\fP この値は呼び出し元の UID 固有の鍵リングを指定する。 .TP \fBKEY_SPEC_USER_SESSION_KEYRING\fP この値は呼び出し元の UID のセッションの鍵リングを指定する。 .SH 鍵タイプ コアの鍵管理コードには様々な鍵タイプがあり、 この関数でこれらを指定することができる。 .TP \fB\*(lquser\*(rq\fP ユーザー定義の鍵タイプの鍵には、 任意のデータの blob を入れることができ、 \fIdescription\fP には任意の有効な文字列を指定できるが、 鍵が対象とするサービスを表す文字列とコロンをプレフィックスに指定するのが推奨される方法である (例えば \*(lq\fBafs:mykey\fP\*(rq)。 このタイプの鍵には \fIpayload\fP に空文字列つまり NULL を指定する。 .TP \fB\*(lqkeyring\*(rq\fP 鍵リングは、 任意のタイプの他の鍵の列へのリンクを保持できる特別な鍵タイプである。 このインターフェースを使って鍵リングを作成する場合、 \fIpayload\fP には NULL を、 \fIplen\fP には 0 を指定しなければならない。 .SH 返り値 成功すると \fBadd_key\fP() は、作成または更新した鍵のシリアル番号を返す。 エラーの場合、値 \-1 が返され \fIerrno\fP にエラーを示す値が設定される。 .SH エラー .TP \fBENOKEY\fP 鍵リングが存在しない。 .TP \fBEKEYEXPIRED\fP 鍵リングが期限切れである。 .TP \fBEKEYREVOKED\fP 鍵リングが廃止されている。 .TP \fBEINVAL\fP ペイロードデータが無効である。 .TP \fBENOMEM\fP 鍵を作成するのに十分なメモリーがない。 .TP \fBEDQUOT\fP この鍵を作成するか、鍵を鍵リングに追加すると、 このユーザーの鍵リングのクォータを超過してしまう。 .TP \fBEACCES\fP そのユーザーは指定された鍵リングを変更できない。 .SH LINKING これは Linux のシステムコールだが、 \fIlibc\fP には存在せず、 代わりに \fIlibkeyutils\fP に存在する。 リンクする際には、 リンカーに \fB\-lkeyutils\fP を指定する必要がある。 .SH 関連項目 \fBkeyctl\fP(1), \fBkeyctl\fP(2), \fBrequest_key\fP(2) .SH この文書について この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.79 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man\-pages/ に書かれている。