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 序列號可能是一個有效的鍵環(keyring),調用者有寫許可權,或者它是一個特殊的鍵環 ID:
KEY_SPEC_THREAD_KEYRING
這指定調用執行緒特有的鍵環。
KEY_SPEC_PROCESS_KEYRING
這指定調用進程程特有的鍵環。
KEY_SPEC_SESSION_KEYRING
這指定調用會話特有的鍵環。
KEY_SPEC_USER_KEYRING
這指定調用 UID 特有的鍵環。
KEY_SPEC_USER_SESSION_KEYRING
這指定調用 UID-會話 特有的鍵環。

返回值

成功時 add_key() 返回新建或更新的鍵的序列號。錯誤時,-1 將被返回,並設定 errno 來表示合適的錯誤。

錯誤

ENOKEY
鍵環不存在。
EKEYEXPIRED
鍵環已經到期。
EKEYREVOKED
鍵環已經被取消。
EINVAL
payload 數據無效。
ENOMEM
沒有足夠的記憶體來創建鍵。
EDQUOT
當前用戶超過創建這類鍵或連結到那個鍵環的配額。
EACCES
當前用戶沒有修改該鍵環的許可權。

相關詞條

熱門詞條

聯絡我們