blob: 55b0757a0182a0a08662f2dbbb355605ba079cbb [file] [log] [blame]
Neels Hofmeyrd3b58732017-03-15 01:52:58 +01001#!/bin/sh
2osmo_auc_gen="$1"
3
Neels Hofmeyr9ca7d3e2017-08-26 22:57:07 +02004if [ -z "$osmo_auc_gen" ]; then
5 echo 'Error: pass a path to the osmo-auc-gen binary as argument:'
6 echo ' ./osmo-auc-gen_test.sh /path/to/osmo-auc-gen'
7 exit 1
8fi
9
Neels Hofmeyrd3b58732017-03-15 01:52:58 +010010set -e
11
12# run the osmo-auc-gen binary verbosely without showing its absolute path
13# for identical expected output everywhere.
14invoke() {
15 echo
16 echo
17 echo '>' osmo-auc-gen $@
18 $osmo_auc_gen $@
19}
20
Neels Hofmeyr3cb08272017-08-26 21:45:33 +020021invoke_err() {
22 echo
23 echo
24 echo expecting error:
25 echo '>' osmo-auc-gen $@
26 echo expecting error: >&2
27 echo '>' osmo-auc-gen $@ >&2
28 $osmo_auc_gen $@ && exit 1 || true
29}
30
Neels Hofmeyrd3b58732017-03-15 01:52:58 +010031bytes1="6a61050765caa32c90371370e5d6dc2d"
32bytes2="1dc4f974325cce611e54f516dc1fec56"
33bytes3="2a48162ff3edca4adf0b7b5e527d6c16"
34
35invoke -3 -a milenage -r $bytes1 -k $bytes2 -o $bytes3 -s 0
36invoke -3 -a milenage -r $bytes1 -k $bytes2 -o $bytes3 -s 1
37invoke -3 -a milenage -r $bytes1 -k $bytes2 -o $bytes3 -s 23
38invoke -3 -a milenage -r $bytes2 -k $bytes3 -o $bytes1 -s 42
39invoke -3 -a milenage -r $bytes3 -k $bytes1 -o $bytes2 -s 99
40invoke -3 -a milenage -r $bytes1 -k $bytes3 -o $bytes2 -s 281474976710655
41
42k="EB215756028D60E3275E613320AEC880"
43opc="FB2A3D1B360F599ABAB99DB8669F8308"
44rand="39fa2f4e3d523d8619a73b4f65c3e14d"
Neels Hofmeyr3cb08272017-08-26 21:45:33 +020045auts="979498b1f72d3e28c59fa2e72f9c" # --> SQN.MS = 23
Neels Hofmeyrd3b58732017-03-15 01:52:58 +010046invoke -3 -a milenage -r $rand -k $k -o $opc -A $auts
Neels Hofmeyr3cb08272017-08-26 21:45:33 +020047invoke -3 -a milenage -r $rand -k $k -o $opc -A $auts --ind 5
48invoke -3 -a milenage -r $rand -k $k -o $opc -A $auts --ind 23
49invoke -3 -a milenage -r $rand -k $k -o $opc -A $auts --ind 31
50
Neels Hofmeyrb1af6ef2017-08-26 21:38:51 +020051invoke -3 -a milenage -r $rand -k $k -o $opc -A $auts --ind-len 0
52invoke -3 -a milenage -r $rand -k $k -o $opc -A $auts --ind-len 1
53invoke -3 -a milenage -r $rand -k $k -o $opc -A $auts --ind-len 1 --ind 1
54invoke -3 -a milenage -r $rand -k $k -o $opc -A $auts --ind-len 8
55invoke -3 -a milenage -r $rand -k $k -o $opc -A $auts --ind-len 8 --ind 1
56
Neels Hofmeyr3cb08272017-08-26 21:45:33 +020057# expect error: IND is too large for IND-bitlen of 5 (max 31)
58invoke_err -3 -a milenage -r $rand -k $k -o $opc -A $auts --ind -1
59invoke_err -3 -a milenage -r $rand -k $k -o $opc -A $auts --ind 32
60invoke_err -3 -a milenage -r $rand -k $k -o $opc -A $auts --ind 42
Neels Hofmeyrb1af6ef2017-08-26 21:38:51 +020061
62invoke_err -3 -a milenage -r $rand -k $k -o $opc -A $auts --ind-len 0 --ind 1