Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | When searching the block list, first try the last block we had a good | lloyd | 2006-09-11 | 1 | -4/+4 |
| | | | | | | | | allocation from, rather than the block after that one. This helps the pathalogical case where there are many full blocks and some free blocks at the very end of the list (as then it would loop through each one, trying and failing to allocate from an already full block until it hit the end of the list again). | ||||
* | Correctly deal with allocators added post-initialization. In particular, | lloyd | 2006-09-11 | 4 | -48/+40 |
| | | | | | | | | | | handle the case where an allocator is added that has the same name as one already registered. Flush the cached allocator pointer when the default is changed. Mark comparison operations in Pooling_Allocator::Memory_Block as inline; this seems to help the STL sort and binary search algorithms tremendously. | ||||
* | Remove a useless wrapper function. | lloyd | 2006-09-10 | 1 | -17/+6 |
| | |||||
* | Completely rewrite how the default X509_Store searches are performed, | lloyd | 2006-09-10 | 1 | -86/+41 |
| | | | | | | exposing the actual search objects to the user rather than wrapping them in functions. Primarily this is to avoid the Visual Studio bug alluded to in the last commit. | ||||
* | Hack around some Visual Studio bugs that I can't seem to find good solutions | lloyd | 2006-09-10 | 4 | -16/+35 |
| | | | | for. | ||||
* | Add parenthesis to make the order of evaluation in an expression more obvious | lloyd | 2006-09-09 | 1 | -1/+1 |
| | |||||
* | Add a couple of static_casts to make it clear where a type conversion is | lloyd | 2006-09-08 | 4 | -13/+15 |
| | | | | | | | | | being performed. Undefined the prototype creating macro in x509stat.cpp after use. Avoid a possible type conversion in bigint_divop by storing high's top bit in a word instead of a bool. | ||||
* | Return the correct type from Basic_Constraints::get_path_limit (was coercing | lloyd | 2006-09-08 | 1 | -1/+1 |
| | | | | the path limit integer to a boolean) | ||||
* | Rename instances of X509_PublicKey and PKCS8_PrivateKey | lloyd | 2006-09-06 | 9 | -34/+34 |
| | |||||
* | Split PK_Key into Public_Key and Private_Key; these new classes merge in | lloyd | 2006-09-06 | 10 | -81/+53 |
| | | | | the interfaces previously included in X509_PublicKey and PKCS8_PrivateKey. | ||||
* | Implement codec objects for private keys as well. | lloyd | 2006-09-06 | 5 | -125/+155 |
| | |||||
* | Remove some old commented out test code. | lloyd | 2006-09-06 | 1 | -54/+0 |
| | |||||
* | First step in a major rewrite of the high level public key code. The | lloyd | 2006-09-06 | 3 | -65/+205 |
| | | | | | | X509_PublicKey object now offers interfaces that return encoder and decoder objects. Eventually these changes will make it much easier to support alternate key formats like OpenPGP. | ||||
* | Merge a formerly duplicate function (one in an anonymous namespace in | lloyd | 2006-09-06 | 2 | -28/+19 |
| | | | | x509self.cpp, the other a block of code in X509_CA's constructor). | ||||
* | Move the declaration of AlgorithmIdentifier into its own header file. | lloyd | 2006-09-06 | 1 | -1/+1 |
| | |||||
* | PK_Verifier no longer keeps a reference to the key being used; it only | lloyd | 2006-09-06 | 1 | -7/+15 |
| | | | | | ever needed it to pull a few pieces of information from the key, which it now gets by calling pure virtual functions implemented by its children. | ||||
* | Change Engine to not rely on the existence of an Algorithm base class for | lloyd | 2006-09-06 | 1 | -123/+83 |
| | | | | the various types it wants to cache. | ||||
* | Add a new version of the StreamCipher_Filter constructor that takes a key | lloyd | 2006-08-23 | 1 | -0/+11 |
| | | | | as well as the cipher name | ||||
* | Put the definitions of Pipe::LAST_MESSAGE and Pipe::DEFAULT_MESSAGE into | lloyd | 2006-08-23 | 1 | -0/+6 |
| | | | | | pipe.cpp; apparently GCC was eliding them completely from the shared library otherwise, meaning Boost.Python couldn't reference them. | ||||
* | Fix a bug that caused subject alternative name information to be saved | lloyd | 2006-08-23 | 1 | -2/+5 |
| | | | | as issuer names. | ||||
* | X509_Certificate::ex_constraints and ::policies now return (if possible) | lloyd | 2006-08-22 | 1 | -2/+22 |
| | | | | | | string representations of the OIDs; anything for which a human-readable version does not exist in the OID table is returned in the normal dotted decimal representation. | ||||
* | Have OIDS::lookup do the right thing when given an OID that isn't | lloyd | 2006-08-22 | 1 | -2/+8 |
| | | | | | registered in the name database, or asked to lookup an OID with a bare OID string representation. | ||||
* | Add "OrgUnit" as an additional synonym for X520.OrganizationalUnit, | lloyd | 2006-08-22 | 1 | -1/+2 |
| | | | | though it's clear that this whole naming system is very broken. | ||||
* | Let SHA_160::W be resized dynamically; potentially the asm version could | lloyd | 2006-08-21 | 1 | -0/+8 |
| | | | | use a little extra workspace, this makes that simpler to do. | ||||
* | Remove an oddly placed newline | lloyd | 2006-08-21 | 1 | -1/+0 |
| | |||||
* | Move bigint_simple_mul into mp_mul.cpp, since that is the only place it | lloyd | 2006-08-19 | 3 | -15/+26 |
| | | | | | | was used. Make a variant of bigint_simple_mul, bigint_simple_sqr, for mp_sqr.cpp | ||||
* | Move Montgomery reduction algorithm into mp_asm.cpp | lloyd | 2006-08-19 | 5 | -65/+66 |
| | | | | | | | | | | Move the inner-most loop of Montgomery into bigint_mul_add_words, in mp_muladd.cpp Use bigint_mul_add_words for the inner loop of bigint_simple_multiply Move the compare/subtract at the end of the Montomgery algorithm into bigint_monty_redc | ||||
* | Don't test Skipjack at startup - it's really not that important, and | lloyd | 2006-08-19 | 1 | -8/+0 |
| | | | | | running the test means the algorithm prototype is loaded into memory when it will probably never be used later. | ||||
* | Remove trailing whitespace | lloyd | 2006-08-19 | 2 | -2/+2 |
| | |||||
* | Simplify the implementation of bigint_divop | lloyd | 2006-08-18 | 1 | -6/+8 |
| | |||||
* | Move montgomery_reduce to after choose_window_bits for better consistency | lloyd | 2006-08-17 | 1 | -18/+18 |
| | | | | between the Montgomery and fixed-window exponentiators. | ||||
* | Create a slightly higher level wrapper around bigint_monty_redc, save a | lloyd | 2006-08-17 | 1 | -18/+13 |
| | | | | few lines. | ||||
* | Remove whitespace | lloyd | 2006-08-17 | 1 | -3/+0 |
| | |||||
* | Inline the call to word_add in bigint_monty_redc - the carry in was | lloyd | 2006-08-17 | 1 | -3/+3 |
| | | | | | | always zero, so this is both a bit more efficient and more readable. It won't be able to take advantage of asm implementations of word_add, but the benefit from that with a single call per loop is small anyway. | ||||
* | Move bigint_monty_redc to its own file; profiling indicates that this | lloyd | 2006-08-17 | 2 | -33/+49 |
| | | | | | single function is using 30+% of the runtime during RSA operations, making it a strong candidate for implementation in assembly. | ||||
* | Split Montgomery reduction into two functions, the core algorithm linked | lloyd | 2006-08-16 | 2 | -4/+13 |
| | | | | | | as C (for replacing by asm later), and another that performs a subtract if needed (inside powm_mnt.cpp). That way an asm version of the Montgomery algorithm won't have to deal with calling other functions. | ||||
* | Remove some variables we didn't really need in the key schedule | lloyd | 2006-08-15 | 1 | -6/+4 |
| | |||||
* | Replace Serpent's key_xor function with a macro, so the header can be | lloyd | 2006-08-15 | 1 | -6/+5 |
| | | | | shared between the C++ and assembly versions. | ||||
* | Clear the W buffer inside the SHA_160::clear() functions | lloyd | 2006-08-13 | 1 | -0/+1 |
| | |||||
* | Merge the AES TD and TE arrays, so assembly versions can used indexed | lloyd | 2006-08-13 | 2 | -188/+189 |
| | | | | | addressing rather than having to keep all four pointers around. Unfortunately GCC does not seem to be taking advantage of this. | ||||
* | Throw Invalid_Key_Length rather than Invalid_Argument in AES constructor | lloyd | 2006-08-13 | 1 | -2/+1 |
| | | | | if a bad key value is selected. | ||||
* | Fix compile problem when no timer modules are compiled in | lloyd | 2006-08-12 | 1 | -0/+1 |
| | |||||
* | Make the ByteReader class in CAST_128::key_schedule only manipulate | lloyd | 2006-08-10 | 1 | -2/+2 |
| | | | | const pointers, as it doesn't actually need write access to anything. | ||||
* | If an exception is thrown anywhere inside Init::initialize, catch it | lloyd | 2006-08-09 | 1 | -34/+39 |
| | | | | | and force a deinitialization before throwing it further up the call stack. | ||||
* | Remove memory leak - the configuration object was not being deleted. | lloyd | 2006-08-09 | 1 | -0/+1 |
| | |||||
* | Alter how buffering is performed in MDx_HashFunction:add_data; rather | lloyd | 2006-08-05 | 1 | -11/+19 |
| | | | | | | | than always placing the first block into the temp buffer, we only copy the data into there if we have to (ie, if we have an incomplete block). So calling add_data with a block that is a multiple of the hash function's internal block size is entirely zero-copy. | ||||
* | Make it possible to insert Engines into the front of the queue; | lloyd | 2006-08-05 | 1 | -3/+7 |
| | | | | | | otherwise any Engines added after startup (eg, application-specific ones) would only be used for new algorithm - it wouldn't be possible for them to override existing implementations. | ||||
* | The use_engines flag was not being respected; specifically, if there | lloyd | 2006-08-05 | 1 | -4/+8 |
| | | | | were any engines built into the library, they were used no matter what. | ||||
* | Move include of x509_ext.h to x509_ca.h, instead of using forward | lloyd | 2006-07-31 | 1 | -13/+8 |
| | | | | | | | | declaration. Remove not_before and not_after variables, as they were only used once. Use the computed Key_Constraints value when signing a new certificate. | ||||
* | Fix definition of OID 2.5.4.8; was accidentally changed by search-replace | lloyd | 2006-07-31 | 1 | -1/+1 |
| | | | | during cleanups of the initialization code. |