-
Notifications
You must be signed in to change notification settings - Fork 118
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Define OPENSSL_NO_TLS_PHA, typedef PSK callback signatures #1526
Conversation
7307547
to
98956a9
Compare
98956a9
to
07749d3
Compare
This commit defines a new configuration macro `OPENSSL_NO_PHA`. This macro is meant to be used by consuming applications to detect the fact that we (or other libssls) don't support TLSv1.3's post-handshake authentication (PHA). We then use this macro in place of `OPENSSL_IS_AWSLC` to detect PHA support in our CPython patch. We also enable PSK in our CPython patch and create two PSK-related callback function signatures [defined by OpenSSL][1] and used by CPython. Finally, we fix the now-executed PSK tests in CPython. [1]: https://www.openssl.org/docs/man1.1.1/man3/SSL_psk_client_cb_func.html
1d93c08
to
69b08a6
Compare
@@ -63,6 +63,7 @@ | |||
},{ | |||
"Name": "SSL implementation", | |||
"Headers": [ | |||
"include/openssl/opensslconf.h", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this belong under "SSL implementation"? I'm not sure which of the other categories would make more sense though...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
that's a good question, opensslconf.h
seems to span both libcrypto
and libssl
. what do you think @andrewhop?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hm, so it looks like available sections are
- Low-level infrastructure
- Low-level crypto primitives
- Crypto interfaces
- Legacy ASN.1 and X.509 implementation
- SSL implementation
opensslconf.h
contains configuration macros pertaining to SSL/TLS, low-level primitives, obscure protocols (e.g. trusted timestamping), etc. it's a bit of a grab bag, but I think out of the available sections "SSL implementation" is most appropriate.
I suppose we could also break it out into a new "configuration" section.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems fine for now, thanks for getting this in.
d52018b Minor functions to build with Ruby's cipher module (#1564) 364d28b Changed SSL_client_hello_get0_ciphers to align with OpenSSL behavior (#1542) e8eb7de ppc64le: EVP_has_aes_hardware is false w/ no-asm (#1566) d726d06 OpenBSD 7.4 and 7.5 Support (#1437) a66c66e Remove comments about overread for entropy generation (#1551) f8a575f Migrate from __FreeBSD__ to __FreeBSD_version (#1562) c31d1ce Centralize handling of s2n-bignum alt/non-alt function selection (#1547) 00f3c45 CI for other MacOS versions (#1558) 0541314 Cleanup remaing duplicate symbol definitions and turn Wredundant-decls on (#1561) 4d280eb Fix ec2 CI testing framework (#1541) 9a4b43e Update x25519_test.cc array initialization to avoid a bug with a GCC 13 warning (#1555) 388cbe7 Remove duplicate X509_OBJECT_new and X509_OBJECT_free declarations (#1560) 2ea6706 Avoid 'z' format with MSVCRT (#1559) c25dc2a Add dependency to python3-six in github action grpc (#1554) 2bdcba3 Link porting guide table to header documentation (#1540) 311ca38 Basic GH CI build/test with full range of gcc/clang (#1546) 1f19717 Add SHA3-256 KAT to FIPS self-test (#1549) 0f3548a Add EC point add/dbl to speed.cc (#1545) d7ddfc4 Fix the NTP integration test (NTP website changed) (#1548) 8ccd85b Fix skipped tests in Mariadb integration CI (#1533) d940162 Support vpinsrq in delocater (#1543) 4cd6d21 Remove redundant test exec libraries (#1544) 56f3569 [ML-KEM] Add experimental support for ML-KEM-512-IPD (#1516) c295aef Upstream merge 2024 04 16 (#1535) 2e51629 Re-add function 0aebf17 Define OPENSSL_NO_TLS_PHA, typedef PSK callback signatures (#1526) 46056cf Pull the string-based extensions APIs into their own section 960ea42 Unexport X509_VERIFY_PARAM_lookup 3c597b1 Remove X509_VERIFY_PARAM_get0_peername 9c399e5 Document some key usage accessors 2fe70b5 Simplify and document X509_supported_extension 2e04897 Const-correct X509_LOOKUP_METHOD 9826568 Replace X509_LOOKUP_ctrl with real functions e47c056 Tidy up x509_lu.c functions a little 62e019f Clean up the by_file_ctrl x509 code to be slightly less obtuse 45c46c2 Use relative links in markdown files By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and the ISC license.
PR #1526 introduced the `OPENSSL_NO_TLS_PHA` directive mostly for the purposes of AWS-LC's compatibility with CPython, but in [cpython PR #117785](python/cpython#117785) @encukou points out that detecting the absence of OpenSSL's own `SSL_VERIFY_POST_HANDSHAKE` directive is sufficient. This change removes AWS-LC's `OPENSSL_NO_TLS_PHA` directive in favor of detecting absence of `SSL_VERIFY_POST_HANDSHAKE`.
Description of changes:
This commit defines a new configuration macro
OPENSSL_NO_TLS_PHA
. This macro is meant to be used by consuming applications to detect the fact that we (or otherlibssl
s) don't support TLSv1.3's post-handshake authentication (PHA). We then use this macro in place ofOPENSSL_IS_AWSLC
to detect PHA support in our CPython patch.We also enable PSK in our CPython patch and create two PSK-related callback function signatures defined by OpenSSL and used by CPython.
Finally, we fix the now-executed PSK tests in CPython.
Call-outs:
n/a
Testing:
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and the ISC license.