aboutsummaryrefslogtreecommitdiffstats
path: root/src/engine/gnump
Commit message (Collapse)AuthorAgeFilesLines
* Remove unneeded includeslloyd2010-03-151-12/+0
|
* Deconstify PK_Ops. It's quite reasonable that some op will want tolloyd2010-03-091-9/+9
| | | | | | | | | | | | | precompute only as needed, or will want to access some other expensive resource or etc. Change how the secret for generating blinding is done in cases where a PRNG isn't available. Use the operations public op to hide the secret, for instance the seed for a DH blinding variable is 2^x mod p. Make use of being able to mutate internal structures in the RW signer, since that does have access to a PRNG, so use it to initialize the blinder on first call to sign().
* On GMP 5.0 and later, use mpz_powm_sec, which is a version of modularlloyd2010-03-051-0/+6
| | | | exponentiation that has countermeasures against side-channel attacks.
* Add GMP PK filelloyd2010-03-051-0/+344
|
* Update GMP engine with new PK operations interface.lloyd2010-03-058-481/+11
| | | | | Drop support for ElGamal and NR from GMP engine, leaving just DH, DSA, and RSA
* Prevent a crash in GMP_Engine if the library is shutdown and thenlloyd2010-01-222-12/+17
| | | | | | | | | | | | | | | | | | | | | | | | | reinitialized. It would cache an Allocator pointer on first use, and then never zero it, so after the reinit the pointer would be going to a now deallocated Allocator object. Encountered in the SoftHSM test suite, reported by Ondrej Sury. Use a simple reference counting scheme to zero the pointer, and reset the GNU MP memory functions. This also fixes a quite obscure and never reported bug, that if the GMP engine was used, and if the library was deinitialized but then the program tried to use GNU MP, the allocator functions would crash. Now after deinit the allocator funcs revert to the defaults. The reference count is not updated atomically so this is not thread safe, but seems a non-issue; the only time this could happen (especially now that the GMP engine header is internal-only) is if multiple threads were attempting to initialize / shutdown the library at once - which won't work anyway for a variety of reasons, including contention on the (unlocked) global_lib_state pointer. If at some point thread safety is useful here, the refcnt can be locked by a mutex, or kept in an atomic<unsigned int>.
* Add missing BOTAN_DLL exports.lloyd2009-12-1611-20/+17
| | | | Move most of the engine headers to internal
* Full working amalgamation build, plus internal-only headers concept.lloyd2009-12-161-3/+9
|
* 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.
* Add a script that reads the output of print_deps.py and rewriteslloyd2009-07-151-0/+4
| | | | | | 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-3010-154/+174
| | | | | | | | | | | | | | | 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).
* Remove openssl/gnump engine dep on libstate, no longer a deplloyd2008-11-231-4/+0
|
* Move most of the remaining libstate code to pk_engine.cpp, move engineslloyd2008-11-1111-0/+779
| | | | | back to the toplevel since most othe dependencies have been removed now (except get_cipher which still needs changes)
* Move engine to libstate/ directory, since there is a mutual dependencylloyd2008-11-0911-777/+0
| | | | | | (messy). Remove unused libstate.h includes from a few files.
* Add BOTAN_DLL macro to public class definitions that were missing it.lloyd2008-10-092-2/+2
|
* Split up GNU MP analagously with the OpenSSL change. GNU MP module canlloyd2008-10-089-389/+476
| | | | now be built with any or all public key algorithms disabled.
* Split kdf.h and kdf.cpp from core/ to kdf/kdf_baselloyd2008-10-081-2/+2
| | | | Update dependencies as needed.
* Add dependencies on the public key implementations in the engines code,lloyd2008-10-021-0/+9
| | | | | since they assume all algos are available (need to be split up eventually, so one can use OpenSSL module in a RSA-only or DSA-only Botan)
* Rename all modinfo.txt files to info.txt, since they are all (none) oflloyd2008-09-291-0/+0
| | | | | them modules now. In any case there is no distinction so info.txt seems better.
* Move all modules into src/ directorylloyd2008-09-287-0/+681