aboutsummaryrefslogtreecommitdiffstats
path: root/src/math
Commit message (Collapse)AuthorAgeFilesLines
* propagate from branch 'net.randombit.botan' (head ↵lloyd2009-06-047-51/+44
|\ | | | | | | | | | | 6a746ccf1e957dba703e65372050a7bd4d6b117d) to branch 'net.randombit.botan.c++0x' (head f54bb7b391eb3b71f380a68ddd460debdc31545d)
| * Use C++0x std::shared_ptr<> instead of TR1'slloyd2009-04-016-50/+43
| |
| * Replace the (deprecated) auto_ptr with unique_ptr.lloyd2009-04-011-1/+1
| | | | | | | | | | | | This was mostly a s/auto_ptr/unique_ptr/, except in the CVC code and one function in ECDSA, which relied on auto_ptr's move semantics (ugh) and had to be modified in various ways.
* | One more s/engine.h/pk_engine.h/lloyd2009-05-131-1/+1
|/
* Thomas Moschny passed along a request from the Fedora packagers which camelloyd2009-03-3051-946/+1044
| | | | | | | | | | | | | | | 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 print statements in PointGFp::check_invariants which were triggeredlloyd2008-11-171-19/+0
| | | | | | | when the test failed. I had added them for debugging something long ago. What I thought was an InSiTo ECC test failure was actually a sucessful test, it was making sure an Illegal_Point would be thrown in the conditions tested. So, all seems OK.
* Wrap at 80 columnslloyd2008-11-111-1/+2
|
* Bubble up use of global algo factory out of DSA parameter gen to DL_Grouplloyd2008-11-112-4/+8
|
* Remove lookup.h use from DLIES, PK key agreement, DSA param gen, get_enc.cpplloyd2008-11-111-2/+6
|
* Mention existence of O(n^1.5) squaring algorithmlloyd2008-11-101-0/+3
|
* Reformat for shorter lineslloyd2008-11-071-1/+4
|
* Wrap lines to 80 columnslloyd2008-10-281-4/+5
|
* Move EntropySource base class to new entropy_src.h (which allows the ↵lloyd2008-10-261-0/+1
| | | | | | implementations to decouple from knowing about RandomNumberGenerator).
* Remove prohibition against generating DSA parameter set with a 224 bit q,lloyd2008-10-261-4/+0
| | | | since SHA-224 is now implemented.
* Clean up VC++ ia32 asm a bit, use new defs of word3_muladd* from generic ↵lloyd2008-10-151-49/+28
| | | | mp_asmi.h
* Fix include of mp_asm.h in mp_ia32_msvc/mp_asmi.h (used quotes instead of ↵lloyd2008-10-151-1/+1
| | | | brackets)
* Add trailing H__ to some header guards. Line wrap long comment.lloyd2008-10-134-25/+27
|
* Add Doxygen comments to bigint.h (from InSiTo)lloyd2008-10-131-51/+397
|
* Add a new switch to configure.pl --with-tr1-implementation whichlloyd2008-10-121-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | accepts options 'boost' and 'system'. Now GF(p) math (and indirectly, ECDSA) will be enabled if --with-tr1=boost or --with-tr1=system is passed at build time to enable a shared_ptr implementation. Modules can now specify that they require TR1, in which case they will only be autoloaded if a TR1 implementation was set (they can choose which one to use by checking the feature macros from build.h) The gfpmath module was set to load only on request. That has changed to load automatically (but will only do so if a TR1 impl is set as described above). CVC has also been marked as requiring TR1. (ECDSA/ECDH are not, since they do not use tr1 shared_ptr directly) Update and cleanup help output. Do not print the list of modules in --help anymore (too long); you can still get the list (in an easier to parse format) --module-info. Reorganize the help text so the more useful options are described closer to the top. Fix the --with-endian and --with-unaligned-mem options: they were being accepted but ignored.
* Rename the TR1 choice macros to BOTAN_USE_STD_TR1 and BOTAN_USE_BOOST_TR1.lloyd2008-10-121-3/+3
| | | | | | | | If neither is defined when build.h is included, choose Boost. Reorganize build.h so it is easier to find things, in particular move all of the interesting toggles to the top of the file and all of the long lists of modules and feature test macros to the end.
* Return const references instead of copies in GFpModulus where possiblelloyd2008-10-121-4/+4
|
* Modify CurveGFp::get_{a,b} to return a const reference instead of a copylloyd2008-10-122-5/+5
|
* Enable throwing of Illegal_Point in check_invariantslloyd2008-10-111-2/+2
|
* Disable the implementation of word_add in mp_ia32 for the same reasonlloyd2008-10-111-0/+8
| | | | | as the version in mp_amd64. Presumably they both need the same constraint added for them to work correclty.
* Remove last use of freestore.h from gfpmath, move it to CVC code which stilllloyd2008-10-115-52/+13
| | | | uses it. Include tr1 header directly in gfp_element.h
* Remove some unused code from freestore.h, including the code that broughlloyd2008-10-111-166/+4
| | | | | in the Boost dependency. So Botan is now back to just requiring TR1 shared_ptr (I think).
* Change GFpElement's scalar multiplication operators to take a u64bit insteadlloyd2008-10-112-28/+25
| | | | of u32bit. Some minor format cleanup.
* Disable the x86-64 implementation of word_add. I think there is a buglloyd2008-10-111-0/+8
| | | | | | | | | | | in the constraints. It turns out that the GF(p) tests all pass in 64-bit mode if this function is disabled. I suspect the problem is that innert_montg_mult_sos calls this function in ways that are unusual in terms of how it is used in the rest of the library (in particular calling it with constant zero arguments). I think a constraint error is causing GCC to generate bad code in certain instances with this function. Will need to investigate this further.
* Add a version for x86-64 in mp_asm64, though it is disabled by defaultlloyd2008-10-112-0/+8
| | | | | | because the dependency handling/module picker gets confused otherwise. This allows building a mostly C++ version with 64-bit words with only a very small amount of inline asm (which is good for debugging the asm).
* Some small changes to GFpElement, including accepting u64bit insteadlloyd2008-10-092-30/+28
| | | | | | | of u32bit to the operator* and operator*= Instead of passing the n_dash array to inner_montg_mult_sos, which only uses the first word, just pass the word directly.
* Add BOTAN_DLL macro to public class definitions that were missing it.lloyd2008-10-095-7/+7
|
* Cleanup of gfp_element.cpplloyd2008-10-091-21/+29
|
* Clean up GF(p) implementation codelloyd2008-10-095-92/+99
|
* Keep gfpmath disabled unless requested due to tr1 deplloyd2008-10-081-1/+1
|
* Partially merge back with InSiTo in an attemp to trace bugslloyd2008-10-087-278/+510
|
* Debug outputlloyd2008-10-081-43/+60
|
* Reformattinglloyd2008-10-081-3/+3
|
* Remove unneeded Botan:: prefixlloyd2008-10-081-1/+1
|
* Split ecdsa module into ecc_key, ecdsa, eckaeglloyd2008-10-081-1/+1
| | | | | Add actual implementations (from InSiTo) for ECDSA_Operation and ECKAEG_Operation.
* Guard uses of ECDSA in the library with BOTAN_HAS_ECDSA macro, so it canlloyd2008-10-011-1/+1
| | | | | | | | be disabled. Disable gfpmath by default due to TR1 dependency (this will automatically turn of ECDSA/ECKAEG, unless gfpmath is explicitly loaded with --enable-module=gfpmath).
* Move generate_dsa_primes decl from DL_Group to numthry.h to match source ↵lloyd2008-10-012-8/+21
| | | | location
* Build GF(p) and ECDSA by default. tr1/memory dependency in math/gfpmathlloyd2008-09-301-1/+1
|
* Forgot info.txt for gfpmathlloyd2008-09-301-0/+20
|
* Move GF(p) math code from pk/ecdsa to math/gfpmathlloyd2008-09-307-0/+2892
|
* Rearrange BigInt directories:lloyd2008-09-3059-0/+5677
| | | | | | | | | math/bigint - BigInt implementation math/numbertheory - Math stuff built on top of BigInt Coming soon: math/gfp (parts of pk/ecdsa) Update deps in the pk files
* Put only the implementation of BigInt in src/bigint, mathematical functionslloyd2008-09-2918-0/+2369
on top of BigInt go to src/math. Some prototypes were moved in order to complete the split, in particular random_integer() is now a static member of BigInt instead of being a global function, and divide() is in divide.h instead of numthry.h