Deprecate comp128
diff mbox

Message ID 1461251560-23628-1-git-send-email-msuraev@sysmocom.de
State Not Applicable
Headers show

Commit Message

Max April 21, 2016, 3:12 p.m. UTC
From: Max <msuraev@sysmocom.de>

Mark function as deprecated to discourage its usage: people should use
generic API in osmocom/crypt/auth.h
---
 include/osmocom/gsm/comp128.h | 8 ++++++--
 src/gsm/auth_comp128v1.c      | 2 +-
 src/gsm/comp128.c             | 7 ++++++-
 3 files changed, 13 insertions(+), 4 deletions(-)

Comments

Neels Hofmeyr April 26, 2016, 11:14 a.m. UTC | #1
On Thu, Apr 21, 2016 at 05:12:40PM +0200, msuraev@sysmocom.de wrote:
> From: Max <msuraev@sysmocom.de>
> 
> Mark function as deprecated to discourage its usage: people should use
> generic API in osmocom/crypt/auth.h

There is much more going on in this patch than your log message
suggests...

> ---
>  include/osmocom/gsm/comp128.h | 8 ++++++--
>  src/gsm/auth_comp128v1.c      | 2 +-
>  src/gsm/comp128.c             | 7 ++++++-
>  3 files changed, 13 insertions(+), 4 deletions(-)
> 
> diff --git a/include/osmocom/gsm/comp128.h b/include/osmocom/gsm/comp128.h
> index 33b997a..8ff76b1 100644
> --- a/include/osmocom/gsm/comp128.h
> +++ b/include/osmocom/gsm/comp128.h
> @@ -8,11 +8,15 @@
>  
>  #include <stdint.h>
>  
> +#include <osmocom/core/defs.h>
> +
>  /*
> - * Performs the COMP128 algorithm (used as A3/A8)
> + * Performs the COMP128v1 algorithm (used as A3/A8)

...comments...

>   * ki    : uint8_t [16]
>   * srand : uint8_t [16]
>   * sres  : uint8_t [4]
>   * kc    : uint8_t [8]
>   */
> -void comp128(const uint8_t *ki, const uint8_t *srand, uint8_t *sres, uint8_t *kc);
> +void comp128v1(const uint8_t *ki, const uint8_t *srand, uint8_t *sres, uint8_t *kc);

...new function...

> +
> +void comp128(const uint8_t *ki, const uint8_t *srand, uint8_t *sres, uint8_t *kc) OSMO_DEPRECATED("Use generic API from osmocom/crypt/auth.h instead");
> diff --git a/src/gsm/auth_comp128v1.c b/src/gsm/auth_comp128v1.c
> index 41aef71..c40027e 100644
> --- a/src/gsm/auth_comp128v1.c
> +++ b/src/gsm/auth_comp128v1.c
> @@ -28,7 +28,7 @@ static int c128v1_gen_vec(struct osmo_auth_vector *vec,
>  			  struct osmo_sub_auth_data *aud,
>  			  const uint8_t *_rand)
>  {
> -	comp128(aud->u.gsm.ki, _rand, vec->sres, vec->kc);
> +	comp128v1(aud->u.gsm.ki, _rand, vec->sres, vec->kc);

...or is it a rename after all...

>  	vec->auth_types = OSMO_AUTH_TYPE_GSM;
>  
>  	return 0;
> diff --git a/src/gsm/comp128.c b/src/gsm/comp128.c
> index b7a2382..abb4917 100644
> --- a/src/gsm/comp128.c
> +++ b/src/gsm/comp128.c
> @@ -185,7 +185,7 @@ _comp128_permutation(uint8_t *x, uint8_t *bits)
>  }
>  
>  void
> -comp128(const uint8_t *ki, const uint8_t *rand, uint8_t *sres, uint8_t *kc)
> +comp128v1(const uint8_t *ki, const uint8_t *rand, uint8_t *sres, uint8_t *kc)
>  {
>  	int i;
>  	uint8_t x[32], bits[128];
> @@ -228,3 +228,8 @@ comp128(const uint8_t *ki, const uint8_t *rand, uint8_t *sres, uint8_t *kc)
>  	kc[7] = 0;
>  }
>  
> +void
> +comp128(const uint8_t *ki, const uint8_t *rand, uint8_t *sres, uint8_t *kc)
> +{
> +    comp128v1(ki, rand, sres, kc);
> +}

...why add a deprecation but also add a shim to avoid it?

These things should definitely be in the commit log message.

Also the first log line looks like you were deprecating the algorithm
comp128 itself, maybe say "comp128()" to illustrate it's just a function?

~Neels

Patch
diff mbox

diff --git a/include/osmocom/gsm/comp128.h b/include/osmocom/gsm/comp128.h
index 33b997a..8ff76b1 100644
--- a/include/osmocom/gsm/comp128.h
+++ b/include/osmocom/gsm/comp128.h
@@ -8,11 +8,15 @@ 
 
 #include <stdint.h>
 
+#include <osmocom/core/defs.h>
+
 /*
- * Performs the COMP128 algorithm (used as A3/A8)
+ * Performs the COMP128v1 algorithm (used as A3/A8)
  * ki    : uint8_t [16]
  * srand : uint8_t [16]
  * sres  : uint8_t [4]
  * kc    : uint8_t [8]
  */
-void comp128(const uint8_t *ki, const uint8_t *srand, uint8_t *sres, uint8_t *kc);
+void comp128v1(const uint8_t *ki, const uint8_t *srand, uint8_t *sres, uint8_t *kc);
+
+void comp128(const uint8_t *ki, const uint8_t *srand, uint8_t *sres, uint8_t *kc) OSMO_DEPRECATED("Use generic API from osmocom/crypt/auth.h instead");
diff --git a/src/gsm/auth_comp128v1.c b/src/gsm/auth_comp128v1.c
index 41aef71..c40027e 100644
--- a/src/gsm/auth_comp128v1.c
+++ b/src/gsm/auth_comp128v1.c
@@ -28,7 +28,7 @@  static int c128v1_gen_vec(struct osmo_auth_vector *vec,
 			  struct osmo_sub_auth_data *aud,
 			  const uint8_t *_rand)
 {
-	comp128(aud->u.gsm.ki, _rand, vec->sres, vec->kc);
+	comp128v1(aud->u.gsm.ki, _rand, vec->sres, vec->kc);
 	vec->auth_types = OSMO_AUTH_TYPE_GSM;
 
 	return 0;
diff --git a/src/gsm/comp128.c b/src/gsm/comp128.c
index b7a2382..abb4917 100644
--- a/src/gsm/comp128.c
+++ b/src/gsm/comp128.c
@@ -185,7 +185,7 @@  _comp128_permutation(uint8_t *x, uint8_t *bits)
 }
 
 void
-comp128(const uint8_t *ki, const uint8_t *rand, uint8_t *sres, uint8_t *kc)
+comp128v1(const uint8_t *ki, const uint8_t *rand, uint8_t *sres, uint8_t *kc)
 {
 	int i;
 	uint8_t x[32], bits[128];
@@ -228,3 +228,8 @@  comp128(const uint8_t *ki, const uint8_t *rand, uint8_t *sres, uint8_t *kc)
 	kc[7] = 0;
 }
 
+void
+comp128(const uint8_t *ki, const uint8_t *rand, uint8_t *sres, uint8_t *kc)
+{
+    comp128v1(ki, rand, sres, kc);
+}