FreeCalypso > hg > fc-sim-tools
view utils/sim-iccid-mkfull.c @ 53:fbedb67d234f
serial: fix parity for inverse coding convention
Important note: it is my (Mother Mychaela's) understanding that
SIM cards with inverse coding convention are extremely rare,
and I have never seen such a card. Therefore, our support for
the inverse coding convention will likely remain forever untested.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 21 Mar 2021 20:46:09 +0000 |
parents | 372ecc4aa2c4 |
children |
line wrap: on
line source
/* * This program is a special utility for constructing ICCIDs * following the 18+1 convention. The argument is an 18-digit ICCID * base, usually entered in shorthand, and the output is the full * 19-digit ICCID. */ #include <sys/types.h> #include <stdio.h> #include <stdlib.h> main(argc, argv) char **argv; { u_char digits[19]; char asc[20]; int rc; if (argc != 2) { fprintf(stderr, "usage: %s shorthand-iccid\n", argv[0]); exit(1); } rc = parse_decimal_shorthand(argv[1], digits, 18); if (rc < 0) exit(1); /* error msg already printed */ digits[18] = compute_iccid_luhn(digits); nibbles_to_ascii(digits, 19, asc); puts(asc); exit(0); }