Lines Matching +full:6 +full:- +full:bit

2  * 3GPP AKA - Milenage algorithm (3GPP TS 35.205, .206, .207, .208)
3 * Copyright (c) 2006-2007 <j@w1.fi>
10 * EAP-AKA to be tested properly with real USIM cards.
26 * milenage_f1 - Milenage f1 and f1* algorithms
27 * @opc: OPc = 128-bit value derived from OP and K
28 * @k: K = 128-bit subscriber key
29 * @_rand: RAND = 128-bit random challenge
30 * @sqn: SQN = 48-bit sequence number
31 * @amf: AMF = 16-bit authentication management field
32 * @mac_a: Buffer for MAC-A = 64-bit network authentication code, or %NULL
33 * @mac_s: Buffer for MAC-S = 64-bit resync authentication code, or %NULL
34 * Returns: 0 on success, -1 on failure
46 return -1; in milenage_f1()
49 os_memcpy(tmp2, sqn, 6); in milenage_f1()
50 os_memcpy(tmp2 + 6, amf, 2); in milenage_f1()
65 return -1; in milenage_f1()
77 * milenage_f2345 - Milenage f2, f3, f4, f5, f5* algorithms
78 * @opc: OPc = 128-bit value derived from OP and K
79 * @k: K = 128-bit subscriber key
80 * @_rand: RAND = 128-bit random challenge
81 * @res: Buffer for RES = 64-bit signed response (f2), or %NULL
82 * @ck: Buffer for CK = 128-bit confidentiality key (f3), or %NULL
83 * @ik: Buffer for IK = 128-bit integrity key (f4), or %NULL
84 * @ak: Buffer for AK = 48-bit anonymity key (f5), or %NULL
85 * @akstar: Buffer for AK = 48-bit anonymity key (f5*), or %NULL
86 * Returns: 0 on success, -1 on failure
98 return -1; in milenage_f2345()
112 return -1; in milenage_f2345()
118 os_memcpy(ak, tmp3, 6); /* f5 */ in milenage_f2345()
127 return -1; in milenage_f2345()
139 return -1; in milenage_f2345()
151 return -1; in milenage_f2345()
152 for (i = 0; i < 6; i++) in milenage_f2345()
161 * milenage_generate - Generate AKA AUTN,IK,CK,RES
162 * @opc: OPc = 128-bit operator variant algorithm configuration field (encr.)
163 * @amf: AMF = 16-bit authentication management field
164 * @k: K = 128-bit subscriber key
165 * @sqn: SQN = 48-bit sequence number
166 * @_rand: RAND = 128-bit random challenge
167 * @autn: Buffer for AUTN = 128-bit authentication token
168 * @ik: Buffer for IK = 128-bit integrity key (f4), or %NULL
169 * @ck: Buffer for CK = 128-bit confidentiality key (f3), or %NULL
170 * @res: Buffer for RES = 64-bit signed response (f2), or %NULL
178 u8 mac_a[8], ak[6]; in milenage_generate()
192 for (i = 0; i < 6; i++) in milenage_generate()
194 os_memcpy(autn + 6, amf, 2); in milenage_generate()
200 * milenage_auts - Milenage AUTS validation
201 * @opc: OPc = 128-bit operator variant algorithm configuration field (encr.)
202 * @k: K = 128-bit subscriber key
203 * @_rand: RAND = 128-bit random challenge
204 * @auts: AUTS = 112-bit authentication token from client
205 * @sqn: Buffer for SQN = 48-bit sequence number
206 * Returns: 0 = success (sqn filled), -1 on failure
212 u8 ak[6], mac_s[8]; in milenage_auts()
216 return -1; in milenage_auts()
217 for (i = 0; i < 6; i++) in milenage_auts()
220 os_memcmp_const(mac_s, auts + 6, 8) != 0) in milenage_auts()
221 return -1; in milenage_auts()
227 * gsm_milenage - Generate GSM-Milenage (3GPP TS 55.205) authentication triplet
228 * @opc: OPc = 128-bit operator variant algorithm configuration field (encr.)
229 * @k: K = 128-bit subscriber key
230 * @_rand: RAND = 128-bit random challenge
231 * @sres: Buffer for SRES = 32-bit SRES
232 * @kc: Buffer for Kc = 64-bit Kc
233 * Returns: 0 on success, -1 on failure
241 return -1; in gsm_milenage()
257 * milenage_generate - Generate AKA AUTN,IK,CK,RES
258 * @opc: OPc = 128-bit operator variant algorithm configuration field (encr.)
259 * @k: K = 128-bit subscriber key
260 * @sqn: SQN = 48-bit sequence number
261 * @_rand: RAND = 128-bit random challenge
262 * @autn: AUTN = 128-bit authentication token
263 * @ik: Buffer for IK = 128-bit integrity key (f4), or %NULL
264 * @ck: Buffer for CK = 128-bit confidentiality key (f3), or %NULL
265 * @res: Buffer for RES = 64-bit signed response (f2), or %NULL
267 * @auts: 112-bit buffer for AUTS
268 * Returns: 0 on success, -1 on failure, or -2 on synchronization failure
275 u8 mac_a[8], ak[6], rx_sqn[6]; in milenage_check()
282 return -1; in milenage_check()
288 wpa_hexdump_key(MSG_DEBUG, "Milenage: AK", ak, 6); in milenage_check()
291 for (i = 0; i < 6; i++) in milenage_check()
293 wpa_hexdump(MSG_DEBUG, "Milenage: SQN", rx_sqn, 6); in milenage_check()
295 if (os_memcmp(rx_sqn, sqn, 6) <= 0) { in milenage_check()
298 return -1; in milenage_check()
299 wpa_hexdump_key(MSG_DEBUG, "Milenage: AK*", ak, 6); in milenage_check()
300 for (i = 0; i < 6; i++) in milenage_check()
302 if (milenage_f1(opc, k, _rand, sqn, auts_amf, NULL, auts + 6)) in milenage_check()
303 return -1; in milenage_check()
305 return -2; in milenage_check()
308 amf = autn + 6; in milenage_check()
311 return -1; in milenage_check()
319 return -1; in milenage_check()