aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Add a new version of the StreamCipher_Filter constructor that takes a keylloyd2006-08-231-0/+11
| | | | as well as the cipher name
* Put the definitions of Pipe::LAST_MESSAGE and Pipe::DEFAULT_MESSAGE intolloyd2006-08-231-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 savedlloyd2006-08-231-2/+5
| | | | as issuer names.
* X509_Certificate::ex_constraints and ::policies now return (if possible)lloyd2006-08-221-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'tlloyd2006-08-221-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,lloyd2006-08-221-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 couldlloyd2006-08-211-0/+8
| | | | use a little extra workspace, this makes that simpler to do.
* Remove an oddly placed newlinelloyd2006-08-211-1/+0
|
* Move bigint_simple_mul into mp_mul.cpp, since that is the only place itlloyd2006-08-193-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.cpplloyd2006-08-195-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, andlloyd2006-08-191-8/+0
| | | | | running the test means the algorithm prototype is loaded into memory when it will probably never be used later.
* Remove trailing whitespacelloyd2006-08-192-2/+2
|
* Simplify the implementation of bigint_divoplloyd2006-08-181-6/+8
|
* Move montgomery_reduce to after choose_window_bits for better consistencylloyd2006-08-171-18/+18
| | | | between the Montgomery and fixed-window exponentiators.
* Create a slightly higher level wrapper around bigint_monty_redc, save alloyd2006-08-171-18/+13
| | | | few lines.
* Remove whitespacelloyd2006-08-171-3/+0
|
* Inline the call to word_add in bigint_monty_redc - the carry in waslloyd2006-08-171-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 thislloyd2006-08-172-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 linkedlloyd2006-08-162-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 schedulelloyd2006-08-151-6/+4
|
* Replace Serpent's key_xor function with a macro, so the header can belloyd2006-08-151-6/+5
| | | | shared between the C++ and assembly versions.
* Clear the W buffer inside the SHA_160::clear() functionslloyd2006-08-131-0/+1
|
* Merge the AES TD and TE arrays, so assembly versions can used indexedlloyd2006-08-132-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 constructorlloyd2006-08-131-2/+1
| | | | if a bad key value is selected.
* Fix compile problem when no timer modules are compiled inlloyd2006-08-121-0/+1
|
* Make the ByteReader class in CAST_128::key_schedule only manipulatelloyd2006-08-101-2/+2
| | | | const pointers, as it doesn't actually need write access to anything.
* If an exception is thrown anywhere inside Init::initialize, catch itlloyd2006-08-091-34/+39
| | | | | and force a deinitialization before throwing it further up the call stack.
* Remove memory leak - the configuration object was not being deleted.lloyd2006-08-091-0/+1
|
* Alter how buffering is performed in MDx_HashFunction:add_data; ratherlloyd2006-08-051-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;lloyd2006-08-051-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 therelloyd2006-08-051-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 forwardlloyd2006-07-311-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-replacelloyd2006-07-311-1/+1
| | | | during cleanups of the initialization code.
* Remove FIPS140::good_edc; it has never been used and probably will notlloyd2006-07-291-18/+0
| | | | be in the forseeable future.
* Change Builtin_Module constructor to take an InitializerOptionslloyd2006-07-282-17/+31
| | | | | | | | instead of just a boolean, so it can (if desired) examine any arguments it likes. Only run the startup self tests if the selftest or fips140 option is toggled on.
* Add a "selftest" option that allows the user to disable startup selftestslloyd2006-07-281-0/+8
|
* Remove unneccessary includeslloyd2006-07-281-2/+0
|
* Add two more constructors to AlgorithmIdentifier, which take alloyd2006-07-221-4/+36
| | | | | | Encoding_Option enum that can specify various options. Right now the only one supported/available is USE_NULL_PARAM, to set the parameters to a DER-encoded NULL object
* Remove a declaration for add_alias, which was removed at some pointlloyd2006-07-162-37/+45
| | | | | | | | | without the decl also being removed. Add an add_alias function to the Config class, just a simple wrapper around Config::set Change policy.cpp to use add_alias instead of set when setting an alias
* Extend the language offered by InitializerOptions a bit, so thatlloyd2006-07-131-13/+44
| | | | | | boolean options can be explicitly turned off. Add support for checking the documented "fips140" argument
* Add a LibraryInitializer constructor taking a std::string, which simplylloyd2006-07-121-0/+9
| | | | calls the InitializerOptions constructor.
* Make Mutex_Factory an abstract class, move the creation of the no-oplloyd2006-07-072-2/+6
| | | | Default_Mutex to the new Default_Mutex_Factory
* Remove a line that should have been deleted in the last commit.lloyd2006-07-071-1/+0
|
* Have Library_State's constructor thrown an exception if thelloyd2006-07-072-10/+5
| | | | | | | | mutex_factory argument is NULL. Have Init::initialize() pass either a new Mutex_Factory (the default no-op version), or the result of modules.mutex_factory(), depending on the value of args.thread_safe()
* Respect the secure_memory config optionlloyd2006-07-022-1/+9
|
* Move InitializerOptions out of the Init namespacelloyd2006-07-022-8/+3
| | | | | Alter the initialization functions to take an InitializerOptions object instead of a std::string
* Add del_fun and delete2nd functions for running deleteslloyd2006-07-021-8/+7
| | | | Use for_each + the delete wrappers in libstate.cpp
* Let modules override the transcoder object (since system libslloyd2006-07-013-1/+10
| | | | like iconv may be useful there...)
* Fix config handling (stupid mismatch was causing the getter for thelloyd2006-07-013-11/+8
| | | | | | config options to always fail). Move the default config stuff from libstate to the config object.
* Just some small cleanups / variable renameslloyd2006-07-011-6/+9
|