David Howells
a511e1af8b
KEYS: Move the point of trust determination to __key_link()
...
Move the point at which a key is determined to be trustworthy to
__key_link() so that we use the contents of the keyring being linked in to
to determine whether the key being linked in is trusted or not.
What is 'trusted' then becomes a matter of what's in the keyring.
Currently, the test is done when the key is parsed, but given that at that
point we can only sensibly refer to the contents of the system trusted
keyring, we can only use that as the basis for working out the
trustworthiness of a new key.
With this change, a trusted keyring is a set of keys that once the
trusted-only flag is set cannot be added to except by verification through
one of the contained keys.
Further, adding a key into a trusted keyring, whilst it might grant
trustworthiness in the context of that keyring, does not automatically
grant trustworthiness in the context of a second keyring to which it could
be secondarily linked.
To accomplish this, the authentication data associated with the key source
must now be retained. For an X.509 cert, this means the contents of the
AuthorityKeyIdentifier and the signature data.
If system keyrings are disabled then restrict_link_by_builtin_trusted()
resolves to restrict_link_reject(). The integrity digital signature code
still works correctly with this as it was previously using
KEY_FLAG_TRUSTED_ONLY, which doesn't permit anything to be added if there
is no system keyring against which trust can be determined.
Signed-off-by: David Howells <dhowells@redhat.com>
2016-04-11 22:43:43 +01:00
..
asymmetric_keys
KEYS: Move the point of trust determination to __key_link()
2016-04-11 22:43:43 +01:00
async_tx
mm/page_ref: add tracepoint to track down page reference manipulation
2016-03-17 15:09:34 -07:00
.gitignore
crypto: rsa - add .gitignore for crypto/*.-asn1.[ch] files
2015-06-25 23:29:24 +08:00
842.c
crypto: 842 - change 842 alg to use software
2015-05-11 15:06:43 +08:00
ablk_helper.c
crypto: cryptd - process CRYPTO_ALG_INTERNAL
2015-03-31 21:21:04 +08:00
ablkcipher.c
crypto: skcipher - Copy iv from desc even for 0-len walks
2015-12-09 20:16:22 +08:00
aead.c
crypto: aead - Remove CRYPTO_ALG_AEAD_NEW flag
2015-08-17 16:53:53 +08:00
aes_generic.c
crypto: add missing crypto module aliases
2015-01-13 22:29:11 +11:00
af_alg.c
crypto: af_alg - Forbid bind(2) when nokey child sockets are present
2016-01-18 18:16:33 +08:00
ahash.c
crypto: hash - Remove crypto_hash interface
2016-02-06 15:33:20 +08:00
akcipher.c
crypto: akcipher - add akcipher declarations needed by templates.
2015-12-09 20:03:57 +08:00
algapi.c
crypto: api - Add crypto_type_has_alg helper
2016-01-25 22:42:12 +08:00
algboss.c
crypto: algboss - Remove reference to nivaead
2015-08-17 16:53:41 +08:00
algif_aead.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
2016-01-12 18:57:02 -08:00
algif_hash.c
crypto: algif_hash - wait for crypto_ahash_init() to complete
2016-01-30 22:05:15 +08:00
algif_rng.c
crypto: algif_rng - Remove obsolete const-removal cast
2015-04-22 09:30:21 +08:00
algif_skcipher.c
crypto: algif_skcipher - Do not set MAY_BACKLOG on the async path
2016-02-06 15:23:55 +08:00
ansi_cprng.c
crypto: ansi_cprng - Convert to new rng interface
2015-04-22 09:30:18 +08:00
anubis.c
api.c
crypto: api - Only abort operations on fatal signal
2015-10-20 21:59:25 +08:00
arc4.c
authenc.c
crypto: aead - Remove CRYPTO_ALG_AEAD_NEW flag
2015-08-17 16:53:53 +08:00
authencesn.c
crypto: aead - Remove CRYPTO_ALG_AEAD_NEW flag
2015-08-17 16:53:53 +08:00
blkcipher.c
crypto: skcipher - Copy iv from desc even for 0-len walks
2015-12-09 20:16:22 +08:00
blowfish_common.c
blowfish_generic.c
crypto: add missing crypto module aliases
2015-01-13 22:29:11 +11:00
camellia_generic.c
crypto: add missing crypto module aliases
2015-01-13 22:29:11 +11:00
cast5_generic.c
crypto: add missing crypto module aliases
2015-01-13 22:29:11 +11:00
cast6_generic.c
crypto: add missing crypto module aliases
2015-01-13 22:29:11 +11:00
cast_common.c
cbc.c
ccm.c
crypto: replace scatterwalk_sg_chain with sg_chain
2015-08-17 08:12:54 -06:00
chacha20_generic.c
crypto: chacha20 - Export common ChaCha20 helpers
2015-07-17 21:20:21 +08:00
chacha20poly1305.c
crypto: chacha20poly1305 - Skip encryption/decryption for 0-len
2015-12-09 20:16:04 +08:00
chainiv.c
crypto: chainiv - Offer normal cipher functionality without RNG
2015-06-22 15:49:28 +08:00
cipher.c
cmac.c
compress.c
crc32_generic.c
crypto: crc32 - Rename generic implementation
2016-01-30 22:11:22 +08:00
crc32c_generic.c
crypto: crc32c - Fix crc32c soft dependency
2016-01-19 15:52:10 +08:00
crct10dif_common.c
crct10dif_generic.c
crypto: add missing crypto module aliases
2015-01-13 22:29:11 +11:00
cryptd.c
crypto: cryptd - Assign statesize properly
2015-12-04 22:29:53 +08:00
crypto_engine.c
crypto: engine - Introduce the block request crypto engine framework
2016-02-01 22:27:02 +08:00
crypto_null.c
crypto: null - Add default null skcipher
2015-05-22 11:25:55 +08:00
crypto_user.c
crypto: user - lock crypto_alg_list on alg dump
2016-02-06 15:23:55 +08:00
crypto_wq.c
ctr.c
cts.c
crypto: cts - Weed out non-CBC algorithms
2015-01-20 14:44:15 +11:00
deflate.c
des_generic.c
crypto: add missing crypto module aliases
2015-01-13 22:29:11 +11:00
drbg.c
crypto: drbg - remove FIPS 140-2 continuous test
2016-01-25 22:42:11 +08:00
ecb.c
echainiv.c
crypto: echainiv - Use generic geniv init/exit helpers
2015-08-17 16:53:46 +08:00
eseqiv.c
crypto: eseqiv - Offer normal cipher functionality without RNG
2015-06-22 15:49:28 +08:00
fcrypt.c
fips.c
crypto: fips - Move fips_enabled sysctl into fips.c
2015-04-23 14:18:09 +08:00
gcm.c
Merge branch 'for-4.3/sg' of git://git.kernel.dk/linux-block
2015-09-02 13:22:38 -07:00
gf128mul.c
ghash-generic.c
crypto: add missing crypto module aliases
2015-01-13 22:29:11 +11:00
hash_info.c
keys, trusted: select hash algorithm for TPM2 chips
2015-12-20 15:27:12 +02:00
hmac.c
internal.h
crypto: api - Add crypto_type_has_alg helper
2016-01-25 22:42:12 +08:00
jitterentropy-kcapi.c
crypto: jitterentropy - remove unnecessary information from a comment
2015-10-14 22:23:16 +08:00
jitterentropy.c
crypto: jitterentropy - Delete unnecessary checks before the function call "kzfree"
2015-06-25 23:18:33 +08:00
Kconfig
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2016-03-17 11:22:54 -07:00
keywrap.c
crypto: keywrap - memzero the correct memory
2016-02-01 22:27:05 +08:00
khazad.c
lrw.c
lz4.c
lz4hc.c
lzo.c
Makefile
crypto: engine - Introduce the block request crypto engine framework
2016-02-01 22:27:02 +08:00
mcryptd.c
crypto: mcryptd - Fix load failure
2016-01-30 22:11:20 +08:00
md4.c
md5.c
crypto: hash - add zero length message hash for shax and md5
2015-12-22 20:43:35 +08:00
memneq.c
michael_mic.c
pcbc.c
pcrypt.c
crypto: aead - Remove CRYPTO_ALG_AEAD_NEW flag
2015-08-17 16:53:53 +08:00
poly1305_generic.c
crypto: poly1305 - Export common Poly1305 helpers
2015-07-17 21:20:26 +08:00
proc.c
crypto: fips - Move fips_enabled sysctl into fips.c
2015-04-23 14:18:09 +08:00
ripemd.h
rmd128.c
rmd160.c
rmd256.c
rmd320.c
rng.c
crypto: rng - Do not free default RNG when it becomes unused
2015-06-22 15:49:18 +08:00
rsa-pkcs1pad.c
crypto: Add hash param to pkcs1pad
2016-03-03 21:49:26 +00:00
rsa.c
crypto: rsa - RSA padding algorithm
2015-12-09 20:03:57 +08:00
rsa_helper.c
crypto: akcipher - Changes to asymmetric key API
2015-10-14 22:23:16 +08:00
rsaprivkey.asn1
crypto: akcipher - Changes to asymmetric key API
2015-10-14 22:23:16 +08:00
rsapubkey.asn1
crypto: akcipher - Changes to asymmetric key API
2015-10-14 22:23:16 +08:00
salsa20_generic.c
crypto: add missing crypto module aliases
2015-01-13 22:29:11 +11:00
scatterwalk.c
crypto: scatterwalk - Hide PageSlab call to optimise away flush_dcache_page
2015-06-03 10:51:25 +08:00
seed.c
seqiv.c
crypto: seqiv - Use generic geniv init/exit helpers
2015-08-17 16:53:46 +08:00
serpent_generic.c
crypto: add missing crypto module aliases
2015-01-13 22:29:11 +11:00
sha1_generic.c
crypto: hash - add zero length message hash for shax and md5
2015-12-22 20:43:35 +08:00
sha256_generic.c
crypto: hash - add zero length message hash for shax and md5
2015-12-22 20:43:35 +08:00
sha512_generic.c
crypto: sha512-generic - move to generic glue implementation
2015-04-10 21:39:41 +08:00
shash.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2016-03-17 11:22:54 -07:00
skcipher.c
crypto: skcipher - Add default key size helper
2016-01-25 22:42:11 +08:00
tcrypt.c
crypto: tcrypt - Use ahash
2016-02-06 15:33:08 +08:00
tcrypt.h
crypto: tcrypt - Add ChaCha20/Poly1305 speed tests
2015-07-17 21:20:20 +08:00
tea.c
crypto: add missing crypto module aliases
2015-01-13 22:29:11 +11:00
testmgr.c
crypto: testmgr - allow rfc3686 aes-ctr variants in fips mode.
2016-02-28 03:26:31 +08:00
testmgr.h
crypto: compress - remove unused pcomp interface
2016-01-27 20:36:24 +08:00
tgr192.c
crypto: add missing crypto module aliases
2015-01-13 22:29:11 +11:00
twofish_common.c
twofish_generic.c
crypto: add missing crypto module aliases
2015-01-13 22:29:11 +11:00
vmac.c
wp512.c
crypto: add missing crypto module aliases
2015-01-13 22:29:11 +11:00
xcbc.c
xor.c
xts.c
crypto: xts - consolidate sanity check for keys
2016-02-17 04:07:51 +08:00