ADD_KEY(2) | Linux Key Management Calls | ADD_KEY(2) |
add_key - カーネルの鍵管理機能に鍵を追加する
#include <keyutils.h> key_serial_t add_key(const char *type, const char *description, const void *payload, size_t plen, key_serial_t keyring);
add_key() は、 指定した type と description を持つ鍵の作成、更新を行うようにカーネルに指示し、 長さ plen の payload で鍵を生成し、 指定された keyring にその鍵を追加し、 鍵リングのシリアル番号を返す。
鍵タイプによっては、 フォーマットが違っていたり、その他にも無効なものがあると、 指定したデータが拒否される場合もある。
対象の keyring に指定された type と description に合致する鍵がすでに含まれる場合、 鍵タイプがサポートしていれば、 新しい鍵が作成されるのではなく、 その鍵が更新される。 鍵タイプがサポートしていない場合、 新しい鍵が作成され、 鍵リングの現在の鍵のリンクはこの鍵で置き換えられる。
対象の keyring のシリアル番号には、 呼び出し元が書き込み許可を持つ有効な鍵リングのシリアル番号か、 以下の特別な鍵リング ID を指定する。
コアの鍵管理コードには様々な鍵タイプがあり、 この関数でこれらを指定することができる。
成功すると add_key() は、作成または更新した鍵のシリアル番号を返す。 エラーの場合、値 -1 が返され errno にエラーを示す値が設定される。
これは Linux のシステムコールだが、 libc には存在せず、 代わりに libkeyutils に存在する。 リンクする際には、 リンカーに -lkeyutils を指定する必要がある。
この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。
2010-02-25 | Linux |