aboutsummaryrefslogtreecommitdiffstats
path: root/src/kdf
Commit message (Collapse)AuthorAgeFilesLines
* Merge fixups. Add locking to default session manager. Use chrono liblloyd2012-02-201-1/+2
| | | | and unique_ptr.
* Report the length of the pre master secret. Who knows if when thislloyd2012-01-201-1/+2
| | | | | happens it'll be reproductible, etc, might as well have the information immediately.
* Increase the max key length of HMAC to 512 bytes. Previously we wouldlloyd2012-01-201-1/+8
| | | | | | | | | | | | | | run into trouble in the TLS PRF with large pre-master secrets. This especially crops up in TLS 1.2 as there the entire pre master secret is fed to a single PRF (in earlier verions it is split in half). A limit of 512 bytes allows a DH group up to 4096 bits which seems good enough for now. Also catch Invalid_Key_Length in the TLS PRF and throw an exception that makes more sense - initially I was completely thrown off by the HMAC key length exception, and it took me a while to figure it out. Someone else looking at this the first time a server sends a 8192 bit DH group would be even more confused.
* Kinda maybe working TLS 1.2 for clients. Not well tested at all, but alloyd2012-01-191-0/+1
| | | | | | | | basic connection with a GnuTLS server does work. Currently we don't respect the signature_algorithms extension at all, and using SHA-256 with a 12-byte finished value is hardcoded though the spec is that it can depend on the ciphersuite (likely relevant for GOST ciphersuites in particular).
* Rename some dirs for shorter object files where configure willlloyd2011-06-039-0/+0
| | | | coalesce the dir and file name if identical.
* More VC warning fixeslloyd2011-02-091-1/+1
|
* Cast to avoid VC warninglloyd2010-11-291-1/+1
|
* Derive KDF from Algorithmlloyd2010-11-017-6/+26
|
* Add new top-level algorithm which provides basic functionality: namelloyd2010-11-011-1/+1
| | | | | | | | query, clearing, and cloning. Applies to ciphers, hashes, MACs, and PBKDFs. May extend to KDFs later as well. A single combined hierarchy in particular will make the algo_factory much simpler.
* Use output_length() instead of OUTPUT_LENGTH pseudo-propertylloyd2010-10-132-3/+3
|
* Add a simple update_be to BufferedComputation that takes an integerlloyd2010-10-122-6/+3
| | | | | and writes the bytes to the stream in big-endian order. Use it in KDF2, MGF1, and FPE.
* s/u32bit/size_t/ in kdflloyd2010-10-1214-77/+77
|
* Use BOTAN_ASSERT in various placeslloyd2010-09-261-3/+3
|
* Update all uses of MemoryRegion::append to use either push_back or operator+=lloyd2010-09-152-2/+3
|
* More changes to avoid vector to pointer implicit conversionslloyd2010-09-143-11/+12
|
* Handle the case that container size() returns something other than u32bitlloyd2010-09-142-2/+2
|
* Remove more uses of vector to pointer implicit conversionslloyd2010-09-131-1/+1
|
* Anywhere where we use MemoryRegion::begin to get access to the raw pointerlloyd2010-09-132-4/+4
| | | | | representation (rather than in an interator context), instead use &buf[0], which works for both MemoryRegion and std::vector
* Doxygen commentslloyd2010-06-161-4/+42
|
* More Doxygen updates/fixeslloyd2010-06-157-16/+16
|
* Add support for TLS 1.2 PRFlloyd2010-04-172-22/+63
|
* Move the get_byte template to its own header, because many fileslloyd2010-02-022-2/+2
| | | | including loadstor.h actually just needed get_byte and nothing else.
* Un-internal loadstor.h (and its header deps, rotate.h andlloyd2009-12-213-3/+3
| | | | | | | | | | | | | | 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-164-5/+5
| | | | | | | | | | | | | 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-167-50/+0
|
* Remove the 'realname' attribute on all modules and cc/cpu/os info files.lloyd2009-10-297-14/+0
| | | | | Pretty much useless and unused, except for listing the module names in build.h and the short versions totally suffice for that.
* Format, add names to params in headerlloyd2009-10-191-3/+7
|
* Move some files around to break up dependencies between directorieslloyd2009-07-161-0/+4
|
* Add a script that reads the output of print_deps.py and rewriteslloyd2009-07-156-30/+29
| | | | | | the info.txt files with the right module dependencies. Apply it across the codebase.
* Add a script that analyzes the source and prints module dependencies.lloyd2009-07-153-35/+35
| | | | | | | | | 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.
* Add variable names to decls in kdf.hlloyd2009-06-191-12/+20
|
* Thomas Moschny passed along a request from the Fedora packagers which camelloyd2009-03-3014-134/+162
| | | | | | | | | | | | | | | 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).
* Move BufferedComputation to new buf_comp.{h,cpp}lloyd2008-11-082-0/+3
|
* Move declaration of MessageAuthenticationCode base class to mac.h (from base.h)lloyd2008-11-081-1/+1
|
* Move the declaration of the HashFunction base class to a new header hash.hlloyd2008-11-083-3/+3
| | | | (from base.h)
* TLS_PRF also depends on MD5 and SHA1, was not so markedlloyd2008-10-261-0/+2
|
* In KDF instead of lookup, instantiate fixed hashes (MD5, SHA-1) directlylloyd2008-10-264-21/+24
|
* Move kdf/kdf_base to kdflloyd2008-10-269-6/+6
|
* Move s2k.{h,cpp} and S2K algos from core and kdf to new s2k/ dirlloyd2008-10-269-355/+0
|
* Add trailing H__ to some header guards. Line wrap long comment.lloyd2008-10-131-2/+2
|
* More Doxygen comments from InSiTolloyd2008-10-132-7/+16
|
* Split kdf.h and kdf.cpp from core/ to kdf/kdf_baselloyd2008-10-089-1/+148
| | | | Update dependencies as needed.
* Append _prf to sslv3, tlsv1, x932 module nameslloyd2008-10-089-0/+0
|
* Move oids.h to oid_lookup. Allows for much smaller build by disabling asn1lloyd2008-10-011-0/+5
|
* Remove warnings in KDF1, KDF2 copy constructorslloyd2008-09-302-2/+2
|
* Fix warning in PBKDF1 copy constructorlloyd2008-09-301-1/+3
|
* Remove lookup.h from X9.31 PRNG, X9.19 MAC, SSLv3 MAC, PBKDF1lloyd2008-09-302-13/+14
|
* Remove lookup from Randpool, HMAC, CMAC, CBC-MAC, TLS-PRF, and PBKDF2lloyd2008-09-304-36/+63
|
* Remove lookup/libstate dependency on Lion, KDF1, KDF2, EMSA[1-4]lloyd2008-09-304-31/+14
|
* Rewrite part of the module loading code in configure.pl, now dependencieslloyd2008-09-301-1/+1
| | | | | | seem to be handled correctly (er, at least mostly), and more importantly the asm MPI modules are detected and used correctly (at least on x86-64 and x86).