FreeCalypso > hg > fc-sim-tools
comparison utils/sim-iccid-mkrange.c @ 25:9c9f6adbaedb
sim-iccid-mkrange utility added
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Mon, 15 Mar 2021 09:07:20 +0000 |
| parents | utils/sim-iccid-mkfull.c@372ecc4aa2c4 |
| children |
comparison
equal
deleted
inserted
replaced
| 24:47a491a16de3 | 25:9c9f6adbaedb |
|---|---|
| 1 /* | |
| 2 * This program is a special utility for generating lists of ICCIDs | |
| 3 * following the 18+1 convention. The first argument is the starting | |
| 4 * ICCID without Luhn (entered as shorthand, expanded to 18 digits), | |
| 5 * the second argument is the number of consecutive ICCIDs to generate. | |
| 6 * The output is a list of full 19-digit ICCIDs. | |
| 7 */ | |
| 8 | |
| 9 #include <sys/types.h> | |
| 10 #include <stdio.h> | |
| 11 #include <stdlib.h> | |
| 12 | |
| 13 main(argc, argv) | |
| 14 char **argv; | |
| 15 { | |
| 16 u_char digits[19]; | |
| 17 char asc[20]; | |
| 18 unsigned total, n; | |
| 19 int rc; | |
| 20 | |
| 21 if (argc != 3) { | |
| 22 fprintf(stderr, "usage: %s start-iccid num-cards\n", argv[0]); | |
| 23 exit(1); | |
| 24 } | |
| 25 rc = parse_decimal_shorthand(argv[1], digits, 18); | |
| 26 if (rc < 0) | |
| 27 exit(1); /* error msg already printed */ | |
| 28 total = atoi(argv[2]); | |
| 29 for (n = 0; n < total; n++) { | |
| 30 digits[18] = compute_iccid_luhn(digits); | |
| 31 nibbles_to_ascii(digits, 19, asc); | |
| 32 puts(asc); | |
| 33 decimal_string_increment(digits, 18); | |
| 34 } | |
| 35 exit(0); | |
| 36 } |
