Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Remove unused pkcs8 includes | Simon Warta | 2015-08-03 | 1 | -1/+0 |
| | | | | Only botan-cli, botan-tests and the FFI module depend on PKCS8 | ||||
* | tls: Add missing overrides | Daniel Seither | 2015-07-30 | 1 | -30/+30 |
| | |||||
* | Silence some extra ';' warnings | Simon Warta | 2015-07-22 | 1 | -1/+1 |
| | |||||
* | Fix invalid iterator use in TLS client | Jack Lloyd | 2015-07-05 | 1 | -1/+1 |
| | |||||
* | More changes for use with debug STL | Simon Warta | 2015-06-30 | 3 | -6/+12 |
| | |||||
* | lib/tls: Convert &vec[0] to vec.data() | Simon Warta | 2015-06-23 | 12 | -44/+44 |
| | |||||
* | Fix various bugs found by Coverity scanner. | lloyd | 2015-05-15 | 3 | -0/+7 |
| | | | | | | | Uninitialized variables, missing divide by zero checks, missing virtual destructor, etc. Only thing serious is bug in TLS maximum fragment decoder; missing breaks in switch statement meant receiver would treat any negotiated max frament as 4k limit. | ||||
* | Remove RC4 (and all support for stream ciphers) from TLS | lloyd | 2015-05-15 | 3 | -50/+5 |
| | |||||
* | Add ALPN (RFC 7301) and remove NPN | lloyd | 2015-03-20 | 18 | -316/+138 |
| | |||||
* | Hide Algorithm_Factory and use the functions in lookup.h internally. | lloyd | 2015-03-04 | 3 | -18/+14 |
| | | | | | | Fix two memory leaks (in TLS and modes) caused by calling get_foo and then cloning the result before saving it (leaking the original object), a holdover from the conversion between construction techniques in 1.11.14 | ||||
* | Add new module `ffi` which provides a plain C interface, plus a new | lloyd | 2015-02-16 | 1 | -3/+3 |
| | | | | | | | | | | | | ctypes Python wrapper that uses it. The API is intentionally designed to have a very simple ABI (extern "C", all structs are opaque, no memory ownership passing the FFI boundary, limited set of simple types as args) so the ctypes wrapper is quite simple. Currently ffi provides ciphers, hashes, MACs, RNGs, PBKDF, KDF, bcrypt, and most public key operations. Remove the old boost.python wrapper and all the build code for it. | ||||
* | Remove algo factory, engines, global RNG, global state, etc. | lloyd | 2015-02-04 | 7 | -20/+45 |
| | | | | | | | | | | | | | | | Convert all uses of Algorithm_Factory and the engines to using Algo_Registry The shared pool of entropy sources remains but is moved to EntropySource. With that and few remaining initializations (default OIDs and aliases) moved elsewhere, the global state is empty and init and shutdown are no-ops. Remove almost all of the headers and code for handling the global state, except LibraryInitializer which remains as a compatability stub. Update seeding for blinding so only one hacky almost-global RNG instance needs to be setup instead of across all pubkey uses (it uses either the system RNG or an AutoSeeded_RNG if the system RNG is not available). | ||||
* | Convert PK operations to using Algo_Registry instead of Engine. | lloyd | 2015-02-03 | 4 | -6/+4 |
| | | | | Remove global PRNG. | ||||
* | Add missing files. Remove cipher lookup from engine code. | lloyd | 2015-02-01 | 2 | -17/+10 |
| | |||||
* | Add a runtime map of string->func() which when called return | lloyd | 2015-01-28 | 3 | -42/+58 |
| | | | | | | | | | | | | | | | | | Transforms and BlockCiphers. Registration for all types is done at startup but is very cheap as just a std::function and a std::map entry are created, no actual objects are created until needed. This is a huge improvement over Algorithm_Factory which used T::clone() as the function and thus kept a prototype object of each type in memory. Replace existing lookup mechanisms for ciphers, AEADs, and compression to use the transform lookup. The existing Engine framework remains in place for BlockCipher, but the engines now just call to the registry instead of having hardcoded lookups. s/Transformation/Transform/ with typedefs for compatability. Remove lib/selftest code (for runtime selftesting): not the right approach. | ||||
* | Add typedefs for function signatures/types used in TLS for easier reading | lloyd | 2015-01-27 | 13 | -92/+116 |
| | |||||
* | Add Strict_Policy. Disable server initiated renegotiation by default. | lloyd | 2015-01-23 | 2 | -13/+43 |
| | |||||
* | Add support for configuring a TLS::Policy by text file | lloyd | 2015-01-23 | 2 | -6/+163 |
| | |||||
* | Update TLS OCB ciphersuites to match draft-zauner-tls-aes-ocb-00 | lloyd | 2015-01-21 | 3 | -3/+47 |
| | | | | | and enable them in the default build, though still not enabled in the runtime policy. | ||||
* | Remove SSLv3 and handling of SSLv2 client hellos. | lloyd | 2015-01-11 | 18 | -286/+38 |
| | |||||
* | Support any key length for TLS session encryption by hashing with HMAC | lloyd | 2015-01-10 | 1 | -4/+16 |
| | |||||
* | Ensure all files have copyright and license info. | lloyd | 2015-01-10 | 57 | -57/+57 |
| | | | | | Update license header line to specify the terms and refer to the file, neither of which it included before. | ||||
* | Change TLS session encryption to use AES-256/GCM instead of CBC+HMAC | lloyd | 2015-01-08 | 2 | -12/+26 |
| | |||||
* | Support setting the number of pad bytes in a heartbeat message. Use | lloyd | 2015-01-07 | 5 | -70/+86 |
| | | | | | random instead of all-zero padding. Check on sanity of received pads to the extent possible. Bugzilla 269. | ||||
* | Remove config used for testing DTLS-SRTP | lloyd | 2015-01-04 | 1 | -3/+2 |
| | |||||
* | Add DTLS-SRTP key establishment from RFC 5764 (required for WebRTC). | lloyd | 2015-01-04 | 11 | -134/+293 |
| | | | | | | | | | | | | | | Github issue 27. Refactor server hello handling to make it easier to handle other extensions. The manual specified that 224 bit NIST primes were disabled by default for TLS but they were not. Additionaly disable the 256k1 curve and reorder the remaining curves by size. Rewrite the max fragment length extension code to roughly what an ideal compiler would have turned the original code into, using a switch instead of a lookup into a small constant std::map. | ||||
* | Add ChaCha20Poly1305 TLS ciphersuites compatible with Google's implementation | lloyd | 2014-12-31 | 7 | -95/+122 |
| | |||||
* | Fix a couple things pointed out by VC++ warnings. | lloyd | 2014-12-22 | 1 | -4/+0 |
| | |||||
* | Add abstract database interface so applications can easily store info | lloyd | 2014-12-20 | 7 | -244/+321 |
| | | | | | | in places other than sqlite3, though sqlite3 remains the only implementation. The interface is currently limited to precisely the functionality the TLS session manager needs and will likely expand. | ||||
* | Not helpful | lloyd | 2014-11-16 | 1 | -1/+0 |
| | |||||
* | A TLS Server can now process either TLS or DTLS but not either, | lloyd | 2014-11-15 | 10 | -75/+181 |
| | | | | | with the setting set in the constructor. This prevents various surprising things from happening to applications and simplifies record processing. | ||||
* | Replace Transformatio::nstart with start_raw so we can do a full set | lloyd | 2014-11-05 | 1 | -3/+3 |
| | | | | of overloads in the base class with the same name. | ||||
* | Let TLS policy disable putting the timestamp in the hello random fields | lloyd | 2014-11-04 | 6 | -11/+25 |
| | |||||
* | Typo | lloyd | 2014-11-04 | 1 | -1/+1 |
| | |||||
* | Cleanup handling of TLS AEAD nonce sizes, push all knowledge of what | lloyd | 2014-11-03 | 6 | -186/+193 |
| | | | | the nonce sizes should be down to the ciphersuite generating script. | ||||
* | Various small fixes and cleanups, new is_prime util | lloyd | 2014-11-03 | 1 | -4/+4 |
| | |||||
* | Fix various warnings from VC++ 2014 and add missing include | lloyd | 2014-10-31 | 4 | -6/+13 |
| | |||||
* | No need to pass version by reference | lloyd | 2014-10-31 | 2 | -2/+2 |
| | |||||
* | Add TLS fallback signalling (draft-ietf-tls-downgrade-scsv-00) | lloyd | 2014-10-31 | 9 | -26/+69 |
| | |||||
* | If the server offers us a SCSV instead of a real ciphersuite send a fatal alert | lloyd | 2014-10-30 | 3 | -0/+17 |
| | |||||
* | Add support for DTLS handshake timeouts and retransmissions. | lloyd | 2014-10-06 | 8 | -65/+224 |
| | |||||
* | Specify version number in message when we reject due to policy | lloyd | 2014-10-06 | 2 | -2/+4 |
| | |||||
* | Avoid initializer lists here, VC2013 doesn't like it. Github #18 | lloyd | 2014-05-01 | 2 | -5/+7 |
| | |||||
* | Compile fix | lloyd | 2014-04-13 | 1 | -2/+2 |
| | |||||
* | Have TLS_Data_Reader decoding errors include the actual msg type name | lloyd | 2014-04-12 | 12 | -44/+47 |
| | |||||
* | Verify that the server did not send any extension that the client didn't | lloyd | 2014-04-11 | 6 | -12/+41 |
| | | | | offer. Previously the client only checked a couple of special cases. | ||||
* | A std::deque's memory is not guaranteed to be contiguous | lloyd | 2014-04-06 | 1 | -1/+1 |
| | |||||
* | Add ECDHE_ECDSA CCM suites | lloyd | 2014-04-05 | 1 | -2/+14 |
| | |||||
* | Compile fixes | lloyd | 2014-02-08 | 2 | -1/+2 |
| | |||||
* | Fix algo factory compile | lloyd | 2014-01-18 | 2 | -2/+0 |
| |