For convenience with a test vector any input beginning with two hyphens (--) is treated as a comment and output as a header line.
An asterisk ('*') at the end of a digit string indicates that a check digit should be calculated. This is most useful for ICCID/LF_EUIMID because it is not always possible for the calculator to determine whether a check digit is included in non-standard ICCID numbers (19 or 20 digits).
IMEI codes (14 digit codes with all decimal digits) are treated as hexadecimal numbers when the 18 digit format is calculated. The check digit is, however, calculated using the decimal Luhn algorithm for both 14 and 18 digit formats.
The pUIMID for an ICCID is calculated from a 20 digit string. If the input is 18 digits a calculated check digit and a single 'F' digit are added. If the input is 19 digits the last digit is checked to make sure it is a valid check digit and a single 'F' digit is added. If the 19th digit is not a check digit add '*' to the end.
This calculator incorporates a SHA-1 implementation copyright 2002-2005 by Chris Veness, licensed under LGPL.
This calculator is provided as is, without warranties of any kind.
This calculator has been tested for Explorer and FireFox on Windows and Safari, Firefox and Chrome on the Mac.
Please contact David.Crowe@cnp-wireless.com if any errors are found and we will attempt to correct them. Suggestions for improvements are also welcome.