aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Split up src/cert/x509 into a set of modules, though mostly mutuallylloyd2010-09-1729-51/+6
| | | | dependent right now.
* Require a TLS_Policylloyd2010-09-179-64/+60
|
* I had this older version of algorithm_benchmark included forlloyd2010-09-161-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 tagginglloyd2010-09-156-47/+60
|
* Use push_back for the single value += operatorlloyd2010-09-151-3/+1
|
* Update/fix SSL depslloyd2010-09-151-6/+5
|
* Hide a number of the internal SSL headers from the user, you can stilllloyd2010-09-1518-28/+32
| | | | see too much but better than before.
* Document removing appendlloyd2010-09-151-2/+3
|
* Update all uses of MemoryRegion::append to use either push_back or operator+=lloyd2010-09-1534-157/+152
|
* Remove all versions of MemoryRegion::append.lloyd2010-09-151-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.
* Implicit conversionslloyd2010-09-145-21/+25
|
* Remove more implicit vector to pointer conversionslloyd2010-09-1413-51/+52
|
* More changes to avoid vector to pointer implicit conversionslloyd2010-09-1421-54/+55
|
* Handle the case that container size() returns something other than u32bitlloyd2010-09-1415-23/+22
|
* Completely remove the second parameter to SecureVector which specifieslloyd2010-09-1468-272/+313
| | | | | | | | | | | | | | | | | | | | the initial/default length of the array, update all users to instead pass the value to the constructor. This is a old vestigal thing from a class (SecureBuffer) that used this compile-time constant in order to store the values in an array. However this was changed way back in 2002 to use the same allocator hooks as the rest of the containers, so the only advantage to using the length field was that the initial length was set and didn't have to be set in the constructor which was midly convenient. However this directly conflicts with the desire to be able to (eventually) use std::vector with a custom allocator, since of course vector doesn't support this. Fortunately almost all of the uses are in classes which have only a single constructor, so there is little to no duplication by instead initializing the size in the constructor.
* Avoid 3-argument copylloyd2010-09-131-1/+1
|
* Split up definitions so it is easer to remove functions I want to remove.lloyd2010-09-131-19/+21
| | | | | | Avoid using using directives in MemoryVector and SecureVector to bring things into scope; it brings them into public scope even if they are protected which is not desirable. Instead disambiguate using this->func()
* Don't expose init (protected) with a using directivelloyd2010-09-131-8/+6
|
* Remove constructors of MemoryVector and SecureVector that took twolloyd2010-09-134-23/+16
| | | | MemoryRegions and concatenated them.
* Fix examples for destroy being renamed clearlloyd2010-09-132-2/+2
|
* Remove more uses of vector to pointer implicit conversionslloyd2010-09-1335-126/+154
|
* More vector->pointer conversion removals.lloyd2010-09-1318-42/+49
| | | | | | | | | | | Add RandomNumberGenerator::random_vec, which takes an length n and returns a new SecureVector with randomized contents of that size. This nicely covers most of the cases where randomize was being called on a vector, and is a little cleaner in the code as well, instead of vec.resize(length); rng.randomize(&vec[0], vec.size()); we just write vec = rng.random_vec(length);
* First set of changes for avoiding use implicit vector->pointer conversionslloyd2010-09-1328-131/+163
|
* Anywhere where we use MemoryRegion::begin to get access to the raw pointerlloyd2010-09-1365-209/+218
| | | | | representation (rather than in an interator context), instead use &buf[0], which works for both MemoryRegion and std::vector
* Not an error removing build if it didn't exist at alllloyd2010-09-101-1/+2
|
* Use a true lexicographic ordering in MemoryRegion::operator<lloyd2010-09-091-8/+11
|
* Read input as binarylloyd2010-09-081-1/+1
|
* Add an (undocumented) option --dirty-tree which does not delete the buildlloyd2010-09-081-4/+19
| | | | directory. Useful for me when testing under Windows (no ccache).
* Update the dynamic engine protocol. The initial version had an enginelloyd2010-09-081-30/+15
| | | | | | | | | | | | | destructor function which would delete the engine; this was to handle the case that the heaps were not shared between the application and the library. However in this case we have bigger problems, because we want to be able to pass std::strings into the engine, and additionally be able to return objects from the library which are later deleted by the algorithm factory. So without a major restructuring we can't support this style of operation anyway; the DLL and application must share the same heap. This can be done on Windows using the /MD linking scheme for both the library and the DLL. The library already uses this model by default on Windows.
* Wording changeslloyd2010-09-081-3/+3
|
* Dynamic loading confirmed to work on Windows (tested Windows 7 x64)lloyd2010-09-081-0/+1
|
* Under certain compilation modules, HMODULE isn't a void* but rather alloyd2010-09-081-2/+2
| | | | | | pointer to a nonce struct; presumably for slightly better typechecking. In case we're compiling under such a mode, case the first argument to FreeLibrary and GetProcAddress to a HMODULE.
* In the nmake clean target, delete additional stuff that VC++ drops intolloyd2010-09-081-0/+1
| | | | the directory when building a DLL
* Fix binary input in DataSource_Stream - the conditional was backwards.lloyd2010-09-082-11/+10
| | | | | Use a slightly cleaner invocation that doesn't require duplicating so much code between the binary and non-binary cases.
* Document recent changeslloyd2010-09-081-2/+5
|
* Specify the target host and port for tls_client on the command linelloyd2010-09-081-3/+18
|
* Really fix RC4 suites - it was set to use a key of 128 bytes == 1024 bits!lloyd2010-09-081-1/+1
| | | | Tested against a GnuTLS server.
* Rename MemoryRegion::destroy to MemoryRegion::clear to match STLlloyd2010-09-0811-21/+20
|
* Fix RC4 suiteslloyd2010-09-081-1/+1
|
* Big, invasive but mostly automated change, with a further attempt atlloyd2010-09-0772-158/+166
| | | | | | | | | | | | | | harmonising MemoryRegion with std::vector: The MemoryRegion::clear() function would zeroise the buffer, but keep the memory allocated and the size unchanged. This is very different from STL's clear(), which is basically the equivalent to what is called destroy() in MemoryRegion. So to be able to replace MemoryRegion with a std::vector, we have to rename destroy() to clear() and we have to expose the current functionality of clear() in some other way, since vector doesn't support this operation. Do so by adding a global function named zeroise() which takes a MemoryRegion which is zeroed. Remove clear() to ensure all callers are updated.
* Oops... renamed this quite a while ago, never updated examplelloyd2010-09-071-6/+6
|
* Realization while thinking about the recently added truncate: in a STLlloyd2010-09-077-52/+39
| | | | | | | | | | | | | | | | | | container like vector, truncate is simply resize, but what MemoryRegion called resize will zap the entire contents, and then what was resize was called grow_to. This is really problematic in terms of the goal of replacing MemoryRegion with a vector with a custom allocator. In this checkin: - Remove MemoryRegion::grow_to and MemoryRegion::truncate - Change the semantics of MemoryRegion::resize to change the size while keeping any current contents intact (up to the new size), zero initializing any new values. Unrelated, just noticed the lack while I was in there, add a version of CryptoBox::decrypt taking a std::string for the input.
* Add a basic test for cryptoboxlloyd2010-09-071-0/+46
|
* Call test that was defined but not usedlloyd2010-09-071-4/+5
|
* Avoid name clashing, Sun Studio doesn't like thislloyd2010-09-071-2/+3
|
* Disable a couple of very noisy warnings which don't provde a hugelloyd2010-09-071-1/+2
| | | | | amount of value. Add a note that -library=stlport4 may be needed on Linux (seems to depend on glibc version).
* Prevent loop variable shadowinglloyd2010-09-071-12/+12
|
* Remove trailing comma from enum decllloyd2010-09-071-1/+1
|
* Prevent shadowing of one loop param with anotherlloyd2010-09-071-1/+1
|
* Update CPU optimization flags for Sun Studio to the previous decade.lloyd2010-09-071-6/+10
| | | | | | | Also use -xO5 instead of -xO2; everything seems to work under -xO5 on x86-32 and x86-64 with my version of Sun Studio. Curiously, several things are miscompiled with -xO2! Definitely doesn't give me positive feelings about this optimizer.