| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
ok beck@ doug@
|
| |
|
| |
|
|
|
|
| |
Prompted by jsg@, since I apparently left it sitting in my tree...
|
|
|
|
|
|
| |
new extension framework.
input + ok jsing@
|
|
|
|
|
|
|
|
|
|
| |
names of the elliptic curves that may be used during client and server
key exchange to be specified.
This deprecates tls_config_set_ecdhecurve(), which could only be used to
specify a single supported curve.
ok beck@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Over the years OpenSSL grew multiple ways of being able to specify EC keys
(and/or curves) for use with ECDH and ECDHE key exchange. You could specify
a static EC key (SSL{_CTX,}_set_tmp_ecdh()), use that as a curve and
generate ephemeral keys (SSL_OP_SINGLE_ECDH_USE), provide the EC key via
a callback that was provided with insufficient information
(SSL{_CTX,}_set_tmp_ecdh_cb()) or enable automatic selection and generation
of EC keys via SSL{_CTX,}_set_ecdh_auto(). This complexity leads to
problems (like ECDHE not being enabled) and potential weird configuration
(like being able to do ECDHE without the ephemeral part...).
We no longer support ECDH and ECDHE can be disabled by removing ECDHE
ciphers from the cipher list. As such, permanently enable automatic EC
curve selection and generation, effectively disabling all of the
configuration knobs. The only exception is the
SSL{_CTX,}_set_tmp_ecdh() functions, which retain part of their previous
behaviour by configuring the curve of the given EC key as the only curve
being enabled. Everything else becomes a no-op.
ok beck@ doug@
|
|
|
|
|
|
|
| |
list or if we are negotiating an ECC cipher in the handshake. This dedups
some of the existing code and will make the EC extension rewrites easier.
ok doug@
|
|
|
|
|
|
|
|
| |
for the TLS privsep code. Instead use X509_pubkey_digest() because only the
key should be used as identifier. Relayd is rewriting certificates and then
the hash would change. Rename the hash is struct tls_keypair to pubkey_hash
to make clear what this hash is about.
With input and OK jsing@
|
|
|
|
| |
breaking from some and returning from others.
|
| |
|
|
|
|
| |
they can eventually be exposed as direct functions/symbols.
|
|
|
|
| |
from some.
|
| |
|
| |
|
|
|
|
| |
eventually be exposed as direct functions/symbols.
|
|
|
|
| |
for readability.
|
| |
|
|
|
|
|
| |
found with regress/usr.bin/mandoc/db/dbm_dump;
OK jmc@
|
|
|
|
| |
from carlos cardenas
|
|
|
|
|
|
| |
tricky, especially since the manpage is full of lies.
Try to make readers think twice before using them.
With oks and help from schwarze@, tedu@, sthen@, jmc@
|
|
|
|
|
|
|
|
| |
tlsext_sni_serverhello_parse(). This also adds a check to ensure that
if we have an existing session, the name matches what we specified via
SNI.
ok doug@
|
|
|
|
|
|
|
|
| |
and the new extension framework.
Feedback from doug@
ok inoguchi@
|
|
|
|
| |
Missed in the original commit.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce a TLS extension handling framework that has per-extension type
functions to determine if an extension is needed, to build the extension
data and parse the extension data. This is somewhat analogous to BoringSSL,
however these build and parse functions are intentionally symetrical. The
framework is hooked into the existing TLS handling code in such a way that
we can gradual convert the extension handling code.
Convert the TLS Server Name Indication extension to the new framework,
while rewriting it to use CBB/CBS and be more strict in the process.
Discussed with beck@
ok inoguchi@
|
|
|
|
| |
Reported by <dravion at ht-foss dot net>
|
|
|
|
| |
okay millert@
|
|
|
|
| |
definite value in the size == 0 case
|
|
|
|
| |
what the reader is using.
|
|
|
|
| |
is not initialized. Problem spotted by Carlin Bingham; ok phessler@ tedu@
|
|
|
|
| |
Based on a diff from Jack Burton <jack at saosce dot com dot au>, thanks!
|
| |
|
|
|
|
|
|
|
|
| |
enable CRL checking for the full certificate chain.
Based on a diff from Jack Burton <jack at saosce dot com dot au>, thanks!
Discussed with beck@
|
|
|
|
|
|
| |
prefix if the character following it is a valid hex char. The C99
standard is clear that given the string "0xy" zero should be returned
and endptr set to point to the "x". OK deraadt@ espie@
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
TLS Server Name extension, however seemingly several clients (including
Python, Ruby and Safari) violate the RFC. Given that this is a fairly
widespread issue, if we receive a TLS Server Name extension that contains
an IP literal, pretend that we did not receive the extension rather than
causing a handshake failure.
Issue raised by jsg@
ok jsg@
|
| |
|
|
|
|
| |
From Klemens Nanni
|
| |
|
|
|
|
|
|
|
| |
just fall into the code. The .align created a FILL zone in the .init section,
which on i386 was filled with a NOP-sled, something we want to get away
from.
discussed with kettenis and tom
|
|
|
|
|
|
|
| |
we can prevent libcrypto from going behind our back and trying to read
passwords from standard input (which we may not be permitted to do).
Found by jsg@ with httpd and password protected keys.
|
| |
|
| |
|
| |
|
|
|
|
| |
duplicating clean up code.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The certificate verification code has special cases for self-signed
certificates and without this change, self-issued certificates (which it
seems are common place with openvpn/easyrsa) were also being included in
this category.
Based on BoringSSL.
Thanks to Dale Ghent <daleg at elemental dot org> for assisting in
identifying the issue and testing this fix.
ok inoguchi@
|