The FreeRADIUS server  $Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
Data Structures | Functions
fips186prf.c File Reference

EAP sim protocol encoders and decoders. More...

#include <freeradius-devel/util/sha1.h>
#include "base.h"
+ Include dependency graph for fips186prf.c:

Go to the source code of this file.

Data Structures

struct  onesixty
 

Functions

void fr_aka_sim_fips186_2prf (uint8_t out[static 160], uint8_t mk[static 20])
 Implement the FIPS-186-2 PRF to derive keying material from the MK. More...
 
static void onesixty_add_mod (onesixty *sum, onesixty *a, onesixty *b)
 

Detailed Description

EAP sim protocol encoders and decoders.

Id
2f9da199428902824666050e86c23d5345f526f9

The development of the EAP/SIM support was funded by Internet Foundation Austria (http://www.nic.at/ipa).

This code was written from scratch by Michael Richardson, and is dual licensed under both GPL and BSD.

Definition in file fips186prf.c.


Data Structure Documentation

◆ onesixty

struct onesixty

Definition at line 61 of file fips186prf.c.

Data Fields
uint8_t p[20]

Function Documentation

◆ fr_aka_sim_fips186_2prf()

void fr_aka_sim_fips186_2prf ( uint8_t  out[static 160],
uint8_t  mk[static 20] 
)

Implement the FIPS-186-2 PRF to derive keying material from the MK.

run the FIPS-186-2 PRF on the given Master Key (160 bits) in order to derive 1280 bits (160 bytes) of keying data from it.

Given that in EAP-SIM, this is coming from a 64-bit Kc it seems like an awful lot of "randomness" to pull out..

Parameters
[out]outBuffer to contain the data derived from the mk.
[in]mkThe master key we use to derive all other keying data.

Definition at line 91 of file fips186prf.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ onesixty_add_mod()

static void onesixty_add_mod ( onesixty sum,
onesixty a,
onesixty b 
)
static

Definition at line 65 of file fips186prf.c.

+ Here is the caller graph for this function: