Thread (23 messages) 23 messages, 3 authors, 2016-08-10

Re: [PATCH v2] KEYS: add SP800-56A KDF support for DH

From: Mat Martineau <hidden>
Date: 2016-08-05 16:09:02

On Fri, 5 Aug 2016, Stephan Mueller wrote:
Am Donnerstag, 4. August 2016, 13:41:58 CEST schrieb Mat Martineau:

Hi Mat,
quoted
quoted
+
+long keyctl_dh_compute(struct keyctl_dh_params __user *params,
+		       char __user *buffer, size_t buflen,
+		       struct keyctl_kdf_params __user *kdf)
+{
+	struct keyctl_kdf_params kdfcopy;
+
+	if (!kdf)
+		return __keyctl_dh_compute(params, buffer, buflen, NULL);
+
+	if (copy_from_user(&kdfcopy, kdf, sizeof(kdfcopy)) != 0)
+		return -EFAULT;
+
+	return __keyctl_dh_compute(params, buffer, buflen, &kdfcopy);
I'd find this more readable if there was one call to __keyctl_dh_compute.
When trying to implement it, I think that it would even be more confusing,
because we need a conditional in any case. Do you like

return __keyctl_dh_compute(params, buffer, buflen, (kdf) ? &kdfcopy : NULL);

better than the already presented code? Besides, this would now imply that we
have two conditionals instead of one.
Another approach that uses one conditional is to add a struct 
keyctl_kdf_params* variable and assign it in the conditional block. Maybe 
that's not much of a win, it's up to you.

--
Mat Martineau
Intel OTC
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help