aboutsummaryrefslogtreecommitdiffstats
path: root/src/eng_base.cpp
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* On an assignment or initialization split across lines, put the = at the endlloyd2007-05-311-2/+2
| | | | of the line rather than the start.
* Bump copyright year to 2007lloyd2007-01-201-1/+1
|
* Change Engine to not rely on the existence of an Algorithm base class forlloyd2006-09-061-123/+83
| | | | the various types it wants to cache.
* Initial checkin1.5.6lloyd2006-05-181-0/+345