* [RFC PATCH 5/5] keyctl.2: document KEYCTL_RESTRICT_KEYRING operation
@ 2017-08-31 15:58 Eugene Syromyatnikov
[not found] ` <20170831155841.GA5456-ZbobWygYI+YXGNroddHbYwC/G2K4zDHf@public.gmane.org>
0 siblings, 1 reply; 2+ messages in thread
From: Eugene Syromyatnikov @ 2017-08-31 15:58 UTC (permalink / raw)
To: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w
Cc: linux-man-u79uwXL29TY76Z2rM5mHXA, David Howells, Mat Martineau,
Stephan Mueller, keyrings-u79uwXL29TY76Z2rM5mHXA
---
man2/keyctl.2 | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 53 insertions(+)
diff --git a/man2/keyctl.2 b/man2/keyctl.2
index 570edf5..8e2ed12 100644
--- a/man2/keyctl.2
+++ b/man2/keyctl.2
@@ -1539,6 +1539,45 @@ and should contain zeroes since Linux 4.13.
.IP
The KDF implementation complies with SP800-56A as well
as with SP800-108 (the counter KDF).
+.TP
+.BR KEYCTL_RESTRICT_KEYRING " (since Linux 4.12)"
+.\" commit 6563c91fd645556c7801748f15bc727c77fcd311
+.\" commit 7228b66aaf723a623e578aa4db7d083bb39546c9
+Apply a restriction to a keyring with the ID provided in
+.IR arg2 .
+(cast to
+.IR key_serial_t ).
+The caller must have
+.IR setattr
+permission on the key.
+If
+.I arg3
+is NULL, any attempt to add a key to the keyring is blocked;
+otherwise it contains a pointer to a string with a key type name and
+.I arg4
+contains a pointer to string that describes the type-specific restriction.
+As of Linux 4.12, only type "asymmetric" has the restrictions defined:
+.RS
+.TP
+.B builtin_trusted
+Allows only keys that are signed by builtin keyring (".builtin_trusted_keys").
+.TP
+.B builtin_and_secondary_trusted
+Allows only keys that are signed by secondary keyring
+(".secondary_trusted_keys").
+.TP
+.BI key_or_keyring:chain: key
+Allows only keys that are signed by keyring with
+.I key
+ID.
+.RE
+.IP
+Note that a restriction can be configured only once for the specific keyring;
+once it is set, it can't be overridden.
+.IP
+The argument
+.I arg5
+is ignored.
.SH RETURN VALUE
For a successful call, the return value depends on the operation:
.TP
@@ -1600,10 +1639,24 @@ was
.BR KEYCTL_LINK
and the requested link would result in a cycle.
.TP
+.B EDEADLK
+.I operation
+was
+.BR KEYCTL_RESTRICT_KEYRING
+and the requested keyring restriction would result in a cycle.
+.TP
.B EDQUOT
The key quota for the caller's user would be exceeded by creating a key or
linking it to the keyring.
.TP
+.B EEXIST
+.I operation
+was
+.BR KEYCTL_RESTRICT_KEYRING
+and keyring provided in
+.I arg2
+already has a restriction set.
+.TP
.B EFAULT
.I operation
was
--
2.1.4
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 2+ messages in thread[parent not found: <20170831155841.GA5456-ZbobWygYI+YXGNroddHbYwC/G2K4zDHf@public.gmane.org>]
* Re: [RFC PATCH 5/5] keyctl.2: document KEYCTL_RESTRICT_KEYRING operation [not found] ` <20170831155841.GA5456-ZbobWygYI+YXGNroddHbYwC/G2K4zDHf@public.gmane.org> @ 2017-08-31 17:52 ` Mat Martineau 0 siblings, 0 replies; 2+ messages in thread From: Mat Martineau @ 2017-08-31 17:52 UTC (permalink / raw) To: Eugene Syromyatnikov Cc: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w, linux-man-u79uwXL29TY76Z2rM5mHXA, David Howells, Stephan Mueller, keyrings-u79uwXL29TY76Z2rM5mHXA Eugene, Thank you for updating this man page! I have a few edits and clarifications below. On Thu, 31 Aug 2017, Eugene Syromyatnikov wrote: > --- > man2/keyctl.2 | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 53 insertions(+) > > diff --git a/man2/keyctl.2 b/man2/keyctl.2 > index 570edf5..8e2ed12 100644 > --- a/man2/keyctl.2 > +++ b/man2/keyctl.2 > @@ -1539,6 +1539,45 @@ and should contain zeroes since Linux 4.13. > .IP > The KDF implementation complies with SP800-56A as well > as with SP800-108 (the counter KDF). > +.TP > +.BR KEYCTL_RESTRICT_KEYRING " (since Linux 4.12)" > +.\" commit 6563c91fd645556c7801748f15bc727c77fcd311 > +.\" commit 7228b66aaf723a623e578aa4db7d083bb39546c9 > +Apply a restriction to a keyring with the ID provided in > +.IR arg2 . > +(cast to > +.IR key_serial_t ). > +The caller must have > +.IR setattr > +permission on the key. > +If > +.I arg3 > +is NULL, any attempt to add a key to the keyring is blocked; > +otherwise it contains a pointer to a string with a key type name and > +.I arg4 > +contains a pointer to string that describes the type-specific restriction. > +As of Linux 4.12, only type "asymmetric" has the restrictions defined: > +.RS > +.TP > +.B builtin_trusted > +Allows only keys that are signed by builtin keyring (".builtin_trusted_keys"). I'd clarify that the keys "...are signed by a key in the builtin keyring" (not the keyring itself). > +.TP > +.B builtin_and_secondary_trusted > +Allows only keys that are signed by secondary keyring > +(".secondary_trusted_keys"). For builtin_and_secondary_trusted, keys can be linked from either .secondary_trusted_keys or .builtin_trusted. While it's true that .secondary_trusted_keys contains a link to the .builtin_trusted, making the secondary ring implicitly contain all the builtin keys, that would not be obvious to most readers. As with builtin_trusted, it's one of the linked keys that would verify the signature. > +.TP > +.BI key_or_keyring:chain: key The syntax is either "key_or_keyring:key" or "key_or_keyring:key:chain" - "key" comes before the optional ":chain". I'm not sure if it's better to show that ":chain" is optional like this: key_or_keyring:key[:chain] (explain restriction and optional :chain) or to show it as separate entries key_or_keyring:_key_ (explain operation without :chain) key_or_keyring:_key_:chain (explain operation with :chain) The distinction with ":chain" is that the destination keyring is also searched for the signing key, in addition to the key or keyring specified by _key_. > +Allows only keys that are signed by keyring with > +.I key > +ID. If the key ID refers to a keyring, the signing key is looked up in that keyring. If the key ID refers to a key, only that individual key is considered as a possible signing key. > +.RE > +.IP > +Note that a restriction can be configured only once for the specific keyring; > +once it is set, it can't be overridden. > +.IP > +The argument > +.I arg5 > +is ignored. > .SH RETURN VALUE > For a successful call, the return value depends on the operation: > .TP > @@ -1600,10 +1639,24 @@ was > .BR KEYCTL_LINK > and the requested link would result in a cycle. > .TP > +.B EDEADLK > +.I operation > +was > +.BR KEYCTL_RESTRICT_KEYRING > +and the requested keyring restriction would result in a cycle. > +.TP > .B EDQUOT > The key quota for the caller's user would be exceeded by creating a key or > linking it to the keyring. > .TP > +.B EEXIST > +.I operation > +was > +.BR KEYCTL_RESTRICT_KEYRING > +and keyring provided in > +.I arg2 > +already has a restriction set. > +.TP > .B EFAULT > .I operation > was > -- > 2.1.4 > > -- Mat Martineau Intel OTC -- To unsubscribe from this list: send the line "unsubscribe linux-man" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-08-31 17:52 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-08-31 15:58 [RFC PATCH 5/5] keyctl.2: document KEYCTL_RESTRICT_KEYRING operation Eugene Syromyatnikov
[not found] ` <20170831155841.GA5456-ZbobWygYI+YXGNroddHbYwC/G2K4zDHf@public.gmane.org>
2017-08-31 17:52 ` Mat Martineau
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox