aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Add some basic prefetching support (only supported with GNU C++ or thingslloyd2009-09-294-3/+44
| | | | | that claim to be by defining __GNUG__ (such as Intel C++)) in new utils header prefetch.h
* Add a new macro BOTAN_BUILD_COMPILER_IS_XXX to build.hlloyd2009-09-2914-0/+28
|
* Use load_le instead of make_u32bit in Serpent x86 key schedule codelloyd2009-09-291-1/+1
|
* merge of '1efb42e84eca9e01edd7b7f1335af7011eab994c'lloyd2009-09-254-0/+168
|\ | | | | | | and 'bb55abb64b64ca63aeb361db40c6bc4692d4ce48'
| * Add runtime cpuid support. Check in the SSE2 engine that SSE2 is actuallylloyd2009-09-254-0/+168
| | | | | | | | existing on the current CPU before returning an object.
* | Add BitBucket to basefilt.hlloyd2009-09-241-0/+8
| |
* | Add engine deps on the asm_xxx modules so the engines get loadedlloyd2009-09-242-0/+8
| |
* | Enable OpenSSL AES (fixed, I think). And add support for OpenSSL's RC5lloyd2009-09-241-1/+7
| |
* | In the benchmark code, set a random key for the block and stream ciphers.lloyd2009-09-231-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This, I think, was what was causing the OpenSSL AES code to crash (without a key being set, the rounds are unset and probably causes the code to loop out past the end of an array somewhere). Sadly, this also confirms that OpenSSL's AES is much faster than Botan's: AES-128: 115.032 [core] 152.994 [openssl] AES-192: 98.6724 [core] 130.087 [openssl] AES-256: 86.6348 [core] 113.608 [openssl] Definitely some improvement can be made there! :(
* | Remove unneeded headerslloyd2009-09-211-2/+0
| |
* | Update the implementation of Blue Midnight Wish to use the Round 2 tweakedlloyd2009-09-212-90/+122
| | | | | | | | version.
* | Indentation fixlloyd2009-09-211-13/+12
| |
* | propagate from branch 'net.randombit.botan.1_8' (head ↵lloyd2009-09-17134-1733/+3572
|\| | | | | | | | | | | 1f4729658b70a340064bc9a33c923a44ecab84d8) to branch 'net.randombit.botan' (head b9ca6596a127964cb9795d22bc2a5642fab5de84)
| * The get_tm function was duplicated. Move single version to timer.{h,cpp}lloyd2009-09-175-65/+35
| |
| * Split up util.h into 3 fileslloyd2009-09-1728-40/+49
| | | | | | | | | | | | | | - rounding.h (round_up, round_down) - workfactor.h (dl_work_factor) - timer.h (system_time) And update all users of the previous util.h
| * Move memory locking function decls to mlock.hlloyd2009-09-176-26/+47
| | | | | | | | Inline round_up and round_down
| * Update OpenSSL engine with encrypt_n interface for block ciphers.lloyd2009-09-172-12/+46
| | | | | | | | | | | | Add support for SHA-2 and SEED. Wrap block cipher usage in checks for OPENSSL_NO_XXX
| * In BMW-512, don't use the stack, instead use class SecureBuffers to reducelloyd2009-09-152-70/+70
| | | | | | | | info leakage.
| * Add an implementation of Blue Midnight Wish (512 bit version only)lloyd2009-09-154-0/+228
| |
| * propagate from branch 'net.randombit.botan.1_8' (head ↵lloyd2009-09-1595-1571/+3148
| |\ | | | | | | | | | | | | | | | ef51dd2869ed38dae3aeb1c3b931ca9d595580e1) to branch 'net.randombit.botan' (head fc1942640045423f411fd865cbd584090b28d7eb)
| | * Enable SSE2 engine under VC++lloyd2009-09-131-0/+1
| | |
| | * Make some changes to the SSE2 implementation of SHA-1 for compatability withlloyd2009-09-131-62/+46
| | | | | | | | | | | | Visual C++.
| | * Add parallel block toggles for CBC and CFB (decrypt direction only)lloyd2009-09-101-1/+7
| | |
| | * The first argument of Library_State::set_option was accidentally beinglloyd2009-09-092-2/+2
| | | | | | | | | | | | | | | passed as a 'const std::string' instead of a const reference. Can't fix in 1.8 since it is ABI breaking.
| | * Throw Internal_Error instead of Algorithm_Not_Found if no usable RNGlloyd2009-09-081-1/+1
| | | | | | | | | | | | is enabled in the build.
| | * Add *s before comment lines in file headerslloyd2009-09-084-8/+8
| | |
| | * propagate from branch 'net.randombit.botan.1_8' (head ↵lloyd2009-09-043-2/+3
| | |\ | | | | | | | | | | | | | | | | | | | | 75371777750b63ef94693602202c5104f217a987) to branch 'net.randombit.botan' (head 3f53f01c349eeee89288b1922fbde45b283c958c)
| | * | According to the Linux sources, S/390 and PowerPC can both do unalignedlloyd2009-09-044-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | memory accesses. Since this can be a pretty big win, enable it for them. The m68k apparently also can, except in its (modern) Coldfire version, but it's always big endian so mark that as such.
| | * | propagate from branch 'net.randombit.botan.1_8' (head ↵lloyd2009-08-312-4/+14
| | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | c2624292793f396cf940403e0d12073a9b2c7b17) to branch 'net.randombit.botan' (head 07a71effa1ba495b6ea57b2490ad38bf58a23bd0)
| | * | | Add Rivest's package transformlloyd2009-08-313-0/+190
| | | | |
| | * | | Combine the 4 sbox calculations in the key schedule so that all four arelloyd2009-08-312-25/+25
| | | | | | | | | | | | | | | | | | | | | | | | | computed in parallel. Not a huge win but slightly faster (which affects things like Lion when using Turing), most likely due to more available ILP
| | * | | Hoist creation of buffer in Lion encrypt looplloyd2009-08-311-4/+4
| | | | |
| | * | | Remove unneeded include in xtea.cpplloyd2009-08-271-1/+0
| | | | |
| | * | | Instead of each SSE2 implementation specifying which compilers + CPUs itlloyd2009-08-273-25/+8
| | | | | | | | | | | | | | | | | | | | | | | | | works on, have sse2_eng rely on a specific compiler/arch; each sse2 impl depends on the engine anyway, so they will only be loaded if OK.
| | * | | Include basefilt.h in filters.hlloyd2009-08-131-0/+2
| | | | |
| | * | | propagate from branch 'net.randombit.botan.encrypt-n' (head ↵lloyd2009-08-133-0/+210
| | |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 378e7464abc6b3efcf9cb433f7fcec0adfbb9de0) to branch 'net.randombit.botan' (head dd9bdcc0cab8b761a1c9861f3a4fc625488c2ef5)
| | * | | | Use a much faster counter increment system, noticable speedups (~15%)lloyd2009-08-121-20/+21
| | | | | | | | | | | | | | | | | | | | | | | | for both Serpent and AES-128 in CTR mode.
| | * | | | In benchmark.cpp, use encrypt_n when benchmarking block cipherslloyd2009-08-121-2/+1
| | | | | |
| | * | | | For handling the last few blocks in Serpent_SSE2, invoke encrypt_n withlloyd2009-08-121-12/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | however many blocks remain, rather than looping calling encrypt_n with a block size of 1 each time.
| | * | | | Add SSE2 Serpent decryptionlloyd2009-08-122-1/+307
| | | | | |
| | * | | | Small code cleanups in SSE2 Serpentlloyd2009-08-122-192/+195
| | | | | |
| | * | | | Use SSE2 unpack instructions instead of unions for input/output conversion.lloyd2009-08-122-300/+263
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | About 10% faster than previous. Currently 112 MiB/s in ECB mode, versus about 40 MiB/s in scalar mode, on my 2.4 GHz Core2
| | * | | | Add full 4-way SSE2 Serpent encryption. Load/store operations are vialloyd2009-08-123-47/+290
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | unions and can be made much faster using interleave operations I think. Currently ~2.5x faster in ECB or CTR mode on a Core2, which isn't too bad.
| | * | | | Make encrypt_n public for all BlockCipher implementations - unlike thelloyd2009-08-1131-58/+355
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | enc/dec functions it replaces, these are public interfaces. Add the first bits of a SSE2 implementation of Serpent. Currently incomplete.
| | * | | | Modify Keyed_Filter so it is a pure interfacelloyd2009-08-1116-150/+329
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Modify ECB to use parallel encryption/decryption where possible Add toggles in build.h specifying how many blocks to process in parallel. Defaults to 8 blocks for all modes, which is sufficient that any likely parallelism can be extracted (via SIMD or concurrent execution) but not so much as to seem likely to cause cache problems (8*128 bits = 128 bytes, or two x86 cache lines)
| | * | | | Change the BlockCipher interface to support multi-block encryption andlloyd2009-08-1155-1321/+1740
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | decryption. Currently only used for counter mode. Doesn't offer much advantage as-is (though might help slightly, in terms of cache effects), but allows for SIMD implementations to process multiple blocks in parallel when possible. Particularly thinking here of Serpent; TEA/XTEA also seem promising in this sense, as is Threefish once that is implemented as a standalone block cipher.
* | | | | | Fix macro generation + checks in configure.py and bswap.h. Had the effectlloyd2009-09-171-2/+2
|/ / / / / | | | | | | | | | | | | | | | of preventing the bswap optimizations from being used. :(
* | | | / Change Skein-512 to match the tweaked 1.2 specification. Round constantslloyd2009-09-151-8/+8
| |_|_|/ |/| | | | | | | | | | | in the Threefish cipher have changed to increase diffusion.
* | | | Add a new option --no-autoload to configure.py. This will produce a minimallloyd2009-09-043-2/+3
| |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | build (only libstate, utils, plus dependencies), which can be extended with use of --enable-modules. To add new modules to the set of always-loaded, use 'load_on always' in info.txt Also fix a few small build problems that popped up when doing a minimal build. Requested by a user.
* | | Remove redunant buffer create calls in XTSlloyd2009-08-281-4/+0
| | |