aboutsummaryrefslogtreecommitdiffstats
path: root/src/codec
Commit message (Collapse)AuthorAgeFilesLines
* Move assert.h from internal to very public (included in types.h)lloyd2013-03-131-1/+0
| | | | | | This reduces friction to writing an assert, so hopefully there will be more of them as a result. And we can use asserts in public headers now, very useful for templates.
* Doxygen warning fixeslloyd2012-07-091-0/+4
|
* The messages for assertion checks were done both ways, both "assertionlloyd2012-07-091-2/+2
| | | | | | X is true" and "assertion X is false". Convert all of them to the form "assertion X is true" thus making it clear what it is that we are attempting to assert by testing the expression provided.
* Modify DL_Group::PEM_decode and BER_decode to take values instead oflloyd2012-06-051-2/+2
| | | | | | | | DataSource&. Remove spurious DataSource_Memory from ec_group.cpp Some indent fixes
* Plain hex_decode now returns a std::vector, use hex_decode_locked tolloyd2012-05-262-10/+58
| | | | get a secure_vector.
* Replace 0 and NULL pointer constants with nullptr. Also fix an oldlloyd2012-05-181-1/+1
| | | | style cast in secmem.h
* Fairly huge update that replaces the old secmem types with std::vectorlloyd2012-05-188-53/+54
| | | | | | using a custom allocator. Currently our allocator just does new/delete with a memset before deletion, and the mmap and mlock allocators have been removed.
* New helpers taking a stringlloyd2012-01-242-0/+28
|
* Better documentation in this headerlloyd2012-01-241-11/+34
|
* Ignore \r as whitespace in base64 decoder - caused test failures onlloyd2011-06-031-1/+3
| | | | Windows :(
* Fixes for base64 incremental decoding.lloyd2011-05-161-14/+11
| | | | | | Define the Base64_Decoder filter in terms of base64_decode Don't use locked memory in the hex or base64 filters.
* Add base64_decode. Seems to work OK, though incremental decoding islloyd2011-05-122-0/+221
| | | | not well tested.
* Calling &str[str.size()] is only valid if str is const; otherwise thelloyd2011-04-291-4/+5
| | | | | | | | | | | | | | 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
* Maintainer mode warning cleanups, mostly for C style casts which Illoyd2011-04-181-1/+1
| | | | added to the flags here.
* Some dependency fixeslloyd2011-02-111-1/+1
|
* Use runtime asserts herelloyd2010-12-231-2/+3
|
* Remove debug includeslloyd2010-12-231-3/+0
|
* Doxygenlloyd2010-11-021-2/+0
|
* Simple standalone base64 encoderlloyd2010-10-283-0/+159
|
* s/u32bit/size_t/ in codec and benchmarklloyd2010-10-126-45/+45
|
* Handle memory overwrite if hex input was not byte widelloyd2010-10-011-1/+1
|
* Add a convenience overload of hex_encode taking a MemoryRegion<byte>&lloyd2010-09-232-0/+17
|
* More changes to avoid vector to pointer implicit conversionslloyd2010-09-141-2/+2
|
* Realization while thinking about the recently added truncate: in a STLlloyd2010-09-071-1/+1
| | | | | | | | | | | | | | | | | | container like vector, truncate is simply resize, but what MemoryRegion called resize will zap the entire contents, and then what was resize was called grow_to. This is really problematic in terms of the goal of replacing MemoryRegion with a vector with a custom allocator. In this checkin: - Remove MemoryRegion::grow_to and MemoryRegion::truncate - Change the semantics of MemoryRegion::resize to change the size while keeping any current contents intact (up to the new size), zero initializing any new values. Unrelated, just noticed the lack while I was in there, add a version of CryptoBox::decrypt taking a std::string for the input.
* Add a standalone version of hex encoding and decoding, defining the filterslloyd2010-09-033-0/+289
| | | | | | | | in terms of these calls. The header for the hex filter is renamed hex_filt.h. This probably won't affect people because filters.h (included by botan.h) already included hex.h, and now just includes hex_filt.h instead.
* Remove some of the more extraneous namespaceslloyd2010-06-162-27/+52
|
* Full working amalgamation build, plus internal-only headers concept.lloyd2009-12-161-7/+0
|
* Move most code that relies heavily on Filters into src/filters.lloyd2009-11-1717-1456/+4
| | | | | | Remove support for (unused) modset settings. Move tss, fpe, cryptobox, and aont to new dir constructs
* Rename/remove some secmem member variables for better matching with STLlloyd2009-11-172-10/+10
| | | | | | | | containers (specifically vector). Rename is_empty to empty Remove has_items Rename create to resize
* Kill straggling realnameslloyd2009-10-291-2/+0
|
* Remove the 'realname' attribute on all modules and cc/cpu/os info files.lloyd2009-10-296-10/+0
| | | | | Pretty much useless and unused, except for listing the module names in build.h and the short versions totally suffice for that.
* Increase the internal buffer size of the Hex coder/decoder, and put it intolloyd2009-10-231-3/+5
| | | | | | | | | | | | | | a named constant instead of being magic. Move from 64 bytes to 256. This was necessary to allow Pipe(new Hex_Decoder, filter, ...) to give filter a sufficiently large input block. It would be nicer if the filter itself (in this case, ECB_Decryption, but others apply as well) was smart enough to buffer on its own. It might also be useful if code could query what parallelism a block cipher provided and modify their actions accordingly.
* Modify Keyed_Filter so it is a pure interfacelloyd2009-08-111-0/+1
| | | | | | | | | | 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)
* Fix various auto generated dependencies that were wronglloyd2009-07-171-0/+1
|
* Add a script that reads the output of print_deps.py and rewriteslloyd2009-07-156-18/+16
| | | | | | the info.txt files with the right module dependencies. Apply it across the codebase.
* Thomas Moschny passed along a request from the Fedora packagers which camelloyd2009-03-3014-287/+315
| | | | | | | | | | | | | | | up during the Fedora submission review, that each source file include some text about the license. One handy Perl script later and each file now has the line Distributed under the terms of the Botan license after the copyright notices. While I was in there modifying every file anyway, I also stripped out the remainder of the block comments (lots of astericks before and after the text); this is stylistic thing I picked up when I was first learning C++ but in retrospect it is not a good style as the structure makes it harder to modify comments (with the result that comments become fewer, shorter and are less likely to be updated, which are not good things).
* Have Algorithm_Factory::make_hash_function throw an exception if it can'tlloyd2008-11-102-2/+4
| | | | | | find an object to clone. Add a new constructor to Hash_Filter taking a HashFunction*
* Split the last parts of the 'core' modulelloyd2008-11-082-2/+0
| | | | Add some missing info.txts
* Split base.h into block_cipher.h and stream_cipher.hlloyd2008-11-084-0/+6
| | | | | | It turned out many files were including base.h merely to get other includes (like types.h, secmem.h, and exceptn.h). Those have been changed to directly include the files containing the declarations that code needs.
* Doxygen comments for base64 and hex from InSiTolloyd2008-10-132-23/+81
|
* Add BOTAN_DLL macro to public class definitions that were missing it.lloyd2008-10-092-4/+4
|
* Document dependencies between moduleslloyd2008-10-014-0/+16
|
* Fix loading issueslloyd2008-09-291-0/+2
|
* Rename all modinfo.txt files to info.txt, since they are all (none) oflloyd2008-09-296-0/+0
| | | | | them modules now. In any case there is no distinction so info.txt seems better.
* New filters module. Add deps for it in some needed areas (codec, pbes)lloyd2008-09-282-0/+2
|
* Add modinfo for pem, hash_id, selftest moduleslloyd2008-09-281-0/+14
|
* PEM codec modulelloyd2008-09-283-0/+178
|
* Put OpenPGP codec routines into codec/openpgp modulelloyd2008-09-283-0/+234
|
* Move all BigInt stuff into bigint/. Currently all asm modules are disabled;lloyd2008-09-284-0/+93
| | | | | | | | | configure.pl doesn't understand how to handle this yet (replace logic only understands stuff in src, not how one module can replace another modules src, or anything about prioritizing). Move some hex and base64 stuff out of charset.cpp and into their codec directories.
* Move almost all of the ASN.1, BER, and DER codec related code into newlloyd2008-09-2812-0/+1262
module asn1 Move hex and base64 codecs into new codecs directory. Also move zlib and bzip2 to codecs from compress.