aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* propagate from branch 'net.randombit.botan' (head ↵lloyd2009-09-0863-792/+256
|\ | | | | | | | | | | 5cadcc57872bef55226579df57349fe09a93d1f5) to branch 'net.randombit.botan.c++0x' (head d1747f0394aa4442e5b32b9102b830e1a86f0e5a)
| * propagate from branch 'net.randombit.botan' (head ↵lloyd2009-07-21134-391/+633
| |\ | | | | | | | | | | | | | | | 95eb8083f5884531e5ca0667388f8a6fb6d05c41) to branch 'net.randombit.botan.c++0x' (head 56e105e678540c8bcafa4d0198c19a9489fbf8d1)
| * \ propagate from branch 'net.randombit.botan' (head ↵lloyd2009-07-1563-793/+258
| |\ \ | | | | | | | | | | | | | | | | | | | | 5438defd358f82e876917a8bd6d735305ecb0a8e) to branch 'net.randombit.botan.c++0x' (head cbdb2fd418557add29a536f7bdb6e78db16f725c)
| | * | Move mutex directory back to the Atticlloyd2009-07-0314-421/+0
| | | |
| | * | propagate from branch 'net.randombit.botan' (head ↵lloyd2009-07-0329-172/+220
| | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | d6d32791adfa878b6fc0dd3a5b65a665b7bbb549) to branch 'net.randombit.botan.c++0x' (head 54deb0e078aab8cd91c8fd8819d1e6668fc762da)
| | * | | Move mutex.h to src/mutex (from Attic)lloyd2009-07-031-0/+56
| | | | |
| | * | | Move mutex from Attic to src to deal with merge conflictlloyd2009-07-0312-0/+356
| | | | |
| | * | | propagate from branch 'net.randombit.botan' (head ↵lloyd2009-06-0463-785/+258
| | |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6a746ccf1e957dba703e65372050a7bd4d6b117d) to branch 'net.randombit.botan.c++0x' (head f54bb7b391eb3b71f380a68ddd460debdc31545d)
| | | * | | Use C++0x std::shared_ptr<> instead of TR1'slloyd2009-04-0115-72/+58
| | | | | |
| | | * | | Replace the (deprecated) auto_ptr with unique_ptr.lloyd2009-04-0124-71/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was mostly a s/auto_ptr/unique_ptr/, except in the CVC code and one function in ECDSA, which relied on auto_ptr's move semantics (ugh) and had to be modified in various ways.
| | | * | | A few experiments with auto keyword type inference. Looks like things willlloyd2009-04-013-79/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | be much cleaner, though I am looking forward to the new for syntax which will simplify a lot of these uses further.
| | | * | | Remove copy_if, now included in C++0x (also, it turns out, not being usedlloyd2009-04-011-16/+0
| | | | | | | | | | | | | | | | | | | | | | | | in the source).
| | | * | | Remove the mutex classes in favor of C++0x's std::mutex and std::lock_guardlloyd2009-04-0125-545/+51
| | | | | |
| | | * | | Start a new branch for C++0x experimentation.lloyd2009-04-011-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With GCC, build as C++0x (set the binary name to my particular installed GCC 4.4 snapshot).
* | | | | | 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)
| * | | | | | 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.
* | | | | | | 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)
| * | | | | | Remove redunant buffer create calls in XTSlloyd2009-08-281-4/+0
| | | | | | |
| * | | | | | In XTS, reset the buffer positions at the end of a message.lloyd2009-08-271-0/+4
| | | | | | |
| * | | | | | Thomas Moschny mentioned that OpenSSL 1.0 betas disable MD2 by default.lloyd2009-08-271-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Wrap the EVP_ calls in OPENSSL_NO_XXX checks to handle this.
* | | | | | | 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)
| * | | | | | Add a new interface CryptoBox which provides basic password-based encryptionlloyd2009-08-133-0/+210
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in a reasonable way. Low on features, which is rather intentional. There is a version code included in the format so further extensions are possible, if warranted. Inspired by the n-th mailing list request for such a class. Realized it was probably better that I design such code than random people who just want 'something that works'.
* | | | | | | 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.
* | | | | | Add 'Distributed under the terms of the Botan license' notices to the .Slloyd2009-08-118-41/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | files. Were missed by the automated script that added them to the cpp/h files, it appears.
* | | | | | Use the default ABI instead of forcing n32 for mips32lloyd2009-08-103-33/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | systems. This was something that for whatever reason that I have long since forogotten was a good idea on IRIX running MIPS circa a decade ago, but was reported to cause problems on the Debian builds. Add mipsel as an alias for the mips32 architecture for Debian. The mips32 submodel names were badly typoed and did not work correctly. Remove the leading mips32- and mips64- from MIPS submodel names.
* | | | | | Add compiler settings for the Open64 (http://www.open64.net/) compiler,lloyd2009-08-031-0/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | based on the SGI Pro64 and Pathscale EKOpath compilers. Only tested on an x86-64 system running Linux (v4.2.1). Miscompiles a few of the block ciphers (segvs, didn't bother to diagnose further; recompile with -O1 to fix), other than that seems OK.
* | | | | | Fix variable name in 32-bit bswap for VC++lloyd2009-08-031-1/+1
| | | | | |
* | | | | | Change how the pair is constructed for Sun Forte compatabilitylloyd2009-07-311-1/+1
| | | | | |
* | | | | | A typo in a macro check in bswap.h meant inline asm bswap was notlloyd2009-07-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | used on Visual C++
* | | | | | Add support for Dragonfly BSD (a fork of FreeBSD).lloyd2009-07-2517-1/+28
| | | | | | | | | | | | | | | | | | | | | | | | Contributed by Patrick Georgi
* | | | | | Two changes to proc_walk:lloyd2009-07-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't read any file that is not world-readable. This avoids trouble when running as root, since on Linux various special files can cause odd interactions and/or blocking behavior when read (for instance /proc/kmsg). ssumption is that no such files are world-readable. This also avoids any issue of reading data that is potentially sensitive. Instead of reading the first 1 KB of each file, only read the first 128 bytes. This prevents large files (like /proc/config.gz or /proc/kallsyms) from swamping the input buffer; these inputs are pretty static and shouldn't count for much. Reducing to 128 bytes causes a poll to read about 400 different files, rather than ~30.
* | | | | | Add an alias armv5tel for xscale, fixes autodetection for both Perl andlloyd2009-07-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Python configure scripts. Previously Python version would give up, and the Perl one would guess i686 (!)