Review at  https://gerrit.osmocom.org/3701

osmo-auc-gen: umts: add --ind-len arg

osmo-auc-gen so far does not allow indicating the IND bit length of SQN. A
default of 5 serves most practical cases, nevertheless we should allow passing
arbitrary IND lengths.

Enhance the test suite to test --ind-len.

Related: OS#2465
Change-Id: Ia1d8b6a823ffc92290b3e39e4e4665aeff80ccc0
---
M tests/osmo-auc-gen/osmo-auc-gen_test.err
M tests/osmo-auc-gen/osmo-auc-gen_test.ok
M tests/osmo-auc-gen/osmo-auc-gen_test.sh
M utils/osmo-auc-gen.c
4 files changed, 98 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/01/3701/1

diff --git a/tests/osmo-auc-gen/osmo-auc-gen_test.err 
b/tests/osmo-auc-gen/osmo-auc-gen_test.err
index 46ecf2e..d9b5485 100644
--- a/tests/osmo-auc-gen/osmo-auc-gen_test.err
+++ b/tests/osmo-auc-gen/osmo-auc-gen_test.err
@@ -7,3 +7,6 @@
 expecting error:
 > osmo-auc-gen -3 -a milenage -r 39fa2f4e3d523d8619a73b4f65c3e14d -k 
 > EB215756028D60E3275E613320AEC880 -o FB2A3D1B360F599ABAB99DB8669F8308 -A 
 > 979498b1f72d3e28c59fa2e72f9c --ind 42
 Requested --ind 42 is too large for IND bitlen of 5
+expecting error:
+> osmo-auc-gen -3 -a milenage -r 39fa2f4e3d523d8619a73b4f65c3e14d -k 
EB215756028D60E3275E613320AEC880 -o FB2A3D1B360F599ABAB99DB8669F8308 -A 
979498b1f72d3e28c59fa2e72f9c --ind-len 0 --ind 1
+Requested --ind 1 is too large for IND bitlen of 0
diff --git a/tests/osmo-auc-gen/osmo-auc-gen_test.ok 
b/tests/osmo-auc-gen/osmo-auc-gen_test.ok
index 278c88f..f833760 100644
--- a/tests/osmo-auc-gen/osmo-auc-gen_test.ok
+++ b/tests/osmo-auc-gen/osmo-auc-gen_test.ok
@@ -140,6 +140,76 @@
 SQN:   63
 
 
