.\" -*- coding: UTF-8 -*- .\" Copyright (C) 2006 Red Hat, Inc. All Rights Reserved. .\" Written by David Howells (dhowells@redhat.com) .\" and Copyright (C) 2016 Michael Kerrisk .\" .\" %%%LICENSE_START(GPLv2+_SW_ONEPARA) .\" This program is free software; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License .\" as published by the Free Software Foundation; either version .\" 2 of the License, or (at your option) any later version. .\" %%%LICENSE_END .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH ADD_KEY 2 "1 novembre 2020" Linux "Gestion des clés sous Linux" .SH NOM add_key \- Ajouter une clé au gestionnaire de clés du noyau .SH SYNOPSIS .nf \fB#include \fP \fB#include \fP .PP \fBkey_serial_t add_key(const char *\fP\fItype\fP\fB, const char *\fP\fIdescription\fP\fB,\fP \fB const void *\fP\fIpayload\fP\fB, size_t \fP\fIplen\fP\fB,\fP \fB key_serial_t \fP\fIkeyring\fP\fB);\fP .fi .PP Aucune enveloppe n'est fournie pour la glibc pour cet appel système\ ; voir les NOTES. .SH DESCRIPTION \fBadd_key\fP() crée ou met à jour une clé ayant un \fItype\fP et une \fIdescription\fP donnés, l'instancie avec une charge utile (\fIpayload\fP) de longueur \fIplen\fP, l'attache au trousseau (\fIkeyring\fP) spécifié, et renvoie son numéro de série. .PP La clé peut être rejetée si les données fournies sont dans un mauvais format ou si elles sont non valables de toute autre façon. .PP .\" FIXME The aforementioned phrases begs the question: .\" which key types support this? .\" FIXME Perhaps elaborate the implications here? Namely, the new .\" key will have a new ID, and if the old key was a keyring that .\" is consequently unlinked, then keys that it was anchoring .\" will have their reference count decreased by one (and may .\" consequently be garbage collected). Is this all correct? Si le trousseau (\fIkeyring\fP) de destination contient déjà une clé avec ce \fItype\fP et cette \fIdescription\fP, 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. .PP .\" FIXME . Perhaps have a separate page describing special keyring IDs? Le numéro de série du trousseau de destination peut être celui d'un trousseau valable sur lequel l'appelant a le droit d'écriture. Il peut aussi être un des identifiants spéciaux suivants\ : .TP \fBKEY_SPEC_THREAD_KEYRING\fP Cela spécifie le trousseau spécifique aux processus légers (\fBthread\-keyring\fP(7)) de l'appelant. .TP \fBKEY_SPEC_PROCESS_KEYRING\fP Cela spécifie le trousseau spécifique aux processus de l'appelant (\fBprocess\-keyring\fP(7)). .TP \fBKEY_SPEC_SESSION_KEYRING\fP Cela spécifie le trousseau spécifique à la session de l'appelant (\fBsession\-keyring\fP(7)). .TP \fBKEY_SPEC_USER_KEYRING\fP Cela spécifie le trousseau spécifique à l'UID de l'appelant (\fBuser\-keyring\fP(7)). .TP \fBKEY_SPEC_USER_SESSION_KEYRING\fP Cela spécifie le trousseau spécifique à la session de l'UID de l'appelant (\fBuser\-session\-keyring\fP(7)). .SS "Types de clé" Le \fItype\fP de clé est une chaîne qui indique le type de la clé. En interne, le noyau définit un certain nombre de types de clé disponibles au cœur du système de gestion des clés. Parmi les types disponibles pour l'utilisateur que vous pouvez spécifier comme paramètre \fItype\fP de \fBadd_key\fP(), se trouvent\ : .TP \fI"keyring"\fP Les trousseaux (\fIkeyring\fP) 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 \fIpayload\fP doit valoir NULL, et \fIplen\fP doit être zéro. .TP \fI"user"\fP Il s'agit d'un type de clé généraliste dont la charge utile peut être lue et mise à jour par des applications de l'espace utilisateur. La clé est entièrement conservée dans la mémoire du noyau. La charge utile pour les clés de ce type est un bloc de données de votre choix jusqu'à 32\ 767 octets. .TP \fI"logon"\fP (depuis Linux 3.3) .\" commit 9f6ed2ca257fa8650b876377833e6f14e272848b Ce type de clé est pour l'essentiel le même que \fIuser\fP, mais il ne permet pas de lire la clé. Cela convient pour stocker les charges utiles dont vous ne voulez pas que l'utilisateur puisse lire. .PP Ce type de clé analyse une \fIdescription\fP en profondeur pour garantir qu'elle est qualifiée par le préfixe d'un «\ service\ », en vérifiant que la \fIdescription\fP contient un «\ :\ » précédé d’autres caractères. .TP \fI"big_key"\fP (depuis Linux 3.13) .\" commit ab3c3587f8cda9083209a61dbe3a4407d3cada10 Ce type de clé est similaire à \fIuser\fP, mais il peut contenir une charge utile jusqu'à 1\ MiO. Si la charge utile de la clé est assez grande, elle peut être stockée, chiffrée, dans tmpfs (qui peut être mis sur l'espace d'échange) et non dans la mémoire du noyau. .PP Pour plus de détails sur ces types de clé, voir \fBkeyrings\fP(7). .SH "VALEUR RENVOYÉE" En cas de succès, \fBadd_key\fP() renvoie le numéro de série de la clé créée ou mise à jour. En cas d'erreur, la valeur \fB\-1\fP est renvoyée et \fIerrno\fP contient un code d'erreur approprié. .SH ERREURS .TP \fBEACCES\fP Le trousseau n'était pas disponible pour pouvoir être modifié par l'utilisateur. .TP \fBEDQUOT\fP Le quota de clés de cet utilisateur serait dépassé si la clé était créée ou ajoutée au trousseau. .TP \fBEFAULT\fP Un ou plusieurs \fItype\fP, \fIdescription\fP et \fIpayload\fP (charge utile) pointent à l'extérieur de l'espace d'adresses accessible au processus. .TP \fBEINVAL\fP La longueur de la chaîne (y compris l'octet NULL final) spécifié dans \fItype\fP ou \fIdescription\fP a dépassé la limite (respectivement 32 et 4096\ octets). .TP \fBEINVAL\fP La charge utile (\fIpayload\fP) n’est pas valable. .TP \fBEINVAL\fP \fItype\fP était \fIlogon\fP et la \fIdescription\fP n'était pas qualifiée avec une chaîne de préfixes sous la forme \fIservice:\fP. .TP \fBEKEYEXPIRED\fP Le trousseau a expiré. .TP \fBEKEYREVOKED\fP Le trousseau a été révoqué. .TP \fBENOKEY\fP Le trousseau n'existe pas. .TP \fBENOMEM\fP Il n'y a pas assez de mémoire pour créer une clé. .TP \fBEPERM\fP \fItype\fP commençait par un point («\ .\ »). Les types de clé commençant par un point sont réservés à l'implémentation. .TP \fBEPERM\fP \fItype\fP valait \fIkeyring\fP et la \fIdescription\fP commençait par un point («\ .\ »). Les trousseaux dont les descriptions (noms) commençant par un point sont réservés à l'implémentation. .SH VERSIONS Cet appel système est apparu pour la première fois dans Linux\ 2.6.10. .SH CONFORMITÉ Cet appel système est une extension Linux non standard. .SH NOTES Aucune enveloppe n'est fournie pour cet appel système dans glibc. Une enveloppe est fournie dans le paquet \fIlibkeyutils\fP. Quand vous utilisez l'enveloppe de cette bibliothèque, liez\-la avec \fI\-lkeyutils\fP. .SH EXEMPLES Le programme ci\-dessous crée une clé dont le type, la description et la charge utile sont indiqués dans les paramètres de la ligne de commande, puis il lie la clé au trousseau de la session. La session d'interpréteur suivante montre l'utilisation du programme\ : .PP .in +4n .EX $ \fB./a.out user mykey "Une charge utile"\fP Key ID is 64a4dca $ \fBgrep \(aq64a4dca\(aq /proc/keys\fP 064a4dca I\-\-Q\-\-\- 1 perm 3f010000 1000 1000 user mykey: 12 .EE .in .SS "Source du programme" \& .EX #include #include #include #include #include #include int main(int argc, char *argv[]) { key_serial_t key; if (argc != 4) { fprintf(stderr, "Utilisation: %s type description charge_utile\en", argv[0]); exit(EXIT_FAILURE); } key = add_key(argv[1], argv[2], argv[3], strlen(argv[3]), KEY_SPEC_SESSION_KEYRING); if (key == \-1) { perror("add_key"); exit(EXIT_FAILURE); } printf("L'identifiant de la clé est %jx\en", (uintmax_t) key); exit(EXIT_SUCCESS); } .EE .SH "VOIR AUSSI" .ad l .nh \fBkeyctl\fP(1), \fBkeyctl\fP(2), \fBrequest_key\fP(2), \fBkeyctl\fP(3), \fBkeyrings\fP(7), \fBkeyutils\fP(7), \fBpersistent\-keyring\fP(7), \fBprocess\-keyring\fP(7), \fBsession\-keyring\fP(7), \fBthread\-keyring\fP(7), \fBuser\-keyring\fP(7), \fBuser\-session\-keyring\fP(7) .PP .\" commit b68101a1e8f0263dbc7b8375d2a7c57c6216fb76 .\" commit 3db38ed76890565772fcca3279cc8d454ea6176b Les fichiers \fIDocumentation/security/keys/core.rst\fP et \fIDocumentation/keys/request\-key.rst\fP des sources du noyau (ou, avant Linux\ 4.13, \fIDocumentation/security/keys.txt\fP et \fIDocumentation/security/keys\-request\-key.txt\fP). .SH COLOPHON Cette page fait partie de la publication\ 5.10 du projet \fIman\-pages\fP Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à l'adresse \%https://www.kernel.org/doc/man\-pages/. .PP .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot et Jean-Philippe MENGUAL . .PP Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. .PP Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .