add_key() - Unix、Linux 系統呼叫 - 技術教學
Tutorials Point


  Unix 初學者指南
  Unix Shell 程式設計
  高階 Unix
  Unix 有用參考
  Unix 有用資源
  精選閱讀

版權所有 © 2014 tutorialspoint



  首頁     參考     討論論壇     關於 TP  

add_key() - Unix、Linux 系統呼叫


previous next AddThis Social Bookmark Button

廣告

名稱

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() 請求核心建立或更新給定型別描述的金鑰,使用長度為plen有效負載對其進行例項化,並將其附加到指定的金鑰環並返回其序列號。

如果金鑰格式錯誤或以其他方式無效,則金鑰型別可能會拒絕資料。

如果目標金鑰環已包含與指定的型別描述匹配的金鑰,則如果金鑰型別支援,則將更新該金鑰,而不是建立新金鑰;否則,將建立一個新金鑰,並且它將取代金鑰環中對現有金鑰的連結。

目標金鑰環序列號可以是呼叫者具有寫入許可權的有效金鑰環的序列號,也可以是特殊的金鑰環 ID。

標籤描述
KEY_SPEC_THREAD_KEYRING 這指定了呼叫者的執行緒特定金鑰環。
KEY_SPEC_PROCESS_KEYRING 這指定了呼叫者的程序特定金鑰環。
KEY_SPEC_SESSION_KEYRING 這指定了呼叫者的會話特定金鑰環。
KEY_SPEC_USER_KEYRING 這指定了呼叫者的 UID 特定金鑰環。
KEY_SPEC_USER_SESSION_KEYRING 這指定了呼叫者的 UID 會話金鑰環。

金鑰型別

核心金鑰管理程式碼中提供了許多金鑰型別,這些型別可以指定給此函式。

標籤描述
“使用者” 使用者定義的金鑰型別可以包含任意資料的 blob,並且描述可以是任何有效的字串,但建議描述以表示金鑰感興趣的服務的字串和冒號為字首(例如“afs:mykey”)。此型別的金鑰的有效負載可以為空或NULL
“金鑰環” 金鑰環是特殊的金鑰型別,可以包含指向任何型別金鑰序列的連結。如果此介面用於建立金鑰環,則應指定NULL有效負載,並且plen應為零。

返回值

成功時,add_key() 返回其建立或更新的金鑰的序列號。發生錯誤時,將返回值-1,並且 errno 將設定為相應的錯誤。

錯誤

標籤描述
ENOKEY 金鑰環不存在。
EKEYEXPIRED 金鑰環已過期。
EKEYREVOKED 金鑰環已被吊銷。
EINVAL 有效負載資料無效。
ENOMEM 記憶體不足以建立金鑰。
EDQUOT 建立此金鑰或將其連結到金鑰環將超過此使用者的金鑰配額。
EACCES 使用者無法修改金鑰環。

連結

雖然這是一個 Linux 系統呼叫,但它不存在於libc中,而是在libkeyutils中找到。連結時,應向連結器指定-lkeyutils

另請參閱



previous next Printer Friendly

廣告


  

廣告



廣告
© . All rights reserved.