+> osmo-auc-gen -3 -a milenage -r 39fa2f4e3d523d8619a73b4f65c3e14d -k 
EB215756028D60E3275E613320AEC880 -o FB2A3D1B360F599ABAB99DB8669F8308 -A 
979498b1f72d3e28c59fa2e72f9c --ind-len 0
+osmo-auc-gen (C) 2011-2012 by Harald Welte
+This is FREE SOFTWARE with ABSOLUTELY NO WARRANTY
+
+RAND:  39fa2f4e3d523d8619a73b4f65c3e14d
+AUTN:  8704f5ba55eb0000d7fc4f7f19cfc180
+IK:    27497388b6cb044648f396aa155b95ef
+CK:    f64735036e5871319c679f4742a75ea1
+RES:   e229c19e791f2e41
+SRES:  9b36efdf
+Kc:    059a4f668f6fbe39
+SQN:   24
+
+
+> osmo-auc-gen -3 -a milenage -r 39fa2f4e3d523d8619a73b4f65c3e14d -k 
EB215756028D60E3275E613320AEC880 -o FB2A3D1B360F599ABAB99DB8669F8308 -A 
979498b1f72d3e28c59fa2e72f9c --ind-len 1
+osmo-auc-gen (C) 2011-2012 by Harald Welte
+This is FREE SOFTWARE with ABSOLUTELY NO WARRANTY
+
+RAND:  39fa2f4e3d523d8619a73b4f65c3e14d
+AUTN:  8704f5ba55eb0000d7fc4f7f19cfc180
+IK:    27497388b6cb044648f396aa155b95ef
+CK:    f64735036e5871319c679f4742a75ea1
+RES:   e229c19e791f2e41
+SRES:  9b36efdf
+Kc:    059a4f668f6fbe39
+SQN:   24
+
+
+> osmo-auc-gen -3 -a milenage -r 39fa2f4e3d523d8619a73b4f65c3e14d -k 
EB215756028D60E3275E613320AEC880 -o FB2A3D1B360F599ABAB99DB8669F8308 -A 
979498b1f72d3e28c59fa2e72f9c --ind-len 1 --ind 1
+osmo-auc-gen (C) 2011-2012 by Harald Welte
+This is FREE SOFTWARE with ABSOLUTELY NO WARRANTY
+
+RAND:  39fa2f4e3d523d8619a73b4f65c3e14d
+AUTN:  8704f5ba55ea0000aab06de3fd6c01af
+IK:    27497388b6cb044648f396aa155b95ef
+CK:    f64735036e5871319c679f4742a75ea1
+RES:   e229c19e791f2e41
+SRES:  9b36efdf
+Kc:    059a4f668f6fbe39
+SQN:   25
+
+
+> osmo-auc-gen -3 -a milenage -r 39fa2f4e3d523d8619a73b4f65c3e14d -k 
EB215756028D60E3275E613320AEC880 -o FB2A3D1B360F599ABAB99DB8669F8308 -A 
979498b1f72d3e28c59fa2e72f9c --ind-len 8
+osmo-auc-gen (C) 2011-2012 by Harald Welte
+This is FREE SOFTWARE with ABSOLUTELY NO WARRANTY
+
+RAND:  39fa2f4e3d523d8619a73b4f65c3e14d
+AUTN:  8704f5ba54f30000cbba2fbba3c5e242
+IK:    27497388b6cb044648f396aa155b95ef
+CK:    f64735036e5871319c679f4742a75ea1
+RES:   e229c19e791f2e41
+SRES:  9b36efdf
+Kc:    059a4f668f6fbe39
+SQN:   256
+
+
+> osmo-auc-gen -3 -a milenage -r 39fa2f4e3d523d8619a73b4f65c3e14d -k 
EB215756028D60E3275E613320AEC880 -o FB2A3D1B360F599ABAB99DB8669F8308 -A 
979498b1f72d3e28c59fa2e72f9c --ind-len 8 --ind 1
+osmo-auc-gen (C) 2011-2012 by Harald Welte
+This is FREE SOFTWARE with ABSOLUTELY NO WARRANTY
+
+RAND:  39fa2f4e3d523d8619a73b4f65c3e14d
+AUTN:  8704f5ba54f200008f8e14579da5ecbb
+IK:    27497388b6cb044648f396aa155b95ef
+CK:    f64735036e5871319c679f4742a75ea1
+RES:   e229c19e791f2e41
+SRES:  9b36efdf
+Kc:    059a4f668f6fbe39
+SQN:   257
+
+
 expecting error:
 > osmo-auc-gen -3 -a milenage -r 39fa2f4e3d523d8619a73b4f65c3e14d -k 
 > EB215756028D60E3275E613320AEC880 -o FB2A3D1B360F599ABAB99DB8669F8308 -A 
 > 979498b1f72d3e28c59fa2e72f9c --ind -1
 osmo-auc-gen (C) 2011-2012 by Harald Welte
@@ -159,3 +229,10 @@
 osmo-auc-gen (C) 2011-2012 by Harald Welte
 This is FREE SOFTWARE with ABSOLUTELY NO WARRANTY
 
