aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2011-12-07 11:35:02 +0100
committerHarald Welte <laforge@gnumonks.org>2011-12-07 11:35:02 +0100
commitaae236245596743b6aff4b1b294c0e8d97b8190f (patch)
tree7a84960ab3e424930676107f33ad23981b964834
parent57143a43619ccb229b35b4b4c7def737cb41a40a (diff)
auth_core: don't use anonymous unions to make certain gcc versions happy
-rw-r--r--include/osmocom/crypt/auth.h2
-rw-r--r--src/gsm/auth_comp128v1.c2
-rw-r--r--src/gsm/auth_milenage.c12
-rw-r--r--tests/auth/milenage_test.c4
-rw-r--r--utils/osmo-auc-gen.c20
5 files changed, 20 insertions, 20 deletions
diff --git a/include/osmocom/crypt/auth.h b/include/osmocom/crypt/auth.h
index 23e104c1..30e16e82 100644
--- a/include/osmocom/crypt/auth.h
+++ b/include/osmocom/crypt/auth.h
@@ -37,7 +37,7 @@ struct osmo_sub_auth_data {
struct {
uint8_t ki[16];
} gsm;
- };
+ } u;
};
/* data structure describing a computed auth vector, generated by AuC */
diff --git a/src/gsm/auth_comp128v1.c b/src/gsm/auth_comp128v1.c
index 2e1ad2c9..41aef71c 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->gsm.ki, _rand, vec->sres, vec->kc);
+ comp128(aud->u.gsm.ki, _rand, vec->sres, vec->kc);
vec->auth_types = OSMO_AUTH_TYPE_GSM;
return 0;
diff --git a/src/gsm/auth_milenage.c b/src/gsm/auth_milenage.c
index f2d2ffa1..2a9ba334 100644
--- a/src/gsm/auth_milenage.c
+++ b/src/gsm/auth_milenage.c
@@ -62,17 +62,17 @@ static int milenage_gen_vec(struct osmo_auth_vector *vec,
uint8_t sqn[6];
int rc;
- sqn_u64_to_48bit(sqn, aud->umts.sqn);
- milenage_generate(aud->umts.opc, aud->umts.amf, aud->umts.k,
+ sqn_u64_to_48bit(sqn, aud->u.umts.sqn);
+ milenage_generate(aud->u.umts.opc, aud->u.umts.amf, aud->u.umts.k,
sqn, _rand,
vec->autn, vec->ik, vec->ck, vec->res, &res_len);
vec->res_len = res_len;
- rc = gsm_milenage(aud->umts.opc, aud->umts.k, _rand, vec->sres, vec->kc);
+ rc = gsm_milenage(aud->u.umts.opc, aud->u.umts.k, _rand, vec->sres, vec->kc);
if (rc < 0)
return rc;
vec->auth_types = OSMO_AUTH_TYPE_UMTS | OSMO_AUTH_TYPE_GSM;
- aud->umts.sqn++;
+ aud->u.umts.sqn++;
return 0;
}
@@ -85,12 +85,12 @@ static int milenage_gen_vec_auts(struct osmo_auth_vector *vec,
uint8_t sqn_out[6];
int rc;
- rc = milenage_auts(aud->umts.opc, aud->umts.k,
+ rc = milenage_auts(aud->u.umts.opc, aud->u.umts.k,
rand_auts, auts, sqn_out);
if (rc < 0)
return rc;
- aud->umts.sqn = sqn_48bit_to_u64(sqn_out) + 1;
+ aud->u.umts.sqn = sqn_48bit_to_u64(sqn_out) + 1;
return milenage_gen_vec(vec, aud, _rand);
}
diff --git a/tests/auth/milenage_test.c b/tests/auth/milenage_test.c
index a143d26d..da7c800a 100644
--- a/tests/auth/milenage_test.c
+++ b/tests/auth/milenage_test.c
@@ -27,7 +27,7 @@ static void dump_auth_vec(struct osmo_auth_vector *vec)
static struct osmo_sub_auth_data test_aud = {
.type = OSMO_AUTH_TYPE_UMTS,
.algo = OSMO_AUTH_ALG_MILENAGE,
- .umts = {
+ .u.umts = {
.opc = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f },
.k = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
@@ -70,7 +70,7 @@ int main(int argc, char **argv)
if (rc < 0) {
printf("AUTS failed\n");
} else {
- printf("AUTS success: SEQ.MS = %lu\n", test_aud.umts.sqn);
+ printf("AUTS success: SEQ.MS = %lu\n", test_aud.u.umts.sqn);
}
exit(0);
diff --git a/utils/osmo-auc-gen.c b/utils/osmo-auc-gen.c
index 90976970..62b51289 100644
--- a/utils/osmo-auc-gen.c
+++ b/utils/osmo-auc-gen.c
@@ -102,12 +102,12 @@ int main(int argc, char **argv)
case 'k':
switch (test_aud.type) {
case OSMO_AUTH_TYPE_GSM:
- rc = osmo_hexparse(optarg, test_aud.gsm.ki,
- sizeof(test_aud.gsm.ki));
+ rc = osmo_hexparse(optarg, test_aud.u.gsm.ki,
+ sizeof(test_aud.u.gsm.ki));
break;
case OSMO_AUTH_TYPE_UMTS:
- rc = osmo_hexparse(optarg, test_aud.umts.k,
- sizeof(test_aud.umts.k));
+ rc = osmo_hexparse(optarg, test_aud.u.umts.k,
+ sizeof(test_aud.u.umts.k));
break;
default:
fprintf(stderr, "please specify 2g/3g first!\n");
@@ -118,16 +118,16 @@ int main(int argc, char **argv)
fprintf(stderr, "Only UMTS has OPC\n");
exit(2);
}
- rc = osmo_hexparse(optarg, test_aud.umts.opc,
- sizeof(test_aud.umts.opc));
+ rc = osmo_hexparse(optarg, test_aud.u.umts.opc,
+ sizeof(test_aud.u.umts.opc));
break;
case 'f':
if (test_aud.type != OSMO_AUTH_TYPE_UMTS) {
fprintf(stderr, "Only UMTS has AMF\n");
exit(2);
}
- rc = osmo_hexparse(optarg, test_aud.umts.amf,
- sizeof(test_aud.umts.amf));
+ rc = osmo_hexparse(optarg, test_aud.u.umts.amf,
+ sizeof(test_aud.u.umts.amf));
break;
case 's':
if (test_aud.type != OSMO_AUTH_TYPE_UMTS) {
@@ -135,7 +135,7 @@ int main(int argc, char **argv)
exit(2);
}
ul = strtoul(optarg, 0, 10);
- test_aud.umts.sqn = ul;
+ test_aud.u.umts.sqn = ul;
break;
case 'r':
rc = osmo_hexparse(optarg, _rand, sizeof(_rand));
@@ -175,7 +175,7 @@ int main(int argc, char **argv)
if (rc < 0) {
printf("AUTS failed\n");
} else {
- printf("AUTS success: SEQ.MS = %lu\n", test_aud.umts.sqn);
+ printf("AUTS success: SEQ.MS = %lu\n", test_aud.u.umts.sqn);
}
#endif
exit(0);