projects/linux·commit 4d2fa8b4

Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6

4d2fa8b4 · Linus Torvalds <[email protected]> · 2019-07-08 20:57:08 -07:00

Pull crypto updates from Herbert Xu:
 "Here is the crypto update for 5.3:

  API:
   - Test shash interface directly in testmgr
   - cra_driver_name is now mandatory

  Algorithms:
   - Replace arc4 crypto_cipher with library helper
   - Implement 5 way interleave for ECB, CBC and CTR on arm64
   - Add xxhash
   - Add continuous self-test on noise source to drbg
   - Update jitter RNG

  Drivers:
   - Add support for SHA204A random number generator
   - Add support for 7211 in iproc-rng200
   - Fix fuzz test failures in inside-secure
   - Fix fuzz test failures in talitos
   - Fix fuzz test failures in qat"

* 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (143 commits)
  crypto: stm32/hash - remove interruptible condition for dma
  crypto: stm32/hash - Fix hmac issue more than 256 bytes
  crypto: stm32/crc32 - rename driver file
  crypto: amcc - remove memset after dma_alloc_coherent
  crypto: ccp - Switch to SPDX license identifiers
  crypto: ccp - Validate the the error value used to index error messages
  crypto: doc - Fix formatting of new crypto engine content
  crypto: doc - Add parameter documentation
  crypto: arm64/aes-ce - implement 5 way interleave for ECB, CBC and CTR
  crypto: arm64/aes-ce - add 5 way interleave routines
  crypto: talitos - drop icv_ool
  crypto: talitos - fix hash on SEC1.
  crypto: talitos - move struct talitos_edesc into talitos.h
  lib/scatterlist: Fix mapping iterator when sg->offset is greater than PAGE_SIZE
  crypto/NX: Set receive window credits to max number of CRBs in RxFIFO
  crypto: asymmetric_keys - select CRYPTO_HASH where needed
  crypto: serpent - mark __serpent_setkey_sbox noinline
  crypto: testmgr - dynamically allocate crypto_shash
  crypto: testmgr - dynamically allocate testvec_config
  crypto: talitos - eliminate unneeded 'done' functions at build time
  ...
Commit
4d2fa8b44b891f0da5ceda3e5a1402ccf0ab6f26
Parents
8b681508 · f3880a23

Merge commit. Changes below are compared with the first parent: 8b681508.

Changes

167 files changed · +4417 −3688

