aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Use std::string::data() instead of std::string::c_str() in cases where welloyd2007-07-219-10/+10
| | | | | just want access to the underlying data representation but don't care if the return value is NULL terminated or not.
* Combine the Blowfish initial sbox contents into a single 1024 element array.lloyd2007-07-172-98/+91
|
* If an algorithm cache lookup fails, index the newly created prototype objectlloyd2007-07-171-6/+7
| | | | | | | | | | | | | | | | | | | | | under the name that the algorithm was originally requested by. This enables proper caching for algorithm names which deref_alias fails to fully dereference such as "HMAC(SHA-1)". The previous code had two major problems with names of that type, firstly that the cache was effectively bypassed due to all prototype objects in Algorithm_Cache_Impl being indexed by their canonical names rather than the alias that they were requested under, and that there existed a race condition where a prototype object might be deleted while in use in multithreaded code. The downside of this change is that using multiple names to refer to a single algorithm causes multiple prototype objects to be created, one for each name that is in use. However the memory overhead of this should be fairly minimal and given the severity of the race condition this seems like a worthwhile tradeoff. A more complete fix would be to fix deref_alias to properly derference all alias names. That fix would be complimentary with this change in that if deref_alias handled all names properly there would be a single prototype object and there would then be no additional memory overhead to the cache.
* We don't need to use locked memory in the X.509 distinguished name.lloyd2007-06-111-1/+1
|
* On an assignment or initialization split across lines, put the = at the endlloyd2007-05-312-6/+6
| | | | of the line rather than the start.
* propagate from branch 'net.randombit.botan.stable' (head ↵lloyd2007-05-311-1/+1
|\ | | | | | | | | | | e92fe807f749c526669303bd1530dd76a4d10a86) to branch 'net.randombit.botan' (head 04a56f961f413296df6637b77ec45aa444513cfc)
| * Typo: RFC 882 instead of 822. Reported by Yves Jerschow.lloyd2007-05-311-1/+1
| |
* | Use the word-loading operations in SHA-384/SHA-512 as welllloyd2007-05-311-5/+4
| |
* | Write functions to handle loading and saving words a block at a time, taking ↵lloyd2007-05-3136-425/+303
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into account endian differences. The current code does not take advantage of the knowledge of which endianness we are running on; an optimization suggested by Yves Jerschow is to use (unsafe) casts to speed up the load/store operations. This turns out to provide large performance increases (30% or more) in some cases. Even without the unsafe casts, this version seems to average a few percent faster, probably because the longer loading loops have been partially or fully unrolled. This also makes the code implementing low-level algorithms like ciphers and hashes a bit more succint.
* | Enable DATA_ENCIPHERMENT in constraints for encryption keys.lloyd2007-05-181-1/+1
| |
* | Check in a change from Yves Jerschow optimizing the HMAC key schedule.lloyd2007-05-151-5/+11
| | | | | | | | | | Seems to be about 2-3 times faster in the case where the key is smaller than the hash's block size, which is almost always the case.
* | propagate from branch 'net.randombit.botan.stable' (head ↵lloyd2007-04-251-11/+1
|\| | | | | | | | | | | 8a2b79c64a13d3f70b0211d4f985a678951a9663) to branch 'net.randombit.botan' (head 677686443a5bb53b03d147999947448a9dc2679a)
| * Check in a working fix for the mem_pool issues encountered by some Visuallloyd2007-04-251-11/+1
| | | | | | | | Studio users.
| * Revert the last change; it actually broke the memory allocators in alloyd2007-04-231-1/+1
| | | | | | | | fairly massive way.
| * Fixes for Visual C++ 2005; it wasn't picking up the needed conversionlloyd2007-04-231-2/+3
| | | | | | | | from a void* to a Memory_Block, so call the constructor explicitly.
* | Small cleanups.lloyd2007-03-101-1/+0
| |
* | Add new OIDs for Rabin-Williams and Nyberg-Rueppel keys and signatures.lloyd2007-03-101-0/+23
| | | | | | | | | | These were allocated out of my IANA assigned arc, which is documented at http://www.randombit.net/text/oids.html
* | Catch exceptions in OIDS::lookup and rethrow a Lookup_Error. Attempting tolloyd2007-03-101-2/+10
| | | | | | | | | | | | encode a public key that did not have an OID for its key format resulted in a very confusing exception (thrown from char2digit) that was completely meaningless to anyone.
* | Move the version query code out of base.cpp and into version.cpp; I havelloyd2007-03-082-18/+28
| | | | | | | | | | | | | | a feeling I may want to perform automated source changes to the version strings (eg, to insert a monotone revision ID), but I'd just as soon perform such operations on as small a file as possible to limit any damage that might occur due to a source code rewriting script gone awry.
* | Inline the definition of Tiger::round into Tiger::pass, which was its onlylloyd2007-03-071-21/+55
| | | | | | | | | | | | caller. The resulting code is longer and somewhat harder to read, but it's giving 25-30% performance increases on my Core2, and something a bit lower but still measurable on the P4.
* | Add startup selftests for SHA-256 and HMAC(SHA-256)lloyd2007-03-041-0/+18
| |
* | Introduce a class Seed which represents the domain parameter seed, ratherlloyd2007-03-041-15/+30
| | | | | | | | than using an unadorned buffer with the increment() function.
* | Use prefix rather than postfix increment in places where it can be used.lloyd2007-03-034-6/+6
| |
* | Alter one of the constructors of DL_Group to take a parameter specifyinglloyd2007-03-032-36/+56
| | | | | | | | | | | | | | | | | | how big q should be. Add FIPS 186-3 DSA parameter generation, this allows for generating larger (2048 and 3072 bit) DSA keys. At this time there do not seem to be official test vectors for 186-3, and I have not checked against other implementations. Tests will be constructed using the latest OpenSSL snapshot.
* | BigInt::operator[] now guards against accesses that are larger than thelloyd2007-03-031-0/+17
| | | | | | | | current register size; reads return 0, writes extend the buffer.
* | Add a version of BigInt::binary_decode taking a MemoryRegion of byteslloyd2007-03-011-0/+8
| |
* | Inline the round functions of RC2. This is about 15% faster on my machine,lloyd2007-03-011-52/+48
| | | | | | | | and actually reduced the total line count.
* | merge of '8d39383f5142c3a42ccef1b06333f5aef24e998f'lloyd2007-03-012-15/+8
|\ \ | | | | | | | | | and 'e5ca819cb65b0c124d3ca9538d2e8bc0faa8ecb0'
| * | propagate from branch 'net.randombit.botan.stable' (head ↵lloyd2007-02-282-15/+8
| |\| | | | | | | | | | | | | | | | fd0242cd1f44b6d9d0e526c778860fcded174d62) to branch 'net.randombit.botan' (head 8a5aa356cb3aab0af22b09f51bfa5540fe890bdf)
| | * Include <iterator> into x509_ca.cpp for std::back_inserterlloyd2007-02-281-0/+1
| | |
| | * Remove a call to abort() in global_state() which was triggered if nolloyd2007-02-281-3/+0
| | | | | | | | | | | | | | | global state pointer was set. Presumably I put that there for debugging at some point and let it escape.
| | * Minor cleanup of the PKCS8_extract function.lloyd2007-01-281-14/+8
| | |
* | | Split DSA parameter generation into src/dsa_gen.cpp, and make the functionslloyd2007-03-012-96/+112
|/ / | | | | | | | | | | members of DL_Group (the only place they were called within the source, and outside of some rather esoteric things probably the only place you would ever need it).
* | Include the iterator header for std::back_inserter. Noticed whenlloyd2007-02-161-0/+1
| | | | | | | | compiling under the Dinkumware libraries.
* | Clean up the definition of PKCS8_extract, though really this whole filelloyd2007-02-151-5/+4
| | | | | | | | needs to be rewritten.
* | Improve readability slightly in the code handling CRL decoding.lloyd2007-02-151-5/+3
| |
* | propagate from branch 'net.randombit.botan.stable' (head ↵lloyd2007-01-201-1/+2
|\ \ | |/ |/| | | | | | | 0f5f960e749e55bc7b457b944ec168184353c300) to branch 'net.randombit.botan' (head 260d11a3da24886b3812b396413e6be768160d75)
| * Remove an include of assert.hlloyd2006-12-201-3/+2
| | | | | | | | | | When searching for last used, put the pointer into a Memory_Block first. That avoids a bug in Visual Studio.
| * Some minor efficiency gains in the memory allocator.lloyd2006-12-191-22/+16
| |
* | Bump copyright year to 2007lloyd2007-01-20207-207/+207
| |
* | Add a new parameter to the Base64_Encoder to specify that a trailinglloyd2007-01-201-3/+3
| | | | | | | | | | | | newline should always be added, even if the output would normally fit entirely on the current line. Monotone needs this for compatability with the Crypto++ implementation of base64.
* | Increase the maximum keylength of ARC4 to 256 bytes for Monotone.lloyd2007-01-201-1/+1
| |
* | Fix two bugs reported by Zack Weinberg in Base64_Decoderlloyd2007-01-081-2/+4
| |
* | Work around some strange Visual Studio bugs that popped up when compilinglloyd2007-01-081-22/+14
| | | | | | | | mem_pool.cpp with debug enabled.
* | The copy constructor of BER_Decoder was not copying other.parent; thislloyd2006-12-271-1/+1
|/ | | | | was causing failures on compilers that do not implement named return value optimization.
* Rename the mp_muladd source files to mp_muloplloyd2006-12-151-0/+0
|
* Rename certstore.cpp to certstor.cpp, both to match the header and to putlloyd2006-12-151-0/+0
| | | | it into an 8.3 format
* Move the UI pulse functions into the global library state. That is (as bestlloyd2006-12-145-44/+37
| | | | | as I can tell) the last of the global data, with the exception of the single global_lib_state pointer in libstate.cpp
* Use set_option in policy.cpplloyd2006-12-141-40/+40
|
* Add a new set_option member function to Configlloyd2006-12-141-0/+8
|