[PATCH] Add A5 and GEA ciphers

Harald Welte laforge at gnumonks.org
Mon Apr 8 12:55:47 UTC 2013

Hi Max,

I agree with Sylvain's comments, but like to add:  The filename should
not be gprs_gea.c but gprs_gea34.c or something along the lines.  There
are other ciphers (gea1/gea2) and that should somehow be reflected in
the file name.

Regarding coding style: We generally open the curly braces on the same
line as  in "for (a;b;c) {".  We also don't indent the "case" statements
in a switch, e.g.:

	switch (foo) {
	case A:
		foo = 1;

I'm also not sure if the gea3/gea4 should become part of libosmogsm
itself, or if they should simply exist in the form of a
libosmo-crypt-gea34 or the like.  Actually, I once created such a
library (plugging into gprs_cipher_register()) using the reference
implementation of the cipher.  I'm not 100% sure on this, though.  Does
anyone have an opinion on this?

Even if it gea3/gea4 becomes part of libosmogsm, then I would like to
have no direct functions exported to applications, but require
applications to go through the gprs_cipher_* API.  The same holds true
for the A5/* family.  Rather than having explicit function calls for
each of the variants, I would love to have one set of functions with
just a parameter or struct member defining the specific algorithm to be
used by the implementation.

- Harald Welte <laforge at gnumonks.org>           http://laforge.gnumonks.org/
"Privacy in residential applications is a desirable marketing option."
                                                  (ETSI EN 300 175-7 Ch. A6)

More information about the baseband-devel mailing list