aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorEric <ewild@sysmocom.de>2021-05-19 17:45:38 +0200
committerEric <ewild@sysmocom.de>2021-06-08 02:38:15 +0200
commitc3fa007610b66bb491184f15080a254c6dd0e8f1 (patch)
treeae5ec99664bb42824b4728d09db269cd4ffac311 /include
parente9fd81a5c31782f36b512cf41ee98d0a4e4a82eb (diff)
kdf: add key derivation functions
generic sha code from git://w1.fi/hostap.git commit 5ea93947ca67ba83529798b806a15b247cdb2e93 which also happens to be the source of our milenage code. Related: SYS#5324 Change-Id: Ibf2e49edada944d91ceba62bd0d6b6ce69261fcd
Diffstat (limited to 'include')
-rw-r--r--include/Makefile.am1
-rw-r--r--include/osmocom/crypt/kdf.h21
2 files changed, 22 insertions, 0 deletions
diff --git a/include/Makefile.am b/include/Makefile.am
index f0742d5f..e25ed48e 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -62,6 +62,7 @@ nobase_include_HEADERS = \
osmocom/core/use_count.h \
osmocom/crypt/auth.h \
osmocom/crypt/gprs_cipher.h \
+ osmocom/crypt/kdf.h \
osmocom/ctrl/control_cmd.h \
osmocom/ctrl/control_if.h \
osmocom/ctrl/ports.h \
diff --git a/include/osmocom/crypt/kdf.h b/include/osmocom/crypt/kdf.h
new file mode 100644
index 00000000..4a3b3b2e
--- /dev/null
+++ b/include/osmocom/crypt/kdf.h
@@ -0,0 +1,21 @@
+#pragma once
+
+/*! \defgroup kdf key derivation functions
+ * @{
+ * \file kdf.h */
+
+#include <stdint.h>
+
+void osmo_kdf_kc128(const uint8_t* ck, const uint8_t* ik, uint8_t* kc128);
+
+void osmo_kdf_kasme(const uint8_t *ck, const uint8_t *ik, const uint8_t* plmn_id,
+ const uint8_t *sqn, const uint8_t *ak, uint8_t *kasme);
+
+void osmo_kdf_enb(const uint8_t *kasme, uint32_t ul_count, uint8_t *kenb);
+
+void osmo_kdf_nh(const uint8_t *kasme, const uint8_t *sync_input, uint8_t *nh);
+
+void osmo_kdf_nas(uint8_t algo_type, uint8_t algo_id, const uint8_t *kasme, uint8_t *knas);
+
+
+/* @} */