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

NOM

       request_key - Demander une clé au gestionnaire de clés du noyau

SYNOPSIS

       #include <keyutils.h>

       key_serial_t request_key(const char *type, const char *description,
                                const char *callout_info,
                                key_serial_t keyring);

DESCRIPTION

       request_key()   demande  au  noyau de trouver une clé d'un type donné, qui correspond à la
       description spécifiée, et si une clé est trouvée, l'attache au trousseau  (keyring)  donné
       en argument et renvoie son numéro de série.

       request_key()   cherche  une  clé  correspondant  aux  critères  d'abord  récursivement  à
       l'intérieur  des  trousseaux  attachés  au  processus  appelant,  dans  l'ordre  suivant :
       trousseau  spécifique  au  processus léger (thread), trousseau spécifique au processus, et
       enfin le trousseau de session.

       Si request_key()  est appelé depuis un programme lui-même appelé par request_key() au  nom
       d'un  autre processus afin de générer une clé, alors les trousseaux de cet autre processus
       seront ensuite parcourus, l'accès étant contrôlé par les attributs UID, GID,  les  groupes
       et le contexte de sécurité de cet autre processus.

       Une  correspondance  est  d'abord  recherchée avec toutes les clés d'un trousseau avant de
       chercher dans les  trousseaux  trouvés  dans  ce  trousseau.  Seules  les  clés  qui  sont
       accessibles  à  l'appelant  peuvent être trouvées, et de même seuls les trousseaux qui lui
       sont accessibles peuvent être parcourus.

       Si aucune clé n'est trouvée, et  si  callout_info  possède  une  valeur  non  NULL,  cette
       fonction  va  essayer  de chercher plus loin. Dans un tel cas, l'argument callout_info est
       passé à un service de l'espace utilisateur, tel que  /sbin/request-key,  pour  générer  la
       clé.

       Si  cela  échoue  aussi, alors une erreur est renvoyée, et une clé temporaire négative est
       insérée dans le trousseau spécifié. Cette clé expirera au bout de quelques secondes,  mais
       en  attendant,  tous  les  appels  ultérieurs  à  request_key()  avec  les mêmes arguments
       échouera.

       Le numéro de série keyring peut être celui d'un trousseau  valide  sur  lequel  l'appelant
       possède les droits en écriture, ou il peut être un identifiant de 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.

       Si  une  clé  est  créée, qu'elle soit valide ou négative, elle remplacera toute autre clé
       possédant le même type et la même description dans le trousseau destination.

VALEUR RENVOYÉE

       En cas de succès, request_key() renvoie le numéro de série  de  la  clé  trouvée.  En  cas
       d'erreur, la valeur -1 est renvoyée et errno contient un code d'erreur approprié.

ERREURS

       EACCES Le trousseau n'était pas disponible pour pouvoir être modifié par l'utilisateur.

       EINTR  La requête a été interrompue par un signal.

       EDQUOT Le quota de clés de cet utilisateur serait dépassé si la clé était créée ou ajoutée
              au trousseau.

       EKEYEXPIRED
              Une clé expirée a été trouvée, mais aucun remplacement n'a pu être obtenu.

       EKEYREJECTED
              La tentative de générer une nouvelle clé a été rejetée.

       EKEYREVOKED
              Une clé révoquée a été trouvée, mais aucun remplacement n'a pu être obtenu.

       ENOMEM Il n'y a pas assez de mémoire pour créer une clé.

       ENOKEY Aucune clé correspondante n'a été trouvée.

É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), add_key(2), keyctl(2), request-key(8)

COLOPHON

       Cette page fait partie de la publication 3.57 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> ».