FileStatusAddDelContent
Documentation/crypto/api-samples.rstmodified+77−99View file
Documentation/crypto/api-skcipher.rstmodified+1−1View file
Documentation/crypto/architecture.rstmodified+1−3View file
Documentation/crypto/crypto_engine.rstmodified+73−38View file
Documentation/devicetree/bindings/crypto/atmel-crypto.txtmodified+0−13View file
Documentation/devicetree/bindings/rng/brcm,iproc-rng200.txtmodified+1−0View file
Documentation/devicetree/bindings/trivial-devices.yamlmodified+4−0View file
MAINTAINERSmodified+1−0View file
arch/arm/boot/dts/imx7ulp.dtsimodified+23−0View file
arch/arm/crypto/chacha-neon-glue.cmodified+1−1View file
arch/arm/crypto/sha512-glue.cmodified+1−1View file
arch/arm64/crypto/aes-ce.Smodified+37−23View file
arch/arm64/crypto/aes-modes.Smodified+87−31View file
arch/arm64/crypto/aes-neon.Smodified+3−45View file
arch/arm64/crypto/chacha-neon-glue.cmodified+1−1View file
arch/arm64/crypto/sha1-ce-glue.cmodified+1−1View file
arch/arm64/crypto/sha2-ce-glue.cmodified+1−1View file
arch/x86/crypto/aesni-intel_glue.cmodified+7−38View file
arch/x86/crypto/chacha_glue.cmodified+1−1View file
crypto/Kconfigmodified+25−14View file
crypto/Makefilemodified+1−2View file
crypto/aead.cmodified+36−0View file
crypto/algapi.cmodified+4−31View file
crypto/anubis.cmodified+1−0View file
crypto/arc4.cmodified+17−108View file
crypto/asymmetric_keys/Kconfigmodified+3−0View file
crypto/chacha20poly1305.cmodified+32−41View file
crypto/chacha_generic.cmodified+2−2View file
crypto/cryptd.cmodified+20−6View file
crypto/crypto_null.cmodified+3−0View file
crypto/crypto_wq.cdeleted+0−35View before deletion
crypto/deflate.cmodified+1−0View file
crypto/drbg.cmodified+91−3View file
crypto/fcrypt.cmodified+1−0View file
crypto/ghash-generic.cmodified+7−1View file
crypto/jitterentropy-kcapi.cmodified+0−5View file
crypto/jitterentropy.cmodified+82−223View file
crypto/khazad.cmodified+1−0View file
crypto/lrw.cmodified+1−1View file
crypto/lz4.cmodified+1−0View file
crypto/lz4hc.cmodified+1−0View file
crypto/lzo-rle.cmodified+1−0View file
crypto/lzo.cmodified+1−0View file
crypto/md4.cmodified+4−3View file
crypto/md5.cmodified+4−3View file
crypto/michael_mic.cmodified+1−0View file
crypto/rmd128.cmodified+1−0View file
crypto/rmd160.cmodified+1−0View file
crypto/rmd256.cmodified+1−0View file
crypto/rmd320.cmodified+1−0View file
crypto/serpent_generic.cmodified+8−1View file
crypto/skcipher.cmodified+34−0View file
crypto/tea.cmodified+3−0View file
crypto/testmgr.cmodified+394−84View file
crypto/testmgr.hmodified+111−5View file
crypto/tgr192.cmodified+12−9View file
crypto/wp512.cmodified+12−9View file
crypto/xxhash_generic.cadded+108−0View file
crypto/zstd.cmodified+1−0View file
drivers/char/hw_random/iproc-rng200.cmodified+1−0View file
drivers/char/hw_random/meson-rng.cmodified+1−51View file
drivers/crypto/Kconfigmodified+19−1View file
drivers/crypto/Makefilemodified+2−0View file
drivers/crypto/amcc/crypto4xx_alg.cmodified+25−11View file
drivers/crypto/amcc/crypto4xx_core.cmodified+12−13View file
drivers/crypto/amcc/crypto4xx_core.hmodified+6−4View file
drivers/crypto/atmel-ecc.cmodified+22−381View file
drivers/crypto/atmel-i2c.cadded+364−0View file
drivers/crypto/atmel-ecc.h → drivers/crypto/atmel-i2c.hrenamed+87−6View file
drivers/crypto/atmel-sha204a.cadded+171−0View file
drivers/crypto/bcm/cipher.cmodified+4−4View file
drivers/crypto/bcm/spu2.cmodified+5−5View file
drivers/crypto/caam/Kconfigmodified+17−29View file
drivers/crypto/caam/Makefilemodified+9−9View file
drivers/crypto/caam/caamalg.cmodified+154−184View file
drivers/crypto/caam/caamalg_desc.cmodified+70−77View file
drivers/crypto/caam/caamalg_desc.hmodified+2−2View file
drivers/crypto/caam/caamalg_qi.cmodified+120−147View file
drivers/crypto/caam/caamalg_qi2.cmodified+120−82View file
drivers/crypto/caam/caamhash.cmodified+123−206View file
drivers/crypto/caam/caampkc.cmodified+104−73View file
drivers/crypto/caam/caampkc.hmodified+8−1View file
drivers/crypto/caam/caamrng.cmodified+17−59View file
drivers/crypto/caam/ctrl.cmodified+32−24View file
drivers/crypto/caam/desc_constr.hmodified+11−0View file
drivers/crypto/caam/error.cmodified+4−4View file
drivers/crypto/caam/error.hmodified+1−1View file
drivers/crypto/caam/intern.hmodified+95−7View file
drivers/crypto/caam/jr.cmodified+43−0View file
drivers/crypto/caam/key_gen.cmodified+11−17View file
drivers/crypto/caam/qi.cmodified+22−30View file
drivers/crypto/caam/sg_sw_qm.hmodified+11−7View file
drivers/crypto/caam/sg_sw_qm2.hmodified+11−7View file
drivers/crypto/caam/sg_sw_sec4.hmodified+14−12View file
drivers/crypto/cavium/cpt/cptvf_algs.cmodified+0−1View file
drivers/crypto/cavium/nitrox/nitrox_debugfs.hmodified+1−1View file
drivers/crypto/cavium/nitrox/nitrox_mbx.hmodified+1−1View file
drivers/crypto/ccp/ccp-crypto-aes.cmodified+3−4View file
drivers/crypto/ccp/ccp-dev.cmodified+51−45View file
drivers/crypto/ccp/ccp-dev.hmodified+1−1View file
drivers/crypto/ccp/ccp-ops.cmodified+6−14View file
drivers/crypto/ccree/cc_driver.cmodified+61−9View file
drivers/crypto/ccree/cc_driver.hmodified+6−0View file
drivers/crypto/ccree/cc_host_regs.hmodified+20−0View file
drivers/crypto/ccree/cc_pm.cmodified+11−0View file
drivers/crypto/ccree/cc_pm.hmodified+7−0View file
drivers/crypto/hisilicon/sec/sec_drv.hmodified+1−1View file
drivers/crypto/inside-secure/safexcel.cmodified+9−4View file
drivers/crypto/inside-secure/safexcel.hmodified+16−1View file
drivers/crypto/inside-secure/safexcel_cipher.cmodified+74−42View file
drivers/crypto/inside-secure/safexcel_hash.cmodified+55−37View file
drivers/crypto/inside-secure/safexcel_ring.cmodified+3−0View file
drivers/crypto/ixp4xx_crypto.cmodified+8−7View file
drivers/crypto/mxs-dcp.cmodified+1−4View file
drivers/crypto/nx/nx-842-powernv.cmodified+5−3View file
drivers/crypto/nx/nx.cmodified+1−3View file
drivers/crypto/nx/nx.hmodified+2−10View file
drivers/crypto/nx/nx_debugfs.cmodified+23−48View file
drivers/crypto/qat/qat_common/qat_algs.cmodified+198−96View file
drivers/crypto/qat/qat_common/qat_crypto.hmodified+2−0View file
drivers/crypto/sahara.cmodified+1−3View file
drivers/crypto/stm32/Makefilemodified+1−1View file
drivers/crypto/stm32/stm32_crc32.c → drivers/crypto/stm32/stm32-crc32.crenamed+0−0View file
drivers/crypto/stm32/stm32-hash.cmodified+3−3View file
drivers/crypto/sunxi-ss/sun4i-ss-cipher.cmodified+30−17View file
drivers/crypto/talitos.cmodified+172−196View file
drivers/crypto/talitos.hmodified+35−38View file
drivers/crypto/vmx/aes_cbc.cmodified+67−116View file
drivers/crypto/vmx/aes_ctr.cmodified+70−95View file
drivers/crypto/vmx/aes_xts.cmodified+77−98View file
drivers/crypto/vmx/aesp8-ppc.hmodified+0−2View file
drivers/crypto/vmx/aesp8-ppc.plmodified+20−2View file
drivers/crypto/vmx/vmx.cmodified+38−34View file
drivers/i2c/i2c-core-acpi.cmodified+4−2View file
drivers/net/ppp/Kconfigmodified+1−2View file
drivers/net/ppp/ppp_mppe.cmodified+14−83View file
fs/cifs/Kconfigmodified+1−1View file
fs/cifs/cifsencrypt.cmodified+16−46View file
fs/cifs/cifsfs.cmodified+0−1View file
include/crypto/aead.hmodified+2−32View file
include/crypto/algapi.hmodified+0−7View file
include/crypto/arc4.hmodified+10−0View file
include/crypto/chacha.hmodified+1−1View file
include/crypto/crypto_wq.hdeleted+0−8View before deletion
include/crypto/drbg.hmodified+2−0View file
include/crypto/internal/hash.hmodified+0−6View file
include/crypto/internal/skcipher.hmodified+60−0View file
include/crypto/skcipher.hmodified+2−90View file
include/linux/crypto.hmodified+11−1View file
lib/Makefilemodified+1−1View file
lib/crypto/Makefileadded+4−0View file
lib/crypto/arc4.cadded+74−0View file
lib/scatterlist.cmodified+5−4View file
net/mac80211/Kconfigmodified+1−1View file
net/mac80211/cfg.cmodified+2−2View file
net/mac80211/ieee80211_i.hmodified+2−2View file
net/mac80211/key.hmodified+1−0View file
net/mac80211/main.cmodified+2−4View file
net/mac80211/mlme.cmodified+2−1View file
net/mac80211/tkip.cmodified+4−4View file
net/mac80211/tkip.hmodified+2−2View file
net/mac80211/wep.cmodified+10−39View file
net/mac80211/wep.hmodified+2−3View file
net/mac80211/wpa.cmodified+2−2View file
net/wireless/Kconfigmodified+2−0View file
net/wireless/lib80211_crypt_tkip.cmodified+17−31View file
net/wireless/lib80211_crypt_wep.cmodified+13−38View file

