| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
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.
|
|
|
|
| |
decoding code but seems an improvement.
|
| |
|
| |
|
| |
|
|
|
|
| |
it is very slow to generate.
|
| |
|
| |
|
|
|
|
| |
with the channel object instead of calling the global object.
|
| |
|
|
|
|
| |
under something before 4.7.0
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
allowed_macs. This allows someone to turn on MD5 for message auth,
which is a little sketchy but probably OK, without also (likely
unintentionally) enabling MD5 for TLS v1.2 signatures, which would be
a big problem.
Prioritize RC4 over 3DES in default policy.
Disable ECC curves smaller than 224 bits by default.
More updates to the TLS policy documentation.
|
|
|
|
|
|
|
| |
Rename the sqlite module to sqlite3 as sometimes plain 'sqlite' is
used to refer to sqlite2.
Reduce the password check bits to 16 which is plenty.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
insufficient_security alert if the server tries to give us a DH group
smaller than that. Also check to make sure the key isn't obviously
bogus (<=1 || >= p-1), though as the key is purely ephemeral it
doesn't seem like a small subgroup attack would provide much advantage
anyway.
|
| |
|
|
|
|
|
| |
Move Karatsuba cutoffs to mp_karat.cpp as that is the only place that
uses them and I doubt these get tweaked much (ever).
|
|
|
|
|
|
|
|
|
| |
we know one of the sub values was going to be zero. Avoid doing this
as it exposes a timing channel.
Some bn_asm code was manually inlined into the Karatsuba for doing
additions. Just call the normal functions - if these are too slow that
should be fixed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
needed to derive from it. Add a new overload of send taking a
std::string for convenience (eg client.send("GET / HTTP/1.0\n\r")).
Let Channel::renegotiatate's force_full_renegotiation argument default
to false.
Fix a bug where if we negotiated TLS v1.2 and our Policy was
configured to only use MD5 we would send an empty allowed signatures
which is maybe bogus or maybe just ambigious (RFC is unclear, though
we reject in this case). To fix this, support putting MD5 in the
signature algorithms extension, and then in choose_sig_format order
first by our hash preference, and only allow hashes that are allowed
by policy. Thus is a client claims to support both SHA-2 and MD5 we'll
choose SHA-2 even if the client put MD5 first (some versions of GnuTLS
ordered the list backwards due to a bug, so this is actually a useful
behavior).
|
| |
|
| |
|
|
|
|
|
|
|
| |
Montgomery exponentiation as except for the very first division all
operands are single words and thus we can assume we have a relatively
fast division operation (and additionally working only with words
avoids dynamic allocation).
|
| |
|
|
|
|
|
| |
the client requested because we wouldn't have a cert chain set for
anon.
|
|
|
|
| |
performance.
|
|
|
|
| |
the arguments
|
|
|
|
|
|
| |
plenty sufficient, and reduces the overhead of setting up the blinder
(in terms of exponent size and the cost of computing modular
inverses).
|
| |
|
| |
|
|
|
|
|
|
|
| |
only need the low word of the result. Credits to HAC, somehow I missed
that this was possible. This helps especially when a program does a
lot of setups, so the improvement is only minor on the benchmark but
fairly huge for asio_tls_server.
|
|
|
|
|
|
|
|
|
|
| |
on each and comparing that. However that is very expensive (lots of
formatting) and doesn't even work that well because to_string skips
over a lot of information. Instead, compare the tbs bits directly
which is both much faster and more accurate.
Add a new X509_Certificate::fingerprint which returns a fingerprint
compatible at least with what OpenSSL does.
|
|
|
|
|
|
| |
ciphersuites was actually a substantial hit on handshakes. Add a new
function TLS::Ciphersuite::all_known_ciphersuites which will do this
once and cache it for future use.
|
| |
|
|
|
|
| |
This matches the behavior of other bcrypt implementations.
|
|
|
|
|
|
|
|
|
|
|
| |
support secure renegotiation, and then a renegotiation occured (either
due to explicit request by a call to renegotiate, or if the
counterparty send a hello request and our policy allowed insecure
renegotiations), because supported() would be false but our client
hello would still contain the renegotion extension. Instead, only
break if the client hello doesn't support it but supported() == true,
which indicates that at one point in the past both parties supported
the extension.
|
| |
|
|
|
|
| |
only have a 64-bit libc++.
|
| |
|
|
|
|
|
|
|
| |
(relying on implicit pointer conversions). Also, change
Serpent::set_round_keys (used by the x86-32 asm version) to assign()
the values instead of copying, as we rely on the key schedule to
allocate the key values now to minimize memory waste.
|
| |
|
|
|
|
|
|
|
| |
interface to more of a calloc style. Alignment remains set to the
underlying type size.
Increase the maximum mlock size to 512 KB.
|
|
|
|
|
|
| |
first 4 bytes a timestamp. Conveniently this means removing the
lexicographically first session id from a cache is removing the oldest
session.
|
|
|
|
|
|
| |
Change the switch in bitmask_for_handshake_type to not have a default:
branch, so GCC can warn if we are missing a type. Instead throw if
the switch failed to return.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
case of a fatal alert, as required by section 7.2.2 of RFC 5246.
Resolve this by storing the currently active session in Channel. Whenever we
send or receive a fatal alert, tell the session manager to forget about that
session.
This still doesn't strictly meet the requirement for servers, as a session
ticket is not invalidated and could later be reused. A conforming client
would forget the whole session including the ticket, but that is assuming
the attacker wouldn't prevent delivery of the alert message.
However it would be difficult for the server to meet this requirement
without per-ticket keys or keeping state about which tickets should not be
resumable, both of which are stupid given the whole point of session tickets
is that it allows resumption without server side state. OpenSSL also seems
to allow resumption of sessions ending in a fatal alert when resumed though
a ticket.
|
|
|
|
| |
pure anon mode and the client sent a SNI extension.
|
|
|
|
| |
Fix printing of Camellia ciphersuites.
|