aboutsummaryrefslogtreecommitdiffstats
path: root/src/engine
Commit message (Collapse)AuthorAgeFilesLines
* Split the SIMD implementations into their own modules and choose onelloyd2011-05-241-1/+1
| | | | at config time.
* Rename AES_XXX_Intel to AES_XXX_NI, since AMD's Bulldozer will alsolloyd2011-04-251-6/+6
| | | | support AES-NI.
* Rename all references of ia32 to x86-32 and amd64 to x86-64.lloyd2011-04-222-24/+24
| | | | | | Back the reported version from 1.10.0 to 1.9.17 for the time being. Still on the fence if this will be 1.10.0 or another release candidate instead.
* Add a --no-autoload examplelloyd2011-04-191-0/+4
| | | | | | Add missing dependency in the SIMD engine that would cause build failures when using --no-autoload and explicitly requesting a SIMD algorithm like aes_ssse3 using --enable-modules.
* Add header guardlloyd2010-12-281-0/+5
|
* Add a simple but functioning implementation of Keccak. Only thelloyd2010-12-101-0/+9
| | | | proposed SHA-3 parameter sets are supported.
* Fix OpenSSL engine compile :/lloyd2010-12-013-8/+25
|
* Old function name, and made message confusing anywaylloyd2010-11-051-2/+1
|
* Was missing the Engine PBKDF lookup routinelloyd2010-11-041-0/+52
|
* Remove unused includeslloyd2010-11-041-4/+0
|
* Move PBKDF lookups to enginelloyd2010-11-047-1/+28
|
* In all cases where the block size of the cipher is fixed, the keylloyd2010-10-141-2/+0
| | | | | | | | | | | | | | | | parameters are as well. So make them template paramters. The sole exception was AES, because you could either initialize AES with a fixed key length, in which case it would only be that specific key length, or not, in which case it would support any valid AES key size. This is removed in this checkin; you have to specifically ask for AES-128, AES-192, or AES-256, depending on which one you want. This is probably actually a good thing, because every implementation other than the base one (SSSE3, AES-NI, OpenSSL) did not support "AES", only the versions with specific fixed key sizes. So forcing the user to ask for the one they want ensures they get the ones that are faster and/or safer.
* More size_tlloyd2010-10-138-18/+18
|
* Compile fixlloyd2010-10-131-5/+13
|
* Fix compilelloyd2010-10-131-1/+6
|
* s/BLOCK_SIZE/block_size()/lloyd2010-10-131-1/+1
|
* Use size_t rather than u32bit in SymmetricAlgorithmlloyd2010-10-132-11/+11
|
* Use size_t for BufferedComputation::add_datalloyd2010-10-121-2/+2
|
* Use size_t in SCAN_Namelloyd2010-10-125-10/+10
|
* Use size_t instead of u32bit in all of pubkeylloyd2010-10-122-48/+48
|
* Use size_t rather than u32bit for the blocks argument of encrypt_nlloyd2010-10-121-5/+6
|
* Make names more consistentlloyd2010-10-013-2/+2
|
* Fix macrolloyd2010-09-301-0/+1
|
* Split SHA-2 into 32 and 64 bit versions; they are totally independentlloyd2010-09-301-2/+7
| | | | of each other anyway.
* Fix OpenSSL engine WRT memory vector changes, append is no morelloyd2010-09-231-1/+3
|
* Update the dynamic engine protocol. The initial version had an enginelloyd2010-09-081-30/+15
| | | | | | | | | | | | | destructor function which would delete the engine; this was to handle the case that the heaps were not shared between the application and the library. However in this case we have bigger problems, because we want to be able to pass std::strings into the engine, and additionally be able to return objects from the library which are later deleted by the algorithm factory. So without a major restructuring we can't support this style of operation anyway; the DLL and application must share the same heap. This can be done on Windows using the /MD linking scheme for both the library and the DLL. The library already uses this model by default on Windows.
* Add also AES-192 using SSSE3lloyd2010-08-121-0/+2
|
* Support AES-256 is the SSSE3 implementationlloyd2010-08-121-0/+2
|
* Add an implementation of AES-128 using SSSE3 instructions. It runs inlloyd2010-08-091-0/+9
| | | | | | | | | | | | | | | constant time and on a Nehalem is significantly faster than the table based version. This implementation technique was invented by Mike Hamburg and described in a paper in CHES 2009 "Accelerating AES with Vector Permute Instructions". This code is basically a translation of his public domain x86-64 assembly code into intrinsics. Todo: Adding support for AES-192 and AES-256; this just requires implementing the key schedules. Currently only tested on an i7 with GCC (32 and 64 bit code); testing/optimization on 32-bit processors with SSSE3 like the Atom, and with Visual C++ and other compilers, are also todos.
* Remove redundant setting for adding libdl link on Linux in dyn_engine;lloyd2010-07-281-4/+0
| | | | | it relies on dyn_load which should be the sole source for this kind of stuff, since dyn_engine itself does not touch the OS level APIs.
* Add a version info function which returns a u32bit. The currentlylloyd2010-07-281-1/+12
| | | | | expected value is 20100728 (ie, today). This will allow for checking for and/or working around changes to interfaces.
* Add a new utility class Dynamically_Loaded_Library which wraps aroundlloyd2010-07-273-0/+185
| | | | | | | | | | the system dynamic linker (if any). Currently it only supports dlopen, and is only enabled on Linux. It will almost certainly work on BSDs and Solaris as well, though, and should be easy to extend to support Win32-style dynamic loading. Also add a new engine, Dynamically_Loaded_Engine, which loads up a new Engine object from a shared library/DLL.
* Rename Default_Engine to Core_Engine which describes its purposeslloyd2010-07-279-33/+31
| | | | (slightly) better.
* merge of '17389a973545d2f8e25813894cdd2da1b01aa534'lloyd2010-07-271-1/+1
|\ | | | | | | and 'ada4c9893d70affd8934ab9664e390087feab3c9'
| * Add support in CPUID for detecting PCMULUDQ and MOVBE instructions.lloyd2010-07-271-1/+1
| | | | | | | | Rename CPUID::has_aes_intel to has_aes_ni.
* | Add support for Camellia in OpenSSL enginelloyd2010-07-221-0/+6
| |
* | Avoid unused argument warninglloyd2010-07-221-1/+3
|/
* Consolidate the two engines that provided assembler implementationslloyd2010-07-136-81/+22
| | | | | | (amd64_eng and ia32_eng) into a new asm_engine. This same engine could also be used in the event that asm code for other CPUs was added later on.
* Avoid unused parameter warninglloyd2010-06-221-1/+1
|
* Doxygenlloyd2010-06-221-0/+7
|
* Compilation fixeslloyd2010-06-161-1/+3
|
* Move the implemention of the functions in the Engine base class into alloyd2010-06-163-33/+101
| | | | | | | source file. Otherwise we ran into a conflict between Doxygen comments, which require us to name the params, and GCC's -Wunused-parameters, which will warn about parameters which aren't being used.
* Doxygen commentslloyd2010-06-161-14/+82
|
* Kill dead/unused functionlloyd2010-06-161-2/+0
|
* Also for Default_Enginelloyd2010-06-161-1/+0
|
* Don't hide funcions in engine subclasses that are public in baselloyd2010-06-165-5/+5
|
* More Doxygen updates/fixeslloyd2010-06-1510-11/+24
|
* Use "/*" instead of "/**" in starting comments at the begining of a file.lloyd2010-06-076-6/+6
| | | | | This caused Doxygen to think this was markup meant for it, which really caused some clutter in the namespace page.
* Remove FORK-256; it's obscure and has been definitively broken.lloyd2010-05-251-9/+0
| | | | | More commentary posted to the list: http://lists.randombit.net/pipermail/botan-devel/2010-May/001123.html
* Add Comb4P hash combiner, as described in Anja Lehmann's thesis.lloyd2010-04-171-0/+15
|