aboutsummaryrefslogtreecommitdiffstats
path: root/src/bigint
Commit message (Collapse)AuthorAgeFilesLines
* Rearrange BigInt directories:lloyd2008-09-3041-5677/+0
| | | | | | | | | 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
* If a module specifies <module_name>:<file> in its <add> block, includelloyd2008-09-302-0/+2
| | | | | | that file from another module (without loading it). This was needed since mp_asm64 and mp_ia32_msvc do not implement both mp_asm.h and mp_asmi.h like the other mp_ modules - instead they pull the mp_generic version in.
* Fix mp_asm64's info.txtlloyd2008-09-301-4/+4
|
* Enable MSVC x86 asmlloyd2008-09-301-1/+1
|
* Rewrite part of the module loading code in configure.pl, now dependencieslloyd2008-09-307-8/+10
| | | | | | seem to be handled correctly (er, at least mostly), and more importantly the asm MPI modules are detected and used correctly (at least on x86-64 and x86).
* Start trying to get asm BigInt working. Currently does not. Just checkinglloyd2008-09-2910-56/+84
| | | | | | this in and sync'ing before I take a break. However the info.txts are now cleaned up and more or less accurate now. But configure.pl is not tracking dependencies properly.
* Reorg BigInt asm moduleslloyd2008-09-296-0/+0
|
* Better dependency handlinglloyd2008-09-292-1/+3
|
* Add missing divide.hlloyd2008-09-291-0/+17
|
* Put only the implementation of BigInt in src/bigint, mathematical functionslloyd2008-09-2924-2393/+13
| | | | | | | 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
* Make asm implementations distinctly named objects, for instance MD5_IA32,lloyd2008-09-295-258/+2
| | | | | | | | | | | | | | | | | | | rather than silently replacing the C++ versions. Instead they are silently replaced (currently, at least) at the lookup level: we switch off the set of feature macros set to choose the best implementation in the current build configuration. So you can have (and benchmark) MD5 and MD5_IA32 directly against each other in the same program with no hassles, but if you ask for "MD5", you'll get maybe an MD5 or maybe MD5_IA32. Also make the canonical asm names (which aren't guarded by C++ namespaces) of the form botan_<algo>_<arch>_<func> as in botan_sha160_ia32_compress, to avoid namespace collisions. This change has another bonus that it should in many cases be possible to derive the asm specializations directly from the original implementation, saving some code (and of course logically SHA_160_IA32 is a SHA_160, just one with a faster implementation of the compression function, so this seems reasonable anyway).
* Add missing info.txt for generic mp_asm.hlloyd2008-09-291-0/+8
|
* 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.
* Start fixing up for full asm support againlloyd2008-09-296-12/+9
|
* Move mp_mulop.cpp (source file) to asm_amd64lloyd2008-09-291-0/+0
|
* Move x86-64 asm bswap impl to utils, as bswap_amd64.hlloyd2008-09-291-36/+0
|
* Add deps, missing includes, etclloyd2008-09-291-4/+4
|
* Move def_powm.cpp from core to bigintlloyd2008-09-282-0/+23
|
* BigInt uses hex modulelloyd2008-09-281-0/+4
|
* Add primes.cpp to build in modinfo.txtlloyd2008-09-281-3/+4
|
* Move primes.cpp to bigint/lloyd2008-09-281-0/+674
|
* Move all BigInt stuff into bigint/. Currently all asm modules are disabled;lloyd2008-09-2842-0/+5212
| | | | | | | | | configure.pl doesn't understand how to handle this yet (replace logic only understands stuff in src, not how one module can replace another modules src, or anything about prioritizing). Move some hex and base64 stuff out of charset.cpp and into their codec directories.
* Split up asm modules into appropriate (topic-specific) modules, eglloyd2008-09-2819-0/+2379
hash/sha1_amd64 and cipher/serpent_ia32. Remaining code in asm/ dir is for BigInt, so rename to bigint/ in prep for all (or most) of BigInt being modularized.