NOM¶
add_key - Ajouter une clé au gestionnaire des clés du noyau
SYNOPSIS¶
#include <keyutils.h>
key_serial_t add_key(const char *type, const char *description,
const void *payload, size_t plen,
key_serial_t keyring);
DESCRIPTION¶
add_key() demande au noyau de créer ou de mettre à jour une
clé ayant un
type et une
description donnés, de
l'instancier avec une charge utile (
payload) de longueur
plen,
de l'attacher au trousseau (
keyring) spécifié, et de
renvoyer son numéro de série.
Le type de clé peut rejeter les données s'il est dans un mauvais
format ou s'il est invalide de toute autre façon.
Si le trousseau (
keyring) contient déjà une clé
avec ce
type et cette
description, alors, si le type de la
clé le permet, cette clé sera mise à jour au lieu de
créer une nouvelle clé. Dans le cas contraire, une nouvelle
clé sera créée, et le trousseau sera mis à jour
pour remplacer le lien vers l'ancienne clé par un lien vers la
nouvelle.
Le numéro de série du trousseau de destination peut être
celui d'un trousseau déjà existant, ou peut être
l'identifiant d'un trousseau spécial :
- KEY_SPEC_THREAD_KEYRING
- Pour indiquer le trousseau spécifique au processus léger
(thread) de l'appelant.
- KEY_SPEC_PROCESS_KEYRING
- Pour indiquer le trousseau spécifique au processus de
l'appelant.
- KEY_SPEC_SESSION_KEYRING
- Pour indiquer le trousseau spécifique à la session de
l'appelant.
- KEY_SPEC_USER_KEYRING
- Pour indiquer le trousseau spécifique à l'UID de
l'appelant.
- KEY_SPEC_USER_SESSION_KEYRING
- Pour indiquer le trousseau spécifique à la session de l'UID
de l'appelant.
TYPES DE CLÉS¶
Un certain nombre de types de clés sont disponibles dans le code de base
du gestionnaire des clés, et ils peuvent être utilisés
dans cette fonction :
- user
- Les clés de type user peuvent contenir des données
quelconques, et la description peut être n'importe quelle
chaîne valide, bien qu'il soit préférable de
préfixer la description avec une chaîne représentant
le service pour lequel la clé est utilisée, suivi du
caractère deux-points (par exemple «
afs:ma-cle »). Pour des clés de ce type,
l'argument payload peut être vide ou NULL.
- keyring
- Les trousseaux (keyring) sont des types de clé
spéciaux qui peuvent contenir des liens vers des séquences
d'autres clés de tout type. Si cette interface est utilisée
pour créer un trousseau, alors l'argument payload doit
valoir NULL, et plen doit être nul.
VALEUR RENVOYÉE¶
En cas de succès,
add_key() renvoie le numéro de
série de la clé créée ou mise à jour. En
cas d'erreur, la valeur
-1 est renvoyée et
errno contient
un code d'erreur approprié.
ERREURS¶
- ENOKEY
- Le trousseau n'existe pas.
- EKEYEXPIRED
- Le trousseau a expiré.
- EKEYREVOKED
- Le trousseau a été révoqué.
- EINVAL
- La charge utile (payload) est invalide.
- ENOMEM
- Il n'y a pas assez de mémoire pour créer une
clé.
- EDQUOT
- Le quota de clés de cet utilisateur serait dépassé si
la clé était créée ou ajoutée au
trousseau.
- EACCES
- Le trousseau n'était pas disponible pour pouvoir être
modifié par l'utilisateur.
ÉDITION DE LIENS¶
Bien qu'il s'agisse d'un appel système Linux, cette fonction n'est pas
présente dans
libc, mais peut être trouvée dans
libkeyutils. L'édition des liens doit être être
effectuée avec l'option
-lkeyutils.
VOIR AUSSI¶
keyctl(1),
keyctl(2),
request_key(2)
COLOPHON¶
Cette page fait partie de la publication 3.65 du projet
man-pages Linux.
Une description du projet et des instructions pour signaler des anomalies
peuvent être trouvées à l'adresse
http://www.kernel.org/doc/man-pages/.
TRADUCTION¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a
<
http://po4a.alioth.debian.org/> par l'équipe de traduction
francophone au sein du projet perkamon
<
http://perkamon.alioth.debian.org/>.
Denis Barbier (2010).
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet
manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce
document en utilisant la commande «
man -L C
<section>
<page_de_man> ».