diff options
Diffstat (limited to 'utils')
| -rw-r--r-- | utils/osmo-auc-gen.c | 12 | 
1 files changed, 7 insertions, 5 deletions
diff --git a/utils/osmo-auc-gen.c b/utils/osmo-auc-gen.c index 6fa7cec7..4e2456a7 100644 --- a/utils/osmo-auc-gen.c +++ b/utils/osmo-auc-gen.c @@ -198,6 +198,10 @@ int main(int argc, char **argv)  			}  			ul = strtoul(optarg, 0, 10);  			test_aud.u.umts.sqn = ul; +			/* Before calculating the UMTS auth vector, +			 * osmo_auth_gen_vec() increments the SQN. SQN-1 here +			 * to end up with the SQN the user requested. */ +			test_aud.u.umts.sqn--;  			break;  		case 'r':  			rc = osmo_hexparse(optarg, _rand, sizeof(_rand)); @@ -260,16 +264,14 @@ int main(int argc, char **argv)  	else {  		dump_auth_vec(vec);  		if (test_aud.type == OSMO_AUTH_TYPE_UMTS) -			/* After generating, SQN is incremented, so -1 */ -			printf("SQN:\t%" PRIu64 "\n", test_aud.u.umts.sqn - 1); +			printf("SQN:\t%" PRIu64 "\n", test_aud.u.umts.sqn);  	}  	/* After recovering SQN.MS from AUTS, milenage_gen_vec_auts() does -	 * aud->u.umts.sqn++, and after vector generation milenage_gen_vec() -	 * does another ++, so to show SQN.MS we need to -2 */ +	 * aud->u.umts.sqn++, so to show SQN.MS we need to -1 */  	if (auts_is_set)  		printf("AUTS success: SQN.MS = %" PRIu64 "\n", -		       test_aud.u.umts.sqn - 2); +		       test_aud.u.umts.sqn - 1);  	exit(0);  }  | 
