Coverage report: /home/ellis/comp/core/ffi/keyutils/keyctl.lisp

KindCoveredAll%
expression042 0.0
branch00nil
Key
Not instrumented
Conditionalized out
Executed
Not executed
 
Both branches taken
One branch taken
Neither branch taken
1
 ;;; keyctl.lisp --- Keyctl API Functions
2
 
3
 ;; 
4
 
5
 ;;; Code:
6
 (in-package :keyutils)
7
 
8
 (macrolet ((def (name &rest args)
9
                `(progn
10
                   (defar ,name key-serial-t ,@args)
11
                   ,@(if (atom name)
12
                         `((export ',name))
13
                         `((export ',(cadr name))))))
14
            (defint (name &rest args)
15
              `(progn
16
                 (defar ,name int ,@args)
17
                 (export ',name)))
18
            (deflong (name &rest args)
19
              `(progn
20
                 (defar ,name long ,@args)
21
                 (export ',name))))
22
   (def add-key 
23
       (type c-string) 
24
       (description c-string) (payload (* t)) (plen size-t) (ringid key-serial-t))
25
   (def request-key (type c-string) (description c-string) (callout-info c-string) (destringid key-serial-t))
26
   ;; variadic? ... prob not supported by sb-alien
27
   (deflong keyctl (cmd int))
28
   (def ("keyctl_get_keyring_ID" keyctl-get-keyring-id) (id key-serial-t) (create int))
29
   (def keyctl-join-session-keyring (name c-string))
30
   (deflong keyctl-update (id key-serial-t) (payload (* t)) (plen size-t))
31
   (deflong keyctl-revoke (id key-serial-t))
32
   (deflong keyctl-chown (id key-serial-t) (uid sb-unix:uid-t) (gid sb-unix:gid-t))
33
   (deflong keyctl-setperm (id key-serial-t) (perm key-perm-t))
34
   (deflong keyctl-describe (id key-serial-t) (buffer c-string) (buflen size-t))
35
   (deflong keyctl-clear (ringid key-serial-t))
36
   (deflong keyctl-link (id key-serial-t) (ringid key-serial-t))
37
   (deflong keyctl-unlink (id key-serial-t) (ringid key-serial-t))
38
   (deflong keyctl-search (ringid key-serial-t) (type c-string) (description c-string) (destringid key-serial-t))
39
   (deflong keyctl-read (id key-serial-t) (buffer c-string) (buflen size-t))
40
   (deflong keyctl-instantiate (id key-serial-t) (payload (* t)) (plen size-t) (ringid key-serial-t))
41
   (deflong keyctl-negate (id key-serial-t) (timeout unsigned) (ringid key-serial-t))
42
   (deflong keyctl-set-reqkey-keyring (reqkey-defl int))
43
   (deflong keyctl-set-timeout (key key-serial-t) (timeout unsigned))
44
   (deflong keyctl-assume-authority (key key-serial-t))
45
   (deflong keyctl-get-security (key key-serial-t) (buffer c-string) (buflen size-t))
46
   (deflong keyctl-session-to-parent)
47
   (deflong keyctl-reject (id key-serial-t) (timeout unsigned) (error unsigned) (ringid key-serial-t))
48
   (deflong keyctl-instantiate-iov (id key-serial-t) (payload-iov (* iovec)) (ioc unsigned) (ringid key-serial-t))
49
   (deflong keyctl-invalidate (id key-serial-t))
50
   (deflong keyctl-get-persistent (uid sb-unix:uid-t) (id key-serial-t))
51
   (deflong keyctl-dh-compute (priv key-serial-t) (prime key-serial-t)
52
     (base key-serial-t) (buffer c-string) (buflen size-t))
53
   (deflong keyctl-dh-compute-kdf (priv key-serial-t) (prime key-serial-t) (base key-serial-t) (hashname c-string)
54
     (otherinfo c-string) (otherinfolen size-t) (buffer c-string) (buflen size-t))
55
   (deflong keyctl-pkey-query (key-id key-serial-t) (info c-string) (result (* keyctl-pkey-query)))
56
   (deflong keyctl-pkey-encrypt (key-id key-serial-t) (info c-string) (data (* t)) (data-len size-t))
57
   (deflong keyctl-pkey-decrypt (key-id key-serial-t) (info c-string) (enc (* t)) (enc-len size-t))
58
   (deflong keyctl-pkey-sign (key-id key-serial-t) (info c-string) (data (* t)) (data-len size-t))
59
   (deflong keyctl-pkey-verify (key-id key-serial-t) (info c-string) (data (* t)) (data-len size-t)
60
     (sig (* t)) (sig-len size-t))
61
   (deflong keyctl-move (id key-serial-t) (from-ringid key-serial-t) (to-ringid key-serial-t) (flags unsigned-int))
62
   (deflong keyctl-capabilities (buffer c-string) (len size-t))
63
   (deflong keyctl-watch-key (id key-serial-t) (watch-queue-fd int) (watch-id int))
64
   ;; utils
65
   (defint keyctl-describe-alloc (id key-serial-t) (buffer (* c-string)))
66
   (defint keyctl-read-alloc (id key-serial-t) (%buffer (* (* t))))
67
   (defint keyctl-get-security-alloc (id key-serial-t) (%buffer (* (* t))))
68
   (defint keyctl-dh-compute-alloc (priv key-serial-t) (prime key-serial-t)
69
     (base key-serial-t) (%buffer (* (* t))))
70
   ;; (defint recursive-key-scan)
71
   ;; (defint recursive-session-key-scan)
72
   (def find-key-by-type-and-desc (type c-string) (desc c-string) (destringid key-serial-t)))