+
+
+expecting error:
+> osmo-auc-gen -3 -a milenage -r 39fa2f4e3d523d8619a73b4f65c3e14d -k 
EB215756028D60E3275E613320AEC880 -o FB2A3D1B360F599ABAB99DB8669F8308 -A 
979498b1f72d3e28c59fa2e72f9c --ind-len 0 --ind 1
+osmo-auc-gen (C) 2011-2012 by Harald Welte
+This is FREE SOFTWARE with ABSOLUTELY NO WARRANTY
+
diff --git a/tests/osmo-auc-gen/osmo-auc-gen_test.sh 
b/tests/osmo-auc-gen/osmo-auc-gen_test.sh
index f7fc87d..55b0757 100755
--- a/tests/osmo-auc-gen/osmo-auc-gen_test.sh
+++ b/tests/osmo-auc-gen/osmo-auc-gen_test.sh
@@ -48,7 +48,15 @@
 invoke -3 -a milenage -r $rand -k $k -o $opc -A $auts --ind 23
 invoke -3 -a milenage -r $rand -k $k -o $opc -A $auts --ind 31
 
+invoke -3 -a milenage -r $rand -k $k -o $opc -A $auts --ind-len 0
+invoke -3 -a milenage -r $rand -k $k -o $opc -A $auts --ind-len 1
+invoke -3 -a milenage -r $rand -k $k -o $opc -A $auts --ind-len 1 --ind 1
+invoke -3 -a milenage -r $rand -k $k -o $opc -A $auts --ind-len 8
+invoke -3 -a milenage -r $rand -k $k -o $opc -A $auts --ind-len 8 --ind 1
+
 # expect error: IND is too large for IND-bitlen of 5 (max 31)
 invoke_err -3 -a milenage -r $rand -k $k -o $opc -A $auts --ind -1
 invoke_err -3 -a milenage -r $rand -k $k -o $opc -A $auts --ind 32
 invoke_err -3 -a milenage -r $rand -k $k -o $opc -A $auts --ind 42
+
+invoke_err -3 -a milenage -r $rand -k $k -o $opc -A $auts --ind-len 0 --ind 1
diff --git a/utils/osmo-auc-gen.c b/utils/osmo-auc-gen.c
index 4f36dee..6e38b52 100644
--- a/utils/osmo-auc-gen.c
+++ b/utils/osmo-auc-gen.c
@@ -81,6 +81,7 @@
                "-f  --amf\tSpecify AMF (only for 3G)\n"
                "-s  --sqn\tSpecify SQN (only for 3G)\n"
                "-i  --ind\tSpecify IND slot for new SQN after AUTS (only for 
3G)\n"
+               "-l  --ind-len\tSpecify IND bit length (default=5) (only for 
3G)\n"
                "-A  --auts\tSpecify AUTS (only for 3G)\n"
                "-r  --rand\tSpecify random value\n"
                "-I  --ipsec\tOutput in triplets.dat format for strongswan\n");
@@ -122,6 +123,7 @@
                        { "amf", 1, 0, 'f' },
                        { "sqn", 1, 0, 's' },
                        { "ind", 1, 0, 'i' },
+                       { "ind-len", 1, 0, 'l' },
                        { "rand", 1, 0, 'r' },
                        { "auts", 1, 0, 'A' },
                        { "help", 0, 0, 'h' },
@@ -130,7 +132,7 @@
 
                rc = 0;
 
-               c = getopt_long(argc, argv, "23a:k:o:f:s:i:r:hO:A:I", 
long_options,
+               c = getopt_long(argc, argv, "23a:k:o:f:s:i:l:r:hO:A:I", 
long_options,
                                &option_index);
 
                if (c == -1)
@@ -214,6 +216,13 @@
                        ind = atoi(optarg);
                        ind_is_set = 1;
                        break;
+               case 'l':
+                       if (test_aud.type != OSMO_AUTH_TYPE_UMTS) {
+                               fprintf(stderr, "Only UMTS has IND bitlen\n");
+                               exit(2);
+                       }
+                       test_aud.u.umts.ind_bitlen = atoi(optarg);
+                       break;
                case 'r':
                        rc = osmo_hexparse(optarg, _rand, sizeof(_rand));
                        rand_is_set = 1;

-- 
To view, visit https://gerrit.osmocom.org/3701
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia1d8b6a823ffc92290b3e39e4e4665aeff80ccc0
Gerrit-PatchSet: 1
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr <[email protected]>

Reply via email to