Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
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)