summaryrefslogtreecommitdiff
path: root/src/lib/libc/stdlib/recallocarray.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2022-07-30Untangle two logic chains in x509_asid.c into something more readable.tb1-9/+22
ok jsing
2022-07-30update copyright yearstb1-2/+2
2022-07-30Reorder functions and remove unnecessary function prototypes.jsing1-29/+24
2022-07-30Update copyright for additional/new code.jsing1-1/+2
2022-07-30Provide additional AEAD test cases.jsing6-1/+1991
Bring in additional AEAD test cases from BoringSSL. This provides additional coverage for AES-{128,192,256}-GCM, as well as Chacha20-Poly1305 and XChaCha20-Poly1305. Discussed with tb@
2022-07-30Add EVP_aes_192_gcm() as a known AEAD.jsing1-1/+3
2022-07-30Allow the AEAD to be specified for a test file.jsing2-8/+12
Currently, this must be specified per test - allow it to be given as a command line argument that applies to the entire test file.
2022-07-30Run AEAD tests against EVP_CIPHER implementations.jsing1-15/+220
In addition to running AEAD tests against the EVP_AEAD implementation, also run them against the EVP_CIPHER implementation where applicable. This is a perfect example of why EVP_AEAD exists and why EVP_CIPHER is completely unsuited for use with AEADs...
2022-07-30Allow quoted ASCII strings as input for AEAD regress.jsing1-21/+42
Currently, each line in the text file is expected to be string of hexadecimal digits. In addition to this, allow a line to be given as an quoted ASCII string.
2022-07-30Sort includes.jsing1-4/+4
2022-07-30Less #ifndef OPENSSL_NO_*jsing1-17/+1
We're not going to be compiling without AES or CHACHA/POLY1305 anytime soon.
2022-07-30Fix comment formatting.jsing1-4/+7
2022-07-30Switch to ISC license.jsing1-46/+13
Use Google's ISC license for this code - this was originally being upstreamed to OpenSSL by Adam Langley, however it was never actually accepted and eventually ended up in BoringSSL (via commit dfe3053086). The same change was made a long time ago for evp/evp_aead.c and others.
2022-07-30Add stack frames to AES-NI x86_64 assembly.jsing1-39/+58
The current AES-NI x86_64 assembly does some strange, although valid things, such as making internal function calls without creating stack frames. In this case, the return address lands in the red zone (which it allows for when making use of the stack) and everything works as expected. However, this trips a false positive in valgrind, which seems to think that any data saved on the stack prior to the internal function call is now "undefined" once the function returns. Avoid this by actually using stack frames - this brings in most of 6a40ebe86b4 from OpenSSL, omitting the unnecessary explicit stack alignment (which was apparently added so this code could be used in the Linux kernel with an incorrectly aligned stack). Valgrind issue reported by Steffen Jaeckel (@sjaeckel), found via libstrophe unit tests. ok tb@
2022-07-30Use ASN1_INTEGER to encode/decode BIGNUM_it.jsing1-34/+48
The current code simply shoves the unvalidated ASN.1 bytes into a BIGNUM on the hope that other things will detect issues (such as negative values being flipped to positive). Instead of doing this, decode and validate the ASN.1 data using ASN1_INTEGER, then convert it to a BIGNUM. Similarly, for encoding convert from BIGNUM to ASN1_INTEGER and use ASN1_INTEGER encoding. ok tb@
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