Attached patch will bring a5/3 support to osmo_a5. The implementatin is done based on spec, results are compared to reference implementation from standard and test vectors.
Unfortunately there are several deficiencies:
- it doesn't work with real phonein test network yet
Maybe you need to accept the 8 byte of the key in the inverse order. There is always a mixup there because different spec refer to the key in different order and n osmo_a5() we want the key in the same order as we received from the SIM.
- no tests included
Addind a test vector to ../../tests/a5/a5_test.c should be trivial. That test is far from exhaustive but it does show gross errors.
Anyway I would love to read your comments. It would be especially great if someone will manage to test it against real phones in actual network.
I think it'd be useful to split the kasumi impl in its own file, so that we can use it to implement GEA3 GPRS cipher as well.
Also, use TAB for indentation, that's the proper style in osmocom projects. (basically the kernek coding style).
I extracted and merged the return -ENOTSUP part of this patch.
Cheers,
Sylvain