summaryrefslogtreecommitdiffstats
path: root/tests/auc/auc_3g_test.err
blob: e8e6f034cc8d2cf33f8da27bf9e069ccaa4d5c34 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
===== test_gen_vectors_2g_only
aud3g.u.umts.sqn == 0
DAUC Computing 1 auth vector: 2G only
DAUC 2G: ki = eb215756028d60e3275e613320aec880
DAUC vector [0]: rand = 39fa2f4e3d523d8619a73b4f65c3e14d
DAUC vector [0]: kc = 241a5b16aeb8e400
DAUC vector [0]: sres = 429d5b27
DAUC vector [0]: auth_types = 0x1
rc == 1
vector matches expectations
aud3g.u.umts.sqn == 0
DAUC Computing 1 auth vector: 2G only
DAUC 2G: ki = eb215756028d60e3275e613320aec880
DAUC vector [0]: rand = 39fa2f4e3d523d8619a73b4f65c3e14d
DAUC vector [0]: kc = 241a5b16aeb8e400
DAUC vector [0]: sres = 429d5b27
DAUC vector [0]: auth_types = 0x1
rc == 1
vector matches expectations
===== test_gen_vectors_2g_only: SUCCESS


===== test_gen_vectors_2g_plus_3g
aud3g.u.umts.sqn == 0
DAUC Computing 1 auth vector: 3G + separate 2G
DAUC 3G: k = eb215756028d60e3275e613320aec880
DAUC 3G: opc = fb2a3d1b360f599abab99db8669f8308
DAUC 2G: ki = eb215756028d60e3275e613320aec880
DAUC vector [0]: rand = 39fa2f4e3d523d8619a73b4f65c3e14d
DAUC vector [0]: sqn = 0
DAUC vector [0]: autn = 8704f5ba55f30000d2ee44b22c8ea919
DAUC vector [0]: ck = f64735036e5871319c679f4742a75ea1
DAUC vector [0]: ik = 27497388b6cb044648f396aa155b95ef
DAUC vector [0]: res = e229c19e791f2e410000000000000000
DAUC vector [0]: res_len = 8
DAUC vector [0]: deriving 2G from 3G
DAUC vector [0]: kc = 241a5b16aeb8e400
DAUC vector [0]: sres = 429d5b27
DAUC vector [0]: auth_types = 0x3
rc == 1
vector matches expectations
aud3g.u.umts.sqn == 1
aud3g.u.umts.sqn == 0
DAUC Computing 1 auth vector: 3G + separate 2G
DAUC 3G: k = eb215756028d60e3275e613320aec880
DAUC 3G: opc = fb2a3d1b360f599abab99db8669f8308
DAUC 2G: ki = eb215756028d60e3275e613320aec880
DAUC vector [0]: rand = 39fa2f4e3d523d8619a73b4f65c3e14d
DAUC vector [0]: sqn = 0
DAUC vector [0]: autn = 8704f5ba55f30000d2ee44b22c8ea919
DAUC vector [0]: ck = f64735036e5871319c679f4742a75ea1
DAUC vector [0]: ik = 27497388b6cb044648f396aa155b95ef
DAUC vector [0]: res = e229c19e791f2e410000000000000000
DAUC vector [0]: res_len = 8
DAUC vector [0]: deriving 2G from 3G
DAUC vector [0]: kc = 241a5b16aeb8e400
DAUC vector [0]: sres = 429d5b27
DAUC vector [0]: auth_types = 0x3
rc == 1
aud3g.u.umts.sqn == 1
vector matches expectations
===== test_gen_vectors_2g_plus_3g: SUCCESS


===== test_gen_vectors_3g_only
aud3g.u.umts.sqn == 0
DAUC Computing 1 auth vector: 3G only (2G derived from 3G keys)
DAUC 3G: k = eb215756028d60e3275e613320aec880
DAUC 3G: opc = fb2a3d1b360f599abab99db8669f8308
DAUC vector [0]: rand = 39fa2f4e3d523d8619a73b4f65c3e14d
DAUC vector [0]: sqn = 0
DAUC vector [0]: autn = 8704f5ba55f30000d2ee44b22c8ea919
DAUC vector [0]: ck = f64735036e5871319c679f4742a75ea1
DAUC vector [0]: ik = 27497388b6cb044648f396aa155b95ef
DAUC vector [0]: res = e229c19e791f2e410000000000000000
DAUC vector [0]: res_len = 8
DAUC vector [0]: kc = 059a4f668f6fbe39
DAUC vector [0]: sres = 9b36efdf
DAUC vector [0]: auth_types = 0x3
rc == 1
vector matches expectations
aud3g.u.umts.sqn == 1
aud3g.u.umts.sqn == 0
DAUC Computing 1 auth vector: 3G only (2G derived from 3G keys)
DAUC 3G: k = eb215756028d60e3275e613320aec880
DAUC 3G: opc = fb2a3d1b360f599abab99db8669f8308
DAUC vector [0]: rand = 39fa2f4e3d523d8619a73b4f65c3e14d
DAUC vector [0]: sqn = 0
DAUC vector [0]: autn = 8704f5ba55f30000d2ee44b22c8ea919
DAUC vector [0]: ck = f64735036e5871319c679f4742a75ea1
DAUC vector [0]: ik = 27497388b6cb044648f396aa155b95ef
DAUC vector [0]: res = e229c19e791f2e410000000000000000
DAUC vector [0]: res_len = 8
DAUC vector [0]: kc = 059a4f668f6fbe39
DAUC vector [0]: sres = 9b36efdf
DAUC vector [0]: auth_types = 0x3
rc == 1
aud3g.u.umts.sqn == 1
vector matches expectations
- test AUTS resync
aud3g.u.umts.sqn == 0
DAUC Computing 1 auth vector: 3G only (2G derived from 3G keys), with AUTS resync
DAUC 3G: k = eb215756028d60e3275e613320aec880
DAUC 3G: opc = fb2a3d1b360f599abab99db8669f8308
DAUC vector [0]: rand = 897210a0f7de278f0b8213098e098a3f
DAUC vector [0]: resync: auts = 979498b1f72d3e28c59fa2e72f9c
DAUC vector [0]: resync: rand_auts = 39fa2f4e3d523d8619a73b4f65c3e14d
DAUC vector [0]: resync: sqn = 24
DAUC vector [0]: autn = c6b9790dad4b00000cf322869ea6a481
DAUC vector [0]: ck = e9922bd036718ed9e40bd1d02c3b81a5
DAUC vector [0]: ik = f19c20ca863137f8892326d959ec5e01
DAUC vector [0]: res = 9af5a557902d2db80000000000000000
DAUC vector [0]: res_len = 8
DAUC vector [0]: kc = 7526fc13c5976685
DAUC vector [0]: sres = 0ad888ef
DAUC vector [0]: auth_types = 0x3
rc == 1
aud3g.u.umts.sqn == 25
vector matches expectations
- verify N vectors with AUTS resync == N vectors without AUTS
First just set rand and sqn = 24, and compute 3 vectors
aud3g.u.umts.sqn == 24
DAUC Computing 3 auth vectors: 3G only (2G derived from 3G keys)
DAUC 3G: k = eb215756028d60e3275e613320aec880
DAUC 3G: opc = fb2a3d1b360f599abab99db8669f8308
DAUC vector [0]: rand = 897210a0f7de278f0b8213098e098a3f
DAUC vector [0]: sqn = 24
DAUC vector [0]: autn = c6b9790dad4b00000cf322869ea6a481
DAUC vector [0]: ck = e9922bd036718ed9e40bd1d02c3b81a5
DAUC vector [0]: ik = f19c20ca863137f8892326d959ec5e01
DAUC vector [0]: res = 9af5a557902d2db80000000000000000
DAUC vector [0]: res_len = 8
DAUC vector [0]: kc = 7526fc13c5976685
DAUC vector [0]: sres = 0ad888ef
DAUC vector [0]: auth_types = 0x3
DAUC vector [1]: rand = 9a8321b108ef38a01c93241a9f1a9b50
DAUC vector [1]: sqn = 25
DAUC vector [1]: autn = 79a5113eb0910000be6020540503ffc5
DAUC vector [1]: ck = 3686f05df057d1899c66ae4eb18cf941
DAUC vector [1]: ik = 79f21ed53bcb47787de57d136ff803a5
DAUC vector [1]: res = 43023475cb29292c0000000000000000
DAUC vector [1]: res_len = 8
DAUC vector [1]: kc = aef73dd515e86c15
DAUC vector [1]: sres = 882b1d59
DAUC vector [1]: auth_types = 0x3
DAUC vector [2]: rand = ab9432c2190049b12da4352bb02bac61
DAUC vector [2]: sqn = 26
DAUC vector [2]: autn = 24b018d46c3b00009c7e1b47f3a19b2b
DAUC vector [2]: ck = d86c3191a36fc0602e48202ef2080964
DAUC vector [2]: ik = 648dab72016181406243420649e63dc9
DAUC vector [2]: res = 010cab11cc63a6e40000000000000000
DAUC vector [2]: res_len = 8
DAUC vector [2]: kc = f0eaf8cb19e0758d
DAUC vector [2]: sres = cd6f0df5
DAUC vector [2]: auth_types = 0x3
rc == 3
aud3g.u.umts.sqn == 27
[0]: vector matches expectations
[1]: vector matches expectations
[2]: vector matches expectations
Now reach sqn = 24 with AUTS and expect the same
DAUC Computing 3 auth vectors: 3G only (2G derived from 3G keys), with AUTS resync
DAUC 3G: k = eb215756028d60e3275e613320aec880
DAUC 3G: opc = fb2a3d1b360f599abab99db8669f8308
DAUC vector [0]: rand = 897210a0f7de278f0b8213098e098a3f
DAUC vector [0]: resync: auts = 979498b1f72d3e28c59fa2e72f9c
DAUC vector [0]: resync: rand_auts = 39fa2f4e3d523d8619a73b4f65c3e14d
DAUC vector [0]: resync: sqn = 24
DAUC vector [0]: autn = c6b9790dad4b00000cf322869ea6a481
DAUC vector [0]: ck = e9922bd036718ed9e40bd1d02c3b81a5
DAUC vector [0]: ik = f19c20ca863137f8892326d959ec5e01
DAUC vector [0]: res = 9af5a557902d2db80000000000000000
DAUC vector [0]: res_len = 8
DAUC vector [0]: kc = 7526fc13c5976685
DAUC vector [0]: sres = 0ad888ef
DAUC vector [0]: auth_types = 0x3
DAUC vector [1]: rand = 9a8321b108ef38a01c93241a9f1a9b50
DAUC vector [1]: resync: auts = 979498b1f72d3e28c59fa2e72f9c
DAUC vector [1]: resync: rand_auts = 39fa2f4e3d523d8619a73b4f65c3e14d
DAUC vector [1]: resync: sqn = 24
DAUC vector [1]: autn = 79a5113eb0900000f7e138537aa0962b
DAUC vector [1]: ck = 3686f05df057d1899c66ae4eb18cf941
DAUC vector [1]: ik = 79f21ed53bcb47787de57d136ff803a5
DAUC vector [1]: res = 43023475cb29292c0000000000000000
DAUC vector [1]: res_len = 8
DAUC vector [1]: kc = aef73dd515e86c15
DAUC vector [1]: sres = 882b1d59
DAUC vector [1]: auth_types = 0x3
DAUC vector [2]: rand = ab9432c2190049b12da4352bb02bac61
DAUC vector [2]: resync: auts = 979498b1f72d3e28c59fa2e72f9c
DAUC vector [2]: resync: rand_auts = 39fa2f4e3d523d8619a73b4f65c3e14d
DAUC vector [2]: resync: sqn = 24
DAUC vector [2]: autn = 24b018d46c390000d88e11730d0367ac
DAUC vector [2]: ck = d86c3191a36fc0602e48202ef2080964
DAUC vector [2]: ik = 648dab72016181406243420649e63dc9
DAUC vector [2]: res = 010cab11cc63a6e40000000000000000
DAUC vector [2]: res_len = 8
DAUC vector [2]: kc = f0eaf8cb19e0758d
DAUC vector [2]: sres = cd6f0df5
DAUC vector [2]: auth_types = 0x3
THERE IS A BUG AND THE TEST PASSES THE WRONG VECTORS UNTIL THAT IS FIXED
The SQN should increment with each new vector.
[0]: vector matches expectations
[1]: vector matches expectations
[2]: vector matches expectations
===== test_gen_vectors_3g_only: SUCCESS


