Blame view
security/keys/compat.c
3.22 KB
2874c5fd2 treewide: Replace... |
1 |
// SPDX-License-Identifier: GPL-2.0-or-later |
973c9f4f4 KEYS: Fix up comm... |
2 |
/* 32-bit compatibility syscall for 64-bit systems |
1da177e4c Linux-2.6.12-rc2 |
3 |
* |
3e30148c3 [PATCH] Keys: Mak... |
4 |
* Copyright (C) 2004-5 Red Hat, Inc. All Rights Reserved. |
1da177e4c Linux-2.6.12-rc2 |
5 |
* Written by David Howells (dhowells@redhat.com) |
1da177e4c Linux-2.6.12-rc2 |
6 |
*/ |
1da177e4c Linux-2.6.12-rc2 |
7 8 9 |
#include <linux/syscalls.h> #include <linux/keyctl.h> #include <linux/compat.h> |
ee009e4a0 KEYS: Add an iove... |
10 |
#include <linux/slab.h> |
1da177e4c Linux-2.6.12-rc2 |
11 |
#include "internal.h" |
1da177e4c Linux-2.6.12-rc2 |
12 |
/* |
973c9f4f4 KEYS: Fix up comm... |
13 |
* The key control system call, 32-bit compatibility version for 64-bit archs |
1da177e4c Linux-2.6.12-rc2 |
14 |
*/ |
875ec3da4 security/compat: ... |
15 16 |
COMPAT_SYSCALL_DEFINE5(keyctl, u32, option, u32, arg2, u32, arg3, u32, arg4, u32, arg5) |
1da177e4c Linux-2.6.12-rc2 |
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
{ switch (option) { case KEYCTL_GET_KEYRING_ID: return keyctl_get_keyring_ID(arg2, arg3); case KEYCTL_JOIN_SESSION_KEYRING: return keyctl_join_session_keyring(compat_ptr(arg2)); case KEYCTL_UPDATE: return keyctl_update_key(arg2, compat_ptr(arg3), arg4); case KEYCTL_REVOKE: return keyctl_revoke_key(arg2); case KEYCTL_DESCRIBE: return keyctl_describe_key(arg2, compat_ptr(arg3), arg4); case KEYCTL_CLEAR: return keyctl_keyring_clear(arg2); case KEYCTL_LINK: return keyctl_keyring_link(arg2, arg3); case KEYCTL_UNLINK: return keyctl_keyring_unlink(arg2, arg3); case KEYCTL_SEARCH: return keyctl_keyring_search(arg2, compat_ptr(arg3), compat_ptr(arg4), arg5); case KEYCTL_READ: return keyctl_read_key(arg2, compat_ptr(arg3), arg4); case KEYCTL_CHOWN: return keyctl_chown_key(arg2, arg3, arg4); case KEYCTL_SETPERM: return keyctl_setperm_key(arg2, arg3); case KEYCTL_INSTANTIATE: return keyctl_instantiate_key(arg2, compat_ptr(arg3), arg4, arg5); case KEYCTL_NEGATE: return keyctl_negate_key(arg2, arg3, arg4); |
3e30148c3 [PATCH] Keys: Mak... |
62 63 |
case KEYCTL_SET_REQKEY_KEYRING: return keyctl_set_reqkey_keyring(arg2); |
017679c4d [PATCH] keys: Per... |
64 65 |
case KEYCTL_SET_TIMEOUT: return keyctl_set_timeout(arg2, arg3); |
b5f545c88 [PATCH] keys: Per... |
66 67 |
case KEYCTL_ASSUME_AUTHORITY: return keyctl_assume_authority(arg2); |
70a5bb72b keys: add keyctl ... |
68 69 |
case KEYCTL_GET_SECURITY: return keyctl_get_security(arg2, compat_ptr(arg3), arg4); |
ee18d64c1 KEYS: Add a keyct... |
70 71 |
case KEYCTL_SESSION_TO_PARENT: return keyctl_session_to_parent(); |
fdd1b9458 KEYS: Add a new k... |
72 73 |
case KEYCTL_REJECT: return keyctl_reject_key(arg2, arg3, arg4, arg5); |
ee009e4a0 KEYS: Add an iove... |
74 |
case KEYCTL_INSTANTIATE_IOV: |
d62653ee8 Revert "Revert "s... |
75 76 |
return keyctl_instantiate_key_iov(arg2, compat_ptr(arg3), arg4, arg5); |
ee009e4a0 KEYS: Add an iove... |
77 |
|
fd75815f7 KEYS: Add invalid... |
78 79 |
case KEYCTL_INVALIDATE: return keyctl_invalidate_key(arg2); |
f36f8c75a KEYS: Add per-use... |
80 81 |
case KEYCTL_GET_PERSISTENT: return keyctl_get_persistent(arg2, arg3); |
ddbb41148 KEYS: Add KEYCTL_... |
82 |
case KEYCTL_DH_COMPUTE: |
f1c316a3a KEYS: add SP800-5... |
83 84 85 |
return compat_keyctl_dh_compute(compat_ptr(arg2), compat_ptr(arg3), arg4, compat_ptr(arg5)); |
ddbb41148 KEYS: Add KEYCTL_... |
86 |
|
6563c91fd KEYS: Add KEYCTL_... |
87 88 89 |
case KEYCTL_RESTRICT_KEYRING: return keyctl_restrict_keyring(arg2, compat_ptr(arg3), compat_ptr(arg4)); |
00d60fd3b KEYS: Provide key... |
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
case KEYCTL_PKEY_QUERY: if (arg3 != 0) return -EINVAL; return keyctl_pkey_query(arg2, compat_ptr(arg4), compat_ptr(arg5)); case KEYCTL_PKEY_ENCRYPT: case KEYCTL_PKEY_DECRYPT: case KEYCTL_PKEY_SIGN: return keyctl_pkey_e_d_s(option, compat_ptr(arg2), compat_ptr(arg3), compat_ptr(arg4), compat_ptr(arg5)); case KEYCTL_PKEY_VERIFY: return keyctl_pkey_verify(compat_ptr(arg2), compat_ptr(arg3), compat_ptr(arg4), compat_ptr(arg5)); |
ed0ac5c7e keys: Add a keyct... |
107 108 |
case KEYCTL_MOVE: return keyctl_keyring_move(arg2, arg3, arg4, arg5); |
45e0f30c3 keys: Add capabil... |
109 110 |
case KEYCTL_CAPABILITIES: return keyctl_capabilities(compat_ptr(arg2), arg3); |
f7e47677e watch_queue: Add ... |
111 112 |
case KEYCTL_WATCH_KEY: return keyctl_watch_key(arg2, arg3, arg4); |
1da177e4c Linux-2.6.12-rc2 |
113 114 115 |
default: return -EOPNOTSUPP; } |
a8b17ed01 KEYS: Do some sty... |
116 |
} |