Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Update Keccak to the round 3 variant announced 2011-01-17 | lloyd | 2011-01-20 | 2 | -9/+4 |
| | | | | | Only change is the padding rule. It 'simplifies' the padding by making it less flexible and harder to implement efficiently. :( | ||||
* | Avoid more VC warnings | lloyd | 2010-12-13 | 3 | -4/+8 |
| | |||||
* | Do the XOR a word at a time where possible which gets performance back | lloyd | 2010-12-13 | 1 | -0/+17 |
| | | | | | to the level of the version using xor_buf, at least on a little-endian CPU. | ||||
* | Fix Keccak message XOR, did not work on big-endian CPUs | lloyd | 2010-12-13 | 1 | -8/+12 |
| | |||||
* | Reset state on finalization | lloyd | 2010-12-11 | 1 | -3/+2 |
| | |||||
* | XOR the input directly into the state. Only slightly faster (about 5% | lloyd | 2010-12-11 | 2 | -19/+22 |
| | | | | | | on motoko), but does also reduce memory overhead. Perhaps doing the XOR by hand and then doing aligned 64-bit XORs where possible would be beneficial here. | ||||
* | Single update for padding bytes | lloyd | 2010-12-11 | 1 | -4/+3 |
| | |||||
* | Add a simple but functioning implementation of Keccak. Only the | lloyd | 2010-12-10 | 3 | -0/+230 |
| | | | | proposed SHA-3 parameter sets are supported. | ||||
* | Mass disable copy constructors and assignment on all algos until proven ↵ | lloyd | 2010-11-04 | 1 | -3/+0 |
| | | | | safe/useful | ||||
* | Update Skein-512 for the new 1.3 specification, just changes the key | lloyd | 2010-11-03 | 1 | -2/+2 |
| | | | | schedule constant to prevent rotational attacks. | ||||
* | Remove needless destructors | lloyd | 2010-11-03 | 1 | -2/+0 |
| | |||||
* | Doxygen | lloyd | 2010-11-02 | 5 | -4/+34 |
| | |||||
* | Add new top-level algorithm which provides basic functionality: name | lloyd | 2010-11-01 | 2 | -13/+4 |
| | | | | | | | | query, clearing, and cloning. Applies to ciphers, hashes, MACs, and PBKDFs. May extend to KDFs later as well. A single combined hierarchy in particular will make the algo_factory much simpler. | ||||
* | Remove BufferedComputation::OUTPUT_LENGTH | lloyd | 2010-10-29 | 25 | -95/+103 |
| | |||||
* | More size_t | lloyd | 2010-10-13 | 1 | -1/+1 |
| | |||||
* | More size_t. Document changes | lloyd | 2010-10-13 | 3 | -6/+6 |
| | |||||
* | Use buffer.size() directly to avoid lots of virtual calls in core loop | lloyd | 2010-10-13 | 1 | -9/+9 |
| | |||||
* | Remove HashFunction::HASH_BLOCK_SIZE entirely | lloyd | 2010-10-13 | 10 | -36/+44 |
| | |||||
* | Remove most uses of HASH_BLOCK_SIZE | lloyd | 2010-10-13 | 19 | -44/+49 |
| | |||||
* | Use output_length() instead of OUTPUT_LENGTH pseudo-property | lloyd | 2010-10-13 | 16 | -23/+23 |
| | |||||
* | More size_t | lloyd | 2010-10-13 | 1 | -1/+1 |
| | |||||
* | Use size_t for BufferedComputation::add_data | lloyd | 2010-10-12 | 44 | -161/+165 |
| | |||||
* | Split SHA-2 into 32 and 64 bit versions; they are totally independent | lloyd | 2010-09-30 | 6 | -1/+6 |
| | | | | of each other anyway. | ||||
* | Make configure output more sensible wrt incompatible modules | lloyd | 2010-09-28 | 4 | -0/+16 |
| | |||||
* | Do the prep/unroll phase 4 rounds before it is needed instead of 3; | lloyd | 2010-09-21 | 1 | -97/+92 |
| | | | | tests on Nehalem indicate a small but measurable win there (about 3%). | ||||
* | Clean up, hide union accesses with a macro to make it easier to test | lloyd | 2010-09-21 | 1 | -40/+92 |
| | | | | alternative methods of getting pieces of the expanded message. | ||||
* | Implicit conversions | lloyd | 2010-09-14 | 1 | -7/+7 |
| | |||||
* | More changes to avoid vector to pointer implicit conversions | lloyd | 2010-09-14 | 1 | -2/+2 |
| | |||||
* | Completely remove the second parameter to SecureVector which specifies | lloyd | 2010-09-14 | 18 | -53/+69 |
| | | | | | | | | | | | | | | | | | | | | the initial/default length of the array, update all users to instead pass the value to the constructor. This is a old vestigal thing from a class (SecureBuffer) that used this compile-time constant in order to store the values in an array. However this was changed way back in 2002 to use the same allocator hooks as the rest of the containers, so the only advantage to using the length field was that the initial length was set and didn't have to be set in the constructor which was midly convenient. However this directly conflicts with the desire to be able to (eventually) use std::vector with a custom allocator, since of course vector doesn't support this. Fortunately almost all of the uses are in classes which have only a single constructor, so there is little to no duplication by instead initializing the size in the constructor. | ||||
* | Remove more uses of vector to pointer implicit conversions | lloyd | 2010-09-13 | 6 | -18/+38 |
| | |||||
* | More vector->pointer conversion removals. | lloyd | 2010-09-13 | 1 | -3/+3 |
| | | | | | | | | | | | Add RandomNumberGenerator::random_vec, which takes an length n and returns a new SecureVector with randomized contents of that size. This nicely covers most of the cases where randomize was being called on a vector, and is a little cleaner in the code as well, instead of vec.resize(length); rng.randomize(&vec[0], vec.size()); we just write vec = rng.random_vec(length); | ||||
* | Anywhere where we use MemoryRegion::begin to get access to the raw pointer | lloyd | 2010-09-13 | 15 | -18/+18 |
| | | | | | representation (rather than in an interator context), instead use &buf[0], which works for both MemoryRegion and std::vector | ||||
* | Big, invasive but mostly automated change, with a further attempt at | lloyd | 2010-09-07 | 15 | -25/+25 |
| | | | | | | | | | | | | | | harmonising MemoryRegion with std::vector: The MemoryRegion::clear() function would zeroise the buffer, but keep the memory allocated and the size unchanged. This is very different from STL's clear(), which is basically the equivalent to what is called destroy() in MemoryRegion. So to be able to replace MemoryRegion with a std::vector, we have to rename destroy() to clear() and we have to expose the current functionality of clear() in some other way, since vector doesn't support this operation. Do so by adding a global function named zeroise() which takes a MemoryRegion which is zeroed. Remove clear() to ensure all callers are updated. | ||||
* | Also allow clang with 32-bit assembly code, everything seems to work | lloyd | 2010-08-08 | 4 | -75/+0 |
| | | | | fine with latest SVN. | ||||
* | Clang understands at least some GCC inline asm syntax as well as what | lloyd | 2010-08-08 | 1 | -0/+1 |
| | | | | an .S file is, so allow it for x86-64. Tested/works with Clang SVN. | ||||
* | Consolidate the two engines that provided assembler implementations | lloyd | 2010-07-13 | 1 | -1/+1 |
| | | | | | | (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. | ||||
* | For the SHA-2 classes, don't use inheritence to share a handful of | lloyd | 2010-06-28 | 4 | -85/+106 |
| | | | | | things, just share the compression function via an anon namespace member, and replicate the simple stuff like copy_out. | ||||
* | Replace "@return a blah" and "@return the blah" with just "@return blah" | lloyd | 2010-06-16 | 1 | -1/+1 |
| | |||||
* | Yet more Doxygen comments | lloyd | 2010-06-16 | 2 | -6/+18 |
| | |||||
* | More Doxygen comments | lloyd | 2010-06-16 | 7 | -2/+32 |
| | |||||
* | Tiger::clone's result always used 3 passes | lloyd | 2010-06-16 | 1 | -1/+5 |
| | |||||
* | More Doxygen | lloyd | 2010-06-15 | 3 | -4/+18 |
| | |||||
* | More Doxygen updates/fixes | lloyd | 2010-06-15 | 19 | -32/+44 |
| | |||||
* | More Doxygen fixes | lloyd | 2010-06-15 | 1 | -2/+3 |
| | |||||
* | Use "/*" instead of "/**" in starting comments at the begining of a file. | lloyd | 2010-06-07 | 9 | -9/+9 |
| | | | | | 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. | lloyd | 2010-05-25 | 3 | -189/+0 |
| | | | | | More commentary posted to the list: http://lists.randombit.net/pipermail/botan-devel/2010-May/001123.html | ||||
* | Check to make sure the user didn't provide two of the same has for | lloyd | 2010-04-23 | 1 | -0/+3 |
| | | | | | | Comb4P. If you do this, the first N bytes are all zero, which could expose some problems, especially if the caller truncates or is relying on Comb4P acting like a random function. | ||||
* | Remove some C-style casts | lloyd | 2010-04-23 | 1 | -1/+1 |
| | |||||
* | Comb4P: hashes must be the same length | lloyd | 2010-04-22 | 1 | -2/+0 |
| | |||||
* | Add Comb4P hash combiner, as described in Anja Lehmann's thesis. | lloyd | 2010-04-17 | 3 | -0/+152 |
| |