Thread (267 messages) 267 messages, 5 authors, 2012-09-27

Re: [RFCv2 13/20] Bluetooth: Add function to derive AMP key using hmac

From: Gustavo Padovan <hidden>
Date: 2012-07-24 21:16:31

Hi Dmitry,

* Andrei Emeltchenko [off-list ref] [2012-07-24 16:21:54 +0300]:
quoted hunk ↗ jump to hunk
From: Dmitry Kasatkin <redacted>

hmac(sha256) will be used for AMP key generation.

Signed-off-by: Dmitry Kasatkin <redacted>
Signed-off-by: Andrei Emeltchenko <redacted>
---
 net/bluetooth/pal.c |   35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)
diff --git a/net/bluetooth/pal.c b/net/bluetooth/pal.c
index 335cbc3..a405e88 100644
--- a/net/bluetooth/pal.c
+++ b/net/bluetooth/pal.c
@@ -12,6 +12,7 @@
 */
 
 #include <net/bluetooth/pal.h>
+#include <crypto/hash.h>
 
 enum pal_states {
 	DISCONNECTED,
@@ -220,3 +221,37 @@ struct phy_link *phylink_lookup(struct amp_mgr *mgr, u8 local_id, u8 remote_id)
 
 	return found;
 }
+
+int hmac_sha256(u8 *key, u8 ksize, char *plaintext, u8 psize, u8 *output)
+{
+	int ret = 0;
+	struct crypto_shash *tfm;
+
+	tfm = crypto_alloc_shash("hmac(sha256)", 0, 0);
+	if (IS_ERR(tfm)) {
+		BT_DBG("crypto_alloc_ahash failed");
+		return PTR_ERR(tfm);
+	}
+
+	if (ksize) {
can you move the check for ksize to the beginning of the function? This avoid
unnecessary calls to crypto_alloc_ahash() in case ksize is zero.

	Gustavo
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help