On Mon, 5 Oct 2020 at 16:30, Alan DeKok <aland@deployingradius.com> wrote:
On Oct 4, 2020, at 11:38 AM, Benjamin Thompson <b.thompson@latera.ru> wrote:
I noticed that the Milenage algorithm is implemented in src/lib/sim/milenage.c in v4. So if this could be cherry picked into /src/lib/ in v3 then as I understand it what would remain is:
1) Create a function for KASME generation. (not sure if this should go in rlm_wimax or e.g lib/kasme.c)
rlm_wimax for now. We can always worry about details later.
2) In rlm_wimax: a) Get input values from request:User-Name, request:WiMAX-146 and control:xxx attributes (including SQN)
We just create attributes in dictionary.freeradius.internal for much of that.
b) Generate RAND
~5 lines of code.
c) Call the various Milenage functions from milenage.c and store AUTN, RAND, XRES in the relevant WiMAX reply attributes (and in variables save AK, CK and IK)
Yup.
c) Call the KASME generation function and save the result in to the WiMAX reply attribute
That doesn't sound too bad.
TBH I'd also add unit tests. The algorithms are complex enough that we don't want to change things and accidentally break them.
This feature would definitely be useful.
Thanks Alan My plan is to have a go editing rlm_wimax and (hopefully) once I have it working I will create a pull request for review.