aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Use std::vector instead of SecureVector to hold random input for filter ↵lloyd2008-11-171-3/+3
| | | | benchmark
* Optimize AES decryption in the same way.lloyd2008-11-171-27/+34
|
* Fix indexing in EK_[4-7]lloyd2008-11-171-4/+4
|
* Move the loads of AES::EK to the top of the loop.lloyd2008-11-171-8/+18
| | | | | | | | | | | | Before: $ ./check --bench-algo=AES-128,AES-256 --seconds=10 AES-128: 101.99 MiB/sec AES-256: 78.30 MiB/sec After: $ ./check --bench-algo=AES-128,AES-256 --seconds=10 AES-128: 106.51 MiB/sec AES-256: 84.26 MiB/sec
* Format block comments for Doxygenlloyd2008-11-172-56/+64
|
* Only create RNG if needed in test applloyd2008-11-131-5/+5
|
* Don't namespace botan-config by major/minor versions (use pkg-config for ↵lloyd2008-11-131-2/+1
| | | | this if desired)
* Don't link against explict version in botan-config (breaks with static libs)lloyd2008-11-131-1/+1
|
* Make installation a little noisierlloyd2008-11-132-4/+4
|
* In Algorithm_Factory, create the Algorithm_Cache<> objects dynamicallylloyd2008-11-122-30/+40
| | | | | so that algo_cache.h does not have to be visible in the source of all callers who include libstate.h/algo_factory.h
* Add comment about non-obvious but vital side effectlloyd2008-11-121-0/+5
|
* Implement the guts of Algorithm_Factory::prototoype_X using a functionlloyd2008-11-121-65/+80
| | | | template to share the search and cache management logic across all types
* Remove Library_State::add_engine and Algorithm_Factory::add_engine,lloyd2008-11-123-35/+37
| | | | | | | | replacing with an updated constructor to Algorithm_Factory taking a vector of Engine*. The semantics of adding engines at runtime were not defined nor very clear, it seems best to prohibit this unless and until it is explicitly thought through (and until a need for it presents itself).
* Add missing prov_weight.cpplloyd2008-11-121-0/+31
|
* Library_State had two functions that did the same thing,lloyd2008-11-127-65/+69
| | | | | | | | | | | | | | | algo_factory and algorithm_factory. This is confusing so for consistency/simplicity, remove algo_factory, making algorithm_factory the function to call. In 1.7.14, several functions in lookup.h, including retrieve_block_cipher, retrieve_hash, etc were changed to accept a Library_State& reference. However it turns out with the modified design I've settled upon for 1.8 that it is not necessary to change those interfaces; instead they always refer to the global_state algorithm factory which is exactly the semantics one would expect/desire 99% of the time (and is source compatible with code written for 1.6, also a plus)
* Document memory leak being fixedlloyd2008-11-121-0/+1
|
* Fix memory leaks in PBE_PKCS5v20 and get_pbelloyd2008-11-123-4/+14
|
* Revert 2707eb68cb91e0633815a6d6c68d22b9f41227a4 - I had forgotten thatlloyd2008-11-121-1/+1
| | | | | | | | Engine_Iterator (and thus the public key engine code) still processes in order of first engine to last in the list. Benchmarking confirmed that GNU MP is still faster than both OpenSSL and Botan for public key operations (at least on my machine).
* Oops, 2^32 nanoseconds < 4.3 seconds, which is pretty small. Use 64 bitlloyd2008-11-121-7/+7
| | | | | integers where we manipulate values denominated in nanoseconds to avoid overflow (2^64 nanoseconds = 584.55 years, aka long enough)
* Add an implementation of name() to Timer. This allows it to belloyd2008-11-121-0/+2
| | | | | | | | | instantiated directly, which seemd a useful thing since a Timer ref must be passed to the benchmark system. However I think due to the low resolution of clock() the results were highly variable. Using gettimeofday or clock_gettime (Unix_Timer, POSIX_Timer) proved more consistent and in sync with what the existing benchmarks show, so use one of those if possible.
* Remove support for provider identifiers from SCAN_Name - it turns out thislloyd2008-11-1216-213/+277
| | | | | | | | | | | | was not the right place to keep track of this information. Also modify all Algorithm_Factory constructor functions to take instead of a SCAN_Name a pair of std::strings - the SCAN name and an optional provider name. If a provider is specified, either that provider will be used or the request will fail. Otherwise, the library will attempt best effort, based on user-set algorithm implementation settings (combine with benchmark.h for choosing the fastest implementation at runtime) or if not set, a static ordering (preset in static_provider_weight in prov_weight.cpp, though it would be nice to make this easier to toggle).
* Update readme and log for 1.7.21 release 2008-11-111.7.21lloyd2008-11-112-4/+4
|
* Remove last uses of lookup.h in CMS codelloyd2008-11-112-18/+31
|
* Remove some uses of lookup.h from CMS codelloyd2008-11-112-4/+9
|
* Mention an idea for wall clock sync in Hardware_Timerlloyd2008-11-111-0/+6
|
* Process engines in order of addition instead of backwardslloyd2008-11-111-3/+5
|
* Change self tests to not use lookup (instead passes_self_tests takes anlloyd2008-11-112-101/+121
| | | | Algorithm_Factory)
* Add constructors to MAC_Filter taking a MAC object pointer instead oflloyd2008-11-111-0/+31
| | | | a name.
* Drop use of entropy estimation in Randpool for the same reason as HMAC_RNG.lloyd2008-11-116-147/+21
| | | | | | As with HMAC_RNG, instead assume one bit of conditional entropy per byte of polled material. Since they are no longer used, drop the entropy estimation routines entirely.
* Move utils/{timer,mutex} to toplevellloyd2008-11-1127-0/+0
|
* Rename timers.h to timer.hlloyd2008-11-119-9/+9
|
* Remove pk_lookup - half of it (look_pk.{cpp,h}) depended on libstate directly,lloyd2008-11-1117-35/+11
| | | | | the other half was relied upon by pubkey. Move the contents into those two modules. Update deps.
* Mention engine changes in release noteslloyd2008-11-111-0/+2
|
* Include libstate.h in botan.h, since it is pretty vital at this point tolloyd2008-11-111-0/+1
| | | | | be able to get the global_state so as to get a reference to the Algorithm_Factory
* Wrap at 80 columnslloyd2008-11-115-7/+18
|
* Add a runtime benchmarking system (for ciphers/hash/MACs)lloyd2008-11-113-0/+232
|
* Make a change in how providers are requiested in Algorithm_Factory tolloyd2008-11-111-8/+24
| | | | | | | | | | | | | | | the engines. Unfortunately right now Botan doesn't understand that a construction like HMAC, while the basic HMAC class lives only in core, can use any of a variety of implementations as the underlying algorithm. The previous version got this completely wrong (basically the first time a particular HMAC was requested, one hash provider would be chosen at random). Now instead we always use the same subprovider. This means HMAC(SHA-1) won't see a speedup even if there is an asm version available (similarly, CMAC(AES) wouldn't see a speedup with OpenSSL's AES or an engine that provided AES using VIA's or Intel's extensions). Certainly a major deficiency, but I haven't worked out how to fix it yet.
* Move most of the remaining libstate code to pk_engine.cpp, move engineslloyd2008-11-1151-284/+128
| | | | | back to the toplevel since most othe dependencies have been removed now (except get_cipher which still needs changes)
* Use cache in Algorithm_Factory for cipherslloyd2008-11-113-129/+124
|
* Throw an exception if SCAN name is malformed or emptylloyd2008-11-111-0/+3
|
* Fix algo_cache to track aliases, all tests passlloyd2008-11-112-31/+27
|
* Remove support for multiple providers in SCAN_Name, mostly because Illoyd2008-11-112-32/+19
| | | | couldn't really figure out how the semantics should work.
* Add a new cache at the level of Algorithm_Factory. Intent is to replacelloyd2008-11-114-1/+149
| | | | | | | the caches included in the Engines, allowing faster search/query along and making the Engine implementations mostly or entirely stateless, also removing the need for a two-phase initialization there. Stil buggy + incomplete.
* Make Engine::find_XYZ publiclloyd2008-11-111-15/+17
|
* Remove needless include of libstate.h from init.hlloyd2008-11-111-1/+2
|
* Split asm_engine into three engines (ia32, amd64, sse2). This allowslloyd2008-11-1114-71/+202
| | | | them to be individually requested as providers on lookup.
* Make SCAN_Name::arg return a new SCAN_Name that has the same providers list,lloyd2008-11-115-30/+49
| | | | this allows provider preferences to be passed down to sub-algorithms.
* Switch to Algorithm_Factory in PBES2lloyd2008-11-113-114/+129
|
* Remove global state dependency from pbes1lloyd2008-11-113-38/+94
|
* Bubble up use of global algo factory out of DSA parameter gen to DL_Grouplloyd2008-11-113-6/+14
|