aboutsummaryrefslogtreecommitdiffstats
path: root/src/gsm/auth_core.c
diff options
context:
space:
mode:
authorMax <msuraev@sysmocom.de>2016-06-27 18:12:49 +0200
committerHarald Welte <laforge@gnumonks.org>2016-06-29 16:32:55 +0000
commitceae1237528f91f44e226225207ac70a2cf842ec (patch)
treeb459272cadfdafe853f6a08e2532669d0fd3e3cb /src/gsm/auth_core.c
parentb897c4299329688bb0aba6e32cd10b361bda1dee (diff)
Make C4 function globally available
This function perform 64 -> 128 bit key expansion which useful for converting between UMTS CK and GSM Kc, A5/3 and A5/4, GEA3 and GEA4 keys. Change-Id: I5a6c6deef6027cd6af144c9062d4c9166be26904 Related: OS#1582
Diffstat (limited to 'src/gsm/auth_core.c')
-rw-r--r--src/gsm/auth_core.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/gsm/auth_core.c b/src/gsm/auth_core.c
index f1ec2ed4..3aac0694 100644
--- a/src/gsm/auth_core.c
+++ b/src/gsm/auth_core.c
@@ -106,7 +106,7 @@ static inline void c5_function(uint8_t *ik, const uint8_t *kc)
}
/* C4 function to derive UMTS CK from GSM Kc */
-static inline void c4_function(uint8_t *ck, const uint8_t *kc)
+void osmo_c4(uint8_t *ck, const uint8_t *kc)
{
memcpy(ck, kc, 8);
memcpy(ck+8, kc, 8);
@@ -125,7 +125,7 @@ int osmo_auth_3g_from_2g(struct osmo_auth_vector *vec)
if ((vec->auth_types & OSMO_AUTH_TYPE_GSM) &&
!(vec->auth_types & OSMO_AUTH_TYPE_UMTS)) {
c5_function(vec->ik, vec->kc);
- c4_function(vec->ck, vec->kc);
+ osmo_c4(vec->ck, vec->kc);
/* We cannot actually set OSMO_AUTH_TYPE_UMTS as we have no
* AUTN and no RES, and thus can only perform GSM
* authentication with this tuple.