aboutsummaryrefslogtreecommitdiffstats
path: root/include
Commit message (Collapse)AuthorAgeFilesLines
* Alter one of the constructors of DL_Group to take a parameter specifyinglloyd2007-03-031-4/+5
| | | | | | | | | how big q should be. Add FIPS 186-3 DSA parameter generation, this allows for generating larger (2048 and 3072 bit) DSA keys. At this time there do not seem to be official test vectors for 186-3, and I have not checked against other implementations. Tests will be constructed using the latest OpenSSL snapshot.
* BigInt::operator[] now guards against accesses that are larger than thelloyd2007-03-031-2/+2
| | | | current register size; reads return 0, writes extend the buffer.
* Add a version of BigInt::binary_decode taking a MemoryRegion of byteslloyd2007-03-011-0/+1
|
* Inline the round functions of RC2. This is about 15% faster on my machine,lloyd2007-03-011-4/+1
| | | | and actually reduced the total line count.
* Split DSA parameter generation into src/dsa_gen.cpp, and make the functionslloyd2007-03-012-6/+5
| | | | | | members of DL_Group (the only place they were called within the source, and outside of some rather esoteric things probably the only place you would ever need it).
* Bump copyright year to 2007lloyd2007-01-20164-164/+164
|
* Add a new parameter to the Base64_Encoder to specify that a trailinglloyd2007-01-201-1/+2
| | | | | | newline should always be added, even if the output would normally fit entirely on the current line. Monotone needs this for compatability with the Crypto++ implementation of base64.
* Work around some strange Visual Studio bugs that popped up when compilinglloyd2007-01-081-3/+5
| | | | mem_pool.cpp with debug enabled.
* Move the UI pulse functions into the global library state. That is (as bestlloyd2006-12-143-30/+27
| | | | | as I can tell) the last of the global data, with the exception of the single global_lib_state pointer in libstate.cpp
* Add a new set_option member function to Configlloyd2006-12-141-3/+3
|
* The symkey.h header no longer needs to include enums.h; remove itlloyd2006-12-145-1/+4
| | | | | Add include directives for enums.h in the headers that need it now that it isn't being pulled in by symkey.h
* Remove a dependency on x509cert.h from x509_ext.cpp by moving the definitionlloyd2006-12-122-2/+3
| | | | of NO_CERT_PATH_LIMIT to enums.h
* Add a function to Library_State allowing callers to check if the globallloyd2006-09-211-1/+3
| | | | RNG considers itself seeded.
* Do not allocate a block of memory in Pooling_Allocator::init(); this waslloyd2006-09-201-1/+0
| | | | | | | causing allocators that were never used to allocate (and thus, later deallocate) memory. This was causing a noticable slowdown when the mmap based allocator was in used (based on the strace output, this was mostly due to the calls to msync).
* Make the initialization/deinitialization functions static members oflloyd2006-09-201-14/+8
| | | | | | | the LibraryInitializer class, rather than global functions floating around inside the Init namespace. Allow callers to provide an alternative Modules object.
* The public add_engine API now always places the new engine at the frontlloyd2006-09-201-1/+1
| | | | | of the list. The only time when the other behavior was desired was inside the load() function, which now simply appends to the engines vector itself.
* Correctly deal with allocators added post-initialization. In particular,lloyd2006-09-114-6/+9
| | | | | | | | | | 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.
* Completely rewrite how the default X509_Store searches are performed,lloyd2006-09-102-15/+58
| | | | | | 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 solutionslloyd2006-09-101-8/+5
| | | | for.
* Return the correct type from Basic_Constraints::get_path_limit (was coercinglloyd2006-09-081-1/+1
| | | | the path limit integer to a boolean)
* Make various member functions in the PK algorithms public, particularlylloyd2006-09-078-63/+45
| | | | ones which were visible via base classes, and the empty constructors.
* Rename instances of X509_PublicKey and PKCS8_PrivateKeylloyd2006-09-0615-39/+39
|
* Split PK_Key into Public_Key and Private_Key; these new classes merge inlloyd2006-09-0611-48/+45
| | | | the interfaces previously included in X509_PublicKey and PKCS8_PrivateKey.
* Implement codec objects for private keys as well.lloyd2006-09-063-13/+28
|
* First step in a major rewrite of the high level public key code. Thelloyd2006-09-064-13/+37
| | | | | | 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 inlloyd2006-09-061-0/+6
| | | | x509self.cpp, the other a block of code in X509_CA's constructor).
* Move the declaration of AlgorithmIdentifier into its own header file.lloyd2006-09-062-22/+40
|
* PK_Verifier no longer keeps a reference to the key being used; it onlylloyd2006-09-061-4/+11
| | | | | 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.
* Move the name() declaration in BlockCipherModePaddingMethod to match thelloyd2006-09-061-2/+1
| | | | class definition in 1.4.12
* Remove the Algorithm class; the only members it exposed where name() andlloyd2006-09-063-22/+31
| | | | | clear(), which have been declared in the appropriate places in (former) subclasses of Algorithm
* Change Engine to not rely on the existence of an Algorithm base class forlloyd2006-09-061-6/+27
| | | | the various types it wants to cache.
* Make SymmetricKey and InitializationVector simple typedefs of OctetString;lloyd2006-08-231-23/+4
| | | | | since the RNG merger in 1.5.0, they have been effectively the same type anyway.
* Make Filter::send non-virtual; this was apparently something vestigal fromlloyd2006-08-231-1/+1
| | | | way back around 0.7.7, and has served no useful purpose since.
* Add a new version of the StreamCipher_Filter constructor that takes a keylloyd2006-08-231-0/+1
| | | | as well as the cipher name
* Put the definitions of Pipe::LAST_MESSAGE and Pipe::DEFAULT_MESSAGE intolloyd2006-08-231-2/+1
| | | | | pipe.cpp; apparently GCC was eliding them completely from the shared library otherwise, meaning Boost.Python couldn't reference them.
* X509_CRL::force_decode should not be publiclloyd2006-08-231-2/+1
|
* Change the header guard to the standard BOTAN_*_H__ formlloyd2006-08-221-2/+2
|
* Let SHA_160::W be resized dynamically; potentially the asm version couldlloyd2006-08-211-2/+2
| | | | use a little extra workspace, this makes that simpler to do.
* Move bigint_simple_mul into mp_mul.cpp, since that is the only place itlloyd2006-08-191-2/+0
| | | | | | 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-191-0/+2
| | | | | | | | | | 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
* Split Montgomery reduction into two functions, the core algorithm linkedlloyd2006-08-161-2/+2
| | | | | | 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.
* Replace Serpent's key_xor function with a macro, so the header can belloyd2006-08-151-1/+0
| | | | shared between the C++ and assembly versions.
* Merge the AES TD and TE arrays, so assembly versions can used indexedlloyd2006-08-131-2/+1
| | | | | addressing rather than having to keep all four pointers around. Unfortunately GCC does not seem to be taking advantage of this.
* Remove an unneeded friend declaration for the division function.lloyd2006-08-121-1/+0
|
* The two classes that used to need direct access to the SHA-1lloyd2006-08-051-3/+0
| | | | | internals (Gamma and FIPS_186_RNG) have both been removed, so there is no need to keep the friend declarations.
* Make it possible to insert Engines into the front of the queue;lloyd2006-08-051-1/+1
| | | | | | 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-1/+1
| | | | 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-1/+2
| | | | | | | | 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.
* Remove FIPS140::good_edc; it has never been used and probably will notlloyd2006-07-291-1/+0
| | | | be in the forseeable future.
* Change Builtin_Module constructor to take an InitializerOptionslloyd2006-07-281-1/+2
| | | | | | | | 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.