The FreeRADIUS server  $Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
ts_34_108.h
Go to the documentation of this file.
1 #pragma once
2 /*
3  * This program is is free software; you can redistribute it and/or modify
4  * it under the terms of the GNU General Public License as published by
5  * the Free Software Foundation; either version 2 of the License, or (at
6  * your option) any later version.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program; if not, write to the Free Software
15  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
16  */
17 
18 /**
19  * $Id: 338038ff093126f035512823a4d9f208882fa05e $
20  * @file ts_34_108.h
21  * @brief Implementation of the TS.34.108 dummy USMI algorithm
22  *
23  * @copyright 2019 The FreeRADIUS server project
24  * @copyright 2019 Arran Cudbard-Bell <a.cudbardb@freeradius.org>
25  */
26 
27 /*
28  * Inputs
29  */
30 #define TS_34_108_KI_SIZE 16 //!< Subscriber key.
31 #define TS_34_108_OP_SIZE 16 //!< Operator code (unique to the operator)
32 #define TS_34_108_AMF_SIZE 2 //!< Authentication management field.
33 #define TS_34_108_SQN_SIZE 6 //!< Sequence number.
34 #define TS_34_108_RAND_SIZE 16 //!< Random challenge.
35 
36 /*
37  * UMTS Outputs
38  */
39 #define TS_34_108_AK_SIZE 6 //!< Anonymisation key.
40 #define TS_34_108_AUTN_SIZE 16 //!< Network authentication key.
41 #define TS_34_108_IK_SIZE 16 //!< Integrity key.
42 #define TS_34_108_CK_SIZE 16 //!< Ciphering key.
43 #define TS_34_108_RES_SIZE 16
44 #define TS_34_108_AUTS_SIZE 14
45 
51  uint8_t const amf[TS_34_108_AMF_SIZE],
52  uint8_t const ki[TS_34_108_KI_SIZE],
53  uint64_t sqn,
54  uint8_t const rand[TS_34_108_RAND_SIZE]);
unsigned char uint8_t
Definition: merged_model.c:30
#define TS_34_108_RAND_SIZE
Random challenge.
Definition: ts_34_108.h:34
#define TS_34_108_KI_SIZE
Subscriber key.
Definition: ts_34_108.h:30
#define TS_34_108_CK_SIZE
Ciphering key.
Definition: ts_34_108.h:42
#define TS_34_108_IK_SIZE
Integrity key.
Definition: ts_34_108.h:41
int ts_34_108_umts_generate(uint8_t autn[TS_34_108_AUTN_SIZE], uint8_t ik[TS_34_108_IK_SIZE], uint8_t ck[TS_34_108_CK_SIZE], uint8_t ak[TS_34_108_AK_SIZE], uint8_t res[TS_34_108_RES_SIZE], uint8_t const amf[TS_34_108_AMF_SIZE], uint8_t const ki[TS_34_108_KI_SIZE], uint64_t sqn, uint8_t const rand[TS_34_108_RAND_SIZE])
Definition: ts_34_108.c:40
#define TS_34_108_AK_SIZE
Anonymisation key.
Definition: ts_34_108.h:39
#define TS_34_108_AUTN_SIZE
Network authentication key.
Definition: ts_34_108.h:40
#define TS_34_108_AMF_SIZE
Authentication management field.
Definition: ts_34_108.h:32
#define TS_34_108_RES_SIZE
Definition: ts_34_108.h:43