| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
test app...
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are multiple unsatisfactory elements to the current solution,
as compared to how blinding was previously done:
Firstly, blinding is only used in the baseline implementations; the code
using OpenSSL and GMP is not protected by blinding at all.
Secondly, at the point we need to set up blinding, there is no access
to a PRNG. Currently I am going with a quite nasty solution, of using
a private key parameter to seed a simple PRNG constructed as:
SHA-512(TS1 || private_key_param || public_key_param || TS2)
I really want to fix both of these elements but I'm not sure how to do
so easily.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
depend on the particular implementation. Add a new virtual function to
BlockCipher named parallelism that returns the number of blocks the
cipher object could or might want to process in parallel. Currently
set to 1 by default but may make sense to increase this for even
scalar implementations since it seems like better caching behavior
makes it a win.
|
| |
|
| |
|
|
|
|
| |
elsewhere currently.
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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).
|
|
|
|
| |
doesn't like things like -dev or -rc1 in that field.
|
|
|
|
| |
be either fixed little or big endian. Unset if mixed endian or unknown.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Sort files in an attempt to help out the compression algorithm.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
| |
written out by the local Python using Win32 line endings.
|
|
|
|
| |
to conver the line endings of text files (.txt, .h) to Win32's CRLF.
|
| |
|
| |
|
|
|
|
| |
in nmake, causes strange linker errors without any obvious cause.
|
|
|
|
|
| |
--disable-shared disables DLL options, and don't define _CONSOLE in the
library build.
|
| |
|
| |
|
|
|
|
|
| |
that anyone needs either of these, but it appears like they may be useful
if you're doing unusual stuff like C++/CLI.
|
|
|
|
|
|
|
| |
to cause random crashes during the test suite. With /MD they go away.
I don't know enough about Windows development to know what this means...
I'm sure it makes sense to somebody. Anyway, going with something that
appears to function.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
huge (60+ Mb!); the DLL should be smaller due to link-time merging making
it viable to distribute binaries.
|
|
|
|
|
|
|
| |
empty anyway.
For VC++ (only user) set BOTAN_DLL to dllimport by default (for apps), and then
redefine as dllexport when building the library.
|
|
|
|
| |
causes <botan/XXX> to be visible as expected.
|
| |
|
|
|
|
| |
Untested, almost certainly doesn't work.
|
|
|
|
|
|
|
|
|
|
|
| |
configure.pl, but configure.py's parser is smart enough to deal with them
with or without quotes).
Add support for shared library generation with IBM xlC (untested).
Drop bcc - this was for the Borland's old compiler and almost certainly is
not right for the current Embarcadero C++Builder. Support for that should
be added (though I don't have access to this compiler personally).
|
|
|
|
| |
the Alpha EV67 and MIPS R10000.
|
|
|
|
| |
the same as an UltraSPARC for optimization purposes.
|
|
|
|
| |
x64 as another arch alias since some people seem to use it.
|
| |
|
| |
|