aboutsummaryrefslogtreecommitdiffstats
path: root/doc
Commit message (Collapse)AuthorAgeFilesLines
* Prevent a crash in GMP_Engine if the library is shutdown and thenlloyd2010-01-221-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | reinitialized. It would cache an Allocator pointer on first use, and then never zero it, so after the reinit the pointer would be going to a now deallocated Allocator object. Encountered in the SoftHSM test suite, reported by Ondrej Sury. Use a simple reference counting scheme to zero the pointer, and reset the GNU MP memory functions. This also fixes a quite obscure and never reported bug, that if the GMP engine was used, and if the library was deinitialized but then the program tried to use GNU MP, the allocator functions would crash. Now after deinit the allocator funcs revert to the defaults. The reference count is not updated atomically so this is not thread safe, but seems a non-issue; the only time this could happen (especially now that the GMP engine header is internal-only) is if multiple threads were attempting to initialize / shutdown the library at once - which won't work anyway for a variety of reasons, including contention on the (unlocked) global_lib_state pointer. If at some point thread safety is useful here, the refcnt can be locked by a mutex, or kept in an atomic<unsigned int>.
* Add SQLite3 encryption codec, contributed by Olivier de Gaalon. Useslloyd2010-01-222-0/+2
| | | | Twofish in XTS mode for encryption by default, but is easily tweakable.
* Fix cpuid examplelloyd2010-01-191-1/+0
|
* Add SIMD version of Noekeon. On a Core2, about 2.7x faster using SIMD_SSE2lloyd2010-01-122-1/+2
| | | | and 1.6x faster using SIMD_Scalar.
* Add block cipher cascadelloyd2010-01-111-0/+1
|
* Clean up exceptions. Remove some unused ones like Config_Error. Makelloyd2010-01-051-2/+2
| | | | | | | Invalid_Argument just a typedef for std::invalid_argument. Make Botan::Exception a typedef for std::runtime_error. Make Memory_Exhaustion a public exception, and use it in other places where memory allocations can fail.
* The first bits of a general toolbox program. Currently does hex and base64lloyd2009-12-311-0/+235
| | | | encoding/decoding, bzip2 and zlib compression/decompression, and hashing.
* Drop test_es.cpp, EntropySources no longer directly available outside librarylloyd2009-12-311-121/+0
|
* Add copyright and license notes to pretty much every file that didn't have them,lloyd2009-12-3150-205/+327
| | | | | | | | including the examples and self-test code. Most of these files had not copyright/license information at all; since a major point of the examples is to allow users to copy and paste code that already does something they want, an ambigious license is not good.
* Document CBC/XTS parallel capabilitieslloyd2009-12-281-0/+2
|
* Document private key encryption switch from 3DES to AES-256lloyd2009-12-261-0/+1
|
* Make fpe example output more clear as to what is going onlloyd2009-12-241-4/+11
|
* Add last nights project, an SSE2 implementation of IDEA. Right about 4xlloyd2009-12-231-2/+3
| | | | faster than the scalar version on a Core2.
* Document timer changeslloyd2009-12-221-0/+2
|
* Un-internal loadstor.h (and its header deps, rotate.h andlloyd2009-12-211-11/+4
| | | | | | | | | | | | | | 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).
* Make many more headers internal-only.lloyd2009-12-166-37/+68
| | | | | | | | | | | | | 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-161-0/+1
|
* Consolidate the non-canonical epoch timers, like cpuid and Win32'slloyd2009-12-015-9/+5
| | | | | | | | | | | | | | 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.
* Mention the Win32 build and installer improvementslloyd2009-11-241-0/+2
|
* Update version # to 1.9.4-devlloyd2009-11-231-0/+2
|
* Add an example of reading SSH2 public keyslloyd2009-11-201-0/+119
|
* Document Win32 DLL and InnoSetup changes1.9.3lloyd2009-11-201-0/+2
|
* Update log and readme for 1.9.3 release 2009-11-19lloyd2009-11-201-1/+1
|
* Remove some obsolete stuff about modules from building.texlloyd2009-11-191-68/+3
|
* Get the old GTK+ example to build, though the pulse UI logic is no longerlloyd2009-11-172-78/+89
| | | | included. Threads are a smarter approach, in retrospect.
* Document adding FPElloyd2009-11-131-0/+1
|
* Extend FPE example to encrypt credit card numbers with valid Luhn checksumslloyd2009-11-131-8/+120
| | | | onto other CCNs with valid checksums.
* propagate from branch 'net.randombit.botan' (head ↵lloyd2009-11-131-0/+22
|\ | | | | | | | | | | 586495311cff277e7a24b4116c987b79036d94e6) to branch 'net.randombit.botan.fpe' (head c6e8324b12e509ac1303078d5e716f08c53acff5)
| * propagate from branch 'net.randombit.botan' (head ↵lloyd2009-11-061-0/+22
| |\ | | | | | | | | | | | | | | | 0cb3295ee48403828c652064fbf72ddb6edbe13c) to branch 'net.randombit.botan.fpe' (head 954d50f368db4be7d98c5c32c474bc54ec5ea7f3)
| | * Add format preserving encryption, design is FE1/FD1 from the paperlloyd2009-11-051-0/+22
| | | | | | | | | | | | | | | | | | Format-Preserving Encryption (http://eprint.iacr.org/2009/251). This doesn't implement the rank functions which are necessary for the actual format-preserving part, though that would be nice to add to the example.
* | | Double the speed of Skipjack on my Core2, mostly due to better inlining.lloyd2009-11-111-0/+1
| | |
* | | Add AES-192 using AES-NI. Tested OK with Intel's simulator.lloyd2009-11-101-1/+1
| | | | | | | | | | | | | | | | | | | | | Currently requires SSE4.1 for _mm_extract_epi32 for the key schedule, it would be nice to remove this dependency, though all currently known/scheduled chips with AES-NI (Intel Westmere and Sandy Bridge, and AMD Bulldozer) are supposed to include SSE 4.1 so this is not a huge problem.
* | | Clean up cpuid test proglloyd2009-11-101-11/+18
| | |
* | | Rename CPUID::has_intel_aes to has_aes_intel, and add CPUID::has_aes_via,lloyd2009-11-101-1/+4
| | | | | | | | | | | | which is currently just a stub returning false.
* | | Fix errors in the AES-256 key schedule for the AES-NI version. Now passeslloyd2009-11-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | tests under Intel's emulator. Document and enable in the engine. Merge both versions to aes_intel.cpp - some shared code and much similiar structure which might be sharable via macros.
* | | Make the AES implementation using Intel's AES instruction extension official;lloyd2009-11-102-0/+2
| | | | | | | | | | | | testing with Intel's emulator shows all green.
* | | Cleanups - remove emails from source files, they should only live inlloyd2009-11-101-3/+4
| | | | | | | | | | | | credits.txt and thanks.txt. Remove some various bits of formatting weirdness.
* | | In creating X.509 certificates and PKCS #10 requests, let (actually: require)lloyd2009-11-095-6/+8
|/ / | | | | | | | | | | | | the user to specify the hash function to use, instead of always using SHA-1. This was a sensible default a few years ago, when there wasn't a ~2^60 attack on SHA-1 and support for SHA-2 was pretty much nil, but using something else makes a lot more sense these days.
* / Tick to 1.9.3-devlloyd2009-11-061-0/+3
|/ | | | | Rename BOTAN_UNALIGNED_LOADSTOR_OK to BOTAN_UNALIGNED_MEMORY_ACCESS_OK which is somewhat more clear as to the point.
* propagate from branch 'net.randombit.botan.1_8' (head ↵1.9.2lloyd2009-11-032-2/+3
|\ | | | | | | | | | | a101c8c86b755a666c72baf03154230e09e0667e) to branch 'net.randombit.botan' (head 948905e3872b6f5904686533c6aa87d38ff90a71)
| * Update docs for 1.8.8 release 2009-11-031.8.8lloyd2009-11-031-1/+2
| |
* | Update for 1.9.2 release 2009-11-03lloyd2009-11-032-9/+3
| |
* | Fix cpuid with icc (tested with 11.1)lloyd2009-10-291-0/+3
| | | | | | | | | | Document SHA optimizations, AltiVec runtime checking, fixes for cpuid for both icc and msvc.
* | Add CPUID::have_altivec for AltiVec runtime detection.lloyd2009-10-291-0/+2
| | | | | | | | | | Relies on mfspr emulation/trapping by the kernel, which works on (at least) Linux and NetBSD.
* | propagate from branch 'net.randombit.botan' (head ↵lloyd2009-10-291-0/+2
|\ \ | | | | | | | | | | | | | | | 8fb69dd1c599ada1008c4cab2a6d502cbcc468e0) to branch 'net.randombit.botan.general-simd' (head c05c9a6d398659891fb8cca170ed514ea7e6476d)
| * | Document SIMD changeslloyd2009-10-281-0/+2
| | |
* | | propagate from branch 'net.randombit.botan.1_8' (head ↵lloyd2009-10-2817-88/+2941
|\| | | |/ |/| | | | | | | 3158f8272a3582dd44dfb771665eb71f7d005339) to branch 'net.randombit.botan' (head bf629b13dd132b263e76a72b7eca0f7e4ab19aac)
| * Add missing log note for 1.9.1 change notes on CTR/OFB changelloyd2009-10-281-0/+1
| |
| * Tick version to 1.9.2-devlloyd2009-10-261-0/+2
| |
| * Small cleanupslloyd2009-10-261-4/+3
| |