* [PATCH 0/6] crypto: talitos - various fixes
@ 2017-09-21 7:19 Christophe Leroy
2017-09-21 7:19 ` [PATCH 1/6] crypto: talitos - Don't provide setkey for non hmac hashing algs Christophe Leroy
` (5 more replies)
0 siblings, 6 replies; 12+ messages in thread
From: Christophe Leroy @ 2017-09-21 7:19 UTC (permalink / raw)
To: linux-crypto
This serie provide various fixes on the talitos driver.
Christophe Leroy (6):
crypto: talitos - Don't provide setkey for non hmac hashing algs.
crypto: talitos - fix hashing
crypto: talitos - fix sha224
crypto: talitos - fix AEAD test failures
crypto: talitos - use kzalloc instead of kmalloc
crypto: talitos - fix memory corruption on SEC2
drivers/crypto/talitos.c | 81 +++++++++++++++++++++---------------------------
drivers/crypto/talitos.h | 2 --
2 files changed, 36 insertions(+), 47 deletions(-)
--
2.13.3
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 1/6] crypto: talitos - Don't provide setkey for non hmac hashing algs.
2017-09-21 7:19 [PATCH 0/6] crypto: talitos - various fixes Christophe Leroy
@ 2017-09-21 7:19 ` Christophe Leroy
2017-09-21 7:19 ` [PATCH 2/6] crypto: talitos - fix hashing Christophe Leroy
` (4 subsequent siblings)
5 siblings, 0 replies; 12+ messages in thread
From: Christophe Leroy @ 2017-09-21 7:19 UTC (permalink / raw)
To: linux-crypto
Today, md5sum fails with error -ENOKEY because a setkey
function is set for non hmac hashing algs, see strace output below:
mmap(NULL, 378880, PROT_READ, MAP_SHARED, 6, 0) = 0x77f50000
accept(3, 0, NULL) = 7
vmsplice(5, [{"bin/\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 378880}], 1, SPLICE_F_MORE|SPLICE_F_GIFT) = 262144
splice(4, NULL, 7, NULL, 262144, SPLICE_F_MORE) = -1 ENOKEY (Required key not available)
write(2, "Generation of hash for file kcap"..., 50) = 50
munmap(0x77f50000, 378880) = 0
This patch ensures that setkey() function is set only
for hmac hashing.
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
---
drivers/crypto/talitos.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c
index 79791c690858..5cc160078286 100644
--- a/drivers/crypto/talitos.c
+++ b/drivers/crypto/talitos.c
@@ -3057,7 +3057,8 @@ static struct talitos_crypto_alg *talitos_alg_alloc(struct device *dev,
t_alg->algt.alg.hash.final = ahash_final;
t_alg->algt.alg.hash.finup = ahash_finup;
t_alg->algt.alg.hash.digest = ahash_digest;
- t_alg->algt.alg.hash.setkey = ahash_setkey;
+ if (!strncmp(alg->cra_name, "hmac", 4))
+ t_alg->algt.alg.hash.setkey = ahash_setkey;
t_alg->algt.alg.hash.import = ahash_import;
t_alg->algt.alg.hash.export = ahash_export;
--
2.13.3
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 2/6] crypto: talitos - fix hashing
2017-09-21 7:19 [PATCH 0/6] crypto: talitos - various fixes Christophe Leroy
2017-09-21 7:19 ` [PATCH 1/6] crypto: talitos - Don't provide setkey for non hmac hashing algs Christophe Leroy
@ 2017-09-21 7:19 ` Christophe Leroy
2017-09-21 7:19 ` [PATCH 3/6] crypto: talitos - fix sha224 Christophe Leroy
` (3 subsequent siblings)
5 siblings, 0 replies; 12+ messages in thread
From: Christophe Leroy @ 2017-09-21 7:19 UTC (permalink / raw)
To: linux-crypto
md5sum on some files gives wrong result
Exemple:
With the md5sum from libkcapi:
c15115c05bad51113f81bdaee735dd09 test
With the original md5sum:
bbdf41d80ba7e8b2b7be3a0772be76cb test
This patch fixes this issue
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
---
drivers/crypto/talitos.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c
index 5cc160078286..49f1561fa694 100644
--- a/drivers/crypto/talitos.c
+++ b/drivers/crypto/talitos.c
@@ -1769,7 +1769,7 @@ static int common_nonsnoop_hash(struct talitos_edesc *edesc,
sg_count = edesc->src_nents ?: 1;
if (is_sec1 && sg_count > 1)
- sg_copy_to_buffer(areq->src, sg_count, edesc->buf, length);
+ sg_copy_to_buffer(req_ctx->psrc, sg_count, edesc->buf, length);
else
sg_count = dma_map_sg(dev, req_ctx->psrc, sg_count,
DMA_TO_DEVICE);
--
2.13.3
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 3/6] crypto: talitos - fix sha224
2017-09-21 7:19 [PATCH 0/6] crypto: talitos - various fixes Christophe Leroy
2017-09-21 7:19 ` [PATCH 1/6] crypto: talitos - Don't provide setkey for non hmac hashing algs Christophe Leroy
2017-09-21 7:19 ` [PATCH 2/6] crypto: talitos - fix hashing Christophe Leroy
@ 2017-09-21 7:19 ` Christophe Leroy
2017-09-21 7:19 ` [PATCH 4/6] crypto: talitos - fix AEAD test failures Christophe Leroy
` (2 subsequent siblings)
5 siblings, 0 replies; 12+ messages in thread
From: Christophe Leroy @ 2017-09-21 7:19 UTC (permalink / raw)
To: linux-crypto
Kernel crypto tests report the following error at startup
[ 2.752626] alg: hash: Test 4 failed for sha224-talitos
[ 2.757907] 00000000: 30 e2 86 e2 e7 8a dd 0d d7 eb 9f d5 83 fe f1 b0
00000010: 2d 5a 6c a5 f9 55 ea fd 0e 72 05 22
This patch fixes it
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
---
drivers/crypto/talitos.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c
index 49f1561fa694..dff88838dce7 100644
--- a/drivers/crypto/talitos.c
+++ b/drivers/crypto/talitos.c
@@ -1756,9 +1756,9 @@ static int common_nonsnoop_hash(struct talitos_edesc *edesc,
req_ctx->swinit = 0;
} else {
desc->ptr[1] = zero_entry;
- /* Indicate next op is not the first. */
- req_ctx->first = 0;
}
+ /* Indicate next op is not the first. */
+ req_ctx->first = 0;
/* HMAC key */
if (ctx->keylen)
--
2.13.3
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 4/6] crypto: talitos - fix AEAD test failures
2017-09-21 7:19 [PATCH 0/6] crypto: talitos - various fixes Christophe Leroy
` (2 preceding siblings ...)
2017-09-21 7:19 ` [PATCH 3/6] crypto: talitos - fix sha224 Christophe Leroy
@ 2017-09-21 7:19 ` Christophe Leroy
2017-09-21 7:19 ` [PATCH 5/6] crypto: talitos - use kzalloc instead of kmalloc Christophe Leroy
2017-09-21 7:19 ` [PATCH 6/6] crypto: talitos - fix memory corruption on SEC2 Christophe Leroy
5 siblings, 0 replies; 12+ messages in thread
From: Christophe Leroy @ 2017-09-21 7:19 UTC (permalink / raw)
To: linux-crypto
AEAD tests fail when destination SG list has more than 1 element.
[ 2.058752] alg: aead: Test 1 failed on encryption for authenc-hmac-sha1-cbc-aes-talitos
[ 2.066965] 00000000: 53 69 6e 67 6c 65 20 62 6c 6f 63 6b 20 6d 73 67
00000010: c0 43 ff 74 c0 43 ff e0 de 83 d1 20 de 84 8e 54
00000020: de 83 d7 c4
[ 2.082138] alg: aead: Test 1 failed on encryption for authenc-hmac-sha1-cbc-aes-talitos
[ 2.090435] 00000000: 53 69 6e 67 6c 65 20 62 6c 6f 63 6b 20 6d 73 67
00000010: de 84 ea 58 c0 93 1a 24 de 84 e8 59 de 84 f1 20
00000020: 00 00 00 00
[ 2.105721] alg: aead: Test 1 failed on encryption for authenc-hmac-sha1-cbc-3des-talitos
[ 2.114259] 00000000: 6f 54 20 6f 61 4d 79 6e 53 20 63 65 65 72 73 74
00000010: 54 20 6f 6f 4d 20 6e 61 20 79 65 53 72 63 74 65
00000020: 20 73 6f 54 20 6f 61 4d 79 6e 53 20 63 65 65 72
00000030: 73 74 54 20 6f 6f 4d 20 6e 61 20 79 65 53 72 63
00000040: 74 65 20 73 6f 54 20 6f 61 4d 79 6e 53 20 63 65
00000050: 65 72 73 74 54 20 6f 6f 4d 20 6e 61 20 79 65 53
00000060: 72 63 74 65 20 73 6f 54 20 6f 61 4d 79 6e 53 20
00000070: 63 65 65 72 73 74 54 20 6f 6f 4d 20 6e 61 0a 79
00000080: c0 50 f1 ac c0 50 f3 38 c0 50 f3 94 c0 50 f5 30
00000090: c0 99 74 3c
[ 2.166410] alg: aead: Test 1 failed on encryption for authenc-hmac-sha1-cbc-3des-talitos
[ 2.174794] 00000000: 6f 54 20 6f 61 4d 79 6e 53 20 63 65 65 72 73 74
00000010: 54 20 6f 6f 4d 20 6e 61 20 79 65 53 72 63 74 65
00000020: 20 73 6f 54 20 6f 61 4d 79 6e 53 20 63 65 65 72
00000030: 73 74 54 20 6f 6f 4d 20 6e 61 20 79 65 53 72 63
00000040: 74 65 20 73 6f 54 20 6f 61 4d 79 6e 53 20 63 65
00000050: 65 72 73 74 54 20 6f 6f 4d 20 6e 61 20 79 65 53
00000060: 72 63 74 65 20 73 6f 54 20 6f 61 4d 79 6e 53 20
00000070: 63 65 65 72 73 74 54 20 6f 6f 4d 20 6e 61 0a 79
00000080: c0 50 f1 ac c0 50 f3 38 c0 50 f3 94 c0 50 f5 30
00000090: c0 99 74 3c
[ 2.226486] alg: No test for authenc(hmac(sha224),cbc(aes)) (authenc-hmac-sha224-cbc-aes-talitos)
[ 2.236459] alg: No test for authenc(hmac(sha224),cbc(aes)) (authenc-hmac-sha224-cbc-aes-talitos)
[ 2.247196] alg: aead: Test 1 failed on encryption for authenc-hmac-sha224-cbc-3des-talitos
[ 2.255555] 00000000: 6f 54 20 6f 61 4d 79 6e 53 20 63 65 65 72 73 74
00000010: 54 20 6f 6f 4d 20 6e 61 20 79 65 53 72 63 74 65
00000020: 20 73 6f 54 20 6f 61 4d 79 6e 53 20 63 65 65 72
00000030: 73 74 54 20 6f 6f 4d 20 6e 61 20 79 65 53 72 63
00000040: 74 65 20 73 6f 54 20 6f 61 4d 79 6e 53 20 63 65
00000050: 65 72 73 74 54 20 6f 6f 4d 20 6e 61 20 79 65 53
00000060: 72 63 74 65 20 73 6f 54 20 6f 61 4d 79 6e 53 20
00000070: 63 65 65 72 73 74 54 20 6f 6f 4d 20 6e 61 0a 79
00000080: c0 50 f1 ac c0 50 f3 38 c0 50 f3 94 c0 50 f5 30
00000090: c0 99 74 3c c0 96 e5 b8
[ 2.309004] alg: aead: Test 1 failed on encryption for authenc-hmac-sha224-cbc-3des-talitos
[ 2.317562] 00000000: 6f 54 20 6f 61 4d 79 6e 53 20 63 65 65 72 73 74
00000010: 54 20 6f 6f 4d 20 6e 61 20 79 65 53 72 63 74 65
00000020: 20 73 6f 54 20 6f 61 4d 79 6e 53 20 63 65 65 72
00000030: 73 74 54 20 6f 6f 4d 20 6e 61 20 79 65 53 72 63
00000040: 74 65 20 73 6f 54 20 6f 61 4d 79 6e 53 20 63 65
00000050: 65 72 73 74 54 20 6f 6f 4d 20 6e 61 20 79 65 53
00000060: 72 63 74 65 20 73 6f 54 20 6f 61 4d 79 6e 53 20
00000070: 63 65 65 72 73 74 54 20 6f 6f 4d 20 6e 61 0a 79
00000080: c0 50 f1 ac c0 50 f3 38 c0 50 f3 94 c0 50 f5 30
00000090: c0 99 74 3c c0 96 e5 b8
[ 2.370710] alg: aead: Test 1 failed on encryption for authenc-hmac-sha256-cbc-aes-talitos
[ 2.379177] 00000000: 53 69 6e 67 6c 65 20 62 6c 6f 63 6b 20 6d 73 67
00000010: 54 20 6f 6f 4d 20 6e 61 20 79 65 53 72 63 74 65
00000020: 20 73 6f 54 20 6f 61 4d 79 6e 53 20 63 65 65 72
[ 2.397863] alg: aead: Test 1 failed on encryption for authenc-hmac-sha256-cbc-aes-talitos
[ 2.406134] 00000000: 53 69 6e 67 6c 65 20 62 6c 6f 63 6b 20 6d 73 67
00000010: 54 20 6f 6f 4d 20 6e 61 20 79 65 53 72 63 74 65
00000020: 20 73 6f 54 20 6f 61 4d 79 6e 53 20 63 65 65 72
[ 2.424789] alg: aead: Test 1 failed on encryption for authenc-hmac-sha256-cbc-3des-talitos
[ 2.433491] 00000000: 6f 54 20 6f 61 4d 79 6e 53 20 63 65 65 72 73 74
00000010: 54 20 6f 6f 4d 20 6e 61 20 79 65 53 72 63 74 65
00000020: 20 73 6f 54 20 6f 61 4d 79 6e 53 20 63 65 65 72
00000030: 73 74 54 20 6f 6f 4d 20 6e 61 20 79 65 53 72 63
00000040: 74 65 20 73 6f 54 20 6f 61 4d 79 6e 53 20 63 65
00000050: 65 72 73 74 54 20 6f 6f 4d 20 6e 61 20 79 65 53
00000060: 72 63 74 65 20 73 6f 54 20 6f 61 4d 79 6e 53 20
00000070: 63 65 65 72 73 74 54 20 6f 6f 4d 20 6e 61 0a 79
00000080: c0 50 f1 ac c0 50 f3 38 c0 50 f3 94 c0 50 f5 30
00000090: c0 99 74 3c c0 96 e5 b8 c0 96 e9 20 c0 00 3d dc
[ 2.488832] alg: aead: Test 1 failed on encryption for authenc-hmac-sha256-cbc-3des-talitos
[ 2.497387] 00000000: 6f 54 20 6f 61 4d 79 6e 53 20 63 65 65 72 73 74
00000010: 54 20 6f 6f 4d 20 6e 61 20 79 65 53 72 63 74 65
00000020: 20 73 6f 54 20 6f 61 4d 79 6e 53 20 63 65 65 72
00000030: 73 74 54 20 6f 6f 4d 20 6e 61 20 79 65 53 72 63
00000040: 74 65 20 73 6f 54 20 6f 61 4d 79 6e 53 20 63 65
00000050: 65 72 73 74 54 20 6f 6f 4d 20 6e 61 20 79 65 53
00000060: 72 63 74 65 20 73 6f 54 20 6f 61 4d 79 6e 53 20
00000070: 63 65 65 72 73 74 54 20 6f 6f 4d 20 6e 61 0a 79
00000080: c0 50 f1 ac c0 50 f3 38 c0 50 f3 94 c0 50 f5 30
00000090: c0 99 74 3c c0 96 e5 b8 c0 96 e9 20 c0 00 3d dc
This patch fixes that.
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
---
drivers/crypto/talitos.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c
index dff88838dce7..cd8a37e60259 100644
--- a/drivers/crypto/talitos.c
+++ b/drivers/crypto/talitos.c
@@ -1232,12 +1232,11 @@ static int ipsec_esp(struct talitos_edesc *edesc, struct aead_request *areq,
sg_link_tbl_len += authsize;
}
- sg_count = talitos_sg_map(dev, areq->src, cryptlen, edesc,
- &desc->ptr[4], sg_count, areq->assoclen,
- tbl_off);
+ ret = talitos_sg_map(dev, areq->src, cryptlen, edesc, &desc->ptr[4],
+ sg_count, areq->assoclen, tbl_off);
- if (sg_count > 1) {
- tbl_off += sg_count;
+ if (ret > 1) {
+ tbl_off += ret;
sync_needed = true;
}
--
2.13.3
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 5/6] crypto: talitos - use kzalloc instead of kmalloc
2017-09-21 7:19 [PATCH 0/6] crypto: talitos - various fixes Christophe Leroy
` (3 preceding siblings ...)
2017-09-21 7:19 ` [PATCH 4/6] crypto: talitos - fix AEAD test failures Christophe Leroy
@ 2017-09-21 7:19 ` Christophe Leroy
2017-10-05 8:24 ` Christophe LEROY
2017-09-21 7:19 ` [PATCH 6/6] crypto: talitos - fix memory corruption on SEC2 Christophe Leroy
5 siblings, 1 reply; 12+ messages in thread
From: Christophe Leroy @ 2017-09-21 7:19 UTC (permalink / raw)
To: linux-crypto
Use kzalloc() to zeroize the extended descriptor at allocation and
further zeorising
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
---
drivers/crypto/talitos.c | 23 +----------------------
drivers/crypto/talitos.h | 2 --
2 files changed, 1 insertion(+), 24 deletions(-)
diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c
index cd8a37e60259..a5b608b54c74 100644
--- a/drivers/crypto/talitos.c
+++ b/drivers/crypto/talitos.c
@@ -75,7 +75,6 @@ static void to_talitos_ptr_len(struct talitos_ptr *ptr, unsigned int len,
bool is_sec1)
{
if (is_sec1) {
- ptr->res = 0;
ptr->len1 = cpu_to_be16(len);
} else {
ptr->len = cpu_to_be16(len);
@@ -118,7 +117,6 @@ static void map_single_talitos_ptr(struct device *dev,
to_talitos_ptr_len(ptr, len, is_sec1);
to_talitos_ptr(ptr, dma_addr, is_sec1);
- to_talitos_ptr_ext_set(ptr, 0, is_sec1);
}
/*
@@ -287,7 +285,6 @@ int talitos_submit(struct device *dev, int ch, struct talitos_desc *desc,
/* map descriptor and save caller data */
if (is_sec1) {
desc->hdr1 = desc->hdr;
- desc->next_desc = 0;
request->dma_desc = dma_map_single(dev, &desc->hdr1,
TALITOS_DESC_SIZE,
DMA_BIDIRECTIONAL);
@@ -1099,7 +1096,6 @@ static int sg_to_link_tbl_offset(struct scatterlist *sg, int sg_count,
to_talitos_ptr(link_tbl_ptr + count,
sg_dma_address(sg) + offset, 0);
to_talitos_ptr_len(link_tbl_ptr + count, len, 0);
- to_talitos_ptr_ext_set(link_tbl_ptr + count, 0, 0);
count++;
cryptlen -= len;
offset = 0;
@@ -1125,7 +1121,6 @@ int talitos_sg_map(struct device *dev, struct scatterlist *src,
bool is_sec1 = has_ftr_sec1(priv);
to_talitos_ptr_len(ptr, len, is_sec1);
- to_talitos_ptr_ext_set(ptr, 0, is_sec1);
if (sg_count == 1) {
to_talitos_ptr(ptr, sg_dma_address(src) + offset, is_sec1);
@@ -1197,11 +1192,9 @@ static int ipsec_esp(struct talitos_edesc *edesc, struct aead_request *areq,
if (desc->hdr & DESC_HDR_TYPE_IPSEC_ESP) {
to_talitos_ptr(&desc->ptr[2], edesc->iv_dma, is_sec1);
to_talitos_ptr_len(&desc->ptr[2], ivsize, is_sec1);
- to_talitos_ptr_ext_set(&desc->ptr[2], 0, is_sec1);
} else {
to_talitos_ptr(&desc->ptr[3], edesc->iv_dma, is_sec1);
to_talitos_ptr_len(&desc->ptr[3], ivsize, is_sec1);
- to_talitos_ptr_ext_set(&desc->ptr[3], 0, is_sec1);
}
/* cipher key */
@@ -1221,7 +1214,6 @@ static int ipsec_esp(struct talitos_edesc *edesc, struct aead_request *areq,
* typically 12 for ipsec
*/
to_talitos_ptr_len(&desc->ptr[4], cryptlen, is_sec1);
- to_talitos_ptr_ext_set(&desc->ptr[4], 0, is_sec1);
sg_link_tbl_len = cryptlen;
@@ -1275,8 +1267,6 @@ static int ipsec_esp(struct talitos_edesc *edesc, struct aead_request *areq,
to_talitos_ptr(tbl_ptr, edesc->dma_link_tbl + offset,
is_sec1);
}
- } else {
- edesc->icv_ool = false;
}
/* ICV data */
@@ -1386,7 +1376,7 @@ static struct talitos_edesc *talitos_edesc_alloc(struct device *dev,
alloc_len += icv_stashing ? authsize : 0;
}
- edesc = kmalloc(alloc_len, GFP_DMA | flags);
+ edesc = kzalloc(alloc_len, GFP_DMA | flags);
if (!edesc) {
dev_err(dev, "could not allocate edescriptor\n");
err = ERR_PTR(-ENOMEM);
@@ -1467,7 +1457,6 @@ static int aead_decrypt(struct aead_request *req)
DESC_HDR_MODE1_MDEU_CICV;
/* reset integrity check result bits */
- edesc->desc.hdr_lo = 0;
return ipsec_esp(edesc, req, ipsec_esp_decrypt_hwauth_done);
}
@@ -1554,12 +1543,10 @@ static int common_nonsnoop(struct talitos_edesc *edesc,
bool is_sec1 = has_ftr_sec1(priv);
/* first DWORD empty */
- desc->ptr[0] = zero_entry;
/* cipher iv */
to_talitos_ptr(&desc->ptr[1], edesc->iv_dma, is_sec1);
to_talitos_ptr_len(&desc->ptr[1], ivsize, is_sec1);
- to_talitos_ptr_ext_set(&desc->ptr[1], 0, is_sec1);
/* cipher key */
map_single_talitos_ptr(dev, &desc->ptr[2], ctx->keylen,
@@ -1598,7 +1585,6 @@ static int common_nonsnoop(struct talitos_edesc *edesc,
DMA_FROM_DEVICE);
/* last DWORD empty */
- desc->ptr[6] = zero_entry;
if (sync_needed)
dma_sync_single_for_device(dev, edesc->dma_link_tbl,
@@ -1744,7 +1730,6 @@ static int common_nonsnoop_hash(struct talitos_edesc *edesc,
int sg_count;
/* first DWORD empty */
- desc->ptr[0] = zero_entry;
/* hash context in */
if (!req_ctx->first || req_ctx->swinit) {
@@ -1753,8 +1738,6 @@ static int common_nonsnoop_hash(struct talitos_edesc *edesc,
(char *)req_ctx->hw_context,
DMA_TO_DEVICE);
req_ctx->swinit = 0;
- } else {
- desc->ptr[1] = zero_entry;
}
/* Indicate next op is not the first. */
req_ctx->first = 0;
@@ -1763,8 +1746,6 @@ static int common_nonsnoop_hash(struct talitos_edesc *edesc,
if (ctx->keylen)
map_single_talitos_ptr(dev, &desc->ptr[2], ctx->keylen,
(char *)&ctx->key, DMA_TO_DEVICE);
- else
- desc->ptr[2] = zero_entry;
sg_count = edesc->src_nents ?: 1;
if (is_sec1 && sg_count > 1)
@@ -1781,7 +1762,6 @@ static int common_nonsnoop_hash(struct talitos_edesc *edesc,
sync_needed = true;
/* fifth DWORD empty */
- desc->ptr[4] = zero_entry;
/* hash/HMAC out -or- hash context out */
if (req_ctx->last)
@@ -1794,7 +1774,6 @@ static int common_nonsnoop_hash(struct talitos_edesc *edesc,
req_ctx->hw_context, DMA_FROM_DEVICE);
/* last DWORD empty */
- desc->ptr[6] = zero_entry;
if (is_sec1 && from_talitos_ptr_len(&desc->ptr[3], true) == 0)
talitos_handle_buggy_hash(ctx, edesc, &desc->ptr[3]);
diff --git a/drivers/crypto/talitos.h b/drivers/crypto/talitos.h
index 8dd8f40e2771..6112ff1fc334 100644
--- a/drivers/crypto/talitos.h
+++ b/drivers/crypto/talitos.h
@@ -52,8 +52,6 @@ struct talitos_ptr {
__be32 ptr; /* address */
};
-static const struct talitos_ptr zero_entry;
-
/* descriptor */
struct talitos_desc {
__be32 hdr; /* header high bits */
--
2.13.3
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 6/6] crypto: talitos - fix memory corruption on SEC2
2017-09-21 7:19 [PATCH 0/6] crypto: talitos - various fixes Christophe Leroy
` (4 preceding siblings ...)
2017-09-21 7:19 ` [PATCH 5/6] crypto: talitos - use kzalloc instead of kmalloc Christophe Leroy
@ 2017-09-21 7:19 ` Christophe Leroy
5 siblings, 0 replies; 12+ messages in thread
From: Christophe Leroy @ 2017-09-21 7:19 UTC (permalink / raw)
To: linux-crypto
On SEC2, when using the old descriptors type (hmac snoop no afeu)
for doing IPsec, the CICV out pointeur points out of the allocated
memory.
[ 2.502554] =============================================================================
[ 2.510740] BUG dma-kmalloc-256 (Not tainted): Redzone overwritten
[ 2.516907] -----------------------------------------------------------------------------
[ 2.516907]
[ 2.526535] Disabling lock debugging due to kernel taint
[ 2.531845] INFO: 0xde858108-0xde85810b. First byte 0xf8 instead of 0xcc
[ 2.538549] INFO: Allocated in 0x806181a9 age=0 cpu=0 pid=58
[ 2.544229] __kmalloc+0x374/0x564
[ 2.547649] talitos_edesc_alloc+0x17c/0x48c
[ 2.551929] aead_edesc_alloc+0x80/0x154
[ 2.555863] aead_encrypt+0x30/0xe0
[ 2.559368] __test_aead+0x5a0/0x1f3c
[ 2.563042] test_aead+0x2c/0x110
[ 2.566371] alg_test_aead+0x5c/0xf4
[ 2.569958] alg_test+0x1dc/0x5a0
[ 2.573305] cryptomgr_test+0x50/0x70
[ 2.576984] kthread+0xd8/0x134
[ 2.580155] ret_from_kernel_thread+0x5c/0x64
[ 2.584534] INFO: Freed in ipsec_esp_encrypt_done+0x130/0x240 age=6 cpu=0 pid=0
[ 2.591839] ipsec_esp_encrypt_done+0x130/0x240
[ 2.596395] flush_channel+0x1dc/0x488
[ 2.600161] talitos2_done_4ch+0x30/0x200
[ 2.604185] tasklet_action+0xa0/0x13c
[ 2.607948] __do_softirq+0x148/0x6cc
[ 2.611623] irq_exit+0xc0/0x124
[ 2.614869] call_do_irq+0x24/0x3c
[ 2.618292] do_IRQ+0x78/0x108
[ 2.621369] ret_from_except+0x0/0x14
[ 2.625055] finish_task_switch+0x58/0x350
[ 2.629165] schedule+0x80/0x134
[ 2.632409] schedule_preempt_disabled+0x38/0xc8
[ 2.637042] cpu_startup_entry+0xe4/0x190
[ 2.641074] start_kernel+0x3f4/0x408
[ 2.644741] 0x3438
[ 2.646857] INFO: Slab 0xdffbdb00 objects=9 used=1 fp=0xde8581c0 flags=0x0080
[ 2.653978] INFO: Object 0xde858008 @offset=8 fp=0xca4395df
[ 2.653978]
[ 2.661032] Redzone de858000: cc cc cc cc cc cc cc cc ........
[ 2.669029] Object de858008: 00 00 00 02 00 00 00 02 00 6b 6b 6b 1e 83 ea 28 .........kkk...(
[ 2.677628] Object de858018: 00 00 00 70 1e 85 80 64 ff 73 1d 21 6b 6b 6b 6b ...p...d.s.!kkkk
[ 2.686228] Object de858028: 00 20 00 00 1e 84 17 24 00 10 00 00 1e 85 70 00 . .....$......p.
[ 2.694829] Object de858038: 00 18 00 00 1e 84 17 44 00 08 00 00 1e 83 ea 28 .......D.......(
[ 2.703430] Object de858048: 00 80 00 00 1e 84 f0 00 00 80 00 00 1e 85 70 10 ..............p.
[ 2.712030] Object de858058: 00 20 6b 00 1e 85 80 f4 6b 6b 6b 6b 00 80 02 00 . k.....kkkk....
[ 2.720629] Object de858068: 1e 84 f0 00 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b ....kkkkkkkkkkkk
[ 2.729230] Object de858078: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
[ 2.737830] Object de858088: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
[ 2.746429] Object de858098: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
[ 2.755029] Object de8580a8: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
[ 2.763628] Object de8580b8: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
[ 2.772229] Object de8580c8: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
[ 2.780829] Object de8580d8: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
[ 2.789430] Object de8580e8: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 73 b0 ea 9f kkkkkkkkkkkks...
[ 2.798030] Object de8580f8: e8 18 80 d6 56 38 44 c0 db e3 4f 71 f7 ce d1 d3 ....V8D...Oq....
[ 2.806629] Redzone de858108: f8 bd 3e 4f ..>O
[ 2.814279] Padding de8581b0: 5a 5a 5a 5a 5a 5a 5a 5a ZZZZZZZZ
[ 2.822283] CPU: 0 PID: 0 Comm: swapper Tainted: G B 4.9.50-g995be12679 #179
[ 2.831819] Call Trace:
[ 2.834301] [dffefd20] [c01aa9a8] check_bytes_and_report+0x100/0x194 (unreliable)
[ 2.841801] [dffefd50] [c01aac3c] check_object+0x200/0x530
[ 2.847306] [dffefd80] [c01ae584] free_debug_processing+0x290/0x690
[ 2.853585] [dffefde0] [c01aec8c] __slab_free+0x308/0x628
[ 2.859000] [dffefe80] [c05057f4] ipsec_esp_encrypt_done+0x130/0x240
[ 2.865378] [dffefeb0] [c05002c4] flush_channel+0x1dc/0x488
[ 2.870968] [dffeff10] [c05007a8] talitos2_done_4ch+0x30/0x200
[ 2.876814] [dffeff30] [c002fe38] tasklet_action+0xa0/0x13c
[ 2.882399] [dffeff60] [c002f118] __do_softirq+0x148/0x6cc
[ 2.887896] [dffeffd0] [c002f954] irq_exit+0xc0/0x124
[ 2.892968] [dffefff0] [c0013adc] call_do_irq+0x24/0x3c
[ 2.898213] [c0d4be00] [c000757c] do_IRQ+0x78/0x108
[ 2.903113] [c0d4be30] [c0015c08] ret_from_except+0x0/0x14
[ 2.908634] --- interrupt: 501 at finish_task_switch+0x70/0x350
[ 2.908634] LR = finish_task_switch+0x58/0x350
[ 2.919327] [c0d4bf20] [c085e1d4] schedule+0x80/0x134
[ 2.924398] [c0d4bf50] [c085e2c0] schedule_preempt_disabled+0x38/0xc8
[ 2.930853] [c0d4bf60] [c007f064] cpu_startup_entry+0xe4/0x190
[ 2.936707] [c0d4bfb0] [c096c434] start_kernel+0x3f4/0x408
[ 2.942198] [c0d4bff0] [00003438] 0x3438
[ 2.946137] FIX dma-kmalloc-256: Restoring 0xde858108-0xde85810b=0xcc
[ 2.946137]
[ 2.954158] FIX dma-kmalloc-256: Object at 0xde858008 not freed
This patch reworks the handling of the CICV out in order
to properly handle all cases.
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
---
drivers/crypto/talitos.c | 40 ++++++++++++++++++++++++++--------------
1 file changed, 26 insertions(+), 14 deletions(-)
diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c
index a5b608b54c74..e7e31f8fd3d1 100644
--- a/drivers/crypto/talitos.c
+++ b/drivers/crypto/talitos.c
@@ -1239,14 +1239,15 @@ static int ipsec_esp(struct talitos_edesc *edesc, struct aead_request *areq,
dma_map_sg(dev, areq->dst, sg_count, DMA_FROM_DEVICE);
}
- sg_count = talitos_sg_map(dev, areq->dst, cryptlen, edesc,
- &desc->ptr[5], sg_count, areq->assoclen,
- tbl_off);
+ ret = talitos_sg_map(dev, areq->dst, cryptlen, edesc, &desc->ptr[5],
+ sg_count, areq->assoclen, tbl_off);
if (desc->hdr & DESC_HDR_TYPE_IPSEC_ESP)
to_talitos_ptr_ext_or(&desc->ptr[5], authsize, is_sec1);
- if (sg_count > 1) {
+ /* ICV data */
+ if (ret > 1) {
+ tbl_off += ret;
edesc->icv_ool = true;
sync_needed = true;
@@ -1256,9 +1257,7 @@ static int ipsec_esp(struct talitos_edesc *edesc, struct aead_request *areq,
sizeof(struct talitos_ptr) + authsize;
/* Add an entry to the link table for ICV data */
- tbl_ptr += sg_count - 1;
- to_talitos_ptr_ext_set(tbl_ptr, 0, is_sec1);
- tbl_ptr++;
+ to_talitos_ptr_ext_set(tbl_ptr - 1, 0, is_sec1);
to_talitos_ptr_ext_set(tbl_ptr, DESC_PTR_LNKTBL_RETURN,
is_sec1);
to_talitos_ptr_len(tbl_ptr, authsize, is_sec1);
@@ -1266,14 +1265,27 @@ static int ipsec_esp(struct talitos_edesc *edesc, struct aead_request *areq,
/* icv data follows link tables */
to_talitos_ptr(tbl_ptr, edesc->dma_link_tbl + offset,
is_sec1);
- }
- }
+ } else {
+ dma_addr_t addr = edesc->dma_link_tbl;
- /* ICV data */
- if (!(desc->hdr & DESC_HDR_TYPE_IPSEC_ESP)) {
- to_talitos_ptr_len(&desc->ptr[6], authsize, is_sec1);
- to_talitos_ptr(&desc->ptr[6], edesc->dma_link_tbl +
- areq->assoclen + cryptlen, is_sec1);
+ if (is_sec1)
+ addr += areq->assoclen + cryptlen;
+ else
+ addr += sizeof(struct talitos_ptr) * tbl_off;
+
+ to_talitos_ptr(&desc->ptr[6], addr, is_sec1);
+ to_talitos_ptr_len(&desc->ptr[6], authsize, is_sec1);
+ }
+ } else if (!(desc->hdr & DESC_HDR_TYPE_IPSEC_ESP)) {
+ ret = talitos_sg_map(dev, areq->dst, authsize, edesc,
+ &desc->ptr[6], sg_count, areq->assoclen +
+ cryptlen,
+ tbl_off);
+ if (ret > 1) {
+ tbl_off += ret;
+ edesc->icv_ool = true;
+ sync_needed = true;
+ }
}
/* iv out */
--
2.13.3
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 5/6] crypto: talitos - use kzalloc instead of kmalloc
2017-09-21 7:19 ` [PATCH 5/6] crypto: talitos - use kzalloc instead of kmalloc Christophe Leroy
@ 2017-10-05 8:24 ` Christophe LEROY
0 siblings, 0 replies; 12+ messages in thread
From: Christophe LEROY @ 2017-10-05 8:24 UTC (permalink / raw)
To: linux-crypto, Herbert Xu
Le 21/09/2017 à 09:19, Christophe Leroy a écrit :
> Use kzalloc() to zeroize the extended descriptor at allocation and
> further zeorising
This patch significantly degrades performances.
I will submit a new serie soon.
Christophe
>
> Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
> ---
> drivers/crypto/talitos.c | 23 +----------------------
> drivers/crypto/talitos.h | 2 --
> 2 files changed, 1 insertion(+), 24 deletions(-)
>
> diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c
> index cd8a37e60259..a5b608b54c74 100644
> --- a/drivers/crypto/talitos.c
> +++ b/drivers/crypto/talitos.c
> @@ -75,7 +75,6 @@ static void to_talitos_ptr_len(struct talitos_ptr *ptr, unsigned int len,
> bool is_sec1)
> {
> if (is_sec1) {
> - ptr->res = 0;
> ptr->len1 = cpu_to_be16(len);
> } else {
> ptr->len = cpu_to_be16(len);
> @@ -118,7 +117,6 @@ static void map_single_talitos_ptr(struct device *dev,
>
> to_talitos_ptr_len(ptr, len, is_sec1);
> to_talitos_ptr(ptr, dma_addr, is_sec1);
> - to_talitos_ptr_ext_set(ptr, 0, is_sec1);
> }
>
> /*
> @@ -287,7 +285,6 @@ int talitos_submit(struct device *dev, int ch, struct talitos_desc *desc,
> /* map descriptor and save caller data */
> if (is_sec1) {
> desc->hdr1 = desc->hdr;
> - desc->next_desc = 0;
> request->dma_desc = dma_map_single(dev, &desc->hdr1,
> TALITOS_DESC_SIZE,
> DMA_BIDIRECTIONAL);
> @@ -1099,7 +1096,6 @@ static int sg_to_link_tbl_offset(struct scatterlist *sg, int sg_count,
> to_talitos_ptr(link_tbl_ptr + count,
> sg_dma_address(sg) + offset, 0);
> to_talitos_ptr_len(link_tbl_ptr + count, len, 0);
> - to_talitos_ptr_ext_set(link_tbl_ptr + count, 0, 0);
> count++;
> cryptlen -= len;
> offset = 0;
> @@ -1125,7 +1121,6 @@ int talitos_sg_map(struct device *dev, struct scatterlist *src,
> bool is_sec1 = has_ftr_sec1(priv);
>
> to_talitos_ptr_len(ptr, len, is_sec1);
> - to_talitos_ptr_ext_set(ptr, 0, is_sec1);
>
> if (sg_count == 1) {
> to_talitos_ptr(ptr, sg_dma_address(src) + offset, is_sec1);
> @@ -1197,11 +1192,9 @@ static int ipsec_esp(struct talitos_edesc *edesc, struct aead_request *areq,
> if (desc->hdr & DESC_HDR_TYPE_IPSEC_ESP) {
> to_talitos_ptr(&desc->ptr[2], edesc->iv_dma, is_sec1);
> to_talitos_ptr_len(&desc->ptr[2], ivsize, is_sec1);
> - to_talitos_ptr_ext_set(&desc->ptr[2], 0, is_sec1);
> } else {
> to_talitos_ptr(&desc->ptr[3], edesc->iv_dma, is_sec1);
> to_talitos_ptr_len(&desc->ptr[3], ivsize, is_sec1);
> - to_talitos_ptr_ext_set(&desc->ptr[3], 0, is_sec1);
> }
>
> /* cipher key */
> @@ -1221,7 +1214,6 @@ static int ipsec_esp(struct talitos_edesc *edesc, struct aead_request *areq,
> * typically 12 for ipsec
> */
> to_talitos_ptr_len(&desc->ptr[4], cryptlen, is_sec1);
> - to_talitos_ptr_ext_set(&desc->ptr[4], 0, is_sec1);
>
> sg_link_tbl_len = cryptlen;
>
> @@ -1275,8 +1267,6 @@ static int ipsec_esp(struct talitos_edesc *edesc, struct aead_request *areq,
> to_talitos_ptr(tbl_ptr, edesc->dma_link_tbl + offset,
> is_sec1);
> }
> - } else {
> - edesc->icv_ool = false;
> }
>
> /* ICV data */
> @@ -1386,7 +1376,7 @@ static struct talitos_edesc *talitos_edesc_alloc(struct device *dev,
> alloc_len += icv_stashing ? authsize : 0;
> }
>
> - edesc = kmalloc(alloc_len, GFP_DMA | flags);
> + edesc = kzalloc(alloc_len, GFP_DMA | flags);
> if (!edesc) {
> dev_err(dev, "could not allocate edescriptor\n");
> err = ERR_PTR(-ENOMEM);
> @@ -1467,7 +1457,6 @@ static int aead_decrypt(struct aead_request *req)
> DESC_HDR_MODE1_MDEU_CICV;
>
> /* reset integrity check result bits */
> - edesc->desc.hdr_lo = 0;
>
> return ipsec_esp(edesc, req, ipsec_esp_decrypt_hwauth_done);
> }
> @@ -1554,12 +1543,10 @@ static int common_nonsnoop(struct talitos_edesc *edesc,
> bool is_sec1 = has_ftr_sec1(priv);
>
> /* first DWORD empty */
> - desc->ptr[0] = zero_entry;
>
> /* cipher iv */
> to_talitos_ptr(&desc->ptr[1], edesc->iv_dma, is_sec1);
> to_talitos_ptr_len(&desc->ptr[1], ivsize, is_sec1);
> - to_talitos_ptr_ext_set(&desc->ptr[1], 0, is_sec1);
>
> /* cipher key */
> map_single_talitos_ptr(dev, &desc->ptr[2], ctx->keylen,
> @@ -1598,7 +1585,6 @@ static int common_nonsnoop(struct talitos_edesc *edesc,
> DMA_FROM_DEVICE);
>
> /* last DWORD empty */
> - desc->ptr[6] = zero_entry;
>
> if (sync_needed)
> dma_sync_single_for_device(dev, edesc->dma_link_tbl,
> @@ -1744,7 +1730,6 @@ static int common_nonsnoop_hash(struct talitos_edesc *edesc,
> int sg_count;
>
> /* first DWORD empty */
> - desc->ptr[0] = zero_entry;
>
> /* hash context in */
> if (!req_ctx->first || req_ctx->swinit) {
> @@ -1753,8 +1738,6 @@ static int common_nonsnoop_hash(struct talitos_edesc *edesc,
> (char *)req_ctx->hw_context,
> DMA_TO_DEVICE);
> req_ctx->swinit = 0;
> - } else {
> - desc->ptr[1] = zero_entry;
> }
> /* Indicate next op is not the first. */
> req_ctx->first = 0;
> @@ -1763,8 +1746,6 @@ static int common_nonsnoop_hash(struct talitos_edesc *edesc,
> if (ctx->keylen)
> map_single_talitos_ptr(dev, &desc->ptr[2], ctx->keylen,
> (char *)&ctx->key, DMA_TO_DEVICE);
> - else
> - desc->ptr[2] = zero_entry;
>
> sg_count = edesc->src_nents ?: 1;
> if (is_sec1 && sg_count > 1)
> @@ -1781,7 +1762,6 @@ static int common_nonsnoop_hash(struct talitos_edesc *edesc,
> sync_needed = true;
>
> /* fifth DWORD empty */
> - desc->ptr[4] = zero_entry;
>
> /* hash/HMAC out -or- hash context out */
> if (req_ctx->last)
> @@ -1794,7 +1774,6 @@ static int common_nonsnoop_hash(struct talitos_edesc *edesc,
> req_ctx->hw_context, DMA_FROM_DEVICE);
>
> /* last DWORD empty */
> - desc->ptr[6] = zero_entry;
>
> if (is_sec1 && from_talitos_ptr_len(&desc->ptr[3], true) == 0)
> talitos_handle_buggy_hash(ctx, edesc, &desc->ptr[3]);
> diff --git a/drivers/crypto/talitos.h b/drivers/crypto/talitos.h
> index 8dd8f40e2771..6112ff1fc334 100644
> --- a/drivers/crypto/talitos.h
> +++ b/drivers/crypto/talitos.h
> @@ -52,8 +52,6 @@ struct talitos_ptr {
> __be32 ptr; /* address */
> };
>
> -static const struct talitos_ptr zero_entry;
> -
> /* descriptor */
> struct talitos_desc {
> __be32 hdr; /* header high bits */
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 0/6] crypto: talitos - various fixes
2017-09-20 8:35 ` Christophe LEROY
@ 2017-09-20 19:21 ` christophe leroy
0 siblings, 0 replies; 12+ messages in thread
From: christophe leroy @ 2017-09-20 19:21 UTC (permalink / raw)
To: Herbert Xu, David S. Miller; +Cc: linux-kernel, linuxppc-dev, linux-crypto
What's going wrong ? I have resent it and it the same again, the serie
is not dispatched on the linux-crypto list, but when I answer to a mail
of the serie, the answer shows up.
What could be the issue ?
Christophe
Le 20/09/2017 à 10:35, Christophe LEROY a écrit :
> Looks like the linux-crypto list and patchwork was out of order when I
> sent this. I will send again, sorry for the noise on the other lists.
>
> Le 19/09/2017 à 14:58, Christophe Leroy a écrit :
>> This serie provide various fixes on the talitos driver.
>>
>> Christophe Leroy (6):
>> crypto: talitos - Don't provide setkey for non hmac hashing algs.
>> crypto: talitos - fix hashing
>> crypto: talitos - fix sha224
>> crypto: talitos - fix AEAD test failures
>> crypto: talitos - use kzalloc instead of kmalloc
>> crypto: talitos - fix memory corruption on SEC2
>>
>> drivers/crypto/talitos.c | 81
>> +++++++++++++++++++++---------------------------
>> drivers/crypto/talitos.h | 2 --
>> 2 files changed, 36 insertions(+), 47 deletions(-)
>>
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 0/6] crypto: talitos - various fixes
2017-09-19 12:58 ` Christophe Leroy
(?)
@ 2017-09-20 8:35 ` Christophe LEROY
2017-09-20 19:21 ` christophe leroy
-1 siblings, 1 reply; 12+ messages in thread
From: Christophe LEROY @ 2017-09-20 8:35 UTC (permalink / raw)
To: Herbert Xu, David S. Miller; +Cc: linux-kernel, linuxppc-dev, linux-crypto
Looks like the linux-crypto list and patchwork was out of order when I
sent this. I will send again, sorry for the noise on the other lists.
Le 19/09/2017 à 14:58, Christophe Leroy a écrit :
> This serie provide various fixes on the talitos driver.
>
> Christophe Leroy (6):
> crypto: talitos - Don't provide setkey for non hmac hashing algs.
> crypto: talitos - fix hashing
> crypto: talitos - fix sha224
> crypto: talitos - fix AEAD test failures
> crypto: talitos - use kzalloc instead of kmalloc
> crypto: talitos - fix memory corruption on SEC2
>
> drivers/crypto/talitos.c | 81 +++++++++++++++++++++---------------------------
> drivers/crypto/talitos.h | 2 --
> 2 files changed, 36 insertions(+), 47 deletions(-)
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 0/6] crypto: talitos - various fixes
@ 2017-09-19 12:58 ` Christophe Leroy
0 siblings, 0 replies; 12+ messages in thread
From: Christophe Leroy @ 2017-09-19 12:58 UTC (permalink / raw)
To: Herbert Xu, David S. Miller; +Cc: linuxppc-dev, linux-kernel, linux-crypto
This serie provide various fixes on the talitos driver.
Christophe Leroy (6):
crypto: talitos - Don't provide setkey for non hmac hashing algs.
crypto: talitos - fix hashing
crypto: talitos - fix sha224
crypto: talitos - fix AEAD test failures
crypto: talitos - use kzalloc instead of kmalloc
crypto: talitos - fix memory corruption on SEC2
drivers/crypto/talitos.c | 81 +++++++++++++++++++++---------------------------
drivers/crypto/talitos.h | 2 --
2 files changed, 36 insertions(+), 47 deletions(-)
--
2.13.3
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 0/6] crypto: talitos - various fixes
@ 2017-09-19 12:58 ` Christophe Leroy
0 siblings, 0 replies; 12+ messages in thread
From: Christophe Leroy @ 2017-09-19 12:58 UTC (permalink / raw)
To: Herbert Xu, David S. Miller; +Cc: linux-kernel, linuxppc-dev, linux-crypto
This serie provide various fixes on the talitos driver.
Christophe Leroy (6):
crypto: talitos - Don't provide setkey for non hmac hashing algs.
crypto: talitos - fix hashing
crypto: talitos - fix sha224
crypto: talitos - fix AEAD test failures
crypto: talitos - use kzalloc instead of kmalloc
crypto: talitos - fix memory corruption on SEC2
drivers/crypto/talitos.c | 81 +++++++++++++++++++++---------------------------
drivers/crypto/talitos.h | 2 --
2 files changed, 36 insertions(+), 47 deletions(-)
--
2.13.3
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2017-10-05 8:24 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-09-21 7:19 [PATCH 0/6] crypto: talitos - various fixes Christophe Leroy
2017-09-21 7:19 ` [PATCH 1/6] crypto: talitos - Don't provide setkey for non hmac hashing algs Christophe Leroy
2017-09-21 7:19 ` [PATCH 2/6] crypto: talitos - fix hashing Christophe Leroy
2017-09-21 7:19 ` [PATCH 3/6] crypto: talitos - fix sha224 Christophe Leroy
2017-09-21 7:19 ` [PATCH 4/6] crypto: talitos - fix AEAD test failures Christophe Leroy
2017-09-21 7:19 ` [PATCH 5/6] crypto: talitos - use kzalloc instead of kmalloc Christophe Leroy
2017-10-05 8:24 ` Christophe LEROY
2017-09-21 7:19 ` [PATCH 6/6] crypto: talitos - fix memory corruption on SEC2 Christophe Leroy
-- strict thread matches above, loose matches on Subject: below --
2017-09-19 12:58 [PATCH 0/6] crypto: talitos - various fixes Christophe Leroy
2017-09-19 12:58 ` Christophe Leroy
2017-09-20 8:35 ` Christophe LEROY
2017-09-20 19:21 ` christophe leroy
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.