diff -uNr a/eucrypt/README b/eucrypt/README --- a/eucrypt/README aa729907e4754118467efcbf8912694f0889f10d1a1406a142568d3b159c43ee5e11b44715f525d3b4c8b94ff90ecd0602bf627dae800ff339bb8486d6ec4004 +++ b/eucrypt/README e605ccdf7fd99cf6d0ecfb72940d294e8eca69440f4fb511c8873f9278b948db601b5ece8e9087d7870416bddd0939f3b3f153fe5ff34297be1b17538d8b277a @@ -1,4 +1,6 @@ -This is the EuCrypt library that Eulora server (S.MG) uses for its communication needs. +This is the EuCrypt library that Eulora server (S.MG) uses for its communication needs. The manifest file lists the patches in order, as they were created. + +If you propose a new patch to build on top of existing EuCrypt, add the corresponding line for it in the manifest file. To compile the whole EuCrypt library, simply run in the eucrypt folder (the -O3 switch is needed for specifying optimisation level for Serpent - if you don't care about that, you can skip this switch): gprbuild -O3 diff -uNr a/eucrypt/manifest b/eucrypt/manifest --- a/eucrypt/manifest false +++ b/eucrypt/manifest 55dae077e4aade75f7999b8ea93bb3177738444d809f95f8a5de7bac9a533a3fb9d75dc23c2f8de7e6fafb85ad190382e4a3e0c793b0dcea192c9b7f8409cb14 @@ -0,0 +1,21 @@ +499320 eucrypt_genesis diana_coman Sets up the main structure of the Eucrypt library that includes the following main components: mpi, serpent, keccak, rsa. +499321 ch1_mpi diana_coman The MPI (big number arithmetics) component of Eucrypt, as extracted from GnuPG 1.4.10 by Stanislav Datskovskiy and with a further small snip of useless code. +499322 ch2_truerandom diana_coman Basic methods for obtaining random bits from an entropy source connected on an USB port. NB: this is CHANGED for the better by ch4 patch below (eucrypt_ch4_rpng), better press to that one at least! +500450 eucrypt_mpi_fix_copy_incr diana_coman Fixes a bug in mpi that caused MPN_COPY_INCR to do nothing at all. +501480 eucrypt_ch3_miller_rabin diana_coman The implementation of Miller-Rabin algorithm for testing whether a number is composite (not prime). +502600 eucrypt_ch4_rpng diana_coman True random prime number generator using all the above parts and pieces of Eucrypt (mpi, reading from the entropy source, miller-rabin). +503770 eucrypt_ch5_rsa_keys diana_coman Generating RSA key pairs according to TMSR RSA spec and simple use of such RSA key pairs to encrypt/decrypt a given input. +504900 eucrypt_ch6_keccak_permutations diana_coman First part of the Keccak implementation for Eucrypt: Ada implementation of the Keccak-f permutations and specifically the theta, rho, pi, chi and iota transformations of state used by Keccak-f permutations. +506110 eucrypt_ch7_keccak_sponge diana_coman Implementation in Ada of the Keccak "sponge" hashing method taking as input a stream of bits and giving as output another stream of bits. +507170 eucrypt_ch8_bit_keccak diana_coman Bit-level Ada implementation of Keccak meant as reference implementation (fully independent of endiannes but potentially significantly slower than almost any other implementation). +508300 eucrypt_ch9_keccak_endianness diana_coman Changes to previous Keccak implementation to ensure consistent output on little and bid endian iron. Specifically: input is always considered in little endian format and the implementation checks endianness at runtime, flipping the input octets when running on big endian iron. +509370 eucrypt_ch10_oaep_tmsr diana_coman Implementation of TMSR OAEP (optimal asymmetric encryption padding) using Keccak implementation above for hashing and TMSR schema for padding. +510140 eucrypt_oaep_fix_checks diana_coman Fix of error in previous OAEP module at how the max length of message is calculated. +510460 eucrypt_ch11_serpent diana_coman Implementation of Serpent blockcipher and automated testing using reference test data. +511540 eucrypt_ch12_wrapper_rsa_oaep_c_ada diana_coman A wrapper to use the previously implemented OAEP and RSA together, serving as convenience method and example of Eucrypt use + bringing Ada and C code together. Porting of *all* Eucrypt to GPR (GNAT's Project Manager) and away from Make, providing also support to compile Eucrypt as a whole or component by component, as desired. +511880 eucrypt_keccak_bitrate_fix diana_coman Fix for error in Keccak implementation that was causing failure on some bitrates. +513700 eucrypt_check_nread diana_coman Adds another check and loop to ensure that all Eucrypt has the same behaviour when requesting random bits: reject and discard any that are not exactly as many as required and simply keep trying in a loop until the required bits are obtained. +521090 eucrypt_ch13_smg_rng diana_coman Adds methods for obtaining random values directly from bits obtained from the entropy source. Following specific types are supported: unsigned int on 32 bits, unsigned int on 64 bits, dirty float between 0 and 1, float IEEE 754/1985 between 1 and 2. +527560 eucrypt_manifest diana_coman Adds this manifest file that should be modified each time a new patch is added to EuCrypt. + +