unix: add bindings for keyutils syscalls

This CL adds support for the ADD_KEY, REQUESET_KEY, and KEYCTL syscalls.
These syscalls allow access to the kernel keyring facilities. In C code,
these syscalls are wrapped by the libkeyutils package. See:
	http://man7.org/linux/man-pages/man7/keyutils.7.html

The ADD_KEY and REQUEST_KEY calls are fairly straightforward, but the
KEYCTL syscall is a multiplexor for a number of key management
functions. See:
	http://man7.org/linux/man-pages/man3/keyctl.3.html

The Go bindings for the KEYCTL functions attempt to replicate what
libkeyutils does. This is done via generated helper functions.

Change-Id: If8c97d4ef5bce14c43dee3e6772ded42dc3c595a
Reviewed-on: https://go-review.googlesource.com/41415
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
Joe Richey joerichey@google.com
2017-05-18 22:39:15 +00:00
committed by Brad Fitzpatrick
parent e62c3de784
commit a2e06a18b0
36 changed files with 21483 additions and 19191 deletions
+5
View File
@@ -45,6 +45,7 @@ package unix
#include <sys/utsname.h>
#include <sys/wait.h>
#include <linux/filter.h>
#include <linux/keyctl.h>
#include <linux/netlink.h>
#include <linux/rtnetlink.h>
#include <linux/icmpv6.h>
@@ -261,6 +262,10 @@ type FscryptPolicy C.struct_fscrypt_policy
type FscryptKey C.struct_fscrypt_key
// Structure for Keyctl
type KeyctlDHParams C.struct_keyctl_dh_params
// Advice to Fadvise
const (