===== test_gen_vectors_bad_args

- no auth data (a)
DAUC auc_compute_vectors() called with neither 2G nor 3G auth data available
rc == -1

- no auth data (b)
DAUC auc_compute_vectors() called with neither 2G nor 3G auth data available
rc == -1

- no auth data (c)
DAUC auc_compute_vectors() called with neither 2G nor 3G auth data available
rc == -1

- no auth data (d)
DAUC auc_compute_vectors() called with neither 2G nor 3G auth data available
rc == -1

- no auth data (e)
DAUC auc_compute_vectors() called with neither 2G nor 3G auth data available
rc == -1

- no auth data (f)
DAUC auc_compute_vectors() called with neither 2G nor 3G auth data available
rc == -1

- no auth data (g)
DAUC auc_compute_vectors() called with neither 2G nor 3G auth data available
rc == -1

- no auth data (h)
DAUC auc_compute_vectors() called with neither 2G nor 3G auth data available
rc == -1

- no auth data (i)
DAUC auc_compute_vectors() called with neither 2G nor 3G auth data available
rc == -1

- no auth data (j)
DAUC auc_compute_vectors() called with neither 2G nor 3G auth data available
rc == -1

- no auth data (k)
DAUC auc_compute_vectors() called with neither 2G nor 3G auth data available
rc == -1

