123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- # SPDX-License-Identifier: GPL-2.0-only
- #
- # Key management configuration
- #
- config KEYS
- bool "Enable access key retention support"
- select ASSOCIATIVE_ARRAY
- help
- This option provides support for retaining authentication tokens and
- access keys in the kernel.
- It also includes provision of methods by which such keys might be
- associated with a process so that network filesystems, encryption
- support and the like can find them.
- Furthermore, a special type of key is available that acts as keyring:
- a searchable sequence of keys. Each process is equipped with access
- to five standard keyrings: UID-specific, GID-specific, session,
- process and thread.
- If you are unsure as to whether this is required, answer N.
- config KEYS_REQUEST_CACHE
- bool "Enable temporary caching of the last request_key() result"
- depends on KEYS
- help
- This option causes the result of the last successful request_key()
- call that didn't upcall to the kernel to be cached temporarily in the
- task_struct. The cache is cleared by exit and just prior to the
- resumption of userspace.
- This allows the key used for multiple step processes where each step
- wants to request a key that is likely the same as the one requested
- by the last step to save on the searching.
- An example of such a process is a pathwalk through a network
- filesystem in which each method needs to request an authentication
- key. Pathwalk will call multiple methods for each dentry traversed
- (permission, d_revalidate, lookup, getxattr, getacl, ...).
- config PERSISTENT_KEYRINGS
- bool "Enable register of persistent per-UID keyrings"
- depends on KEYS
- help
- This option provides a register of persistent per-UID keyrings,
- primarily aimed at Kerberos key storage. The keyrings are persistent
- in the sense that they stay around after all processes of that UID
- have exited, not that they survive the machine being rebooted.
- A particular keyring may be accessed by either the user whose keyring
- it is or by a process with administrative privileges. The active
- LSMs gets to rule on which admin-level processes get to access the
- cache.
- Keyrings are created and added into the register upon demand and get
- removed if they expire (a default timeout is set upon creation).
- config BIG_KEYS
- bool "Large payload keys"
- depends on KEYS
- depends on TMPFS
- depends on CRYPTO_LIB_CHACHA20POLY1305 = y
- help
- This option provides support for holding large keys within the kernel
- (for example Kerberos ticket caches). The data may be stored out to
- swapspace by tmpfs.
- If you are unsure as to whether this is required, answer N.
- config TRUSTED_KEYS
- tristate "TRUSTED KEYS"
- depends on KEYS
- help
- This option provides support for creating, sealing, and unsealing
- keys in the kernel. Trusted keys are random number symmetric keys,
- generated and sealed by a trust source selected at kernel boot-time.
- Userspace will only ever see encrypted blobs.
- If you are unsure as to whether this is required, answer N.
- if TRUSTED_KEYS
- source "security/keys/trusted-keys/Kconfig"
- endif
- config ENCRYPTED_KEYS
- tristate "ENCRYPTED KEYS"
- depends on KEYS
- select CRYPTO
- select CRYPTO_HMAC
- select CRYPTO_AES
- select CRYPTO_CBC
- select CRYPTO_SHA256
- select CRYPTO_RNG
- help
- This option provides support for create/encrypting/decrypting keys
- in the kernel. Encrypted keys are instantiated using kernel
- generated random numbers or provided decrypted data, and are
- encrypted/decrypted with a 'master' symmetric key. The 'master'
- key can be either a trusted-key or user-key type. Only encrypted
- blobs are ever output to Userspace.
- If you are unsure as to whether this is required, answer N.
- config USER_DECRYPTED_DATA
- bool "Allow encrypted keys with user decrypted data"
- depends on ENCRYPTED_KEYS
- help
- This option provides support for instantiating encrypted keys using
- user-provided decrypted data. The decrypted data must be hex-ascii
- encoded.
- If you are unsure as to whether this is required, answer N.
- config KEY_DH_OPERATIONS
- bool "Diffie-Hellman operations on retained keys"
- depends on KEYS
- select CRYPTO
- select CRYPTO_KDF800108_CTR
- select CRYPTO_DH
- help
- This option provides support for calculating Diffie-Hellman
- public keys and shared secrets using values stored as keys
- in the kernel.
- If you are unsure as to whether this is required, answer N.
- config KEY_NOTIFICATIONS
- bool "Provide key/keyring change notifications"
- depends on KEYS && WATCH_QUEUE
- help
- This option provides support for getting change notifications
- on keys and keyrings on which the caller has View permission.
- This makes use of pipes to handle the notification buffer and
- provides KEYCTL_WATCH_KEY to enable/disable watches.
|