aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Doxygenlloyd2010-11-028-16/+127
|
* Compile fixlloyd2010-11-021-1/+1
|
* Doxygenlloyd2010-11-0211-11/+77
|
* Add missing filelloyd2010-11-011-0/+43
|
* Derive KDF from Algorithmlloyd2010-11-017-6/+26
|
* Add new top-level algorithm which provides basic functionality: namelloyd2010-11-0123-66/+30
| | | | | | | | 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.
* Unusedlloyd2010-10-291-2/+0
|
* Make MemoryRegion::set protected, change all callerslloyd2010-10-2916-73/+97
|
* Always do 256 blocks at a time in CTR, makes increment easierlloyd2010-10-291-23/+14
|
* Use u32bit herelloyd2010-10-291-4/+4
|
* s/u32bit/size_t/lloyd2010-10-296-9/+9
|
* Remove BufferedComputation::OUTPUT_LENGTHlloyd2010-10-2940-137/+134
|
* Cleanuplloyd2010-10-293-3/+2
|
* Remove socket dependency from TLS_Server, instead interacting withlloyd2010-10-293-17/+20
| | | | generic std::functions for I/O
* Eliminate the constant size_t values in SymmetricAlgorithm that givelloyd2010-10-2835-250/+196
| | | | | | | | | | | | | | | | | | | the parameters of the key length. Instead define a new function which returns a simple object which contains this information. This definitely breaks backwards compatability, though only with code that directly manipulates low level objects like BlockCipher*s directly, which is probably relatively rare. Also remove some deprecated accessor functions from lookup.h. It turns out block_size_of and output_size_of are being used in the TLS code; I need to remove them from there before I can delete these entirely. Really that didn't make much sense, because they assumed all implementations of a particular algorithm will have the same specifications, which is definitely not necessarily true, especially WRT key length. It is much safer (and probably simpler) to first retrieve an instance of the actual object you are going to use and then ask it directly.
* Fix doxygenlloyd2010-10-281-3/+3
|
* EME1::HASH_LENGTH was always exactly the output size of the hash, butlloyd2010-10-282-18/+16
| | | | | | Phash is a vector we were keeping around which has an actual hash output, so just access Phash.size() and avoid the need to carry an extra size_t around.
* Use standalone encoder for end of message padding toolloyd2010-10-282-27/+9
|
* Consolidate hex and base64 filters into a single sub-module.lloyd2010-10-287-66/+44
| | | | Use the standalone base64 functions for most of the Base64 logic
* Simple standalone base64 encoderlloyd2010-10-283-0/+159
|
* These are internal headers and do not need public linkagelloyd2010-10-283-3/+3
|
* Rename the base64 filter and macro names in prep for addinglloyd2010-10-276-8/+6
| | | | standalone/Pipe-free versions of it
* Move base64 char tables to base64.cpplloyd2010-10-272-48/+36
|
* Make TLS_Client entirely via callbacks, not talking to Socket directlylloyd2010-10-192-43/+28
|
* Make Record_Writer call a callback instead of writing directly to the socketlloyd2010-10-195-10/+20
|
* Run MAC as standalone object instead of running it through a Pipe atlloyd2010-10-193-48/+56
| | | | record layer.
* Update AES-NI for SecureVector and BlockCipher changeslloyd2010-10-191-9/+9
|
* BigInt::get_substring really shouldn't return size_t. Revert tolloyd2010-10-185-10/+8
| | | | | | u32bit. Maybe should be word? But that would restrict window sizes more than might be desirable (we couldn't use more than 8 bit window on the assumption that the lib might be using byte limbs). Messy.
* For const BigInt::operator[], return a const reference instead of alloyd2010-10-181-1/+1
| | | | | value, so you can always safely capture the result by a const reference.
* s/u32bit/size_t/lloyd2010-10-184-38/+38
|
* s/u32bit/size_t/lloyd2010-10-187-51/+51
|
* Prefix vs postfixlloyd2010-10-152-4/+4
|
* Last u32bit->size_t for ssllloyd2010-10-1510-101/+108
|
* More size_tlloyd2010-10-153-28/+28
|
* More size_tlloyd2010-10-153-30/+30
|
* Use size_t in ssllloyd2010-10-1512-75/+75
|
* Only allocate as much working space as needed in key schedulelloyd2010-10-141-4/+4
|
* Remove standalone S functionlloyd2010-10-141-12/+13
|
* In all cases where the block size of the cipher is fixed, the keylloyd2010-10-1432-140/+176
| | | | | | | | | | | | | | | | 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-1311-26/+26
|
* More size_tlloyd2010-10-133-18/+18
|
* Implicit rounds based on key variable sizelloyd2010-10-134-27/+44
|
* Make the rounds implicit with the size of the key valueslloyd2010-10-132-55/+42
|
* More size_t. Document changeslloyd2010-10-137-18/+18
|
* Compile fixlloyd2010-10-131-5/+13
|
* Use buffer.size() directly to avoid lots of virtual calls in core looplloyd2010-10-131-9/+9
|
* Remove the upto argument to update_belloyd2010-10-132-9/+12
|
* Add a new subclass for BlockCipher BlockCipher_Fixed_Block_Size, whichlloyd2010-10-1357-203/+232
| | | | | | | | | | | | | | sets the block size statically and also creates an enum with the size. Use the enum instead of calling block_size() where possible, since that uses two virtual function calls per block which is quite unfortunate. The real advantages here as compared to the previous version which kept the block size as a per-object u32bit: - The compiler can inline the constant as an immediate operand (previously it would load the value via an indirection on this) - Removes 32 bits per object overhead (except in cases with actually variable block sizes, which are very few and rarely used)
* Split some of the ASN.1 types into their own headerslloyd2010-10-138-58/+100
|
* s/u32bit/size_t/ in asn1lloyd2010-10-137-75/+77
|