- no auth data (l)
DAUC auc_compute_vectors() called with neither 2G nor 3G auth data available
rc == -1

- no auth data (m)
DAUC auc_compute_vectors() called with neither 2G nor 3G auth data available
rc == -1

- no auth data (n)
DAUC auc_compute_vectors() called with neither 2G nor 3G auth data available
rc == -1

- no auth data (o)
DAUC auc_compute_vectors() called with neither 2G nor 3G auth data available
rc == -1

- no auth data (p)
DAUC auc_compute_vectors() called with neither 2G nor 3G auth data available
rc == -1

- wrong auth data type (a)
DAUC auc_compute_vectors() called with non-2G auth data passed for aud2g arg
rc == -1

- wrong auth data type (b)
DAUC auc_compute_vectors() called with non-2G auth data passed for aud2g arg
rc == -1

- wrong auth data type (c)
DAUC auc_compute_vectors() called with non-2G auth data passed for aud2g arg
rc == -1

- wrong auth data type (d)
DAUC auc_compute_vectors() called with non-2G auth data passed for aud2g arg
rc == -1

- wrong auth data type (e)
DAUC auc_compute_vectors() called with non-3G auth data passed for aud3g arg
rc == -1

- wrong auth data type (f)
DAUC auc_compute_vectors() called with non-3G auth data passed for aud3g arg
rc == -1

- wrong auth data type (g)
DAUC auc_compute_vectors() called with non-3G auth data passed for aud3g arg
rc == -1

- wrong auth data type (h)
DAUC auc_compute_vectors() called with non-3G auth data passed for aud3g arg
rc == -1

- wrong auth data type (i)
DAUC auc_compute_vectors() called with non-2G auth data passed for aud2g arg
rc == -1

- wrong auth data type (j)
DAUC auc_compute_vectors() called with non-2G auth data passed for aud2g arg
rc == -1

- wrong auth data type (k)
DAUC auc_compute_vectors() called with non-3G auth data passed for aud3g arg
rc == -1

- AUTS for 2G-only (a)
DAUC auc_compute_vectors() with AUTS called but no 3G auth data passed
rc == -1

- AUTS for 2G-only (b)
DAUC auc_compute_vectors() with AUTS called but no 3G auth data passed
rc == -1

- AUTS for 2G-only (c)
DAUC auc_compute_vectors() with AUTS called but no 3G auth data passed
rc == -1

- AUTS for 2G-only (d)
DAUC auc_compute_vectors() with AUTS called but no 3G auth data passed
rc == -1

- incomplete AUTS (a)
DAUC auc_compute_vectors() with only one of AUTS and AUTS_RAND given, need both or neither
rc == -1

- incomplete AUTS (b)
DAUC auc_compute_vectors() with only one of AUTS and AUTS_RAND given, need both or neither
rc == -1

- incomplete AUTS (c)
DAUC auc_compute_vectors() with only one of AUTS and AUTS_RAND given, need both or neither
rc == -1

- incomplete AUTS (d)
DAUC auc_compute_vectors() with only one of AUTS and AUTS_RAND given, need both or neither
rc == -1
===== test_gen_vectors_bad_args: SUCCESS