Only the first 600 diff lines are shown. Download the complete patch.

Documentation/crypto/api-samples.rst

View file
diff --git a/Documentation/crypto/api-samples.rst b/Documentation/crypto/api-samples.rst
index f14afaa..e923f17 100644
--- a/Documentation/crypto/api-samples.rst
+++ b/Documentation/crypto/api-samples.rst
@@ -4,111 +4,89 @@ Code Examples
Code Example For Symmetric Key Cipher Operation
-----------------------------------------------
-::
-
-
- /* tie all data structures together */
- struct skcipher_def {
- struct scatterlist sg;
- struct crypto_skcipher *tfm;
- struct skcipher_request *req;
- struct crypto_wait wait;
- };
-
- /* Perform cipher operation */
- static unsigned int test_skcipher_encdec(struct skcipher_def *sk,
- int enc)
- {
- int rc;
-
- if (enc)
- rc = crypto_wait_req(crypto_skcipher_encrypt(sk->req), &sk->wait);
- else
- rc = crypto_wait_req(crypto_skcipher_decrypt(sk->req), &sk->wait);
-
- if (rc)
- pr_info("skcipher encrypt returned with result %d\n", rc);
+This code encrypts some data with AES-256-XTS. For sake of example,
+all inputs are random bytes, the encryption is done in-place, and it's
+assumed the code is running in a context where it can sleep.
- return rc;
- }
+::
- /* Initialize and trigger cipher operation */
static int test_skcipher(void)
{
- struct skcipher_def sk;
- struct crypto_skcipher *skcipher = NULL;
- struct skcipher_request *req = NULL;
- char *scratchpad = NULL;
- char *ivdata = NULL;
- unsigned char key[32];
- int ret = -EFAULT;
-
- skcipher = crypto_alloc_skcipher("cbc-aes-aesni", 0, 0);
- if (IS_ERR(skcipher)) {
- pr_info("could not allocate skcipher handle\n");
- return PTR_ERR(skcipher);
- }
-
- req = skcipher_request_alloc(skcipher, GFP_KERNEL);
- if (!req) {
- pr_info("could not allocate skcipher request\n");
- ret = -ENOMEM;
- goto out;
- }
-
- skcipher_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG,
- crypto_req_done,
- &sk.wait);
-
- /* AES 256 with random key */
- get_random_bytes(&key, 32);
- if (crypto_skcipher_setkey(skcipher, key, 32)) {
- pr_info("key could not be set\n");
- ret = -EAGAIN;
- goto out;
- }
-
- /* IV will be random */
- ivdata = kmalloc(16, GFP_KERNEL);
- if (!ivdata) {
- pr_info("could not allocate ivdata\n");
- goto out;
- }
- get_random_bytes(ivdata, 16);
-
- /* Input data will be random */
- scratchpad = kmalloc(16, GFP_KERNEL);
- if (!scratchpad) {
- pr_info("could not allocate scratchpad\n");
- goto out;
- }
- get_random_bytes(scratchpad, 16);
-
- sk.tfm = skcipher;
- sk.req = req;
-
- /* We encrypt one block */
- sg_init_one(&sk.sg, scratchpad, 16);
- skcipher_request_set_crypt(req, &sk.sg, &sk.sg, 16, ivdata);
- crypto_init_wait(&sk.wait);
-
- /* encrypt data */
- ret = test_skcipher_encdec(&sk, 1);
- if (ret)
- goto out;
-
- pr_info("Encryption triggered successfully\n");
-
+ struct crypto_skcipher *tfm = NULL;
+ struct skcipher_request *req = NULL;
+ u8 *data = NULL;
+ const size_t datasize = 512; /* data size in bytes */
+ struct scatterlist sg;
+ DECLARE_CRYPTO_WAIT(wait);
+ u8 iv[16]; /* AES-256-XTS takes a 16-byte IV */
+ u8 key[64]; /* AES-256-XTS takes a 64-byte key */
+ int err;
+
+ /*
+ * Allocate a tfm (a transformation object) and set the key.
+ *
+ * In real-world use, a tfm and key are typically used for many
+ * encryption/decryption operations. But in this example, we'll just do a
+ * single encryption operation with it (which is not very efficient).
+ */
+
+ tfm = crypto_alloc_skcipher("xts(aes)", 0, 0);
+ if (IS_ERR(tfm)) {
+ pr_err("Error allocating xts(aes) handle: %ld\n", PTR_ERR(tfm));
+ return PTR_ERR(tfm);
+ }
+
+ get_random_bytes(key, sizeof(key));
+ err = crypto_skcipher_setkey(tfm, key, sizeof(key));
+ if (err) {
+ pr_err("Error setting key: %d\n", err);
+ goto out;
+ }
+
+ /* Allocate a request object */
+ req = skcipher_request_alloc(tfm, GFP_KERNEL);
+ if (!req) {
+ err = -ENOMEM;
+ goto out;
+ }
+
+ /* Prepare the input data */
+ data = kmalloc(datasize, GFP_KERNEL);
+ if (!data) {
+ err = -ENOMEM;
+ goto out;
+ }
+ get_random_bytes(data, datasize);
+
+ /* Initialize the IV */
+ get_random_bytes(iv, sizeof(iv));
+
+ /*
+ * Encrypt the data in-place.
+ *
+ * For simplicity, in this example we wait for the request to complete
+ * before proceeding, even if the underlying implementation is asynchronous.
+ *
+ * To decrypt instead of encrypt, just change crypto_skcipher_encrypt() to
+ * crypto_skcipher_decrypt().
+ */
+ sg_init_one(&sg, data, datasize);
+ skcipher_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG |
+ CRYPTO_TFM_REQ_MAY_SLEEP,
+ crypto_req_done, &wait);
+ skcipher_request_set_crypt(req, &sg, &sg, datasize, iv);
+ err = crypto_wait_req(crypto_skcipher_encrypt(req), &wait);
+ if (err) {
+ pr_err("Error encrypting data: %d\n", err);
+ goto out;
+ }
+
+ pr_debug("Encryption was successful\n");
out:
- if (skcipher)
- crypto_free_skcipher(skcipher);
- if (req)
+ crypto_free_skcipher(tfm);
skcipher_request_free(req);
- if (ivdata)
- kfree(ivdata);
- if (scratchpad)
- kfree(scratchpad);
- return ret;
+ kfree(data);
+ return err;
}

