aboutsummaryrefslogtreecommitdiffstats
path: root/modules
Commit message (Collapse)AuthorAgeFilesLines
* Provide a more flexible mechanism for specifying which modules are loaded.lloyd2007-03-1227-18/+58
| | | | | | | | | | | | | Now three classes are defined: 'request', 'auto', and 'asm_ok'. The 'auto' class is loaded automatically if the platform support matches up with what we are building for (this is the former default). The 'request' mode means it is only loaded if specifically requested by name. The 'asm_ok' module is marked for all modules that use any assembler (including inline assembler). This normally functions like 'auto', unless --debug is passed to configure, in which case it is treated as 'request'. Modules which do not specify a load behavior are given a default of 'request'.
* Small cleanups.lloyd2007-03-101-1/+1
|
* Clean up the x86-64 bigint_mul_add_words implementation a bit using thelloyd2007-03-081-9/+11
| | | | new register macros.
* Add macros to represent register nameslloyd2007-03-081-1/+39
|
* Add Solaris to the allowed platforms for alg_amd64 and alg_ia32. Untested,lloyd2007-03-042-0/+2
| | | | but should work as Solaris is ELF-based.
* Bump copyright year to 2007lloyd2007-01-2077-77/+77
|
* Rename the mp_muladd source files to mp_muloplloyd2006-12-154-9/+4
|
* Update some modules which were never changed to use Allocator::get insteadlloyd2006-12-093-3/+3
| | | | of get_allocator()
* Also mark ICC as usable with the alg_ia32 modulelloyd2006-11-241-0/+1
|
* Enable the alg_amd64 module under Intel C++ as well (looks like ICC knowslloyd2006-11-241-0/+1
| | | | how to deal with .S asm files)
* Remove solaris from the list of OK platforms for assembly; Solaris aslloyd2006-11-062-2/+0
| | | | | doesn't seem to like the files for some reason that I don't feel like getting into right now.
* Use the new syntax for adding macros to build.h lloyd2006-10-111-2/+1
|
* Improve readability a bit with some additional macroslloyd2006-09-261-10/+12
|
* Define the ADD_IMM macro in terms of ADD()lloyd2006-09-261-3/+1
| | | | Remove the CLEAR_CARRY macro, which wasn't being used
* Better instruction scheduling, some higher level macros for readabilitylloyd2006-09-242-9/+18
|
* Initial x86-64 assembly code for the inner multiply-add loop.lloyd2006-09-243-0/+175
|
* Fix the clean and install targets in the makefileslloyd2006-09-094-4/+4
| | | | Clean up how help output is produced a bit further.
* Move the (commented out) gzip.cpp/gzip.h entries into the add file blocklloyd2006-09-031-4/+3
|
* Place the add_file/replace_file/ignore_file markers in the module infolloyd2006-09-0326-88/+136
| | | | | | files into blocks; makes a bit more sense, since there are potentially many arguments to each, and the current system was making it difficult to write a generic reader for the files.
* Remove explicit alignment settings before the loops; the loop macrolloyd2006-09-021-5/+2
| | | | | | | already sets alignment. Change the core multiply/add macro a bit; probably not any faster, but a bit cleaner.
* The assembly code is only using 81 words of W, but 84 were being allocated.lloyd2006-08-211-2/+2
|
* Remove a check for GCC in the source; that's what the module compilerlloyd2006-08-211-4/+0
| | | | restrictions are for.
* Rename some variables for consistency with the SHA-1 asm codelloyd2006-08-212-14/+16
|
* Get ride of an unnecessary register copylloyd2006-08-211-11/+9
|
* Inside the compression function, store the original stack pointer in thelloyd2006-08-212-28/+38
| | | | | W array, and then use %esp to point to the message words. This gives an extra register for temporary usage.
* Let SHA_160::W be resized dynamically; potentially the asm version couldlloyd2006-08-211-0/+8
| | | | use a little extra workspace, this makes that simpler to do.
* Somewhat ineffectual instruction reorderings in the round functionslloyd2006-08-211-28/+28
| | | | | Use EDX instead of EBP for holding the pointer to the digest array at the end of the function.
* Rotate the temporary variable along with the chaining variables; giveslloyd2006-08-211-175/+154
| | | | some further room for optimization.
* Declare mp_bits for alg_ia32, since it touches the MPI codelloyd2006-08-201-0/+2
|
* Fix typolloyd2006-08-191-1/+1
|
* Move Montgomery reduction algorithm into mp_asm.cpplloyd2006-08-192-45/+1
| | | | | | | | | | Move the inner-most loop of Montgomery into bigint_mul_add_words, in mp_muladd.cpp Use bigint_mul_add_words for the inner loop of bigint_simple_multiply Move the compare/subtract at the end of the Montomgery algorithm into bigint_monty_redc
* Align the major jump targetslloyd2006-08-191-15/+6
| | | | | | Remove the comment containing the unoptimized C code Add copyright notice
* Add an x86 assembly implementation of bigint_mul_add_words, which islloyd2006-08-184-3/+134
| | | | the core loop of bigint_monty_redc.
* Fix the es_capi module; was not using the new global_config() accessorlloyd2006-08-171-1/+1
|
* Add a distinct loop ending for loop-until-equals-immediate; other loopslloyd2006-08-155-7/+13
| | | | ending conditions will be needed later.
* Change the Serpent linear transforms to use the move-and-shift-3 macrolloyd2006-08-151-4/+2
|
* Add a specialized shift instruction for 3 that uses LEA to do a shift andlloyd2006-08-151-0/+1
| | | | move in one instruction.
* Drop the asm-specific serpent.hlloyd2006-08-152-34/+0
|
* Formatting/readability changeslloyd2006-08-151-6/+5
|
* Remove continuation slashes from the last line of some of the macroslloyd2006-08-151-8/+8
|
* Reorder the linear transformations for (nominally) better instructionlloyd2006-08-151-10/+10
| | | | scheduling.
* Have the expansion loop in the key schedule take advantage of freelloyd2006-08-152-12/+17
| | | | registers to load words we will need in advance.
* Remove unused variablelloyd2006-08-151-5/+7
| | | | Collect the external functions into a single extern "C" block
* Implement the Serpent key schedule in assembly as well, so the C++lloyd2006-08-153-122/+98
| | | | | | versions of the Sboxes can be removed. Add some parens inside the asm macros
* Remove an unused functionlloyd2006-08-151-26/+1
|
* Implement decryption in the Serpent assembly codelloyd2006-08-154-207/+386
|
* Add the beginnings of an x96 assembler version of Serpent. Currently onlylloyd2006-08-154-0/+621
| | | | encryption is done in asm, the rest is still in C++
* Was using sha1_core in the END_FUNCTION calls; doesn't make a difference,lloyd2006-08-142-2/+2
| | | | | since right now END_FUNCTION doesn't use its argument, but it looked strange and might cause problems later.
* Get instruction scheduling decently correct. Now running at 110 Mb/s onlloyd2006-08-131-5/+5
| | | | my Athlon, which isn't too far behind OpenSSL
* Load the message words we need in the round before. By going out to thelloyd2006-08-131-54/+133
| | | | | stack to get the address of the message array each time, we can free up a register for the rest of the code inside the rounds.