summaryrefslogtreecommitdiff
path: root/src/lib/libc/stdlib/reallocarray.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2022-07-30Provide and use a primitive clear function for BIGNUM_it.jsing1-8/+15
Also tidy up bn_new() while here. ok tb@
2022-07-30Eliminate the somewhat pointless Ij variabletb1-5/+4
Requested by & ok jsing
2022-07-30Transform two || chains into individually checked functionstb1-8/+13
Requested by and ok jsing
2022-07-29Having a perfect square at this point is not an error. Rather it istb1-2/+2
a shortcut bypassing expensive computation, so change goto err to goto done. Bug introduced in last refactoring before commit.
2022-07-29Tweak some comments and whitespace around commentstb1-9/+32
2022-07-28Add a second test to validate the tables in the library.tb1-1/+42
2022-07-27Adjust a comment to reflect reality, minor code tweaks.tb1-7/+7
2022-07-26Do not pass input length <= 0 to the cipher handlerstb1-11/+17
Input length < 0 is an error and input length == 0 can result in strange effects in some ciphers, except in CCM mode, which is extra special. Based on OpenSSL 420cb707 by Matt Caswell and Richard Levitte found by & ok jsing
2022-07-26minor tweaks: unwrap a line, tweak a comment and zap an empty linetb1-5/+3
2022-07-25Remove test of non-portable implementation details (whether wctype_tguenther1-5/+1
and wctrans_t values are locale-specific) so we can simplify our implementation in libc ok schwarze@
2022-07-25Add a regression test for bn_isqrt.ctb2-1/+302
This validates the tables used in bn_is_perfect_square() and checks that for randomly generated numbers the isqrt() is what it is expected to be.
2022-07-25Separate the macro for generating string test functionsschwarze1-14/+22
for the macro generating test functions for other data types. This makes sense because both are sufficiently different. It also avoids a large number of false positive compiler warnings that guenther@ reported. OK guenther@
2022-07-25fix indenttb1-2/+2
2022-07-25If a command or interface first appeared in PWB/UNIX, UNIX System III orjsg2-6/+10
UNIX System V mention it. Only do so in manual pages with a pre-existing HISTORY section. Prompted by the comparison of System V and BSD commands and interfaces in Sun's "System V Enhancements Overview" document. checked against manuals on bitsavers, TUHS archive and CSRG archive CDs ok jmc@ schwarze@
2022-07-24Plug leak in X509V3_add1_i2d()tb1-2/+3
Do not leak the extension that was deleted from the stack. via OpenSSL c3efe5c9. ok jsing
2022-07-24Prepare to resurrect TS_RESP_CTX_set_time_cb()tb2-2/+14
This was removed shortly after the fork since TS is not 2038-ready and since there were no consumers of this API. Now there are consumers and they add it themselves if it's missing from libcrypto. This will no longer be possible with opaque TS structs, so begrudgingly add it back. ok jsing kn
2022-07-24Prepare to provide TS_VERIFY_CTX accessorstb2-2/+79
The setters make no sense since they do not free the old members and return what was passed in instead of returning the old struct member so that the caller has a chance of freeing them. This has the side effect that calling a setter a second time will likely result in a leak. TS_VERIFY_CTX_set_imprint() was "fixed" upstream by adding a free() but the other three setters were missed since discussing the contributor's CLA was more important. Also missed was that adding frees will result in double frees: careful consumers like openssl/ruby have workarounds for the strange existing semantics. Add a compat #define for TS_VERIF_CTS_set_certs() that made it into the public API with a typo. A good illustration of the amount of thought and care that went into the OpenSSL 1.1 API by both the implementers and the reviewers. Amazing job overall. We will be stuck with this nonsense for a long time. ok jsing kn
2022-07-24Prepare to provide various TS_STATUS_INFO accessorstb2-2/+34
This adds TS_STATUS_get0_{failure_info,text,status}() as well as TS_STATUS_INFO_set_status(). These will be needed by Ruby and openssl(1) when we make the structs in ts.h opaque. ok kn jsing
2022-07-24Align PKCS12_key_gen_uni() with OpenSSLtb1-58/+50
This is Dr Stephen Henson's rewrite avoiding BIGNUM (OpenSSL 54c68d35). Additionally this pulls in a < vs <= fix by Pauli Dale (OpenSSL 9d868840). There is also some minor cleanup by myself. ok jsing
2022-07-24Minor fixes in PKCS12_parse()tb1-24/+23
Pull up clearing of output parameters before first return (OpenSSL 524fdd51 by Bernd Edlinger), explicit comparisons against NULL, '\0', etc. ok jsing
2022-07-24Per RFC 7292, safeContentsBag is a SEQUENCE OF, not a SET OFtb1-2/+2
OpenSSL b709babb by Richard Levitte ok jsing
2022-07-24Clear key on exit in PKCS12_gen_mac()tb1-25/+38
Also switch to heap-allocated HMAC_CTX and clean a few things up stylistically. loosely based on OpenSSL f5cee414 by Shane Lontis ok jsing
2022-07-24Plug a leak in PKCS12_setup_mac()tb1-2/+3
based on OpenSSL 1b8f1937 by Dmitry Belyavskiy ok jsing
2022-07-24Move cipher_id bsearch functions back to the bottom of the file.jsing1-16/+16
2022-07-24Set NULL BIOs for QUIC.jsing1-1/+14
When used with QUIC, the SSL BIOs are effectively unused, however we still currently expect them to exist for status (such as SSL_ERROR_WANT_READ and SSL_ERROR_WANT_WRITE). Set up NULL BIOs if QUIC is in use. ok tb@
2022-07-24Provide record layer callbacks for QUIC.jsing7-16/+217
QUIC uses TLS to complete the handshake, however unlike normal TLS it does not use the TLS record layer, rather it provides its own transport. This means that we need to intercept all communication between the TLS handshake and the record layer. This allows TLS handshake message writes to be directed to QUIC, likewise for TLS handshake message reads. Alerts also need to be sent via QUIC, plus it needs to be provided with the traffic keys that are derived by TLS. ok tb@
2022-07-24Move tls13_phh_done_cb() after tl13_phh_received_cb().jsing1-12/+12
This is the order that they're called/run in.
2022-07-24Provide QUIC encryption levels.jsing6-20/+33
QUIC wants to know what "encryption level" handshake messages should be sent at. Provide an ssl_encryption_level_t enum (via BoringSSL) that defines these (of course quictls decided to make this an OSSL_ENCRYPTION_LEVEL typedef, so provide that as well). Wire these through to tls13_record_layer_set_{read,write}_traffic_key() so that they can be used in upcoming commits. ok tb@
2022-07-24Rely on tlsext_parse() to set a decode_error alerttb1-79/+47
Instead of setting the alert manually in various parse handlers, we can make use of the fact that tlsext_parse() sets the alert to decode_error by default. This simplifies the code quite a bit. ok jsing
2022-07-24Start making ts opaquetb10-50/+134
Move the not yet exposed EssCertIDv2 struct internals to ts_local.h and move the ASN.1 function prototypes that we don't want to expose with them. Include ts_local.h where necessary or where it will be needed soon. ok jsing
2022-07-23Fix file names in comments.tb1-7/+7
2022-07-22Convert TLS transcript from BUF_MEM to tls_buffer.jsing2-29/+16
ok beck@ tb@
2022-07-22Extend TLS buffer regress to cover read/write usage.jsing1-13/+219
2022-07-22Add read and write support to tls_buffer.jsing4-13/+139
tls_buffer was original created for a specific use case, namely reading in length prefixed messages. This adds read and write support, along with a capacity limit, allowing it to be used in additional use cases. ok beck@ tb@
2022-07-22Simplify tls13_server_encrypted_extensions_recvtb1-8/+2
We can rely on tlsext_client_parse() to set the alert, so no need to do this in the error path. ok jsing
2022-07-22Remove redundant length checks in parse functionstb1-21/+1
The main parsing function already checks that the entire extension data was consumed, so the length checks inside some of the parse handlers are redundant. They were also not done everywhere, so this makes the parse handlers more consistent. Similar diff was sent by jsing a long while back ok jsing
2022-07-21Make test table based, extend it a littletb1-69/+117
2022-07-20Simplify tlsext_supported_groups_server_parsetb1-45/+31
Add an early return in the s->internal->hit case so that we can unindent a lot of this code. In the HRR case, we do not need to check that the list of supported groups is unmodified from the first CH. The CH extension hashing already does that for us. ok jsing
2022-07-20link ssl_set_alpn_protos to regresstb1-1/+2