Provided by: manpages-fr-dev_3.65d1p1-1_all bug

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> ».

Linux                                            25 février 2010                                      ADD_KEY(2)