Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Split SHA-2 into 32 and 64 bit versions; they are totally independent | lloyd | 2010-09-30 | 7 | -3/+13 |
| | | | | of each other anyway. | ||||
* | Tidy | lloyd | 2010-09-30 | 2 | -4/+6 |
| | |||||
* | Make configure output more sensible wrt incompatible modules | lloyd | 2010-09-28 | 5 | -0/+20 |
| | |||||
* | Cleanup Karatsuba a bit | lloyd | 2010-09-28 | 1 | -103/+107 |
| | |||||
* | Use visibility control with Clang, same syntax as GCC | lloyd | 2010-09-28 | 1 | -1/+3 |
| | |||||
* | Cleanup | lloyd | 2010-09-26 | 1 | -9/+9 |
| | |||||
* | Silence warning, cms is really getting pretty broken... | lloyd | 2010-09-26 | 1 | -1/+1 |
| | |||||
* | Fix, wasn't returning pointer | lloyd | 2010-09-26 | 1 | -0/+1 |
| | |||||
* | Use BOTAN_ASSERT in various places | lloyd | 2010-09-26 | 9 | -34/+43 |
| | |||||
* | If we generate a k such that s or r is 0, don't fail, simply retry | lloyd | 2010-09-26 | 1 | -11/+13 |
| | | | | with a new k. | ||||
* | Malloc_Allocator isn't a pool, so it needs to fail directly if malloc | lloyd | 2010-09-26 | 1 | -1/+3 |
| | | | | | fails, not just return 0 since callers expect that the allocator will either succeed or throw. | ||||
* | There is a pretty common pattern in the code for testing for internal | lloyd | 2010-09-26 | 3 | -0/+86 |
| | | | | | | | | | | errors of the form if(some_expr_indicating_failure) throw Internal_Error("Some mildly informative message"); Make this simpiler with the addition of a BOTAN_ASSERT macro which will throw an exception upon failure. | ||||
* | At some point I 'simplified' the divide code to always run the | lloyd | 2010-09-26 | 1 | -1/+5 |
| | | | | | | | | | | division algorithm unless x == y, but this could result in n - t + 1 being negative which would cause an attempt to allocate about 4 gigabytes of memory. Fix this, and also add an assertion check in the code to ensure that can't happen in any other way. Never reproduced this with 32 bit digits but it would show up if the build used 8 or 16 bit words. | ||||
* | Move the core MPI functions to src/math/mp, leaving src/math/bigint just | lloyd | 2010-09-24 | 28 | -13/+24 |
| | | | | for the implementation of the BigInt class | ||||
* | Add dependencies | lloyd | 2010-09-24 | 7 | -0/+31 |
| | |||||
* | Delete obsolete asm versions | lloyd | 2010-09-24 | 7 | -781/+0 |
| | |||||
* | Minor performance tweak, avoid zeroing things we'll immediately write | lloyd | 2010-09-24 | 1 | -2/+1 |
| | | | | to. Helps more than I would have thought. | ||||
* | Modify bigint_monty_redc to take an additional workspace argument. | lloyd | 2010-09-24 | 5 | -71/+83 |
| | | | | | | | Modify it to avoid a timing condition during the compare at the end; this is done by always doing the subtraction, and then copying to the output either the pre-subtraction or post-subtraction value depending on if the final borrow was set or not. | ||||
* | s/carry/borrow/ in subtraction routines | lloyd | 2010-09-24 | 1 | -14/+18 |
| | |||||
* | s/j/i for loop variables | lloyd | 2010-09-24 | 1 | -36/+36 |
| | |||||
* | Cleanup | lloyd | 2010-09-23 | 2 | -16/+24 |
| | |||||
* | Make these functions mostly constant-time, and in particular not | lloyd | 2010-09-23 | 1 | -29/+9 |
| | | | | | depending on the value of the final carry out for anything control-flow related. | ||||
* | In the IDEA key schedule, using the extended Euclidean algorithm to | lloyd | 2010-09-23 | 1 | -17/+14 |
| | | | | | | compute the inverses mod 65537 exposed a timing vulnerability. Avoid this by instead using exponentiation, which takes constant time (up to variability in the multiplication operation, at least). | ||||
* | Fix OpenSSL engine WRT memory vector changes, append is no more | lloyd | 2010-09-23 | 1 | -1/+3 |
| | |||||
* | Add a convenience overload of hex_encode taking a MemoryRegion<byte>& | lloyd | 2010-09-23 | 2 | -0/+17 |
| | |||||
* | In RSA and RW key generation, if we generate a key that isn't exactly | lloyd | 2010-09-22 | 2 | -11/+12 |
| | | | | | | | the requested bitsize, simply repeat instead of failing immediately. The condition could actually occur in practice if a prime that was on the very low end of the specified range was chosen (eg q happened to be chosen as 10000...001). | ||||
* | Deal with loss of store search | lloyd | 2010-09-21 | 2 | -2/+3 |
| | |||||
* | Add info.txt file | lloyd | 2010-09-21 | 1 | -0/+1 |
| | |||||
* | Do the prep/unroll phase 4 rounds before it is needed instead of 3; | lloyd | 2010-09-21 | 1 | -97/+92 |
| | | | | tests on Nehalem indicate a small but measurable win there (about 3%). | ||||
* | Clean up, hide union accesses with a macro to make it easier to test | lloyd | 2010-09-21 | 1 | -40/+92 |
| | | | | alternative methods of getting pieces of the expanded message. | ||||
* | Remove searching with an arbitrary predicate from X509_Store | lloyd | 2010-09-20 | 4 | -197/+0 |
| | |||||
* | Move certificate store to its own dir | lloyd | 2010-09-20 | 3 | -0/+1 |
| | |||||
* | Add missing info files | lloyd | 2010-09-20 | 5 | -0/+6 |
| | |||||
* | Add CRL storage possibilities | lloyd | 2010-09-20 | 3 | -17/+93 |
| | |||||
* | Hide X509_Store::check_sig | lloyd | 2010-09-20 | 1 | -2/+2 |
| | |||||
* | Add a (clunky) function X509_Object::hash_used_for_signature that | lloyd | 2010-09-20 | 2 | -0/+26 |
| | | | | | | | returns the hash function that was used to create the signature. Useful for a future X509 path validator that inform the user which hash(es) they are relying on and/or allowing the ability to reject hashes which are undesirable (MD2, MD5, etc) | ||||
* | Don't use SecureVector to store certificate data; mlock'ed memory in | lloyd | 2010-09-17 | 3 | -8/+8 |
| | | | | | particular is precious. Really these could probably just as easily be std::vectors since even zeroizing the memory isn't relevant here. | ||||
* | Add strict comparisons for X509_Time | lloyd | 2010-09-17 | 2 | -0/+8 |
| | |||||
* | Define a simpler Certificate_Store interface which should be much | lloyd | 2010-09-17 | 3 | -45/+56 |
| | | | | | easier to implement without requiring in-memory linear searching (eg a flatfile store or SQL database with indexes). | ||||
* | Hide X509_Object constructor | lloyd | 2010-09-17 | 1 | -11/+11 |
| | |||||
* | Remove dependencies on X509_Store | lloyd | 2010-09-17 | 4 | -12/+23 |
| | |||||
* | Split up src/cert/x509 into a set of modules, though mostly mutually | lloyd | 2010-09-17 | 28 | -49/+2 |
| | | | | dependent right now. | ||||
* | Require a TLS_Policy | lloyd | 2010-09-17 | 9 | -64/+60 |
| | |||||
* | I had this older version of algorithm_benchmark included for | lloyd | 2010-09-16 | 1 | -18/+0 |
| | | | | | | | | | | | | compatability with 1.8, but actually the signature is completely different anyway because that version took a Timer object, which doesn't exist at all anymore. I suppose I could add an empty Timer class plus subclasses, let someone instantiate it and pass it in, ignoring it, but I'm not feeling this is worth the effort. It would make more sense to add a version with this signature to 1.8, which creates a Default_Benchmark_Timer and uses it. | ||||
* | Add a helper function for encoding TLS values with length tagging | lloyd | 2010-09-15 | 6 | -47/+60 |
| | |||||
* | Use push_back for the single value += operator | lloyd | 2010-09-15 | 1 | -3/+1 |
| | |||||
* | Update/fix SSL deps | lloyd | 2010-09-15 | 1 | -6/+5 |
| | |||||
* | Hide a number of the internal SSL headers from the user, you can still | lloyd | 2010-09-15 | 18 | -28/+32 |
| | | | | see too much but better than before. | ||||
* | Update all uses of MemoryRegion::append to use either push_back or operator+= | lloyd | 2010-09-15 | 31 | -147/+142 |
| | |||||
* | Remove all versions of MemoryRegion::append. | lloyd | 2010-09-15 | 1 | -19/+43 |
| | | | | | | | Add a push_back that takes a single argument ala std::vector For appending, provide some namespace level += operators - we can use this technique with either MemoryRegion or a std::vector. |