David H?rdeman <david@xxxxxxxx> wrote:
+static int dsa_setkey(void *ctx, const u8 *key, unsigned int keylen, u32 *flags)
+{
+ struct dsa_ctx *dctx = ctx;
+
+ if (keylen != sizeof(struct key_payload_dsa *)) {
+ printk("Invalid key size in dsa_setkey\n");
+ return -EINVAL;
+ }
+
+ dctx->key = (struct key_payload_dsa *)key;
+ return 0;
+}
This is bad. You're putting a pointer to an object with an unknown
lifetime into the tfm.
Is there anything wrong with allocating the memory for it and storing
the key in the tfm like everyone else?