^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) // SPDX-License-Identifier: GPL-2.0-or-later
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /* Key management controls
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) * Copyright (C) 2008 Red Hat, Inc. All Rights Reserved.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) * Written by David Howells (dhowells@redhat.com)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #include <linux/key.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #include <linux/sysctl.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #include "internal.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) struct ctl_table key_sysctls[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) .procname = "maxkeys",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) .data = &key_quota_maxkeys,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) .maxlen = sizeof(unsigned),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) .mode = 0644,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) .proc_handler = proc_dointvec_minmax,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) .extra1 = (void *) SYSCTL_ONE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) .extra2 = (void *) SYSCTL_INT_MAX,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) .procname = "maxbytes",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) .data = &key_quota_maxbytes,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) .maxlen = sizeof(unsigned),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) .mode = 0644,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) .proc_handler = proc_dointvec_minmax,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) .extra1 = (void *) SYSCTL_ONE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) .extra2 = (void *) SYSCTL_INT_MAX,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) .procname = "root_maxkeys",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) .data = &key_quota_root_maxkeys,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) .maxlen = sizeof(unsigned),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) .mode = 0644,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) .proc_handler = proc_dointvec_minmax,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) .extra1 = (void *) SYSCTL_ONE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) .extra2 = (void *) SYSCTL_INT_MAX,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) .procname = "root_maxbytes",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) .data = &key_quota_root_maxbytes,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) .maxlen = sizeof(unsigned),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) .mode = 0644,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) .proc_handler = proc_dointvec_minmax,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) .extra1 = (void *) SYSCTL_ONE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) .extra2 = (void *) SYSCTL_INT_MAX,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) .procname = "gc_delay",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) .data = &key_gc_delay,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) .maxlen = sizeof(unsigned),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) .mode = 0644,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) .proc_handler = proc_dointvec_minmax,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) .extra1 = (void *) SYSCTL_ZERO,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) .extra2 = (void *) SYSCTL_INT_MAX,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) #ifdef CONFIG_PERSISTENT_KEYRINGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) .procname = "persistent_keyring_expiry",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) .data = &persistent_keyring_expiry,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) .maxlen = sizeof(unsigned),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) .mode = 0644,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) .proc_handler = proc_dointvec_minmax,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) .extra1 = (void *) SYSCTL_ZERO,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) .extra2 = (void *) SYSCTL_INT_MAX,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) { }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) };