Provided by: manpages-fr-dev_3.65d1p1-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.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                                  REQUEST_KEY(2)