From aae236245596743b6aff4b1b294c0e8d97b8190f Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Wed, 7 Dec 2011 11:35:02 +0100 Subject: auth_core: don't use anonymous unions to make certain gcc versions happy --- include/osmocom/crypt/auth.h | 2 +- src/gsm/auth_comp128v1.c | 2 +- src/gsm/auth_milenage.c | 12 ++++++------ tests/auth/milenage_test.c | 4 ++-- utils/osmo-auc-gen.c | 20 ++++++++++---------- 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); -- cgit v1.2.3