Changes between Version 3 and Version 4 of SoC2011


Ignore:
Timestamp:
Jan 28, 2011, 6:04:01 PM (12 years ago)
Author:
Paul A. Bristow
Comment:

Added Checks & hashes proposal

Legend:

Unmodified
Added
Removed
Modified
  • SoC2011

    v3 v4  
    3131Mentors: Stefan Seefeld
    3232
     33===  Checks & Hashes ===
    3334
     35Check strings and digits are an invaluable tool for avoiding mistakes in data entry, storage and transmission.
     36
     37There are many public algorithms available, but not a coherent collection of C++ functions.
     38
     39The suggested project is to provide such a collection which is in a coherent format agreed by Boosters, fully tested (using Boost.Test) (including tests with various faulty input)
     40and very fully documented to Boost Quality, using Quickbook, Doxygen, and AutoIndex in both html and pdf.
     41
     42A key target is to get it to a finished state, rather than to deal with all possible check types.
     43
     44Much code is already available (from Boost and elsewhere)
     45(and I can contribute some to get off to a quicker start)
     46so the project involves gathering it, and testing and documenting rather than much complex coding.
     47
     48The vexed question of whether to permit Unicode may come up,
     49but I suspect that it would be better to stick to 7 bit ASCII chars:
     50The project might flounder on just this issue alone.
     51
     52Any platform is OK, but it must use bjam to drive the build process. A good demonstration would be to 'package up' something trivially simple like ISBN or something from Boost Cyclic redundancy checks, preparing a jamfile, some Boost style tests, and some skeleton documentation in Quickbook. 
     53
     54Getting Boosters agreement about acoherent presentation format
     55may be the most challenging part, needing astute interpersonal skills!
     56Perhaps a Google group would be a useful place for this discussion? Views?
     57
     58Some possible items:
     59
     60  Simple modulo 256 etc check values and digits.
     61
     62  Boost's Cyclic redundancy checks codes http://www.boost.org/doc/libs/1_45_0/libs/crc/index.html
     63  http://www.netrino.com/Embedded-Systems/How-To/CRC-Calculation-C-Code
     64
     65  MD5 hash http://www.md5.net/
     66       
     67  SHA hashes http://en.wikipedia.org/wiki/SHA-1 ...
     68
     69  Luhn algorithm  http://en.wikipedia.org/wiki/Luhn_algorithm
     70
     71  Verhoeff algorithm
     72  http://en.wikipedia.org/wiki/Verhoeff_algorithm
     73       
     74  (These two are used by many of the others below).
     75
     76  European Article numbering EAN Symbol Specification Manual,
     77
     78  Universal Product Code, Uniform Code Council, Dayton, Ohio, USA.
     79
     80  Version of check used by Mastercard, VISA, and most other credit card companies.
     81  http://www.beachnet.com/~hstiles/cardtype.html
     82
     83  Generalised to arbitrary radix version allowing any characters (not just digits).
     84  Gene Callahan, Dr Dobb's Journal, Dec 1995, 131, 132 & 149.
     85  Generating Sequential keys in an Arbitrary Radix.
     86
     87  IBAN International Banking format
     88  http://en.wikipedia.org/wiki/International_Bank_Account_Number
     89
     90  http://en.wikipedia.org/wiki/Machine-readable_passport check digit
     91
     92  US driving licence
     93
     94  US Social security numbers
     95
     96 Canadian Social Insurance Numbers
     97
     98 UK National Insurance number
     99
     100 ISBN http://en.wikipedia.org/wiki/International_Standard_Book_Number
     101
     102 ISSN http://en.wikipedia.org/wiki/International_Standard_Serial_Number
     103
     104 POSTNET http://en.wikipedia.org/wiki/POSTNET
     105 
     106 Bar codes http://www.dlsoft.com/services/CheckCalc/
     107 
     108 http://en.wikipedia.org/wiki/Check_digit#Other_examples_of_check_digits
     109
     110 Chemical abstracts http://en.wikipedia.org/wiki/CAS_registry_number
     111 
     112 Vehicle Id Number  http://en.wikipedia.org/wiki/Vehicle_identification_number
     113
     114 And there are no doubt many, many more.
     115
     116Mentor(s):  Paul A. Bristow and others?
     117
     118
     119
     120
     121
     122