v0.4 : 20090115 Source code changes ------------------- - All version numbers bumped to 0.4. - Added function "do__full_mds_state_update__no_key" (called from "do__process_principle_key__single__1_rounds") , which is identical to "do__full_mds_state_update" but without any key use. - Fixed the array indices in the last quadrant update in "do__quad_diffuse__q2" as it was wrong and didn't match specification. - Changed "do__process_principle_key__single__1_rounds", "do__process_principle_key__single__3_rounds", and "do__process_principle_key__single__3_rounds"*. - Changed "do__process_principle_key__pair__1_rounds", "do__process_principle_key__pair__2_rounds", and "do__process_principle_key__pair__3_rounds"**. - Fixed error in "do__key_extract_x4" as the array indices didn't match the specification (i.e. it should have been working on quadrants and it was just working on incremental indexing). - Fixed error in "do__key_extract_x2", same issue as "do__key_extract_x4". - Changed variable names in "do__key_extract__pre_whitening" and ""do__key_extract__post_whitening"" - does not change how it operates. - Updated "do__update__chaining_state__X_rounds" functions to reflect the change in function definitions for "do__key_extract_x4" and ""do__key_extract_x2", again doesn't change any functionality - just how the parameters are passed. - Updated "do__update__hash_state" and "do__finalise__hash_state" to reflect the change from a single preliminary key to the left, right and combined preliminary keys; also change the block counter to update by two for each 4096 bit block (as it now should)***. - Removed the defines for SGAIL__KEY_X4_EXTRACT__WORDS, SGAIL__KEY_X2_EXTRACT__WORDS, and SGAIL__KEY_X1_EXTRACT__WORDS as they are no longer used. *, **, *** : These are the main changes since the original version and is the remedy for the error I'd found soon after the original submission.