Documentation/crypto/api-skcipher.rst

View file
diff --git a/Documentation/crypto/api-skcipher.rst b/Documentation/crypto/api-skcipher.rst
index 4eec4a9..20ba08d 100644
--- a/Documentation/crypto/api-skcipher.rst
+++ b/Documentation/crypto/api-skcipher.rst
@@ -5,7 +5,7 @@ Block Cipher Algorithm Definitions
:doc: Block Cipher Algorithm Definitions
.. kernel-doc:: include/linux/crypto.h
- :functions: crypto_alg ablkcipher_alg blkcipher_alg cipher_alg
+ :functions: crypto_alg ablkcipher_alg blkcipher_alg cipher_alg compress_alg
Symmetric Key Cipher API
------------------------

Documentation/crypto/architecture.rst

View file
diff --git a/Documentation/crypto/architecture.rst b/Documentation/crypto/architecture.rst
index ee8ff07..3eae1ae 100644
--- a/Documentation/crypto/architecture.rst
+++ b/Documentation/crypto/architecture.rst
@@ -208,9 +208,7 @@ the aforementioned cipher types:
- CRYPTO_ALG_TYPE_KPP Key-agreement Protocol Primitive (KPP) such as
an ECDH or DH implementation
-- CRYPTO_ALG_TYPE_DIGEST Raw message digest
-
-- CRYPTO_ALG_TYPE_HASH Alias for CRYPTO_ALG_TYPE_DIGEST
+- CRYPTO_ALG_TYPE_HASH Raw message digest
- CRYPTO_ALG_TYPE_SHASH Synchronous multi-block hash

Documentation/crypto/crypto_engine.rst

