18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later 28c2ecf20Sopenharmony_ci/* Key management controls 38c2ecf20Sopenharmony_ci * 48c2ecf20Sopenharmony_ci * Copyright (C) 2008 Red Hat, Inc. All Rights Reserved. 58c2ecf20Sopenharmony_ci * Written by David Howells (dhowells@redhat.com) 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#include <linux/key.h> 98c2ecf20Sopenharmony_ci#include <linux/sysctl.h> 108c2ecf20Sopenharmony_ci#include "internal.h" 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_cistruct ctl_table key_sysctls[] = { 138c2ecf20Sopenharmony_ci { 148c2ecf20Sopenharmony_ci .procname = "maxkeys", 158c2ecf20Sopenharmony_ci .data = &key_quota_maxkeys, 168c2ecf20Sopenharmony_ci .maxlen = sizeof(unsigned), 178c2ecf20Sopenharmony_ci .mode = 0644, 188c2ecf20Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 198c2ecf20Sopenharmony_ci .extra1 = (void *) SYSCTL_ONE, 208c2ecf20Sopenharmony_ci .extra2 = (void *) SYSCTL_INT_MAX, 218c2ecf20Sopenharmony_ci }, 228c2ecf20Sopenharmony_ci { 238c2ecf20Sopenharmony_ci .procname = "maxbytes", 248c2ecf20Sopenharmony_ci .data = &key_quota_maxbytes, 258c2ecf20Sopenharmony_ci .maxlen = sizeof(unsigned), 268c2ecf20Sopenharmony_ci .mode = 0644, 278c2ecf20Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 288c2ecf20Sopenharmony_ci .extra1 = (void *) SYSCTL_ONE, 298c2ecf20Sopenharmony_ci .extra2 = (void *) SYSCTL_INT_MAX, 308c2ecf20Sopenharmony_ci }, 318c2ecf20Sopenharmony_ci { 328c2ecf20Sopenharmony_ci .procname = "root_maxkeys", 338c2ecf20Sopenharmony_ci .data = &key_quota_root_maxkeys, 348c2ecf20Sopenharmony_ci .maxlen = sizeof(unsigned), 358c2ecf20Sopenharmony_ci .mode = 0644, 368c2ecf20Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 378c2ecf20Sopenharmony_ci .extra1 = (void *) SYSCTL_ONE, 388c2ecf20Sopenharmony_ci .extra2 = (void *) SYSCTL_INT_MAX, 398c2ecf20Sopenharmony_ci }, 408c2ecf20Sopenharmony_ci { 418c2ecf20Sopenharmony_ci .procname = "root_maxbytes", 428c2ecf20Sopenharmony_ci .data = &key_quota_root_maxbytes, 438c2ecf20Sopenharmony_ci .maxlen = sizeof(unsigned), 448c2ecf20Sopenharmony_ci .mode = 0644, 458c2ecf20Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 468c2ecf20Sopenharmony_ci .extra1 = (void *) SYSCTL_ONE, 478c2ecf20Sopenharmony_ci .extra2 = (void *) SYSCTL_INT_MAX, 488c2ecf20Sopenharmony_ci }, 498c2ecf20Sopenharmony_ci { 508c2ecf20Sopenharmony_ci .procname = "gc_delay", 518c2ecf20Sopenharmony_ci .data = &key_gc_delay, 528c2ecf20Sopenharmony_ci .maxlen = sizeof(unsigned), 538c2ecf20Sopenharmony_ci .mode = 0644, 548c2ecf20Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 558c2ecf20Sopenharmony_ci .extra1 = (void *) SYSCTL_ZERO, 568c2ecf20Sopenharmony_ci .extra2 = (void *) SYSCTL_INT_MAX, 578c2ecf20Sopenharmony_ci }, 588c2ecf20Sopenharmony_ci#ifdef CONFIG_PERSISTENT_KEYRINGS 598c2ecf20Sopenharmony_ci { 608c2ecf20Sopenharmony_ci .procname = "persistent_keyring_expiry", 618c2ecf20Sopenharmony_ci .data = &persistent_keyring_expiry, 628c2ecf20Sopenharmony_ci .maxlen = sizeof(unsigned), 638c2ecf20Sopenharmony_ci .mode = 0644, 648c2ecf20Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 658c2ecf20Sopenharmony_ci .extra1 = (void *) SYSCTL_ZERO, 668c2ecf20Sopenharmony_ci .extra2 = (void *) SYSCTL_INT_MAX, 678c2ecf20Sopenharmony_ci }, 688c2ecf20Sopenharmony_ci#endif 698c2ecf20Sopenharmony_ci { } 708c2ecf20Sopenharmony_ci}; 71