ch2_truerandom          1 NB: this is used by the smg_rsa component of EuCrypt.
ch2_truerandom          2 
ch1_mpi                 3 What you see here is a very classic version of the GNU MPI (bignum) library.
ch1_mpi                 4 It has been surgically removed from GnuPG 1.4.10, specifically as found at:
eucrypt_genesis         5 
ch1_mpi                 6 http://trilema.com/wp-content/uploads/2015/10/gnupg-1.4.10.tar.gz.asc
ch1_mpi                 7 
ch1_mpi                 8 SHA512(gnupg-1.4.10.tar.gz) :
ch1_mpi                 9 d037041d2e6882fd3b999500b5a7b42be2c224836afc358e1f8a2465c1b74473d518f185b7c324b2c8dec4ffb70e9e34a03c94d1a54cc55d297f40c9745f6e1b
ch1_mpi                10 
eucrypt_ch12_wrap...   11 Recommended compilation:
eucrypt_ch12_wrap...   12 1) gprbuild mpi.gpr
ch1_mpi                13 
eucrypt_ch12_wrap...   14 Tests:
ch1_mpi                15 2) cd tests
eucrypt_ch12_wrap...   16 3) gprbuild
ch1_mpi                17 4) ./test_mpi
ch1_mpi                18 5) output is:
ch1_mpi                19    37A063D056817668C7AA3418F29
ch1_mpi                20 6) q: 'Waaaaaa, it barfed!'
ch1_mpi                21    a: You are probably using GCC 5 or LLVM. Stop.
ch1_mpi                22 
ch1_mpi                23 
ch1_mpi                24 CHANGES FROM ORIGINAL:
ch1_mpi                25 
ch1_mpi                26 1) Everything pertaining to Automake was nuked, and the earth where it stood -
ch1_mpi                27    salted.
ch1_mpi                28 
ch1_mpi                29    Instead, we now have a conventional Makefile. It builds precisely
ch1_mpi                30    ONE THING - a single 'mpi.a' library suitable for static linking into
ch1_mpi                31    another project. This will turn up in 'bin'.
ch1_mpi                32 
ch1_mpi                33    Among other things, this now means that all KNOBS now reside in a
ch1_mpi                34    MANUALLY-controlled 'knobs.h' found in 'include'.  If you are building
ch1_mpi                35    on some very peculiar unix, please read it and adjust as appropriate.
ch1_mpi                36    It contains ONLY those knobs which actually pertain to the code.
ch1_mpi                37 
ch1_mpi                38    The Makefile contains a 'check-syntax' - users of Emacs and Flymake
ch1_mpi                39    will see proper error-highlighting.
ch1_mpi                40 
ch1_mpi                41 2) ALL chip-specific ASM optimizations (including those found in longlong.h)
ch1_mpi                42    have been nuked.
ch1_mpi                43 
ch1_mpi                44 3) GPG-specific cruft has been amputated to the extent practical.
ch1_mpi                45 
ch1_mpi                46    The logging system has been retained, but it can be easily torn out,
ch1_mpi                47    which I may choose to do in the near future.
ch1_mpi                48 
ch1_mpi                49    The I/O buffering system has been retained. I may choose to remove it
ch1_mpi                50    in the near future.
ch1_mpi                51 
ch1_mpi                52    The 'secure memory' (unpageable alloc) system has been retained.
ch1_mpi                53 
ch1_mpi                54    'Localization' and all related idiocies have been nuked.
ch1_mpi                55    Write hieroglyphs at home, leave them there, civilized folk
ch1_mpi                56    don't need'em in their source code.
ch1_mpi                57 
ch1_mpi                58 4) Other code has been altered solely to the extent required by items
ch1_mpi                59    (1), (2), and (3).
ch1_mpi                60 
ch1_mpi                61    Cruft which appears in dead #ifdefs may be removed in the future.
ch1_mpi                62    Don't get comfortable with it being there.
ch1_mpi                63 
ch1_mpi                64 5) Readers who wish to know EXACTLY what I changed, should get a copy of the
ch1_mpi                65    original tarball and write a simple script involving 'find' and 'vdiff',
ch1_mpi                66    which sadly did not fit in the margins of this page.
ch1_mpi                67 
ch1_mpi                68 6) To use the library, include 'include/mpi.h' in your project,
ch1_mpi                69    and statically link with 'bin/mpi.a'.
ch1_mpi                70 
ch1_mpi                71 7) The original code was distributed under GPL 3, which may apply on
ch1_mpi                72    your planet and is therefore included. (See COPYING.)
ch1_mpi                73 
ch1_mpi                74 ----------
ch1_mpi                75 UPDATE #1:
ch1_mpi                76 ----------
ch1_mpi                77 
ch1_mpi                78 1) Abolished the logging subsystem inherited from GPG.
ch1_mpi                79 
ch1_mpi                80 2) Abolished the I/O buffering subsystem, from same.
ch1_mpi                81 
ch1_mpi                82 3) Eliminated all #ifdef blocks pertaining to RiscOS.
ch1_mpi                83 
ch1_mpi                84 4) config.h is now knobs.h and is considerably shorter
ch1_mpi                85    on account of there now being a great many fewer knobs.
ch1_mpi                86 
ch1_mpi                87 5) Eliminated certain blocks of dead code.
ch1_mpi                88 
ch1_mpi                89 6) Inserted notice of modifications as specified in GPL-3