View file
diff --git a/Documentation/crypto/crypto_engine.rst b/Documentation/crypto/crypto_engine.rst
index 1d56221..236c674 100644
--- a/Documentation/crypto/crypto_engine.rst
+++ b/Documentation/crypto/crypto_engine.rst
@@ -1,50 +1,85 @@
-=============
-CRYPTO ENGINE
+.. SPDX-License-Identifier: GPL-2.0
+Crypto Engine
=============
Overview
--------
-The crypto engine API (CE), is a crypto queue manager.
+The crypto engine (CE) API is a crypto queue manager.
Requirement
-----------
-You have to put at start of your tfm_ctx the struct crypto_engine_ctx::
+You must put, at the start of your transform context your_tfm_ctx, the structure
+crypto_engine:
+
+::
- struct your_tfm_ctx {
- struct crypto_engine_ctx enginectx;
- ...
- };
+ struct your_tfm_ctx {
+ struct crypto_engine engine;
+ ...
+ };
-Why: Since CE manage only crypto_async_request, it cannot know the underlying
-request_type and so have access only on the TFM.
-So using container_of for accessing __ctx is impossible.
-Furthermore, the crypto engine cannot know the "struct your_tfm_ctx",
-so it must assume that crypto_engine_ctx is at start of it.
+The crypto engine only manages asynchronous requests in the form of
+crypto_async_request. It cannot know the underlying request type and thus only
+has access to the transform structure. It is not possible to access the context
+using container_of. In addition, the engine knows nothing about your
+structure "``struct your_tfm_ctx``". The engine assumes (requires) the placement
+of the known member ``struct crypto_engine`` at the beginning.
Order of operations
-------------------
-You have to obtain a struct crypto_engine via crypto_engine_alloc_init().
-And start it via crypto_engine_start().
-
-Before transferring any request, you have to fill the enginectx.
-- prepare_request: (taking a function pointer) If you need to do some processing before doing the request
-- unprepare_request: (taking a function pointer) Undoing what's done in prepare_request
-- do_one_request: (taking a function pointer) Do encryption for current request
-
-Note: that those three functions get the crypto_async_request associated with the received request.
-So your need to get the original request via container_of(areq, struct yourrequesttype_request, base);
-
-When your driver receive a crypto_request, you have to transfer it to
-the cryptoengine via one of:
-- crypto_transfer_ablkcipher_request_to_engine()
-- crypto_transfer_aead_request_to_engine()
-- crypto_transfer_akcipher_request_to_engine()
-- crypto_transfer_hash_request_to_engine()
-- crypto_transfer_skcipher_request_to_engine()
-
-At the end of the request process, a call to one of the following function is needed:
-- crypto_finalize_ablkcipher_request
-- crypto_finalize_aead_request
-- crypto_finalize_akcipher_request
-- crypto_finalize_hash_request
-- crypto_finalize_skcipher_request
+You are required to obtain a struct crypto_engine via ``crypto_engine_alloc_init()``.
+Start it via ``crypto_engine_start()``. When finished with your work, shut down the
+engine using ``crypto_engine_stop()`` and destroy the engine with
+``crypto_engine_exit()``.
+
+Before transferring any request, you have to fill the context enginectx by
+providing functions for the following:
+
+* ``prepare_crypt_hardware``: Called once before any prepare functions are
+ called.
+
+* ``unprepare_crypt_hardware``: Called once after all unprepare functions have
+ been called.
+
+* ``prepare_cipher_request``/``prepare_hash_request``: Called before each
+ corresponding request is performed. If some processing or other preparatory
+ work is required, do it here.
+
+* ``unprepare_cipher_request``/``unprepare_hash_request``: Called after each
+ request is handled. Clean up / undo what was done in the prepare function.
+
+* ``cipher_one_request``/``hash_one_request``: Handle the current request by
+ performing the operation.
+
+Note that these functions access the crypto_async_request structure
+associated with the received request. You are able to retrieve the original
+request by using:
+
+::
+
+ container_of(areq, struct yourrequesttype_request, base);
+
+When your driver receives a crypto_request, you must to transfer it to
+the crypto engine via one of:
+
+* crypto_transfer_ablkcipher_request_to_engine()
+
+* crypto_transfer_aead_request_to_engine()
+
+* crypto_transfer_akcipher_request_to_engine()
+
+* crypto_transfer_hash_request_to_engine()
+
+* crypto_transfer_skcipher_request_to_engine()
+
+At the end of the request process, a call to one of the following functions is needed:
+
+* crypto_finalize_ablkcipher_request()
+
+* crypto_finalize_aead_request()
+
+* crypto_finalize_akcipher_request()
+
+* crypto_finalize_hash_request()
+
+* crypto_finalize_skcipher_request()

Documentation/devicetree/bindings/crypto/atmel-crypto.txt

View file
diff --git a/Documentation/devicetree/bindings/crypto/atmel-crypto.txt b/Documentation/devicetree/bindings/crypto/atmel-crypto.txt
index 6b458bb..f2aab3d 100644
--- a/Documentation/devicetree/bindings/crypto/atmel-crypto.txt
+++ b/Documentation/devicetree/bindings/crypto/atmel-crypto.txt
@@ -66,16 +66,3 @@ sha@f8034000 {
dmas = <&dma1 2 17>;
dma-names = "tx";
};
-
-* Eliptic Curve Cryptography (I2C)
-
-Required properties:
-- compatible : must be "atmel,atecc508a".
-- reg: I2C bus address of the device.
-- clock-frequency: must be present in the i2c controller node.
-
-Example:
-atecc508a@c0 {
- compatible = "atmel,atecc508a";
- reg = <0xC0>;
-};

Documentation/devicetree/bindings/rng/brcm,iproc-rng200.txt

View file
diff --git a/Documentation/devicetree/bindings/rng/brcm,iproc-rng200.txt b/Documentation/devicetree/bindings/rng/brcm,iproc-rng200.txt
index 0014da9..c223e54 100644
--- a/Documentation/devicetree/bindings/rng/brcm,iproc-rng200.txt
+++ b/Documentation/devicetree/bindings/rng/brcm,iproc-rng200.txt
@@ -2,6 +2,7 @@ HWRNG support for the iproc-rng200 driver
Required properties:
- compatible : Must be one of:
+ "brcm,bcm7211-rng200"
"brcm,bcm7278-rng200"
"brcm,iproc-rng200"
- reg : base address and size of control register block

Documentation/devicetree/bindings/trivial-devices.yaml

View file
diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml
index 747fd3f..2e742d3 100644
--- a/Documentation/devicetree/bindings/trivial-devices.yaml
+++ b/Documentation/devicetree/bindings/trivial-devices.yaml
@@ -52,6 +52,10 @@ properties:
- at,24c08
# i2c trusted platform module (TPM)
- atmel,at97sc3204t
+ # i2c h/w symmetric crypto module
+ - atmel,atsha204a
+ # i2c h/w elliptic curve crypto module
+ - atmel,atecc508a
# CM32181: Ambient Light Sensor
- capella,cm32181
# CM3232: Ambient Light Sensor

MAINTAINERS

View file
diff --git a/MAINTAINERS b/MAINTAINERS
index a2b97d3..4a9e8e5 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -4257,6 +4257,7 @@ F: crypto/
F: drivers/crypto/
F: include/crypto/
F: include/linux/crypto*
+F: lib/crypto/
CRYPTOGRAPHIC RANDOM NUMBER GENERATOR
M: Neil Horman <[email protected]>

arch/arm/boot/dts/imx7ulp.dtsi

