Commit 8fbd1a22 authored by Lionel Gauthier's avatar Lionel Gauthier

branch LG_PRE_RELEASE_0.3 reintegration

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7107 818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent 059a0a3f
......@@ -60,8 +60,8 @@ typedef struct {
uint8_t kasme[32];
} auc_vector_t;
void RijndaelKeySchedule(u8 key[16]);
void RijndaelEncrypt(u8 in[16], u8 out[16]);
void RijndaelKeySchedule(const u8 const key[16]);
void RijndaelEncrypt(const u8 const in[16], u8 out[16]);
/* Sequence number functions */
struct sqn_ue_s;
......@@ -77,18 +77,18 @@ struct random_state_s;
void random_init(void);
void generate_random(uint8_t *random, ssize_t length);
void SetOPc(u8 op_c[16]);
void SetOPc(const u8 const op_c[16]);
void f1 ( u8 k[16], u8 rand[16], u8 sqn[6], u8 amf[2],
void f1 ( const u8 const k[16], const u8 const rand[16], const u8 const sqn[6], const u8 const amf[2],
u8 mac_a[8] );
void f1star( u8 k[16], u8 rand[16], u8 sqn[6], u8 amf[2],
void f1star( const u8 const k[16], const u8 const rand[16], const u8 const sqn[6], const u8 const amf[2],
u8 mac_s[8] );
void f2345 ( u8 k[16], u8 rand[16],
void f2345 ( const u8 const k[16], const u8 const rand[16],
u8 res[8], u8 ck[16], u8 ik[16], u8 ak[6] );
void f5star( u8 k[16], u8 rand[16],
void f5star( const u8 const k[16], const u8 const rand[16],
u8 ak[6] );
void generate_autn(u8 sqn[6], u8 ak[6], u8 amf[2], u8 mac_a[8], u8 autn[16]);
void generate_autn(const u8 const sqn[6], const u8 const ak[6], const u8 const amf[2], const u8 const mac_a[8], u8 autn[16]);
int generate_vector(uint64_t imsi, uint8_t key[16], uint8_t plmn[3],
uint8_t sqn[6], auc_vector_t *vector);
......
......@@ -32,12 +32,15 @@ u8 OP[16]= {
/*--------------------------- prototypes --------------------------*/
void ComputeOPc( u8 op_c[16] );
void SetOPc(u8 op_c[16])
void SetOPc(const u8 const op_c[16])
{
memcpy(OP, op_c, 16);
printf("SetOPc: OP : %02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X ",
OP[0],OP[1],OP[2],OP[3],OP[4],OP[5],OP[6],OP[7],
OP[8],OP[9],OP[10],OP[11],OP[12],OP[13],OP[14],OP[15]);
}
void generate_autn(u8 sqn[6], u8 ak[6], u8 amf[2], u8 mac_a[8], u8 autn[16])
void generate_autn(const u8 const sqn[6], const u8 const ak[6], const u8 const amf[2], const u8 const mac_a[8], u8 autn[16])
{
int i;
......@@ -58,7 +61,7 @@ void generate_autn(u8 sqn[6], u8 ak[6], u8 amf[2], u8 mac_a[8], u8 autn[16])
* field AMF.
*
*-----------------------------------------------------------------*/
void f1 ( u8 k[16], u8 _rand[16], u8 sqn[6], u8 amf[2],
void f1 ( const u8 const k[16], const u8 const _rand[16], const u8 const sqn[6], const u8 const amf[2],
u8 mac_a[8] )
{
u8 op_c[16];
......@@ -113,7 +116,7 @@ void f1 ( u8 k[16], u8 _rand[16], u8 sqn[6], u8 amf[2],
* confidentiality key CK, integrity key IK and anonymity key AK.
*
*-----------------------------------------------------------------*/
void f2345 ( u8 k[16], u8 _rand[16],
void f2345 ( const u8 const k[16], const u8 const _rand[16],
u8 res[8], u8 ck[16], u8 ik[16], u8 ak[6] )
{
u8 op_c[16];
......@@ -190,7 +193,7 @@ void f2345 ( u8 k[16], u8 _rand[16],
* field AMF.
*
*-----------------------------------------------------------------*/
void f1star( u8 k[16], u8 _rand[16], u8 sqn[6], u8 amf[2],
void f1star( const u8 const k[16], const u8 const _rand[16], const u8 const sqn[6], const u8 const amf[2],
u8 mac_s[8] )
{
u8 op_c[16];
......@@ -245,7 +248,7 @@ void f1star( u8 k[16], u8 _rand[16], u8 sqn[6], u8 amf[2],
* anonymity key AK.
*
*-----------------------------------------------------------------*/
void f5star( u8 k[16], u8 _rand[16],
void f5star( const u8 const k[16], const u8 const _rand[16],
u8 ak[6] )
{
u8 op_c[16];
......
......@@ -79,7 +79,7 @@ u8 Xtime[256] = {
* Rijndael key schedule function. Takes 16-byte key and creates
* all Rijndael's internal subkeys ready for encryption.
*-----------------------------------------------------------------*/
void RijndaelKeySchedule( u8 key[16] )
void RijndaelKeySchedule( const u8 const key[16] )
{
u8 roundConst;
int i, j;
......@@ -188,7 +188,7 @@ void MixColumn(u8 state[4][4])
* 16-byte output (using round keys already derived from 16-byte
* key).
*-----------------------------------------------------------------*/
void RijndaelEncrypt( u8 input[16], u8 output[16] )
void RijndaelEncrypt( const u8 const input[16], u8 output[16] )
{
u8 state[4][4];
int i, r;
......
## MySQL mandatory options
MYSQL_server = "127.0.0.1";
MYSQL_user = "hssadmin";
MYSQL_pass = "admin";
MYSQL_db = "oai_db";
## Freediameter options
FD_conf = "../conf/hss_fd.conf";
## MySQL mandatory options
MYSQL_server = "127.0.0.1";
##MYSQL_user = "root";
##MYSQL_pass = "linux";
MYSQL_user = "hssadmin";
MYSQL_pass = "";
MYSQL_db = "oai_db";
## Freediameter options
FD_conf = "/etc/openair-hss/hss_fd.local.conf";
# -------- Local ---------
# Uncomment if the framework cannot resolv it.
Identity = "UBUNTUPC.pft";
#ListenOn = "127.0.0.1";
# TLS configuration (see previous section)
TLS_Cred = "/usr/local/etc/freeDiameter/hss.cert.pem", "/usr/local/etc/freeDiameter/hss.key.pem";
TLS_CA = "/usr/local/etc/freeDiameter/cacert.pem";
# Disable use of TCP protocol (only listen and connect in SCTP)
# Default : TCP enabled
No_TCP;
#No_SCTP;
# Disable use of IPv6 addresses (only IP)
# Default : IPv6 enabled
No_IPv6;
# Limit the number of SCTP streams
SCTP_streams = 15;
NoRelay;
TLS_old_method;
# Core 2 DUO
AppServThreads = 4;
# -------- Extensions ---------
# Uncomment (and create rtd.conf) to specify routing table for this peer.
#LoadExtension = "rt_default.fdx" : "rtd.conf";
# Uncomment (and create acl.conf) to allow incoming connections from other peers.
#LoadExtension = "acl_wl.fdx" : "/usr/local/src/trunk_co/openair-cn/OPENAIRHSS/conf/acl.conf";
# Uncomment to display periodic state information
#LoadExtension = "dbg_monitor.fdx";
# Uncomment to enable an interactive Python interpreter session.
# (see doc/dbg_interactive.py.sample for more information)
#LoadExtension = "dbg_interactive.fdx";
# Load the RFC4005 dictionary objects
#LoadExtension = "dict_nasreq.fdx";
LoadExtension = "dict_nas_mipv6.fdx";
LoadExtension = "dict_s6a.fdx";
# Load RFC4072 dictionary objects
#LoadExtension = "dict_eap.fdx";
# Load the Diameter EAP server extension (requires diameap.conf)
#LoadExtension = "app_diameap.fdx" : "diameap.conf";
# Load the Accounting Server extension (requires app_acct.conf)
#LoadExtension = "app_acct.fdx" : "app_acct.conf";
# -------- Peers ---------
# The framework will actively attempt to establish and maintain a connection
# with the peers listed here.
# For only accepting incoming connections, see the acl_wl.fx extension.
#ConnectPeer = "ubuntu.localdomain" { ConnectTo = "127.0.0.1"; No_TLS; };
#ConnectPeer = "roux.test.fr" { No_TLS; };
# -------- Local ---------
# Uncomment if the framework cannot resolv it.
Identity = "oai.eur";
#ListenOn = "192.168.13.177";
# TLS configuration (see previous section)
TLS_Cred = "conf/hss.cert.pem","conf/hss.key.pem";
TLS_CA = "conf/cacert.pem";
# Disable use of TCP protocol (only listen and connect in SCTP)
# Default : TCP enabled
No_TCP;
#No_SCTP;
# Disable use of IPv6 addresses (only IP)
# Default : IPv6 enabled
No_IPv6;
# Limit the number of SCTP streams
SCTP_streams = 15;
NoRelay;
TLS_old_method;
# Core 2 DUO
AppServThreads = 4;
# -------- Extensions ---------
# Uncomment (and create rtd.conf) to specify routing table for this peer.
#LoadExtension = "rt_default.fdx" : "rtd.conf";
# Uncomment (and create acl.conf) to allow incoming connections from other peers.
#LoadExtension = "acl_wl.fdx" : "/usr/local/src/trunk_co/openair-cn/OPENAIRHSS/conf/acl.conf";
# Uncomment to display periodic state information
#LoadExtension = "dbg_monitor.fdx";
# Uncomment to enable an interactive Python interpreter session.
# (see doc/dbg_interactive.py.sample for more information)
#LoadExtension = "dbg_interactive.fdx";
# Load the RFC4005 dictionary objects
#LoadExtension = "dict_nasreq.fdx";
LoadExtension = "dict_nas_mipv6.fdx";
LoadExtension = "dict_s6a.fdx";
# Load RFC4072 dictionary objects
#LoadExtension = "dict_eap.fdx";
# Load the Diameter EAP server extension (requires diameap.conf)
#LoadExtension = "app_diameap.fdx" : "diameap.conf";
# Load the Accounting Server extension (requires app_acct.conf)
#LoadExtension = "app_acct.fdx" : "app_acct.conf";
# -------- Peers ---------
# The framework will actively attempt to establish and maintain a connection
# with the peers listed here.
# For only accepting incoming connections, see the acl_wl.fx extension.
#ConnectPeer = "ubuntu.localdomain" { ConnectTo = "127.0.0.1"; No_TLS; };
#ConnectPeer = "roux.test.fr" { No_TLS; };
......@@ -65,7 +65,7 @@ int fd_g_debug_lvl = 1;
/* YACC forward declarations */
extern int yyparse (struct hss_config_s *hss_config_p);
extern uint8_t OP[16];
extern uint8_t opc[16];
static int config_parse_command_line(int argc, char *argv[],
hss_config_t *hss_config_p);
static int config_parse_file(hss_config_t *hss_config_p);
......@@ -107,14 +107,14 @@ int config_init(int argc, char *argv[], hss_config_t *hss_config_p)
if (strlen(hss_config_p->operator_key) == 32) {
ret = sscanf(hss_config_p->operator_key,
"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
(unsigned int*)&OP[0],(unsigned int*)&OP[1],
(unsigned int*)&OP[2],(unsigned int*)&OP[3],
(unsigned int*)&OP[4],(unsigned int*)&OP[5],
(unsigned int*)&OP[6],(unsigned int*)&OP[7],
(unsigned int*)&OP[8],(unsigned int*)&OP[9],
(unsigned int*)&OP[10],(unsigned int*)&OP[11],
(unsigned int*)&OP[12],(unsigned int*)&OP[13],
(unsigned int*)&OP[14],(unsigned int*)&OP[15]);
(unsigned int*)&opc[0],(unsigned int*)&opc[1],
(unsigned int*)&opc[2],(unsigned int*)&opc[3],
(unsigned int*)&opc[4],(unsigned int*)&opc[5],
(unsigned int*)&opc[6],(unsigned int*)&opc[7],
(unsigned int*)&opc[8],(unsigned int*)&opc[9],
(unsigned int*)&opc[10],(unsigned int*)&opc[11],
(unsigned int*)&opc[12],(unsigned int*)&opc[13],
(unsigned int*)&opc[14],(unsigned int*)&opc[15]);
if (ret != 16) {
fprintf(stderr,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment