aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Add a generalized Buffered_Operation. Relies on tr1 for sane callbackslloyd2009-12-273-0/+176
| | | | (std::tr1::function).
* Make startup self-test failures more verboselloyd2009-12-263-84/+93
|
* Define lookup.{h,cpp} in terms of Algorithm_Factory. Inline a lot of simplelloyd2009-12-262-187/+123
| | | | functions into the header.
* Add OIDs for SEED/CBC and HMAC with SHAlloyd2009-12-261-0/+8
|
* New SCAN decoding err string was misleading in one caselloyd2009-12-261-1/+4
|
* Switch from TripleDES to AES-256 for private key encryption bylloyd2009-12-261-1/+1
| | | | | | | | default. OpenSSL 0.9.8 understands keys encrypted like this fine, which was the big reason for holding back on this before IIRC. AES-256 was chosen over AES-128 not for the longer key length (it's a password hash so unlikely to have more than 96 bits of entropy) but for the extra 4 rounds of AES-256 vs AES-128.
* Correct documentation about default_pbelloyd2009-12-261-6/+4
|
* Improve exception output of SCAN_Name on bad inputlloyd2009-12-261-3/+5
|
* Add/fix doxygen commentslloyd2009-12-241-5/+12
|
* Replace time_t_to_tm with calendar_value which returns a struct representinglloyd2009-12-244-20/+37
| | | | the calendar time without tying to a particular format. From the C++0x branch.
* Wrap up whatever we're using for gmtime in an anon-namespace function do_gmtimelloyd2009-12-241-14/+19
|
* Since they don't pick up the dependency from modebase anymore, marklloyd2009-12-246-0/+15
| | | | block cipher mode filters as depending on the block ciphers.
* Remove modebase entirely. It made doing optimizations rather obnoxious andlloyd2009-12-2411-271/+393
| | | | | didn't really contribute much in terms of code savings. CBC, CFB, and CTS now derive directly from Keyed_Filter. All the other modes already did this.
* s/modebase/key_filt/ in ecb.h - not using modebaselloyd2009-12-241-2/+1
|
* Define EAX in terms of CTR mode instead of implementing it within EAX_Base.lloyd2009-12-235-102/+60
| | | | | | | | | This is somewhat faster, especially with SIMD-ed ciphers. The ceiling on performance looks to be CMAC, which is iterative and thus can't take advantage of them. Remove BOTAN_PARALLEL_BLOCKS_EAX, since it implicitly is whatever CTR is doing. Bump CTR's default parallel blocks to 16.
* Tweak for easier debugginglloyd2009-12-231-2/+4
|
* Fix compiler macro for MSVC warningslloyd2009-12-231-1/+1
|
* Add last nights project, an SSE2 implementation of IDEA. Right about 4xlloyd2009-12-236-57/+300
| | | | faster than the scalar version on a Core2.
* Use /W3 with VC++ (/W4 is really noisy, but it seems mostly useless stuff).lloyd2009-12-232-1/+7
| | | | | | But, disable warnings 4250 and 4251 in build.h with a pragma. Both seem impossible to work around without very major code changes, and both seem harmless AFAICT.
* Fix compile of get_nanoseconds_clock for Windows.lloyd2009-12-233-2/+14
| | | | | | | Add macros for OS support of gmtime_r (Unix) and gmtime_s (Win32) to deal with thread-unsafety of std::gmtime. Only enable gmtime_r on Linux currently, but it's probably available pretty much everywhere (specified in pthreads, origininally, AFAICT).
* Add a static_cast<byte>() around get_byte just to keep VC++ quiet.lloyd2009-12-231-1/+3
|
* Use a u32bit for the length argument to ubi_512. That value cannot possiblylloyd2009-12-231-2/+2
| | | | | | be larger than 4294967232 because you can give at most 2^32-1 bytes of data at a time to Skein_512::add_data, and Skein always needs to buffer at least one byte.
* Time was saved to a u32bit. Would really bite me in 2106 :)lloyd2009-12-231-1/+1
|
* Oops, I was overzealouslloyd2009-12-231-2/+2
|
* Avoid MSVC warning 4800 about implicit conversion from T to bool. Mostlylloyd2009-12-233-6/+6
| | | | because it makes the code slightly more explicit.
* Use only numeric version #s in VersionInfoVersion; InnoSetup and/or Windowslloyd2009-12-231-1/+1
| | | | doesn't like things like -dev or -rc1 in that field.
* Fix compilation on Win32lloyd2009-12-231-1/+1
|
* Use unaligned reads/writes in xor_buf.h - bad macro name!lloyd2009-12-231-2/+2
|
* Deal with unknown or mixed endian architectures properly. If known littlelloyd2009-12-231-22/+18
| | | | | | or big endian, for large loads always memcpy, then go back and swap as needed. Otherwise (unknown or mixed endian) just load one at a time as usual.
* Add bswap_4 which swaps 4 Ts in parallel. Normally just uses reverse_bytes,lloyd2009-12-231-0/+50
| | | | | but if SSE2 or SSSE3 is available uses SIMD magic to swap 4 32 bit values at once.
* Add FIXME note to Certificate_Policies::encode_innerlloyd2009-12-231-1/+4
|
* Include as internal/lloyd2009-12-233-3/+3
|
* Define BOTAN_TARGET_CPU_HAS_KNOWN_ENDIANNESS if the target CPU is known tolloyd2009-12-221-0/+5
| | | | be either fixed little or big endian. Unset if mixed endian or unknown.
* Remove extraneous check in low_zero_bitslloyd2009-12-221-2/+0
|
* Add GetSystemTimeAsFileTime as high res timer for Win32lloyd2009-12-221-7/+21
|
* Add feature macro for Win32's GetSystemTimelloyd2009-12-222-0/+6
|
* Don't require selftest in libstate; macro wraplloyd2009-12-221-2/+6
|
* Fix simd_32 loadstor includeslloyd2009-12-222-3/+3
|
* Remove unneeded iostream/stdio includeslloyd2009-12-212-5/+0
|
* Un-internal loadstor.h (and its header deps, rotate.h andlloyd2009-12-2172-118/+132
| | | | | | | | | | | | | | bswap.h); too many external apps rely on loadstor.h existing. Define 64-bit generic bswap in terms of 32-bit bswap, since it's not much slower if 32-bit is also generic, and much faster if it's not. This may be quite helpful on 32-bit x86 in particular. Change formulation of generic 32-bit bswap. It may be faster or slower depending on the CPU, especially the latency and throuput of rotate instructions, but should be faster on an ideally superscalar processor with rotate instructions (ie, what I expect future CPUs to look more like).
* Add missing BOTAN_DLL exports.lloyd2009-12-1684-129/+181
| | | | Move most of the engine headers to internal
* Make many more headers internal-only.lloyd2009-12-16159-313/+411
| | | | | | | | | | | | | Fixes for the amalgamation generator for internal headers. Remove BOTAN_DLL exporting macros from all internal-only headers; the classes/functions there don't need to be exported, and avoiding the PIC/GOT indirection can be a big win. Add missing BOTAN_DLLs where necessary, mostly gfpmath and cvc For GCC, use -fvisibility=hidden and set BOTAN_DLL to the visibility __attribute__ to export those classes/functions.
* Full working amalgamation build, plus internal-only headers concept.lloyd2009-12-16184-899/+386
|
* Add missing header guards to package.h and botan.hlloyd2009-12-023-2/+12
| | | | | Change serp_simd_sbox.h's header guard to use the leading BOTAN_ prefix for proper macro namespacing.
* Load hres_timer on any compiler or arch; macro feature detection takes carelloyd2009-12-011-27/+0
| | | | of the rest. In the worst case, it compiles down to an empty poll
* Consolidate the non-canonical epoch timers, like cpuid and Win32'slloyd2009-12-0146-457/+216
| | | | | | | | | | | | | | QueryPerformanceCounter, into an entropy source hres_timer. Its results, if any, do not count as contributing entropy to the poll. Convert the other (monotonic/fixed epoch) timers to a single function get_nanoseconds_clock(), living in time.h, which statically chooses the 'best' timer type (clock_gettime, gettimeofday, std::clock, in that order depending on what is available). Add feature test macros for clock_gettime and gettimeofday. Remove the Timer class and timer.h. Remove the Timer& argument to the algorithm benchmark function.
* Make sure the SIMD_32 implementation we're using actually works on thelloyd2009-11-244-3/+7
| | | | system before returning a new instance.
* Convert line endings on examples.lloyd2009-11-241-6/+5
| | | | Sort files in an attempt to help out the compression algorithm.
* Clean up the implementation of the line ending converter.lloyd2009-11-241-12/+26
| | | | | | | | | | | | | | | | Add a custom install target to users can select specific things to enable or disable. Add api.pdf and tutorial.pdf, if they are available in the tree (otherwise skip) Add the set of examples as part of the documentation package. Require at least Windows 98 or 2000 since some code in the entropy gathering routines requires functions (CryptGenRandom and Toolhelp32) which are only available on these systems or later. Set the VersionInfoVersion (viewable via the Properties menu on the setup .exe)
* Don't do line ending conversion on build.h since that was (presumably/usually)lloyd2009-11-231-6/+9
| | | | written out by the local Python using Win32 line endings.