| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Check the cache; if found, return value
- Populate cache, if the value is already there, delete the old
object and save the new one.
- Recheck the cache value
Raja <[email protected]> pointed out on the list that this could race
if multiple threads called a lookup function in close succession while
the cache was cold. All of them would fail the lookup, then each of
them would add it, but the values returned would be deleted by other
threads.
Instead, declare that first write wins. Then, the cache stays
consistent even if there is a race, the only issue is an extra search
and delete.
Modify GOST and Skein, as their name() function did not roundtrip
properly which caused failures otherwise.
|
|
|
|
|
| |
Try to detect the mtn revision (by shelling out to mtn automate), and
including it in build.h as BOTAN_VERSION_VC_REVISION.
|
|
|
|
| |
most compilers will probably compile this into a conditional anyway.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
a witness'. Instead call it 'is_witness', returning true if a is a
witness for n's compositness, or otherwise false.
Also, the previous version would not check that the final value of y
was n-1; if it isn't, then n is not prime. This would mean the false
negative rate was higher than it should have been, though I'm not sure
by how much exactly.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
coalesce the dir and file name if identical.
|
|
|
|
| |
Windows :(
|
|
|
|
|
|
|
|
| |
amalgamation properly, but would happen to work if a previously
written amalgamation was around.
Also make changes allowing using the SIMD optimized versions of SHA-1
and Serpent to be used in the amalgamation.
|
|
|
|
| |
exception.
|
|
|
|
|
|
| |
not exposed to callers)
Switch back redc to using the inlined version (accidental change)
|
|
|
|
| |
redc, currently)
|
| |
|
|
|
|
|
|
| |
bit window may well improve things further. Currently seeing 20-25%
improvement in ECDSA signature verification and 25 to 40% in
GOST-34.10 verifications.
|
| |
|
| |
|
|
|
|
|
| |
On Solaris, use /usr/ucb/install, as /usr/sbin/install uses some kind
of other strange syntax.
|
|
|
|
|
|
| |
as the first value. Oddly, Sun Studio's default STL tries to make a
pair with the first value a 'const byte[2]', and then subsequently
rejects that as invalid. Reported by Jeremy Reed.
|
|
|
|
| |
at config time.
|
|
|
|
| |
already. Reported by Jeremy C. Reed <[email protected]>
|
|
|
|
| |
Fix build log; copy and paste error.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In ECDSA, this cases should all be caught by the later check that R is
not zero, so I don't believe there is any security danger.
However the GOST 34.10 implementation did not have either check.
Fortunately, the function that extracts the affine X coordinate from
the Jacobian coordinates will throw an exception if the point is at
infinity, so we would not in fact accept invalid signatures, but this
is mostly by luck. And still represents a bit of a DoS potential.
I checked the history, it looks like not checking for zeros at the
start traces back to the original InSiTo code, and I copied the ECDSA
code for GOST without thinking about it too much.
|
|
|
|
| |
abs(x) < modulus. Also remove unused member variables.
|
|
|
|
|
|
|
|
|
| |
certificate policies extension, though it's really not supported
at all.
Remove test code from secmem.h
Fix building the examples
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
converting back and forth. This gives a 10 to 20% speedup on a Core
i7. In addition, the CurveGFp no longer contains a Barrett reducer,
saving 3 BigInts worth of memory.
Add a #if'ed out alternative to point multiplication using the
Montgomery ladder technique. It runs in (more or less) constant time,
but rather significantly slower than the 4 bit window technique
currently used.
Tweak the window sizes to match the theoretical optimums.
|
|
|
|
| |
to the list by William Emmanuel S. Yu <[email protected]>
|
|
|
|
|
|
| |
Define the Base64_Decoder filter in terms of base64_decode
Don't use locked memory in the hex or base64 filters.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
the low bytes were equal, then the saturating subtraction result in
that byte would be 0 with the high byte containing a non-zero value.
To deal with this, shift and or together the two values into the low
byte.
Add some new tests which check out the SIMD implementation more
carefully, including values that trigger the problem in the earlier
version.
|
|
|
|
|
|
|
|
|
|
|
|
| |
invokes the build with --cpu=i486 on x86-32.
Add -momit-leaf-frame-pointer to x86 specializations.
Use -march=atom for atom32 as well.
Use -mcpu=cell for Cell PPU - it's not documented, but GCC 4.6 has it.
Remove ancient/untested rs64a support from ppc64
|
| |
|
|
|
|
|
|
|
|
|
|
| |
working correctly under Clang - the technique for emulating unsigned
compare relied on signed overflow. The new method does not, and works
under GCC, ICC, and Clang. Even better, the compare takes only 2
instructions instead of 4.
Prevent using any of the asm implementations under Clang on x86-32.
All of them crash under Clang 2.9, unclear why.
|
|
|
|
| |
not well tested.
|
|
|
|
|
|
|
| |
by GCC.
Add Niagra targets for sparc, and extend/fix the Sun Studio flags for
SPARC64.
|
|
|
|
|
| |
experimental Debian port), and add aliases for ARM to match the Debian
architectures.
|
|
|
|
|
|
|
|
|
|
| |
maintainer.
Namespace the headers in /usr/local/include/botan-1.9/botan, so
multiple versions can be installed in parallel.
Down version to 1.9.18 since there are a good number of changes in
this release already.
|
|
|
|
|
|
|
| |
Fix BigInt::get_substring when length is equal to 32 - an overflow
would cause the mask to be equal to 0 thus producing nothing at all.
Disable CVC by default, it's not ready for prime time in any sense.
|
|
|
|
| |
consumer/desktop level Atoms are actually 32 bit.
|
|
|
|
| |
overzealous perl script...
|
|
|
|
|
|
|
|
| |
currently.
Include the source directory name in object file names.
Add some more DES test vectors.
|
|
|
|
|
|
|
| |
conditionals to help avoid timing anylsis. Unfortunately GCC is too
smart for us and compiles it to jumps anyway; probably would need to
put the delim search into its own function and pass variables by
volatile pointers to force the compiler to do what we want.
|
|
|
|
|
|
|
|
|
|
|
| |
and -fvisibility support if the version is too old. You can also turn
them off explicitly with the (hidden) option --without-visibility. We
get the version number from the binary specified with --cc-bin, if the
user set that, rather than from plain 'g++'.
Fix Solaris install - apparently 'install' cmd is broken/dumb.
Fix Ekopath flags for submodels.
|
|
|
|
|
| |
far as I know this is the first and only real use, or even test, of
botan on the SH, I'll let them pick the names and flags...
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
results are undefined. This happens to work under GCC and most other
compilers, but does not under Visual C++ 2010. This broke hex_encode
when encoding an empty input, and this subsequently broke SSL
handshaking.
2010 includes a TR1 that works fine for SSL, but it puts the headers
in the main header space rather than under tr1/, so account for that.
Hack the socket header into working under WinSock
Tick version to 1.10.0
|
| |
|