| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
| |
getting runtime value.
|
|
|
|
| |
used by MacPorts; I assume they know what they are doing.
|
|
|
|
|
|
|
| |
some cases.
Add a westmere alias for "Core i5 CPU M 520", which is what uname (and thus,
platform.processor()) returns on my laptop. Mostly for my benefit of course.
|
|
|
|
|
|
|
| |
Don't use /EHc; it says "C" functions are nothrow, which is not true
for bigint_sub2_rev.
Include needed <intrin.h> for mp_asm.h
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the implementation rather than the preferred one. Update all
implementations.
Add a new function parallel_bytes() which returns
parallelism() * BLOCK_SIZE * BUILD_TIME_CONSTANT
This is because i noticed all current calls of parallelism() just
multiplied the result by the block size already, so this simplified
that code.
The build time constant is set to 4, which was the previous default
return value of parallelism(). However the SIMD versions returned
2*native paralellism rather than 4*, so this increases the buffer
sizes used for those algorithms.
The constant multiple lives in buildh.in and build.h, and is named
BOTAN_BLOCK_CIPHER_PAR_MULT.
|
|
|
|
|
|
|
|
| |
if we are compiling under GCC, or 0 otherwise.
Use it in cpuid.cpp for use of GCC's cpuid.h header file.
If we don't have a method of calling cpuid, print a warning.
|
|
|
|
|
|
|
| |
which architectures the OS supported shared libs on; in all cases it
was either all or none. Replace with new config build_shared [yes|no],
which defaults to yes but is set to no for MinGW and Cygwin since
shared libs don't seem to be working well there.
|
| |
|
|
|
|
| |
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.
|