View file
diff --git a/arch/arm/boot/dts/imx7ulp.dtsi b/arch/arm/boot/dts/imx7ulp.dtsi
index d6b7110..e204837 100644
--- a/arch/arm/boot/dts/imx7ulp.dtsi
+++ b/arch/arm/boot/dts/imx7ulp.dtsi
@@ -100,6 +100,29 @@
reg = <0x40000000 0x800000>;
ranges;
+ crypto: crypto@40240000 {
+ compatible = "fsl,sec-v4.0";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ reg = <0x40240000 0x10000>;
+ ranges = <0 0x40240000 0x10000>;
+ clocks = <&pcc2 IMX7ULP_CLK_CAAM>,
+ <&scg1 IMX7ULP_CLK_NIC1_BUS_DIV>;
+ clock-names = "aclk", "ipg";
+
+ sec_jr0: jr0@1000 {
+ compatible = "fsl,sec-v4.0-job-ring";
+ reg = <0x1000 0x1000>;
+ interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
+ };
+
+ sec_jr1: jr1@2000 {
+ compatible = "fsl,sec-v4.0-job-ring";
+ reg = <0x2000 0x1000>;
+ interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
+ };
+ };
+
lpuart4: serial@402d0000 {
compatible = "fsl,imx7ulp-lpuart";
reg = <0x402d0000 0x1000>;

arch/arm/crypto/chacha-neon-glue.c

View file
diff --git a/arch/arm/crypto/chacha-neon-glue.c b/arch/arm/crypto/chacha-neon-glue.c
index 48a8953..a8e9b53 100644
--- a/arch/arm/crypto/chacha-neon-glue.c
+++ b/arch/arm/crypto/chacha-neon-glue.c
@@ -63,7 +63,7 @@ static void chacha_doneon(u32 *state, u8 *dst, const u8 *src,
}
static int chacha_neon_stream_xor(struct skcipher_request *req,
- struct chacha_ctx *ctx, u8 *iv)
+ const struct chacha_ctx *ctx, const u8 *iv)
{
struct skcipher_walk walk;
u32 state[16];

arch/arm/crypto/sha512-glue.c

View file
diff --git a/arch/arm/crypto/sha512-glue.c b/arch/arm/crypto/sha512-glue.c
index 232eeab..8775aa4 100644
--- a/arch/arm/crypto/sha512-glue.c
+++ b/arch/arm/crypto/sha512-glue.c
@@ -34,7 +34,7 @@ int sha512_arm_update(struct shash_desc *desc, const u8 *data,
(sha512_block_fn *)sha512_block_data_order);
}
-int sha512_arm_final(struct shash_desc *desc, u8 *out)
+static int sha512_arm_final(struct shash_desc *desc, u8 *out)
{
sha512_base_do_finalize(desc,
(sha512_block_fn *)sha512_block_data_order);

arch/arm64/crypto/aes-ce.S

View file
diff --git a/arch/arm64/crypto/aes-ce.S b/arch/arm64/crypto/aes-ce.S
index 3ebfaec..00bd288 100644
--- a/arch/arm64/crypto/aes-ce.S
+++ b/arch/arm64/crypto/aes-ce.S
@@ -15,6 +15,8 @@
.arch armv8-a+crypto
xtsmask .req v16
+ cbciv .req v16
+ vctr .req v16
.macro xts_reload_mask, tmp
.endm
@@ -49,7 +51,7 @@
load_round_keys \rounds, \temp
.endm
- .macro do_enc_Nx, de, mc, k, i0, i1, i2, i3
+ .macro do_enc_Nx, de, mc, k, i0, i1, i2, i3, i4
aes\de \i0\().16b, \k\().16b
aes\mc \i0\().16b, \i0\().16b
.ifnb \i1
@@ -60,27 +62,34 @@
aes\mc \i2\().16b, \i2\().16b
aes\de \i3\().16b, \k\().16b
aes\mc \i3\().16b, \i3\().16b
+ .ifnb \i4
+ aes\de \i4\().16b, \k\().16b
+ aes\mc \i4\().16b, \i4\().16b
+ .endif
.endif
.endif
.endm
- /* up to 4 interleaved encryption rounds with the same round key */
- .macro round_Nx, enc, k, i0, i1, i2, i3
+ /* up to 5 interleaved encryption rounds with the same round key */
+ .macro round_Nx, enc, k, i0, i1, i2, i3, i4
.ifc \enc, e
- do_enc_Nx e, mc, \k, \i0, \i1, \i2, \i3
+ do_enc_Nx e, mc, \k, \i0, \i1, \i2, \i3, \i4
.else
- do_enc_Nx d, imc, \k, \i0, \i1, \i2, \i3
+ do_enc_Nx d, imc, \k, \i0, \i1, \i2, \i3, \i4
.endif
.endm
- /* up to 4 interleaved final rounds */
- .macro fin_round_Nx, de, k, k2, i0, i1, i2, i3
+ /* up to 5 interleaved final rounds */
+ .macro fin_round_Nx, de, k, k2, i0, i1, i2, i3, i4
aes\de \i0\().16b, \k\().16b
.ifnb \i1
aes\de \i1\().16b, \k\().16b
.ifnb \i3
aes\de \i2\().16b, \k\().16b
aes\de \i3\().16b, \k\().16b
+ .ifnb \i4
+ aes\de \i4\().16b, \k\().16b
+ .endif
.endif
.endif
eor \i0\().16b, \i0\().16b, \k2\().16b
@@ -89,47 +98,52 @@
.ifnb \i3
eor \i2\().16b, \i2\().16b, \k2\().16b
eor \i3\().16b, \i3\().16b, \k2\().16b
+ .ifnb \i4
+ eor \i4\().16b, \i4\().16b, \k2\().16b
+ .endif
.endif
.endif
.endm
- /* up to 4 interleaved blocks */
- .macro do_block_Nx, enc, rounds, i0, i1, i2, i3
+ /* up to 5 interleaved blocks */
+ .macro do_block_Nx, enc, rounds, i0, i1, i2, i3, i4
cmp \rounds, #12
blo 2222f /* 128 bits */
beq 1111f /* 192 bits */
- round_Nx \enc, v17, \i0, \i1, \i2, \i3
- round_Nx \enc, v18, \i0, \i1, \i2, \i3
-1111: round_Nx \enc, v19, \i0, \i1, \i2, \i3
- round_Nx \enc, v20, \i0, \i1, \i2, \i3
+ round_Nx \enc, v17, \i0, \i1, \i2, \i3, \i4
+ round_Nx \enc, v18, \i0, \i1, \i2, \i3, \i4
+1111: round_Nx \enc, v19, \i0, \i1, \i2, \i3, \i4
+ round_Nx \enc, v20, \i0, \i1, \i2, \i3, \i4
2222: .irp key, v21, v22, v23, v24, v25, v26, v27, v28, v29
- round_Nx \enc, \key, \i0, \i1, \i2, \i3
+ round_Nx \enc, \key, \i0, \i1, \i2, \i3, \i4
.endr
- fin_round_Nx \enc, v30, v31, \i0, \i1, \i2, \i3
+ fin_round_Nx \enc, v30, v31, \i0, \i1, \i2, \i3, \i4
.endm
.macro encrypt_block, in, rounds, t0, t1, t2
do_block_Nx e, \rounds, \in
.endm
- .macro encrypt_block2x, i0, i1, rounds, t0, t1, t2
- do_block_Nx e, \rounds, \i0, \i1
- .endm
-
.macro encrypt_block4x, i0, i1, i2, i3, rounds, t0, t1, t2
do_block_Nx e, \rounds, \i0, \i1, \i2, \i3
.endm
- .macro decrypt_block, in, rounds, t0, t1, t2
- do_block_Nx d, \rounds, \in
+ .macro encrypt_block5x, i0, i1, i2, i3, i4, rounds, t0, t1, t2
+ do_block_Nx e, \rounds, \i0, \i1, \i2, \i3, \i4
.endm
- .macro decrypt_block2x, i0, i1, rounds, t0, t1, t2
- do_block_Nx d, \rounds, \i0, \i1
+ .macro decrypt_block, in, rounds, t0, t1, t2
+ do_block_Nx d, \rounds, \in
.endm
.macro decrypt_block4x, i0, i1, i2, i3, rounds, t0, t1, t2
do_block_Nx d, \rounds, \i0, \i1, \i2, \i3
.endm
+ .macro decrypt_block5x, i0, i1, i2, i3, i4, rounds, t0, t1, t2
+ do_block_Nx d, \rounds, \i0, \i1, \i2, \i3, \i4
+ .endm
+
+#define MAX_STRIDE 5
+

This diff is incomplete. Download the complete patch.

arch/arm64/crypto/aes-modes.S

View file

This diff is incomplete. Download the complete patch.

arch/arm64/crypto/aes-neon.S

View file

This diff is incomplete. Download the complete patch.

arch/arm64/crypto/chacha-neon-glue.c

View file

This diff is incomplete. Download the complete patch.

arch/arm64/crypto/sha1-ce-glue.c

View file

This diff is incomplete. Download the complete patch.

arch/arm64/crypto/sha2-ce-glue.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/crypto/aesni-intel_glue.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/crypto/chacha_glue.c

View file

This diff is incomplete. Download the complete patch.

crypto/Kconfig

View file

This diff is incomplete. Download the complete patch.

crypto/Makefile

View file

This diff is incomplete. Download the complete patch.

crypto/aead.c

View file

This diff is incomplete. Download the complete patch.

crypto/algapi.c

View file

This diff is incomplete. Download the complete patch.

crypto/anubis.c

View file

This diff is incomplete. Download the complete patch.

crypto/arc4.c

View file

This diff is incomplete. Download the complete patch.

crypto/asymmetric_keys/Kconfig

View file

This diff is incomplete. Download the complete patch.

crypto/chacha20poly1305.c

View file

This diff is incomplete. Download the complete patch.

crypto/chacha_generic.c

View file

This diff is incomplete. Download the complete patch.

crypto/cryptd.c

View file

This diff is incomplete. Download the complete patch.

crypto/crypto_null.c

View file

This diff is incomplete. Download the complete patch.

crypto/crypto_wq.c

View before deletion

This diff is incomplete. Download the complete patch.

crypto/deflate.c

View file

This diff is incomplete. Download the complete patch.

crypto/drbg.c

View file

This diff is incomplete. Download the complete patch.

crypto/fcrypt.c

View file

This diff is incomplete. Download the complete patch.

crypto/ghash-generic.c

View file

This diff is incomplete. Download the complete patch.

crypto/jitterentropy-kcapi.c

View file

This diff is incomplete. Download the complete patch.

crypto/jitterentropy.c

View file

This diff is incomplete. Download the complete patch.

crypto/khazad.c

View file

This diff is incomplete. Download the complete patch.

crypto/lrw.c

View file

This diff is incomplete. Download the complete patch.

crypto/lz4.c

View file

This diff is incomplete. Download the complete patch.

crypto/lz4hc.c

View file

This diff is incomplete. Download the complete patch.

crypto/lzo-rle.c

View file

This diff is incomplete. Download the complete patch.

crypto/lzo.c

View file

This diff is incomplete. Download the complete patch.

crypto/md4.c

View file

This diff is incomplete. Download the complete patch.

crypto/md5.c

View file

This diff is incomplete. Download the complete patch.

crypto/michael_mic.c

View file

This diff is incomplete. Download the complete patch.

crypto/rmd128.c

View file

This diff is incomplete. Download the complete patch.

crypto/rmd160.c

View file

This diff is incomplete. Download the complete patch.

crypto/rmd256.c

View file

This diff is incomplete. Download the complete patch.

crypto/rmd320.c

View file

This diff is incomplete. Download the complete patch.

crypto/serpent_generic.c

View file

This diff is incomplete. Download the complete patch.

crypto/skcipher.c

View file

This diff is incomplete. Download the complete patch.

crypto/tea.c

View file

This diff is incomplete. Download the complete patch.

crypto/testmgr.c

View file

This diff is incomplete. Download the complete patch.

crypto/testmgr.h

View file

This diff is incomplete. Download the complete patch.

crypto/tgr192.c

View file

This diff is incomplete. Download the complete patch.

crypto/wp512.c

View file

This diff is incomplete. Download the complete patch.

crypto/xxhash_generic.c

View file

This diff is incomplete. Download the complete patch.

crypto/zstd.c

View file

This diff is incomplete. Download the complete patch.

drivers/char/hw_random/iproc-rng200.c

View file

This diff is incomplete. Download the complete patch.

drivers/char/hw_random/meson-rng.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/amcc/crypto4xx_alg.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/amcc/crypto4xx_core.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/amcc/crypto4xx_core.h

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/atmel-ecc.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/atmel-i2c.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/atmel-i2c.h

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/atmel-sha204a.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/bcm/cipher.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/bcm/spu2.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/caam/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/caam/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/caam/caamalg.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/caam/caamalg_desc.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/caam/caamalg_desc.h

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/caam/caamalg_qi.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/caam/caamalg_qi2.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/caam/caamhash.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/caam/caampkc.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/caam/caampkc.h

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/caam/caamrng.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/caam/ctrl.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/caam/desc_constr.h

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/caam/error.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/caam/error.h

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/caam/intern.h

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/caam/jr.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/caam/key_gen.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/caam/qi.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/caam/sg_sw_qm.h

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/caam/sg_sw_qm2.h

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/caam/sg_sw_sec4.h

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/cavium/cpt/cptvf_algs.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/cavium/nitrox/nitrox_debugfs.h

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/cavium/nitrox/nitrox_mbx.h

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/ccp/ccp-crypto-aes.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/ccp/ccp-dev.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/ccp/ccp-dev.h

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/ccp/ccp-ops.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/ccree/cc_driver.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/ccree/cc_driver.h

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/ccree/cc_host_regs.h

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/ccree/cc_pm.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/ccree/cc_pm.h

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/hisilicon/sec/sec_drv.h

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/inside-secure/safexcel.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/inside-secure/safexcel.h

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/inside-secure/safexcel_cipher.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/inside-secure/safexcel_hash.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/inside-secure/safexcel_ring.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/ixp4xx_crypto.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/mxs-dcp.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/nx/nx-842-powernv.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/nx/nx.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/nx/nx.h

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/nx/nx_debugfs.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/qat/qat_common/qat_algs.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/qat/qat_common/qat_crypto.h

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/sahara.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/stm32/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/stm32/stm32-crc32.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/stm32/stm32-hash.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/sunxi-ss/sun4i-ss-cipher.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/talitos.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/talitos.h

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/vmx/aes_cbc.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/vmx/aes_ctr.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/vmx/aes_xts.c

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/vmx/aesp8-ppc.h

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/vmx/aesp8-ppc.pl

View file

This diff is incomplete. Download the complete patch.

drivers/crypto/vmx/vmx.c

View file

This diff is incomplete. Download the complete patch.

drivers/i2c/i2c-core-acpi.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ppp/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/net/ppp/ppp_mppe.c

View file

This diff is incomplete. Download the complete patch.

fs/cifs/Kconfig

View file

This diff is incomplete. Download the complete patch.

fs/cifs/cifsencrypt.c

View file

This diff is incomplete. Download the complete patch.

fs/cifs/cifsfs.c

View file

This diff is incomplete. Download the complete patch.

include/crypto/aead.h

View file

This diff is incomplete. Download the complete patch.

include/crypto/algapi.h

View file

This diff is incomplete. Download the complete patch.

include/crypto/arc4.h

View file

This diff is incomplete. Download the complete patch.

include/crypto/chacha.h

View file

This diff is incomplete. Download the complete patch.

include/crypto/crypto_wq.h

View before deletion

This diff is incomplete. Download the complete patch.

include/crypto/drbg.h

View file

This diff is incomplete. Download the complete patch.

include/crypto/internal/hash.h

View file

This diff is incomplete. Download the complete patch.

include/crypto/internal/skcipher.h

View file

This diff is incomplete. Download the complete patch.

include/crypto/skcipher.h

View file

This diff is incomplete. Download the complete patch.

include/linux/crypto.h

View file

This diff is incomplete. Download the complete patch.

lib/Makefile

View file

This diff is incomplete. Download the complete patch.

lib/crypto/Makefile

View file

This diff is incomplete. Download the complete patch.

lib/crypto/arc4.c

View file

This diff is incomplete. Download the complete patch.

lib/scatterlist.c

View file

This diff is incomplete. Download the complete patch.

net/mac80211/Kconfig

View file

This diff is incomplete. Download the complete patch.

net/mac80211/cfg.c

View file

This diff is incomplete. Download the complete patch.

net/mac80211/ieee80211_i.h

View file

This diff is incomplete. Download the complete patch.

net/mac80211/key.h

View file

This diff is incomplete. Download the complete patch.

net/mac80211/main.c

View file

This diff is incomplete. Download the complete patch.

net/mac80211/mlme.c

View file

This diff is incomplete. Download the complete patch.

net/mac80211/tkip.c

View file

This diff is incomplete. Download the complete patch.

net/mac80211/tkip.h

View file

This diff is incomplete. Download the complete patch.

net/mac80211/wep.c

View file

This diff is incomplete. Download the complete patch.

net/mac80211/wep.h

View file

This diff is incomplete. Download the complete patch.

net/mac80211/wpa.c

View file

This diff is incomplete. Download the complete patch.

net/wireless/Kconfig

View file

This diff is incomplete. Download the complete patch.

net/wireless/lib80211_crypt_tkip.c

View file

This diff is incomplete. Download the complete patch.

net/wireless/lib80211_crypt_wep.c

View file

This diff is incomplete. Download the complete patch.