* [PATCH 01/11] crypto: gcm - add GCM IV size constant
2017-08-22 8:08 [PATCH 00/11] crypto: gcm - add GCM IV size constant Corentin Labbe
@ 2017-08-22 8:08 ` Corentin Labbe
2017-08-22 8:08 ` [PATCH 02/11] crypto: caam - Use " Corentin Labbe
` (10 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Corentin Labbe @ 2017-08-22 8:08 UTC (permalink / raw)
To: herbert, davem, tglx, mingo, hpa, x86, horia.geanta, dan.douglass,
thomas.lendacky, gary.hook, harsh, matthias.bgg, leosilva,
pfsmorigo, benh, paulus, mpe
Cc: linux-crypto, linux-kernel, linux-arm-kernel, linux-mediatek,
linuxppc-dev, Corentin Labbe
Many GCM users use directly GCM IV size instead of using some constant.
This patch add all IV size constant used by GCM.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
---
include/crypto/gcm.h | 8 ++++++++
1 file changed, 8 insertions(+)
create mode 100644 include/crypto/gcm.h
diff --git a/include/crypto/gcm.h b/include/crypto/gcm.h
new file mode 100644
index 000000000000..c50e057ea17e
--- /dev/null
+++ b/include/crypto/gcm.h
@@ -0,0 +1,8 @@
+#ifndef _CRYPTO_GCM_H
+#define _CRYPTO_GCM_H
+
+#define GCM_AES_IV_SIZE 12
+#define GCM_RFC4106_IV_SIZE 8
+#define GCM_RFC4543_IV_SIZE 8
+
+#endif
--
2.13.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH 02/11] crypto: caam - Use GCM IV size constant
2017-08-22 8:08 [PATCH 00/11] crypto: gcm - add GCM IV size constant Corentin Labbe
2017-08-22 8:08 ` [PATCH 01/11] " Corentin Labbe
@ 2017-08-22 8:08 ` Corentin Labbe
2017-08-22 8:08 ` [PATCH 03/11] crypto: ccp " Corentin Labbe
` (9 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Corentin Labbe @ 2017-08-22 8:08 UTC (permalink / raw)
To: herbert, davem, tglx, mingo, hpa, x86, horia.geanta, dan.douglass,
thomas.lendacky, gary.hook, harsh, matthias.bgg, leosilva,
pfsmorigo, benh, paulus, mpe
Cc: linux-crypto, linux-kernel, linux-arm-kernel, linux-mediatek,
linuxppc-dev, Corentin Labbe
This patch replace GCM IV size value by their constant name.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
---
drivers/crypto/caam/caamalg.c | 10 +++++-----
drivers/crypto/caam/compat.h | 1 +
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/crypto/caam/caamalg.c b/drivers/crypto/caam/caamalg.c
index 54f3b375a453..baa8dd52472d 100644
--- a/drivers/crypto/caam/caamalg.c
+++ b/drivers/crypto/caam/caamalg.c
@@ -992,7 +992,7 @@ static void init_gcm_job(struct aead_request *req,
struct caam_ctx *ctx = crypto_aead_ctx(aead);
unsigned int ivsize = crypto_aead_ivsize(aead);
u32 *desc = edesc->hw_desc;
- bool generic_gcm = (ivsize == 12);
+ bool generic_gcm = (ivsize == GCM_AES_IV_SIZE);
unsigned int last;
init_aead_job(req, edesc, all_contig, encrypt);
@@ -1004,7 +1004,7 @@ static void init_gcm_job(struct aead_request *req,
/* Read GCM IV */
append_cmd(desc, CMD_FIFO_LOAD | FIFOLD_CLASS_CLASS1 | IMMEDIATE |
- FIFOLD_TYPE_IV | FIFOLD_TYPE_FLUSH1 | 12 | last);
+ FIFOLD_TYPE_IV | FIFOLD_TYPE_FLUSH1 | GCM_AES_IV_SIZE | last);
/* Append Salt */
if (!generic_gcm)
append_data(desc, ctx->key + ctx->cdata.keylen, 4);
@@ -1953,7 +1953,7 @@ static struct caam_aead_alg driver_aeads[] = {
.setauthsize = rfc4106_setauthsize,
.encrypt = ipsec_gcm_encrypt,
.decrypt = ipsec_gcm_decrypt,
- .ivsize = 8,
+ .ivsize = GCM_RFC4106_IV_SIZE,
.maxauthsize = AES_BLOCK_SIZE,
},
.caam = {
@@ -1971,7 +1971,7 @@ static struct caam_aead_alg driver_aeads[] = {
.setauthsize = rfc4543_setauthsize,
.encrypt = ipsec_gcm_encrypt,
.decrypt = ipsec_gcm_decrypt,
- .ivsize = 8,
+ .ivsize = GCM_RFC4543_IV_SIZE,
.maxauthsize = AES_BLOCK_SIZE,
},
.caam = {
@@ -1990,7 +1990,7 @@ static struct caam_aead_alg driver_aeads[] = {
.setauthsize = gcm_setauthsize,
.encrypt = gcm_encrypt,
.decrypt = gcm_decrypt,
- .ivsize = 12,
+ .ivsize = GCM_AES_IV_SIZE,
.maxauthsize = AES_BLOCK_SIZE,
},
.caam = {
diff --git a/drivers/crypto/caam/compat.h b/drivers/crypto/caam/compat.h
index 7149cd2492e0..5b8d930f3dd8 100644
--- a/drivers/crypto/caam/compat.h
+++ b/drivers/crypto/caam/compat.h
@@ -31,6 +31,7 @@
#include <crypto/aes.h>
#include <crypto/ctr.h>
#include <crypto/des.h>
+#include <crypto/gcm.h>
#include <crypto/sha.h>
#include <crypto/md5.h>
#include <crypto/internal/aead.h>
--
2.13.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH 03/11] crypto: ccp - Use GCM IV size constant
2017-08-22 8:08 [PATCH 00/11] crypto: gcm - add GCM IV size constant Corentin Labbe
2017-08-22 8:08 ` [PATCH 01/11] " Corentin Labbe
2017-08-22 8:08 ` [PATCH 02/11] crypto: caam - Use " Corentin Labbe
@ 2017-08-22 8:08 ` Corentin Labbe
2017-08-22 8:08 ` [PATCH 04/11] crypto: nx " Corentin Labbe
` (8 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Corentin Labbe @ 2017-08-22 8:08 UTC (permalink / raw)
To: herbert, davem, tglx, mingo, hpa, x86, horia.geanta, dan.douglass,
thomas.lendacky, gary.hook, harsh, matthias.bgg, leosilva,
pfsmorigo, benh, paulus, mpe
Cc: linux-crypto, linux-kernel, linux-arm-kernel, linux-mediatek,
linuxppc-dev, Corentin Labbe
This patch replace GCM IV size value by their constant name.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
---
drivers/crypto/ccp/ccp-crypto-aes-galois.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/drivers/crypto/ccp/ccp-crypto-aes-galois.c b/drivers/crypto/ccp/ccp-crypto-aes-galois.c
index 52313524a4dd..ff02b713c6f6 100644
--- a/drivers/crypto/ccp/ccp-crypto-aes-galois.c
+++ b/drivers/crypto/ccp/ccp-crypto-aes-galois.c
@@ -19,13 +19,12 @@
#include <crypto/algapi.h>
#include <crypto/aes.h>
#include <crypto/ctr.h>
+#include <crypto/gcm.h>
#include <crypto/scatterwalk.h>
#include <linux/delay.h>
#include "ccp-crypto.h"
-#define AES_GCM_IVSIZE 12
-
static int ccp_aes_gcm_complete(struct crypto_async_request *async_req, int ret)
{
return ret;
@@ -95,9 +94,9 @@ static int ccp_aes_gcm_crypt(struct aead_request *req, bool encrypt)
*/
/* Prepare the IV: 12 bytes + an integer (counter) */
- memcpy(rctx->iv, req->iv, AES_GCM_IVSIZE);
+ memcpy(rctx->iv, req->iv, GCM_AES_IV_SIZE);
for (i = 0; i < 3; i++)
- rctx->iv[i + AES_GCM_IVSIZE] = 0;
+ rctx->iv[i + GCM_AES_IV_SIZE] = 0;
rctx->iv[AES_BLOCK_SIZE - 1] = 1;
/* Set up a scatterlist for the IV */
@@ -160,7 +159,7 @@ static struct aead_alg ccp_aes_gcm_defaults = {
.encrypt = ccp_aes_gcm_encrypt,
.decrypt = ccp_aes_gcm_decrypt,
.init = ccp_aes_gcm_cra_init,
- .ivsize = AES_GCM_IVSIZE,
+ .ivsize = GCM_AES_IV_SIZE,
.maxauthsize = AES_BLOCK_SIZE,
.base = {
.cra_flags = CRYPTO_ALG_TYPE_ABLKCIPHER |
--
2.13.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH 04/11] crypto: nx - Use GCM IV size constant
2017-08-22 8:08 [PATCH 00/11] crypto: gcm - add GCM IV size constant Corentin Labbe
` (2 preceding siblings ...)
2017-08-22 8:08 ` [PATCH 03/11] crypto: ccp " Corentin Labbe
@ 2017-08-22 8:08 ` Corentin Labbe
2017-08-22 8:08 ` [PATCH 05/11] crypto: atmel " Corentin Labbe
` (7 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Corentin Labbe @ 2017-08-22 8:08 UTC (permalink / raw)
To: herbert, davem, tglx, mingo, hpa, x86, horia.geanta, dan.douglass,
thomas.lendacky, gary.hook, harsh, matthias.bgg, leosilva,
pfsmorigo, benh, paulus, mpe
Cc: linux-crypto, linux-kernel, linux-arm-kernel, linux-mediatek,
linuxppc-dev, Corentin Labbe
This patch replace GCM IV size value by their constant name.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
---
drivers/crypto/nx/nx-aes-gcm.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/crypto/nx/nx-aes-gcm.c b/drivers/crypto/nx/nx-aes-gcm.c
index abd465f479c4..a810596b97c2 100644
--- a/drivers/crypto/nx/nx-aes-gcm.c
+++ b/drivers/crypto/nx/nx-aes-gcm.c
@@ -22,6 +22,7 @@
#include <crypto/internal/aead.h>
#include <crypto/aes.h>
#include <crypto/algapi.h>
+#include <crypto/gcm.h>
#include <crypto/scatterwalk.h>
#include <linux/module.h>
#include <linux/types.h>
@@ -433,7 +434,7 @@ static int gcm_aes_nx_encrypt(struct aead_request *req)
struct nx_gcm_rctx *rctx = aead_request_ctx(req);
char *iv = rctx->iv;
- memcpy(iv, req->iv, 12);
+ memcpy(iv, req->iv, GCM_AES_IV_SIZE);
return gcm_aes_nx_crypt(req, 1, req->assoclen);
}
@@ -443,7 +444,7 @@ static int gcm_aes_nx_decrypt(struct aead_request *req)
struct nx_gcm_rctx *rctx = aead_request_ctx(req);
char *iv = rctx->iv;
- memcpy(iv, req->iv, 12);
+ memcpy(iv, req->iv, GCM_AES_IV_SIZE);
return gcm_aes_nx_crypt(req, 0, req->assoclen);
}
@@ -498,7 +499,7 @@ struct aead_alg nx_gcm_aes_alg = {
},
.init = nx_crypto_ctx_aes_gcm_init,
.exit = nx_crypto_ctx_aead_exit,
- .ivsize = 12,
+ .ivsize = GCM_AES_IV_SIZE,
.maxauthsize = AES_BLOCK_SIZE,
.setkey = gcm_aes_nx_set_key,
.encrypt = gcm_aes_nx_encrypt,
@@ -516,7 +517,7 @@ struct aead_alg nx_gcm4106_aes_alg = {
},
.init = nx_crypto_ctx_aes_gcm_init,
.exit = nx_crypto_ctx_aead_exit,
- .ivsize = 8,
+ .ivsize = GCM_RFC4106_IV_SIZE,
.maxauthsize = AES_BLOCK_SIZE,
.setkey = gcm4106_aes_nx_set_key,
.setauthsize = gcm4106_aes_nx_setauthsize,
--
2.13.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH 05/11] crypto: atmel - Use GCM IV size constant
2017-08-22 8:08 [PATCH 00/11] crypto: gcm - add GCM IV size constant Corentin Labbe
` (3 preceding siblings ...)
2017-08-22 8:08 ` [PATCH 04/11] crypto: nx " Corentin Labbe
@ 2017-08-22 8:08 ` Corentin Labbe
2017-08-22 8:08 ` [PATCH 06/11] crypto: bcm " Corentin Labbe
` (6 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Corentin Labbe @ 2017-08-22 8:08 UTC (permalink / raw)
To: herbert, davem, tglx, mingo, hpa, x86, horia.geanta, dan.douglass,
thomas.lendacky, gary.hook, harsh, matthias.bgg, leosilva,
pfsmorigo, benh, paulus, mpe
Cc: linux-crypto, linux-kernel, linux-arm-kernel, linux-mediatek,
linuxppc-dev, Corentin Labbe
This patch replace GCM IV size value by their constant name.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
---
drivers/crypto/atmel-aes.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/crypto/atmel-aes.c b/drivers/crypto/atmel-aes.c
index 29e20c37f3a6..903fd43f23a5 100644
--- a/drivers/crypto/atmel-aes.c
+++ b/drivers/crypto/atmel-aes.c
@@ -36,6 +36,7 @@
#include <crypto/scatterwalk.h>
#include <crypto/algapi.h>
#include <crypto/aes.h>
+#include <crypto/gcm.h>
#include <crypto/xts.h>
#include <crypto/internal/aead.h>
#include <linux/platform_data/crypto-atmel.h>
@@ -1532,7 +1533,7 @@ static int atmel_aes_gcm_start(struct atmel_aes_dev *dd)
if (err)
return atmel_aes_complete(dd, err);
- if (likely(ivsize == 12)) {
+ if (likely(ivsize == GCM_AES_IV_SIZE)) {
memcpy(ctx->j0, iv, ivsize);
ctx->j0[3] = cpu_to_be32(1);
return atmel_aes_gcm_process(dd);
@@ -1820,7 +1821,7 @@ static struct aead_alg aes_gcm_alg = {
.decrypt = atmel_aes_gcm_decrypt,
.init = atmel_aes_gcm_init,
.exit = atmel_aes_gcm_exit,
- .ivsize = 12,
+ .ivsize = GCM_AES_IV_SIZE,
.maxauthsize = AES_BLOCK_SIZE,
.base = {
--
2.13.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH 06/11] crypto: bcm - Use GCM IV size constant
2017-08-22 8:08 [PATCH 00/11] crypto: gcm - add GCM IV size constant Corentin Labbe
` (4 preceding siblings ...)
2017-08-22 8:08 ` [PATCH 05/11] crypto: atmel " Corentin Labbe
@ 2017-08-22 8:08 ` Corentin Labbe
2017-08-22 8:08 ` [PATCH 07/11] crypto: mediatek " Corentin Labbe
` (5 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Corentin Labbe @ 2017-08-22 8:08 UTC (permalink / raw)
To: herbert, davem, tglx, mingo, hpa, x86, horia.geanta, dan.douglass,
thomas.lendacky, gary.hook, harsh, matthias.bgg, leosilva,
pfsmorigo, benh, paulus, mpe
Cc: linux-crypto, linux-kernel, linux-arm-kernel, linux-mediatek,
linuxppc-dev, Corentin Labbe
This patch replace GCM IV size value by their constant name.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
---
drivers/crypto/bcm/cipher.c | 8 ++++----
drivers/crypto/bcm/cipher.h | 3 +--
2 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/drivers/crypto/bcm/cipher.c b/drivers/crypto/bcm/cipher.c
index 8685c7e4debd..537a67483aa3 100644
--- a/drivers/crypto/bcm/cipher.c
+++ b/drivers/crypto/bcm/cipher.c
@@ -1367,11 +1367,11 @@ static int handle_aead_req(struct iproc_reqctx_s *rctx)
* expects AAD to include just SPI and seqno. So
* subtract off the IV len.
*/
- aead_parms.assoc_size -= GCM_ESP_IV_SIZE;
+ aead_parms.assoc_size -= GCM_RFC4106_IV_SIZE;
if (rctx->is_encrypt) {
aead_parms.return_iv = true;
- aead_parms.ret_iv_len = GCM_ESP_IV_SIZE;
+ aead_parms.ret_iv_len = GCM_RFC4106_IV_SIZE;
aead_parms.ret_iv_off = GCM_ESP_SALT_SIZE;
}
} else {
@@ -3255,7 +3255,7 @@ static struct iproc_alg_s driver_algs[] = {
.cra_flags = CRYPTO_ALG_NEED_FALLBACK
},
.setkey = aead_gcm_esp_setkey,
- .ivsize = GCM_ESP_IV_SIZE,
+ .ivsize = GCM_RFC4106_IV_SIZE,
.maxauthsize = AES_BLOCK_SIZE,
},
.cipher_info = {
@@ -3301,7 +3301,7 @@ static struct iproc_alg_s driver_algs[] = {
.cra_flags = CRYPTO_ALG_NEED_FALLBACK
},
.setkey = rfc4543_gcm_esp_setkey,
- .ivsize = GCM_ESP_IV_SIZE,
+ .ivsize = GCM_RFC4106_IV_SIZE,
.maxauthsize = AES_BLOCK_SIZE,
},
.cipher_info = {
diff --git a/drivers/crypto/bcm/cipher.h b/drivers/crypto/bcm/cipher.h
index 57a55eb2a255..763c425c41ca 100644
--- a/drivers/crypto/bcm/cipher.h
+++ b/drivers/crypto/bcm/cipher.h
@@ -23,6 +23,7 @@
#include <crypto/aes.h>
#include <crypto/internal/hash.h>
#include <crypto/aead.h>
+#include <crypto/gcm.h>
#include <crypto/sha.h>
#include <crypto/sha3.h>
@@ -39,8 +40,6 @@
#define ARC4_STATE_SIZE 4
#define CCM_AES_IV_SIZE 16
-#define GCM_AES_IV_SIZE 12
-#define GCM_ESP_IV_SIZE 8
#define CCM_ESP_IV_SIZE 8
#define RFC4543_ICV_SIZE 16
--
2.13.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH 07/11] crypto: mediatek - Use GCM IV size constant
2017-08-22 8:08 [PATCH 00/11] crypto: gcm - add GCM IV size constant Corentin Labbe
` (5 preceding siblings ...)
2017-08-22 8:08 ` [PATCH 06/11] crypto: bcm " Corentin Labbe
@ 2017-08-22 8:08 ` Corentin Labbe
2017-08-22 8:08 ` [PATCH 08/11] crypto: chelsio " Corentin Labbe
` (4 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Corentin Labbe @ 2017-08-22 8:08 UTC (permalink / raw)
To: herbert, davem, tglx, mingo, hpa, x86, horia.geanta, dan.douglass,
thomas.lendacky, gary.hook, harsh, matthias.bgg, leosilva,
pfsmorigo, benh, paulus, mpe
Cc: linux-crypto, linux-kernel, linux-arm-kernel, linux-mediatek,
linuxppc-dev, Corentin Labbe
This patch replace GCM IV size value by their constant name.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
---
drivers/crypto/mediatek/mtk-aes.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/crypto/mediatek/mtk-aes.c b/drivers/crypto/mediatek/mtk-aes.c
index 9e845e866dec..87e15b624f84 100644
--- a/drivers/crypto/mediatek/mtk-aes.c
+++ b/drivers/crypto/mediatek/mtk-aes.c
@@ -13,6 +13,7 @@
*/
#include <crypto/aes.h>
+#include <crypto/gcm.h>
#include "mtk-platform.h"
#define AES_QUEUE_SIZE 512
@@ -1098,7 +1099,7 @@ static struct aead_alg aes_gcm_alg = {
.decrypt = mtk_aes_gcm_decrypt,
.init = mtk_aes_gcm_init,
.exit = mtk_aes_gcm_exit,
- .ivsize = 12,
+ .ivsize = GCM_AES_IV_SIZE,
.maxauthsize = AES_BLOCK_SIZE,
.base = {
--
2.13.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH 08/11] crypto: chelsio - Use GCM IV size constant
2017-08-22 8:08 [PATCH 00/11] crypto: gcm - add GCM IV size constant Corentin Labbe
` (6 preceding siblings ...)
2017-08-22 8:08 ` [PATCH 07/11] crypto: mediatek " Corentin Labbe
@ 2017-08-22 8:08 ` Corentin Labbe
2017-08-22 8:08 ` [PATCH 09/11] crypto: omap " Corentin Labbe
` (3 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Corentin Labbe @ 2017-08-22 8:08 UTC (permalink / raw)
To: herbert, davem, tglx, mingo, hpa, x86, horia.geanta, dan.douglass,
thomas.lendacky, gary.hook, harsh, matthias.bgg, leosilva,
pfsmorigo, benh, paulus, mpe
Cc: linux-crypto, linux-kernel, linux-arm-kernel, linux-mediatek,
linuxppc-dev, Corentin Labbe
This patch replace GCM IV size value by their constant name.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
---
drivers/crypto/chelsio/chcr_algo.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/crypto/chelsio/chcr_algo.c b/drivers/crypto/chelsio/chcr_algo.c
index 0e8160701833..936bdd895efa 100644
--- a/drivers/crypto/chelsio/chcr_algo.c
+++ b/drivers/crypto/chelsio/chcr_algo.c
@@ -53,6 +53,7 @@
#include <crypto/aes.h>
#include <crypto/algapi.h>
#include <crypto/hash.h>
+#include <crypto/gcm.h>
#include <crypto/sha.h>
#include <crypto/authenc.h>
#include <crypto/ctr.h>
@@ -2534,9 +2535,9 @@ static struct sk_buff *create_gcm_wr(struct aead_request *req,
if (get_aead_subtype(tfm) ==
CRYPTO_ALG_SUB_TYPE_AEAD_RFC4106) {
memcpy(reqctx->iv, aeadctx->salt, 4);
- memcpy(reqctx->iv + 4, req->iv, 8);
+ memcpy(reqctx->iv + 4, req->iv, GCM_RFC4106_IV_SIZE);
} else {
- memcpy(reqctx->iv, req->iv, 12);
+ memcpy(reqctx->iv, req->iv, GCM_AES_IV_SIZE);
}
*((unsigned int *)(reqctx->iv + 12)) = htonl(0x01);
@@ -3385,7 +3386,7 @@ static struct chcr_alg_template driver_algs[] = {
sizeof(struct chcr_aead_ctx) +
sizeof(struct chcr_gcm_ctx),
},
- .ivsize = 12,
+ .ivsize = GCM_AES_IV_SIZE,
.maxauthsize = GHASH_DIGEST_SIZE,
.setkey = chcr_gcm_setkey,
.setauthsize = chcr_gcm_setauthsize,
@@ -3405,7 +3406,7 @@ static struct chcr_alg_template driver_algs[] = {
sizeof(struct chcr_gcm_ctx),
},
- .ivsize = 8,
+ .ivsize = GCM_RFC4106_IV_SIZE,
.maxauthsize = GHASH_DIGEST_SIZE,
.setkey = chcr_gcm_setkey,
.setauthsize = chcr_4106_4309_setauthsize,
--
2.13.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH 09/11] crypto: omap - Use GCM IV size constant
2017-08-22 8:08 [PATCH 00/11] crypto: gcm - add GCM IV size constant Corentin Labbe
` (7 preceding siblings ...)
2017-08-22 8:08 ` [PATCH 08/11] crypto: chelsio " Corentin Labbe
@ 2017-08-22 8:08 ` Corentin Labbe
2017-08-22 8:08 ` [PATCH 10/11] crypto: gcm " Corentin Labbe
` (2 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Corentin Labbe @ 2017-08-22 8:08 UTC (permalink / raw)
To: herbert, davem, tglx, mingo, hpa, x86, horia.geanta, dan.douglass,
thomas.lendacky, gary.hook, harsh, matthias.bgg, leosilva,
pfsmorigo, benh, paulus, mpe
Cc: linux-crypto, linux-kernel, linux-arm-kernel, linux-mediatek,
linuxppc-dev, Corentin Labbe
This patch replace GCM IV size value by their constant name.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
---
drivers/crypto/omap-aes-gcm.c | 7 ++++---
drivers/crypto/omap-aes.c | 5 +++--
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/drivers/crypto/omap-aes-gcm.c b/drivers/crypto/omap-aes-gcm.c
index 7d4f8a4be6d8..9b8f1c752168 100644
--- a/drivers/crypto/omap-aes-gcm.c
+++ b/drivers/crypto/omap-aes-gcm.c
@@ -18,6 +18,7 @@
#include <linux/omap-dma.h>
#include <linux/interrupt.h>
#include <crypto/aes.h>
+#include <crypto/gcm.h>
#include <crypto/scatterwalk.h>
#include <crypto/skcipher.h>
#include <crypto/internal/aead.h>
@@ -311,7 +312,7 @@ static int omap_aes_gcm_crypt(struct aead_request *req, unsigned long mode)
int err, assoclen;
memset(rctx->auth_tag, 0, sizeof(rctx->auth_tag));
- memcpy(rctx->iv + 12, &counter, 4);
+ memcpy(rctx->iv + GCM_AES_IV_SIZE, &counter, 4);
err = do_encrypt_iv(req, (u32 *)rctx->auth_tag, (u32 *)rctx->iv);
if (err)
@@ -339,7 +340,7 @@ int omap_aes_gcm_encrypt(struct aead_request *req)
{
struct omap_aes_reqctx *rctx = aead_request_ctx(req);
- memcpy(rctx->iv, req->iv, 12);
+ memcpy(rctx->iv, req->iv, GCM_AES_IV_SIZE);
return omap_aes_gcm_crypt(req, FLAGS_ENCRYPT | FLAGS_GCM);
}
@@ -347,7 +348,7 @@ int omap_aes_gcm_decrypt(struct aead_request *req)
{
struct omap_aes_reqctx *rctx = aead_request_ctx(req);
- memcpy(rctx->iv, req->iv, 12);
+ memcpy(rctx->iv, req->iv, GCM_AES_IV_SIZE);
return omap_aes_gcm_crypt(req, FLAGS_GCM);
}
diff --git a/drivers/crypto/omap-aes.c b/drivers/crypto/omap-aes.c
index c376a3ee7c2c..1f3686a1ebfa 100644
--- a/drivers/crypto/omap-aes.c
+++ b/drivers/crypto/omap-aes.c
@@ -35,6 +35,7 @@
#include <linux/interrupt.h>
#include <crypto/scatterwalk.h>
#include <crypto/aes.h>
+#include <crypto/gcm.h>
#include <crypto/engine.h>
#include <crypto/internal/skcipher.h>
#include <crypto/internal/aead.h>
@@ -767,7 +768,7 @@ static struct aead_alg algs_aead_gcm[] = {
},
.init = omap_aes_gcm_cra_init,
.exit = omap_aes_gcm_cra_exit,
- .ivsize = 12,
+ .ivsize = GCM_AES_IV_SIZE,
.maxauthsize = AES_BLOCK_SIZE,
.setkey = omap_aes_gcm_setkey,
.encrypt = omap_aes_gcm_encrypt,
@@ -788,7 +789,7 @@ static struct aead_alg algs_aead_gcm[] = {
.init = omap_aes_gcm_cra_init,
.exit = omap_aes_gcm_cra_exit,
.maxauthsize = AES_BLOCK_SIZE,
- .ivsize = 8,
+ .ivsize = GCM_RFC4106_IV_SIZE,
.setkey = omap_aes_4106gcm_setkey,
.encrypt = omap_aes_4106gcm_encrypt,
.decrypt = omap_aes_4106gcm_decrypt,
--
2.13.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH 10/11] crypto: gcm - Use GCM IV size constant
2017-08-22 8:08 [PATCH 00/11] crypto: gcm - add GCM IV size constant Corentin Labbe
` (8 preceding siblings ...)
2017-08-22 8:08 ` [PATCH 09/11] crypto: omap " Corentin Labbe
@ 2017-08-22 8:08 ` Corentin Labbe
2017-08-22 8:08 ` [PATCH 11/11] crypto: aesni " Corentin Labbe
2017-09-22 10:14 ` [PATCH 00/11] crypto: gcm - add " Herbert Xu
11 siblings, 0 replies; 13+ messages in thread
From: Corentin Labbe @ 2017-08-22 8:08 UTC (permalink / raw)
To: herbert, davem, tglx, mingo, hpa, x86, horia.geanta, dan.douglass,
thomas.lendacky, gary.hook, harsh, matthias.bgg, leosilva,
pfsmorigo, benh, paulus, mpe
Cc: linux-crypto, linux-kernel, linux-arm-kernel, linux-mediatek,
linuxppc-dev, Corentin Labbe
This patch replace GCM IV size value by their constant name.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
---
crypto/gcm.c | 23 ++++++++++++-----------
1 file changed, 12 insertions(+), 11 deletions(-)
diff --git a/crypto/gcm.c b/crypto/gcm.c
index 3841b5eafa7e..80cf6cfe082b 100644
--- a/crypto/gcm.c
+++ b/crypto/gcm.c
@@ -14,6 +14,7 @@
#include <crypto/internal/hash.h>
#include <crypto/null.h>
#include <crypto/scatterwalk.h>
+#include <crypto/gcm.h>
#include <crypto/hash.h>
#include "internal.h"
#include <linux/completion.h>
@@ -197,8 +198,8 @@ static void crypto_gcm_init_common(struct aead_request *req)
struct scatterlist *sg;
memset(pctx->auth_tag, 0, sizeof(pctx->auth_tag));
- memcpy(pctx->iv, req->iv, 12);
- memcpy(pctx->iv + 12, &counter, 4);
+ memcpy(pctx->iv, req->iv, GCM_AES_IV_SIZE);
+ memcpy(pctx->iv + GCM_AES_IV_SIZE, &counter, 4);
sg_init_table(pctx->src, 3);
sg_set_buf(pctx->src, pctx->auth_tag, sizeof(pctx->auth_tag));
@@ -695,7 +696,7 @@ static int crypto_gcm_create_common(struct crypto_template *tmpl,
inst->alg.base.cra_alignmask = ghash->base.cra_alignmask |
ctr->base.cra_alignmask;
inst->alg.base.cra_ctxsize = sizeof(struct crypto_gcm_ctx);
- inst->alg.ivsize = 12;
+ inst->alg.ivsize = GCM_AES_IV_SIZE;
inst->alg.chunksize = crypto_skcipher_alg_chunksize(ctr);
inst->alg.maxauthsize = 16;
inst->alg.init = crypto_gcm_init_tfm;
@@ -832,20 +833,20 @@ static struct aead_request *crypto_rfc4106_crypt(struct aead_request *req)
u8 *iv = PTR_ALIGN((u8 *)(subreq + 1) + crypto_aead_reqsize(child),
crypto_aead_alignmask(child) + 1);
- scatterwalk_map_and_copy(iv + 12, req->src, 0, req->assoclen - 8, 0);
+ scatterwalk_map_and_copy(iv + GCM_AES_IV_SIZE, req->src, 0, req->assoclen - 8, 0);
memcpy(iv, ctx->nonce, 4);
memcpy(iv + 4, req->iv, 8);
sg_init_table(rctx->src, 3);
- sg_set_buf(rctx->src, iv + 12, req->assoclen - 8);
+ sg_set_buf(rctx->src, iv + GCM_AES_IV_SIZE, req->assoclen - 8);
sg = scatterwalk_ffwd(rctx->src + 1, req->src, req->assoclen);
if (sg != rctx->src + 1)
sg_chain(rctx->src, 2, sg);
if (req->src != req->dst) {
sg_init_table(rctx->dst, 3);
- sg_set_buf(rctx->dst, iv + 12, req->assoclen - 8);
+ sg_set_buf(rctx->dst, iv + GCM_AES_IV_SIZE, req->assoclen - 8);
sg = scatterwalk_ffwd(rctx->dst + 1, req->dst, req->assoclen);
if (sg != rctx->dst + 1)
sg_chain(rctx->dst, 2, sg);
@@ -957,7 +958,7 @@ static int crypto_rfc4106_create(struct crypto_template *tmpl,
err = -EINVAL;
/* Underlying IV size must be 12. */
- if (crypto_aead_alg_ivsize(alg) != 12)
+ if (crypto_aead_alg_ivsize(alg) != GCM_AES_IV_SIZE)
goto out_drop_alg;
/* Not a stream cipher? */
@@ -980,7 +981,7 @@ static int crypto_rfc4106_create(struct crypto_template *tmpl,
inst->alg.base.cra_ctxsize = sizeof(struct crypto_rfc4106_ctx);
- inst->alg.ivsize = 8;
+ inst->alg.ivsize = GCM_RFC4106_IV_SIZE;
inst->alg.chunksize = crypto_aead_alg_chunksize(alg);
inst->alg.maxauthsize = crypto_aead_alg_maxauthsize(alg);
@@ -1134,7 +1135,7 @@ static int crypto_rfc4543_init_tfm(struct crypto_aead *tfm)
tfm,
sizeof(struct crypto_rfc4543_req_ctx) +
ALIGN(crypto_aead_reqsize(aead), crypto_tfm_ctx_alignment()) +
- align + 12);
+ align + GCM_AES_IV_SIZE);
return 0;
@@ -1199,7 +1200,7 @@ static int crypto_rfc4543_create(struct crypto_template *tmpl,
err = -EINVAL;
/* Underlying IV size must be 12. */
- if (crypto_aead_alg_ivsize(alg) != 12)
+ if (crypto_aead_alg_ivsize(alg) != GCM_AES_IV_SIZE)
goto out_drop_alg;
/* Not a stream cipher? */
@@ -1222,7 +1223,7 @@ static int crypto_rfc4543_create(struct crypto_template *tmpl,
inst->alg.base.cra_ctxsize = sizeof(struct crypto_rfc4543_ctx);
- inst->alg.ivsize = 8;
+ inst->alg.ivsize = GCM_RFC4543_IV_SIZE;
inst->alg.chunksize = crypto_aead_alg_chunksize(alg);
inst->alg.maxauthsize = crypto_aead_alg_maxauthsize(alg);
--
2.13.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH 11/11] crypto: aesni - Use GCM IV size constant
2017-08-22 8:08 [PATCH 00/11] crypto: gcm - add GCM IV size constant Corentin Labbe
` (9 preceding siblings ...)
2017-08-22 8:08 ` [PATCH 10/11] crypto: gcm " Corentin Labbe
@ 2017-08-22 8:08 ` Corentin Labbe
2017-09-22 10:14 ` [PATCH 00/11] crypto: gcm - add " Herbert Xu
11 siblings, 0 replies; 13+ messages in thread
From: Corentin Labbe @ 2017-08-22 8:08 UTC (permalink / raw)
To: herbert, davem, tglx, mingo, hpa, x86, horia.geanta, dan.douglass,
thomas.lendacky, gary.hook, harsh, matthias.bgg, leosilva,
pfsmorigo, benh, paulus, mpe
Cc: linux-crypto, linux-kernel, linux-arm-kernel, linux-mediatek,
linuxppc-dev, Corentin Labbe
This patch replace GCM IV size value by their constant name.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
---
arch/x86/crypto/aesni-intel_glue.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/arch/x86/crypto/aesni-intel_glue.c b/arch/x86/crypto/aesni-intel_glue.c
index 5c15d6b57329..80664368bf14 100644
--- a/arch/x86/crypto/aesni-intel_glue.c
+++ b/arch/x86/crypto/aesni-intel_glue.c
@@ -28,6 +28,7 @@
#include <crypto/cryptd.h>
#include <crypto/ctr.h>
#include <crypto/b128ops.h>
+#include <crypto/gcm.h>
#include <crypto/xts.h>
#include <asm/cpu_device_id.h>
#include <asm/fpu/api.h>
@@ -1131,7 +1132,7 @@ static struct aead_alg aesni_aead_algs[] = { {
.setauthsize = common_rfc4106_set_authsize,
.encrypt = helper_rfc4106_encrypt,
.decrypt = helper_rfc4106_decrypt,
- .ivsize = 8,
+ .ivsize = GCM_RFC4106_IV_SIZE,
.maxauthsize = 16,
.base = {
.cra_name = "__gcm-aes-aesni",
@@ -1149,7 +1150,7 @@ static struct aead_alg aesni_aead_algs[] = { {
.setauthsize = rfc4106_set_authsize,
.encrypt = rfc4106_encrypt,
.decrypt = rfc4106_decrypt,
- .ivsize = 8,
+ .ivsize = GCM_RFC4106_IV_SIZE,
.maxauthsize = 16,
.base = {
.cra_name = "rfc4106(gcm(aes))",
@@ -1165,7 +1166,7 @@ static struct aead_alg aesni_aead_algs[] = { {
.setauthsize = generic_gcmaes_set_authsize,
.encrypt = generic_gcmaes_encrypt,
.decrypt = generic_gcmaes_decrypt,
- .ivsize = 12,
+ .ivsize = GCM_AES_IV_SIZE,
.maxauthsize = 16,
.base = {
.cra_name = "gcm(aes)",
--
2.13.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* Re: [PATCH 00/11] crypto: gcm - add GCM IV size constant
2017-08-22 8:08 [PATCH 00/11] crypto: gcm - add GCM IV size constant Corentin Labbe
` (10 preceding siblings ...)
2017-08-22 8:08 ` [PATCH 11/11] crypto: aesni " Corentin Labbe
@ 2017-09-22 10:14 ` Herbert Xu
11 siblings, 0 replies; 13+ messages in thread
From: Herbert Xu @ 2017-09-22 10:14 UTC (permalink / raw)
To: Corentin Labbe
Cc: davem, tglx, mingo, hpa, x86, horia.geanta, dan.douglass,
thomas.lendacky, gary.hook, harsh, matthias.bgg, leosilva,
pfsmorigo, benh, paulus, mpe, linux-crypto, linux-kernel,
linux-arm-kernel, linux-mediatek, linuxppc-dev
On Tue, Aug 22, 2017 at 10:08:07AM +0200, Corentin Labbe wrote:
> Many GCM users use directly GCM IV size instead of using some constant.
>
> This patch add all IV size constant used by GCM and convert drivers for using them..
>
> Corentin Labbe (11):
> crypto: gcm - add GCM iv size constant
> crypto: caam - Use GCM IV size constant
> crypto: ccp - Use GCM IV size constant
> crypto: nx - Use GCM IV size constant
> crypto: atmel - Use GCM IV size constant
> crypto: bcm - Use GCM IV size constant
> crypto: mediatek - Use GCM IV size constant
> crypto: chelsio - Use GCM IV size constant
> crypto: omap - Use GCM IV size constant
> crypto: gcm - Use GCM IV size constant
> crypto: aesni - Use GCM IV size constant
All applied. Thanks.
--
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
^ permalink raw reply [flat|nested] 13+ messages in thread