* Serial Number / Activation Key (SN/AK) (SCO ODT Lite 3.0 / 3.2v4.2, * SCO OpenServer / 3.2v5.0.x): * ------------------------------------------------------------------- * Serial Number (SN): * - 9 characters, normally 3 capital letters + 6 digits: * "[A-Z]\{3,3\}[0-9]\{6,6\}" * - the last character specifies the size of the next arithmetic shift of the 'si' * variable to calculate the SN/AK checksum in the 'sn_ake_chksum()' function: * shift = (last SN character) % 16 * - since the last character is a digit in std. SN, the offset is usually [0-9] * * Activation Key (AK): * - 8 characters, 8 lowercase letters by default: * "[a-z]\{8,8\}" * - in general we could describe AK as follows: * * SCO v4.2: * SCO v5.0.x: * * where: * - specifies the product family: * - "cry" - Open Desktop (SCO v4.2) * - "mfa" - OpenServer (SCO v5.0.x) * - but if for example 'xxx' is used, then 'imqm' after entering * 'License Code' will also request 'License data' * - indicates the product itself, e.g.: * - "aaa" - Open Desktop * - "aae" - Open Desktop Lite * - "aey" - OpenServer Desktop * - "afa" - OpenServer Host * - "afc" - OpenServer Enterprise * - after encoding with the 'ak_encode(ak)' function, * 1) SCO v4.2: * the first 3 characters must be equal to ("cry") * - the constant "cry" (SCO v4.2) is triggered by encoding (function * 'ack_encode()') the "uiy" constant (SCO v4.2), which is hard-coded * in the 'iqm' application * SCO v5.0.x: * characters 4.-6. must be equal to ("mfa") * 2) SCO v4.2: * characters 4.-6. must be one of the following strings (identification product): * - "aaa" SCO Open Desktop * - "aab" SCO Open Server Enterprise System (multiuser) * - "aae" SCO Open Desktop Lite * - "aaf" SCO Open Desktop Lite with Networking * - "aag" SCO Open Server Enterprise System (16 user) * SCO v5.0.x: * the 1st to 3rd character must be one of the following strings (identification * product): * - "aey" SCO OpenServer Desktop * - "afa" SCO OpenServer Host * - "afc" SCO OpenServer Enterprise * 3) the last 2 characters (checksum) match the checksum sum ('sn_ake_chksum()') of * SN + the part of the encoded AK without these 2 characters (i.e. without this * checksum of course) * - in other words, the encoded AK must be equal to the string: * * "cryaa" * * where is one of the following: a, b, e, f, g * and is equal to 'sn_ake_chksum("cryaa")'