From aa84b71f0fe014156e90dde2f0c44694368dc034 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Mon, 18 Dec 2017 03:12:01 +0100 Subject: add osmo_auth_c3() (separate from gsm_milenage()) To send a Ciphering Mode Command, we may need to derive a Kc from UMTS AKA tokens. gsm_milenage() derives Kc from 3G tokens, but also derives an SRES. For SRES, it requires an OPC, which may need to be derived from OP first. All we need is a Kc, so we could feed a zero OPC ... but to simplify the function call for cases where just a Kc is required, separate the c3 function out from gsm_milenage(), as osmo_auth_c3(). Obviously call osmo_auth_c3() from gsm_milenage() (meaning that osmo-hlr's 55.205 derived auc tests still cover exactly that implementation). Prepares: If04e405426c55a81341747a9b450a69188525d5c (osmo-msc) Related: OS#2745 Change-Id: I85a1d6ae95ad9e5ce9524ef7fc06414848afc2aa --- include/osmocom/crypt/auth.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include/osmocom') diff --git a/include/osmocom/crypt/auth.h b/include/osmocom/crypt/auth.h index 4dbc6a4d..e544126b 100644 --- a/include/osmocom/crypt/auth.h +++ b/include/osmocom/crypt/auth.h @@ -105,4 +105,6 @@ void osmo_c4(uint8_t *ck, const uint8_t *kc); const char *osmo_auth_alg_name(enum osmo_auth_algo alg); enum osmo_auth_algo osmo_auth_alg_parse(const char *name); +void osmo_auth_c3(uint8_t kc[], const uint8_t ck[], const uint8_t ik[]); + /* @} */ -- cgit v1.2.3