Thread (15 messages) 15 messages, 5 authors, 2017-06-10

Re: [PATCH v1 3/3] crypto: cavium - Register the CNN55XX supported crypto algorithms.

flat view

From: srikanth jampala <hidden>
Date: 2017-05-11 12:41:10
Also in: lkml

Hi Stephan,

On Thursday 11 May 2017 05:52 PM, Stephan Müller wrote:
Am Donnerstag, 11. Mai 2017, 14:18:34 CEST schrieb srikanth jampala:

Hi srikanth,
quoted
Hi Stephan,

On Wednesday 10 May 2017 07:26 PM, Stephan Müller wrote:
quoted
Am Mittwoch, 10. Mai 2017, 15:06:40 CEST schrieb Srikanth Jampala:

Hi Srikanth,

In general: you are using the ablkcipher API. I think it is on its way out
and being replaced with skcipher.

Maybe it makes sense to replace it here too. It could be as simple as s/
ablkcipher/skcipher/g
Sure, I will do the changes accordingly.
As per my understanding, I see the following changes,
1. CRYPTO_ALG_TYPE_ABLKCIPHER changed to CRYPTO_ALG_TYPE_SKCIPHER
2. nitrox_ablkcipher_foo() changed to nitrox_skcipher_foo()

Please let me know, any other changes I have to consider?
What about all crypto_ablkcipher* function calls / structs? Also all 
ablkcipher_request function calls/structs?
I will work on the changes suggested.
quoted
quoted
quoted
+static inline int nitrox_ablkcipher_setkey(struct crypto_ablkcipher
*cipher,
+                                          int aes_keylen, const u8 *key,
+                                          unsigned int keylen)
+{
+       struct crypto_tfm *tfm = crypto_ablkcipher_tfm(cipher);
+       struct nitrox_crypto_instance *inst = crypto_tfm_ctx(tfm);
+       struct flexi_crypto_context *fctx;
+       enum flexi_cipher cipher_type;
+       const char *name;
+
+       name = crypto_tfm_alg_name(tfm);
+       cipher_type = flexi_cipher_type(name);
+       if (cipher_type == CIPHER_INVALID) {
+               pr_err("unsupported cipher: %s\n", name);
+               return -EINVAL;
+       }
+
+       /* fill crypto context */
+       fctx = inst->u.fctx;
+       fctx->flags = 0;
+       fctx->w0.cipher_type = cipher_type;
+       fctx->w0.aes_keylen = aes_keylen;
+       fctx->w0.iv_source = IV_FROM_DPTR;
+       fctx->flags = cpu_to_be64(*(u64 *)&fctx->w0);
+       /* copy the key to context */
+       memcpy(fctx->crypto.u.key, key, keylen);
Could you help me finding the location where this memory is zeroized upon
release?
Currently, we are not zeroized the context in release.
We are doing it at the time of allocation.
You store a key in a piece of heap memory. I guess you want to zeroize that 
key memory before releasing?
I will do the changes.
Ciao
Stephan
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help