aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Make encrypt_n public for all BlockCipher implementations - unlike thelloyd2009-08-1131-58/+355
| | | | | | enc/dec functions it replaces, these are public interfaces. Add the first bits of a SSE2 implementation of Serpent. Currently incomplete.
* Modify Keyed_Filter so it is a pure interfacelloyd2009-08-1117-150/+418
| | | | | | | | | | Modify ECB to use parallel encryption/decryption where possible Add toggles in build.h specifying how many blocks to process in parallel. Defaults to 8 blocks for all modes, which is sufficient that any likely parallelism can be extracted (via SIMD or concurrent execution) but not so much as to seem likely to cause cache problems (8*128 bits = 128 bytes, or two x86 cache lines)
* Change the BlockCipher interface to support multi-block encryption andlloyd2009-08-1156-1321/+1742
| | | | | | | | | decryption. Currently only used for counter mode. Doesn't offer much advantage as-is (though might help slightly, in terms of cache effects), but allows for SIMD implementations to process multiple blocks in parallel when possible. Particularly thinking here of Serpent; TEA/XTEA also seem promising in this sense, as is Threefish once that is implemented as a standalone block cipher.
* Add 'Distributed under the terms of the Botan license' notices to the .Slloyd2009-08-118-41/+57
| | | | | files. Were missed by the automated script that added them to the cpp/h files, it appears.
* Add a set of Serpent/CTR tests. The primary reason for this is becauselloyd2009-08-101-0/+541
| | | | | Serpent seems very nicely suited to a SSE2 SIMD implementation, and CTR mode can handle multiple blocks in parallel. Input lens 1 to 128 bytes.
* Add the levelname to the log output of configure.pylloyd2009-08-101-1/+4
| | | | Add a comment nothing that Python <= 2.3 is not supported
* Use the default ABI instead of forcing n32 for mips32lloyd2009-08-103-33/+21
| | | | | | | | | | | | | | systems. This was something that for whatever reason that I have long since forogotten was a good idea on IRIX running MIPS circa a decade ago, but was reported to cause problems on the Debian builds. Add mipsel as an alias for the mips32 architecture for Debian. The mips32 submodel names were badly typoed and did not work correctly. Remove the leading mips32- and mips64- from MIPS submodel names.
* Wrap long lineslloyd2009-08-051-2/+4
|
* is_64bit_arch: s390x is also 64 bitlloyd2009-08-051-1/+1
|
* Add a couple of new exampleslloyd2009-08-042-0/+222
|
* Mention Open64 support. Move /proc-reader changes to top, most important of ↵lloyd2009-08-031-1/+2
| | | | what is there
* Add compiler settings for the Open64 (http://www.open64.net/) compiler,lloyd2009-08-031-0/+30
| | | | | | | based on the SGI Pro64 and Pathscale EKOpath compilers. Only tested on an x86-64 system running Linux (v4.2.1). Miscompiles a few of the block ciphers (segvs, didn't bother to diagnose further; recompile with -O1 to fix), other than that seems OK.
* Fix variable name in 32-bit bswap for VC++lloyd2009-08-031-1/+1
|
* If GCC was not installed configure.py would attempt to execute it onlloyd2009-07-311-8/+13
| | | | | | 32-bit machines (for the version check if -fpermissive is needed) and then fail with an uncaught exception when subprocess.Popen signaled the problem. Instead note the failure and carry on.
* Change how the pair is constructed for Sun Forte compatabilitylloyd2009-07-311-1/+1
|
* A typo in a macro check in bswap.h meant inline asm bswap was notlloyd2009-07-311-1/+1
| | | | used on Visual C++
* Change version to 1.8.6-pre, document changes since 1.8.5 releaselloyd2009-07-254-7/+12
|
* Add support for Dragonfly BSD (a fork of FreeBSD).lloyd2009-07-2517-1/+28
| | | | Contributed by Patrick Georgi
* Two changes to proc_walk:lloyd2009-07-251-2/+2
| | | | | | | | | | | | | | Don't read any file that is not world-readable. This avoids trouble when running as root, since on Linux various special files can cause odd interactions and/or blocking behavior when read (for instance /proc/kmsg). ssumption is that no such files are world-readable. This also avoids any issue of reading data that is potentially sensitive. Instead of reading the first 1 KB of each file, only read the first 128 bytes. This prevents large files (like /proc/config.gz or /proc/kallsyms) from swamping the input buffer; these inputs are pretty static and shouldn't count for much. Reducing to 128 bytes causes a poll to read about 400 different files, rather than ~30.
* Minor changes to the license.lloyd2009-07-251-13/+14
| | | | | | | | | | | | | | | | Remove the phrase 'for any use' - implied by the conditions. Add 'All rights reserved.' after the (C) notice. Remove the name+URL in the text and lead off with a statement that Botan is distributed under the following terms: <blah> Combine the two all-CAPS sentences disclaiming warranty into a single paragraph. The main reasoning behind this is to make the actual license text totally equivalent to the FreeBSD/NetBSD licenses, which is an offical Open Source(tm) license as declared by the OSI.
* Update log, readme, version #s in configure for 1.8.5 release 2009-07-231.8.5lloyd2009-07-234-6/+7
|
* Add an alias armv5tel for xscale, fixes autodetection for both Perl andlloyd2009-07-231-0/+1
| | | | | Python configure scripts. Previously Python version would give up, and the Perl one would guess i686 (!)
* Fix bigint_2word_mul - it tried to use MP_WORD_BITS which was not visiblelloyd2009-07-231-1/+1
| | | | | in this header, instead use the macro version BOTAN_MP_WORD_BITS. Only affected 64-bit SPARC builds.
* In both configures, strip out periods in submodel names for generating thelloyd2009-07-232-1/+6
| | | | | | | | | TARGET_CPU_IS macro. This would otherwise cause problems on HP-PA, as it would generate invalid macros like TARGET_CPU_IS_HPPA2.0 Also in configure.py, replace hyphens with underscores in the submodel name for generating the macro (configure.pl already did this). Otherwise using the sparc64-ultraX submodels would also generate an invalid macro in build.h
* Replace 'XXX' and other such notes with FIXME for easy greppinglloyd2009-07-225-9/+10
|
* Add Charles Brockman to the credits file - he submitted a number oflloyd2009-07-211-0/+5
| | | | | patches fixing grammatical problems in api.tex as well as adding/fixing various Doxygen comments and so forth.
* Disable STRIP_CODE_COMMENTS for Doxygen outputlloyd2009-07-211-1/+1
|
* Fix some unused variable nits pointed out by icc 10.1lloyd2009-07-214-9/+3
|
* Fix install target with configure.pylloyd2009-07-211-2/+4
|
* Fix ticket 46lloyd2009-07-211-8/+13
| | | | | | | | | | | Previous behavior was that if a module was explicitly disabled, the libraries that module used would still be linked in. So for instance configure.pl --disable-modules=pthreads --without-openssl would cause libpthread and libcrypto to be included in the final link! This bug only affected the Perl configure
* One signature of PKCS8::PEM_encode was stray, and didn't have a coorespondinglloyd2009-07-211-5/+0
| | | | | | | | | implementation. This had been the case since at least 1.8.0. Remove it, since implementing this signature would require having the library create an AutoSeeded_RNG, which seems like it might be quite surprising to an unsuspecting user. Problem reported by M. Braun in ticket 44
* Apply some grammatical fixes to api.tex contributed by Charles Brockmanlloyd2009-07-211-90/+90
| | | | in ticket #38
* Move back to pk_codecs, propagate to pubkey-refactor donelloyd2009-07-214-0/+0
|
* Move from pk_codecs to pubkey to solve merge problemlloyd2009-07-214-0/+0
|
* Drop execute attributes on test fileslloyd2009-07-219-0/+0
|
* Set version fields for 1.8.5 rc1lloyd2009-07-214-5/+7
|
* Only append <requires> if at least one deplloyd2009-07-211-6/+10
|
* Fix dependency resolution in configure.pl (same algorithm as configure.py)lloyd2009-07-171-61/+32
| | | | | | | | Fix --enable-asm (had same effect as --disable-asm) Fix mp_bits calculation; took into account both modules which were enabled and ones that were explicitly disabled, for instance ./configure.pl --disable-modules=mp_amd64 -> mp_bits == 64
* Respect --enable-module / --with-blah optionslloyd2009-07-171-0/+4
|
* The previous dependency resolution logic would go into an infinite looplloyd2009-07-171-66/+87
| | | | | when faced with the full set of module interdependencies. Use a new algorithm that handles it OK.
* Fix various auto generated dependencies that were wronglloyd2009-07-178-22/+6
|
* Correct some errors in the automatically generated dependencies.lloyd2009-07-168-7/+3
|
* Add missing info.txt fileslloyd2009-07-162-0/+24
|
* Correct source listings for moved fileslloyd2009-07-162-4/+0
|
* Move some files around to break up dependencies between directorieslloyd2009-07-1632-16/+48
|
* Add a script that reads the output of print_deps.py and rewriteslloyd2009-07-15103-328/+583
| | | | | | the info.txt files with the right module dependencies. Apply it across the codebase.
* Move the contents of pubkey/pubkey (which was kind of a catch-all tolloyd2009-07-1528-18/+6
| | | | | | | just toplevel pubkey). This was a convention I realized made sense sometime on when I was first doing the modularization changes. Move pkcs8.* and x509_key.* to pk_codecs
* Add a script that analyzes the source and prints module dependencies.lloyd2009-07-155-35/+109
| | | | | | | | | Useful for tracking where the big balls of mud are. Fix dependencies in gost_3411 (depends on the gost block cipher), and the TLS PRF (depends on HMAC). Also hide TLS_PRF::P_hash in an anonymous namespace instead of making it a private static function. I don't think this will affect binary compat, since it was statically linked.
* New module load_on directive 'never', to mark known-buggy codelloyd2009-07-154-2/+5
|
* Report modules which are not loaded, grouped by the reason why.lloyd2009-07-151-17/+29
|