Merge branch 'amf_grab' into raa

master
Ismael Gomez 7 years ago
commit 9bb23d9d5e

@ -43,7 +43,6 @@ typedef enum{
typedef struct{ typedef struct{
std::string algo; std::string algo;
std::string op; std::string op;
std::string amf;
std::string imsi; std::string imsi;
std::string imei; std::string imei;
std::string k; std::string k;

@ -124,7 +124,6 @@ void parse_args(all_args_t *args, int argc, char *argv[]) {
("usim.algo", bpo::value<string>(&args->usim.algo), "USIM authentication algorithm") ("usim.algo", bpo::value<string>(&args->usim.algo), "USIM authentication algorithm")
("usim.op", bpo::value<string>(&args->usim.op), "USIM operator variant") ("usim.op", bpo::value<string>(&args->usim.op), "USIM operator variant")
("usim.amf", bpo::value<string>(&args->usim.amf), "USIM authentication management field")
("usim.imsi", bpo::value<string>(&args->usim.imsi), "USIM IMSI") ("usim.imsi", bpo::value<string>(&args->usim.imsi), "USIM IMSI")
("usim.imei", bpo::value<string>(&args->usim.imei), "USIM IMEI") ("usim.imei", bpo::value<string>(&args->usim.imei), "USIM IMEI")
("usim.k", bpo::value<string>(&args->usim.k), "USIM K") ("usim.k", bpo::value<string>(&args->usim.k), "USIM K")

@ -53,13 +53,6 @@ void usim::init(usim_args_t *args, srslte::log *usim_log_)
usim_log->console("Invalid length for OP: %d should be %d", args->op.length(), 32); usim_log->console("Invalid length for OP: %d should be %d", args->op.length(), 32);
} }
if(4 == args->amf.length()) {
str_to_hex(args->amf, amf);
} else {
usim_log->error("Invalid length for AMF: %d should be %d", args->amf.length(), 4);
usim_log->console("Invalid length for AMF: %d should be %d", args->amf.length(), 4);
}
if(15 == args->imsi.length()) { if(15 == args->imsi.length()) {
imsi = 0; imsi = 0;
for(i=0; i<15; i++) for(i=0; i<15; i++)
@ -356,6 +349,11 @@ void usim::gen_auth_res_milenage( uint8_t *rand,
{ {
sqn[i] = autn_enb[i] ^ ak[i]; sqn[i] = autn_enb[i] ^ ak[i];
} }
// Extract AMF from autn
for(int i=0;i<2;i++)
{
amf[i]=autn_enb[6+i];
}
// Generate MAC // Generate MAC
security_milenage_f1( k, security_milenage_f1( k,
@ -431,6 +429,10 @@ void usim::gen_auth_res_xor(uint8_t *rand,
for(i=0;i<6;i++) { for(i=0;i<6;i++) {
sqn[i] = autn_enb[i] ^ ak[i]; sqn[i] = autn_enb[i] ^ ak[i];
} }
// Extract AMF from autn
for(int i=0;i<2;i++){
amf[i]=autn_enb[6+i];
}
// Generate cdout // Generate cdout
for(i=0; i<6; i++) { for(i=0; i<6; i++) {

@ -117,7 +117,6 @@ int security_command_test()
usim_args_t args; usim_args_t args;
args.algo = "xor"; args.algo = "xor";
args.amf = "9001";
args.imei = "353490069873319"; args.imei = "353490069873319";
args.imsi = "001010123456789"; args.imsi = "001010123456789";
args.k = "00112233445566778899aabbccddeeff"; args.k = "00112233445566778899aabbccddeeff";
@ -179,7 +178,6 @@ int mme_attach_request_test()
srsue::usim usim; srsue::usim usim;
usim_args_t args; usim_args_t args;
args.algo = "xor"; args.algo = "xor";
args.amf = "9001";
args.imei = "353490069873319"; args.imei = "353490069873319";
args.imsi = "001010123456789"; args.imsi = "001010123456789";
args.k = "00112233445566778899aabbccddeeff"; args.k = "00112233445566778899aabbccddeeff";

@ -74,7 +74,6 @@ int main(int argc, char **argv)
usim_args_t args; usim_args_t args;
args.algo = "milenage"; args.algo = "milenage";
args.amf = "8000";
args.imei = "35609204079301"; args.imei = "35609204079301";
args.imsi = "208930000000001"; args.imsi = "208930000000001";
args.k = "8BAF473F2F8FD09487CCCBD7097C6862"; args.k = "8BAF473F2F8FD09487CCCBD7097C6862";

@ -93,7 +93,6 @@ file_max_size = -1
[usim] [usim]
algo = xor algo = xor
op = 63BFA50EE6523365FF14C1F45F88737D op = 63BFA50EE6523365FF14C1F45F88737D
amf = 9001
k = 00112233445566778899aabbccddeeff k = 00112233445566778899aabbccddeeff
imsi = 001010123456789 imsi = 001010123456789
imei = 353490069873319 imei = 353490069873319

Loading…
Cancel
Save