Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       request_key - Demander une cle au gestionnaire de cles 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 cle d'un type donne, qui
       correspond a la description specifiee,  et  si  une  cle  est  trouvee,
       l'attache  au  trousseau  (keyring)  donne  en  argument et renvoie son
       numero de serie.

       request_key()  cherche  une  cle  correspondant  aux  criteres  d'abord
       recursivement  a  l'interieur  des  trousseaux  attaches  au  processus
       appelant, dans l'ordre  suivant :  trousseau  specifique  au  processus
       leger   (thread),  trousseau  specifique  au  processus,  et  enfin  le
       trousseau de session.

       Si request_key()  est appele depuis un programme  lui-meme  appele  par
       request_key()  au  nom  d'un  autre  processus afin de generer une cle,
       alors les trousseaux de cet autre processus seront  ensuite  parcourus,
       l'acces  etant  controle  par les attributs UID, GID, les groupes et le
       contexte de securite de cet autre processus.

       Une correspondance est d'abord recherchee avec  toutes  les  cles  d'un
       trousseau  avant  de  chercher  dans  les  trousseaux  trouves  dans ce
       trousseau. Seules les cles qui sont accessibles  a  l'appelant  peuvent
       etre trouvees, et de meme seuls les trousseaux qui lui sont accessibles
       peuvent etre parcourus.

       Si aucune cle n'est trouvee, et  si  callout_info  possede  une  valeur
       non-NULL,  cette fonction va essayer de chercher plus loin. Dans un tel
       cas,   l'argument   callout_info   est   passe   a   un   service    de
       l'espace-utilisateur, tel que /sbin/request-key, pour generer la cle.

       Si  cela  echoue  aussi,  alors  une  erreur  est  renvoyee, et une cle
       temporaire negative est inseree dans le trousseau specifie.  Cette  cle
       expirera  au  bout  de  quelques  secondes, mais en attendant, tous les
       appels ulterieurs a request_key() avec les memes arguments echouera.

       Le numero de serie keyring peut etre celui d'un  trousseau  valide  sur
       lequel  l'appelant  possede  les droits en ecriture, ou il peut etre un
       identifiant de trousseau special :

       KEY_SPEC_THREAD_KEYRING
              Pour  indiquer  le  trousseau  specifique  au  processus   leger
              (thread) de l'appelant.

       KEY_SPEC_PROCESS_KEYRING
              Pour   indiquer   le   trousseau   specifique  au  processus  de
              l'appelant.

       KEY_SPEC_SESSION_KEYRING
              Pour  indiquer  le  trousseau  specifique  a   la   session   de
              l'appelant.

       KEY_SPEC_USER_KEYRING
              Pour indiquer le trousseau specifique a l'UID de l'appelant.

       KEY_SPEC_USER_SESSION_KEYRING
              Pour  indiquer  le trousseau specifique a la session de l'UID de
              l'appelant.

       Si une cle est creee, qu'elle soit valide ou negative, elle  remplacera
       toute  autre  cle possedant le meme type et la meme description dans le
       trousseau destination.

VALEUR RENVOY'EE

       En cas de succes, request_key() renvoie le numero de serie  de  la  cle
       trouvee.  En  cas d'erreur, la valeur -1 est renvoyee et errno contient
       un code d'erreur approprie.

ERREURS

       ENOKEY Aucune cle correspondante n'a ete trouvee.

       EKEYEXPIRED
              Une cle expiree a ete trouvee, mais aucun  remplacement  n'a  pu
              etre obtenu.

       EKEYREVOKED
              Une  cle  revoquee a ete trouvee, mais aucun remplacement n'a pu
              etre obtenu.

       EKEYREJECTED
              La tentative de generer une nouvelle cle a ete rejetee.

       ENOMEM Il n'y a pas assez de memoire pour creer une cle.

       EINTR  La requete a ete interrompue par un signal.

       EDQUOT Le quota de cles de cet utilisateur serait  depasse  si  la  cle
              etait creee ou ajoutee au trousseau.

       EACCES Le  trousseau  n'etait  pas disponible pour pouvoir etre modifie
              par l'utilisateur.

'EDITION DE LIENS

       Bien qu'il s'agisse d'un appel systeme Linux, cette fonction n'est  pas
       presente  dans libc, mais peut etre trouvee dans libkeyutils. L'edition
       des liens doit etre etre effectuee 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.27  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      etre       trouvees       a       l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis  2010,  cette  traduction est maintenue a l'aide de l'outil po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone        au        sein        du       projet       perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Denis Barbier (2010).

       Veuillez  signaler  toute  erreur   de   traduction   en   ecrivant   a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous pouvez toujours avoir acces a la version anglaise de  ce  document
       en utilisant la commande << man -L C <section> <page_de_man> >>.

Linux                           25 fevrier 2010                 REQUEST_KEY(2)