Starting to change f* to expect OPc. Making compute_OPc public function.

This commit is contained in:
Pedro Alvarez 2018-06-18 11:58:40 +01:00
parent 02bc1c9956
commit aec0f3f5ac
1 changed files with 22 additions and 50 deletions

View File

@ -1099,7 +1099,7 @@ LIBLTE_ERROR_ENUM liblte_security_decryption_eea2(uint8 *key,
Document Reference: 35.206 v10.0.0 Annex 3
*********************************************************************/
LIBLTE_ERROR_ENUM liblte_security_milenage_f1(uint8 *k,
uint8 *op,
uint8 *op_c,
uint8 *rand,
uint8 *sqn,
uint8 *amf,
@ -1108,13 +1108,13 @@ LIBLTE_ERROR_ENUM liblte_security_milenage_f1(uint8 *k,
LIBLTE_ERROR_ENUM err = LIBLTE_ERROR_INVALID_INPUTS;
ROUND_KEY_STRUCT round_keys;
uint32 i;
uint8 op_c[16];
uint8 temp[16];
uint8 in1[16];
uint8 out1[16];
uint8 rijndael_input[16];
if(k != NULL &&
op_c != NULL &&
rand != NULL &&
sqn != NULL &&
amf != NULL &&
@ -1123,14 +1123,6 @@ LIBLTE_ERROR_ENUM liblte_security_milenage_f1(uint8 *k,
// Initialize the round keys
rijndael_key_schedule(k, &round_keys);
// Compute OPc
for(i=0;i<16;i++)
{
op_c[i] = op[i];
}
//compute_OPc(&round_keys, op, op_c);
// Compute temp
for(i=0; i<16; i++)
{
@ -1188,7 +1180,7 @@ LIBLTE_ERROR_ENUM liblte_security_milenage_f1(uint8 *k,
Document Reference: 35.206 v10.0.0 Annex 3
*********************************************************************/
LIBLTE_ERROR_ENUM liblte_security_milenage_f1_star(uint8 *k,
uint8 *op,
uint8 *op_c,
uint8 *rand,
uint8 *sqn,
uint8 *amf,
@ -1197,13 +1189,13 @@ LIBLTE_ERROR_ENUM liblte_security_milenage_f1_star(uint8 *k,
LIBLTE_ERROR_ENUM err = LIBLTE_ERROR_INVALID_INPUTS;
ROUND_KEY_STRUCT round_keys;
uint32 i;
uint8 op_c[16];
uint8 temp[16];
uint8 in1[16];
uint8 out1[16];
uint8 rijndael_input[16];
if(k != NULL &&
op_c != NULL &&
rand != NULL &&
sqn != NULL &&
amf != NULL &&
@ -1212,14 +1204,6 @@ LIBLTE_ERROR_ENUM liblte_security_milenage_f1_star(uint8 *k,
// Initialize the round keys
rijndael_key_schedule(k, &round_keys);
for(i=0;i<16;i++)
{
op_c[i] = op[i];
}
// Compute OPc
//compute_OPc(&round_keys, op, op_c);
// Compute temp
for(i=0; i<16; i++)
{
@ -1277,7 +1261,7 @@ LIBLTE_ERROR_ENUM liblte_security_milenage_f1_star(uint8 *k,
Document Reference: 35.206 v10.0.0 Annex 3
*********************************************************************/
LIBLTE_ERROR_ENUM liblte_security_milenage_f2345(uint8 *k,
uint8 *op,
uint8 *op_c,
uint8 *rand,
uint8 *res,
uint8 *ck,
@ -1287,12 +1271,12 @@ LIBLTE_ERROR_ENUM liblte_security_milenage_f2345(uint8 *k,
LIBLTE_ERROR_ENUM err = LIBLTE_ERROR_INVALID_INPUTS;
ROUND_KEY_STRUCT round_keys;
uint32 i;
uint8 op_c[16];
uint8 temp[16];
uint8 out[16];
uint8 rijndael_input[16];
if(k != NULL &&
op_c != NULL &&
rand != NULL &&
res != NULL &&
ck != NULL &&
@ -1302,12 +1286,6 @@ LIBLTE_ERROR_ENUM liblte_security_milenage_f2345(uint8 *k,
// Initialize the round keys
rijndael_key_schedule(k, &round_keys);
// Compute OPc
//compute_OPc(&round_keys, op, op_c);
for(i=0;i<16;i++)
{
op_c[i] = op[i];
}
// Compute temp
for(i=0; i<16; i++)
{
@ -1391,7 +1369,7 @@ LIBLTE_ERROR_ENUM liblte_security_milenage_f2345(uint8 *k,
Document Reference: 35.206 v10.0.0 Annex 3
*********************************************************************/
LIBLTE_ERROR_ENUM liblte_security_milenage_f5_star(uint8 *k,
uint8 *op,
uint8 *op_c,
uint8 *rand,
uint8 *ak)
{
@ -1404,19 +1382,13 @@ LIBLTE_ERROR_ENUM liblte_security_milenage_f5_star(uint8 *k,
uint8 rijndael_input[16];
if(k != NULL &&
op_c != NULL &&
rand != NULL &&
ak != NULL)
{
// Initialize the round keys
rijndael_key_schedule(k, &round_keys);
// Compute OPc
//compute_OPc(&round_keys, op, op_c);
for(i=0;i<16;i++)
{
op_c[i] = op[i];
}
// Compute temp
for(i=0; i<16; i++)
{
@ -1441,17 +1413,11 @@ LIBLTE_ERROR_ENUM liblte_security_milenage_f5_star(uint8 *k,
{
ak[i] = out[i];
}
err = LIBLTE_SUCCESS;
}
return(err);
}
/*******************************************************************************
LOCAL FUNCTIONS
*******************************************************************************/
/*********************************************************************
Name: compute_OPc
@ -1459,19 +1425,25 @@ LIBLTE_ERROR_ENUM liblte_security_milenage_f5_star(uint8 *k,
Document Reference: 35.206 v10.0.0 Annex 3
*********************************************************************/
void compute_OPc(ROUND_KEY_STRUCT *rk,
void compute_OPc(uint8 *k,
uint8 *op,
uint8 *op_c)
{
uint32 i;
rijndael_encrypt(op, rk, op_c);
for(i=0; i<16; i++)
{
op_c[i] ^= op[i];
}
uint32 i;
ROUND_KEY_STRUCT round_keys;
rijndael_key_schedule(k, &round_keys);
rijndael_encrypt(op, round_keys, op_c);
for(i=0; i<16; i++)
{
op_c[i] ^= op[i];
}
}
/*******************************************************************************
LOCAL FUNCTIONS
*******************************************************************************/
/*********************************************************************
Name: rijndael_key_schedule