aboutsummaryrefslogtreecommitdiffstats
path: root/src/algo_factory
Commit message (Collapse)AuthorAgeFilesLines
* Rename sse2 engine to simdlloyd2009-10-291-1/+1
|
* Remove the 'realname' attribute on all modules and cc/cpu/os info files.lloyd2009-10-291-2/+0
| | | | | Pretty much useless and unused, except for listing the module names in build.h and the short versions totally suffice for that.
* Check for cipher_mode() being set; if it is, not an algo_factory algolloyd2009-10-131-0/+4
|
* Add 'Distributed under...' text to files missing it. Some format cleanupslloyd2009-10-071-1/+4
|
* Add *s before comment lines in file headerslloyd2009-09-081-2/+2
|
* Add a script that reads the output of print_deps.py and rewriteslloyd2009-07-151-4/+9
| | | | | | the info.txt files with the right module dependencies. Apply it across the codebase.
* Thomas Moschny passed along a request from the Fedora packagers which camelloyd2009-03-303-0/+6
| | | | | | | | | | | | | | | up during the Fedora submission review, that each source file include some text about the license. One handy Perl script later and each file now has the line Distributed under the terms of the Botan license after the copyright notices. While I was in there modifying every file anyway, I also stripped out the remainder of the block comments (lots of astericks before and after the text); this is stylistic thing I picked up when I was first learning C++ but in retrospect it is not a good style as the structure makes it harder to modify comments (with the result that comments become fewer, shorter and are less likely to be updated, which are not good things).
* Fix misspelled words in algo_factory.{cpp,h}, from Charles Brockman in bug 40lloyd2009-03-022-12/+13
|
* 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-121-14/+25
| | | | | | | | 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
|
* 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).
* Remove support for provider identifiers from SCAN_Name - it turns out thislloyd2008-11-124-152/+242
| | | | | | | | | | | | 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).
* Process engines in order of addition instead of backwardslloyd2008-11-111-3/+5
|
* Wrap at 80 columnslloyd2008-11-112-4/+10
|
* 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-113-8/+4
| | | | | 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
|
* Fix algo_cache to track aliases, all tests passlloyd2008-11-112-31/+27
|
* 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.
* Split asm_engine into three engines (ia32, amd64, sse2). This allowslloyd2008-11-111-1/+1
| | | | them to be individually requested as providers on lookup.
* Remove a global_state() dependency on Engine without breaking Monotonelloyd2008-11-112-0/+4
| | | | via two-stage initialization.
* Add a function to query algorithm providerslloyd2008-11-112-0/+27
|
* Move Algorithm_Factory from libstate (which it did not depend on) to ↵lloyd2008-11-113-0/+332
algo_factory/