summaryrefslogtreecommitdiff
path: root/lib/libcrypto
AgeCommit message (Collapse)Author
2019-05-09Fix incorrect carry operation in 512 bit addition: in the caseTheo Buehler
that there is already a carry and Sigma[i-1] == -1, the carry must be kept. From Dmitry Eremin-Solenik. Fixes incorrect Streebog result reported by Guido Vranken.
2019-05-08initialize safestack pointersBrent Cook
ok beck@, tb@
2019-05-08Make sure that the tag buffer size is equal to the tag sizeTheo Buehler
in CRYPTO_ccm128_tag(). Otherwise the caller might end up using the part of the tag buffer that was left uninitialized. Issue found by Guido Vranken. ok inoguchi
2019-04-28Avoid an undefined shift in ASN1_ENUMERATED_get().Theo Buehler
(same fix as in a_int.c rev 1.34) Fixes oss-fuzz issue #13809 ok beck, jsing
2019-04-28Avoid an undefined shift in ASN1_INTEGER_get().Theo Buehler
Fixes oss-fuzz issue #13804 ok beck, jsing
2019-04-22Add error checking to i2v_POLICY_MAPPINGS().Theo Buehler
ok jsing
2019-04-22Add error checking to i2v_POLICY_CONSTRAINTS().Theo Buehler
ok jsing
2019-04-22Add error checking to i2v_EXTENDED_KEY_USAGE().Theo Buehler
ok jsing
2019-04-22Add error checking to i2v_ASN1_BIT_STRING().Theo Buehler
ok jsing
2019-04-22Add error checking to i2v_BASIC_CONSTRAINTS().Theo Buehler
ok jsing
2019-04-22Add error checking to i2v_AUTHORITY_INFO_ACCESS(). While there, replaceTheo Buehler
an ugly strlen + malloc + strcat/strcpy dance by a simple asprintf(). ok jsing
2019-04-22Avoid potential double frees in i2v_AUTHORITY_KEYID(), i2v_GENERAL_NAME()Theo Buehler
and i2v_GENERAL_NAMES() by taking ownership of the extlist only if we were passed NULL. Otherwise it remains the caller's responsibility to free it. To do so, we allocate the extlist explicitly instead of using X509V3_add_value()'s implicit allocation feature. Preserve behavior in i2v_AUTHORITY_KEYID() by adding an explicit check that something was pushed onto the stack. The other i2v_* functions will receive a similar treatment in upcoming commits. ok jsing
2019-04-21Add error checking to i2v_AUTHORITY_KEYID(), i2v_GENERAL_NAME()Theo Buehler
and i2v_GENERAL_NAMES(). This fixes a couple of leaks and other ugliness. tweaks & ok jsing
2019-04-21The noop v2i_PKEY_USAGE_PERIOD() has been commented out since beckTheo Buehler
imported OpenSSL 0.9.4 in 1999. It won't ever be used.
2019-04-21Fix awful whitespace in OBJ_bsearch_ext()Theo Buehler
2019-04-21KNF: use proper wrapping of function return type and nameTheo Buehler
2019-04-21fix some style nits to reduce noise in an upcoming diffTheo Buehler
2019-04-20Avoid undefined behaviour that results from negating a signed long withJoel Sing
minimum value. Fixes oss-fuzz #14354. ok beck@ bcook@ tb@
2019-04-19Allocate md_data with calloc to avoid use of uninitialised memory.Joel Sing
Found by Guido Vranken when fuzzing and trying to use GOST with HMAC. Fix confirmed by Guido; ok tb@
2019-04-19Allocate fixed NIDs for SM3/SM4.Joel Sing
2019-04-16Rewrite & fix X509V3_add_value()Theo Buehler
X509V3_add_value() helpfully allocates a STACK_OF(CONF_VALUE) if it receives a pointer to a NULL pointer. If anything fails along the way, it is however the caller's responsibility to free it. This can easily be fixed by freeing *extlist in the error path and zeroing it to avoid a double free if there happens to be a caller out there that avoids the leak. Polish a few things so the function conforms a bit better to our usual style. tweak & ok jsing
2019-04-16indent err: labelsTheo Buehler
2019-04-16wrap an overlong line and kill a space before a tabTheo Buehler
2019-04-16Move function types to their own lines; rewrap.Theo Buehler
2019-04-15Avoid signed integer overflow.Joel Sing
Fixes oss-fuzz issue #13843. ok tb@
2019-04-14Add input validation to BIO_read()/BIO_write().Joel Sing
Some bread/bwrite functions implement this themselves, while others do not. This makes it consistent across all BIO implementations. Addresses an issue that Guido Vranken found with his fuzzer. ok tb@
2019-04-14Some more malloc() to calloc() conversions.Joel Sing
ok tb@
2019-04-14Remove two pointless chunks of code.Joel Sing
This reverts part of OpenSSL c2fd5d79, which added the same code to AES CCM, GCM and XTS. In the case of CCM and GCM nothing assigns {ccm,gcm}.key so there is never going to be anything to update (unlike XTS). ok tb@
2019-04-14Use calloc() when allocating cipher_data.Joel Sing
Avoids use of uninitialised memory. ok tb@
2019-04-14Annotate a future improvement.Joel Sing
2019-04-14Avoid potential double-frees following EVP_CIPHER_CTX_copy().Joel Sing
In the case of a cipher with a custom copy control, if that control fails we may still have pointers that we do not own in the previously copied cipher data. Avoid potential double-frees by zeroing and freeing the copied cipher data in this case. Issue reported by Guido Vranken. ok tb@
2019-04-14Fix previous: I forgot to rename the bn_to_string() prototype.Theo Buehler
2019-04-13Avoid quadratic behavior of decimal BIGNUM conversionTheo Buehler
The complexity of BN_bn2dec(bn) is quadratic in the length of bn. This function is used for printing numbers in CRLs which are typically small. If a BN is larger than 127 bits, dump it as hex because that's cheap and for numbers this size not significantly harder for humans to parse. OpenSSL commit 10a3195fcf7d04ba519651cf12e945a8fe470a3c by David Benjamin (still under the old licence), but significantly simplified. Ideally, we would catch excessively large numbers on deserialization, but that is made trickier by the templated ASN1. Erroring out is also not an option since the relevant part of the x509v3/ directory doesn't like to do proper error checking (looking at you v2i and i2v). Timeout found by oss-fuzz, should fix issues #13823 and #14130. input & ok jsing
2019-04-10Avoid an overread caused by d2i_PrivateKey().Joel Sing
There are cases where the old_priv_decode() function can fail but consume bytes. This will result in the pp pointer being advanced, which causes d2i_PKCS8_PRIV_KEY_INFO() to be called with an advanced pointer and incorrect length. Fixes oss-fuzz #13803 and #14142. ok deraadt@ tb@
2019-04-07Revert tasn_prn.c r1.18.Joel Sing
In this code, just because something is cast to a type doesn't mean it is necessarily that type - in this case we cannot check the length of the ASN1_STRING here, since it might be another data type and later handled as an int (for example, in the V_ASN1_BOOLEAN case). We will revisit this post release. ok tb@
2019-04-04update root CAs in cert.pem in sync with MozillaStuart Henderson
ok millert@
2019-04-03Avoid some out of bound accesses in aesni_cbc_hmac_sha1_cipher().Theo Buehler
The plen variable can be NO_PAYLOAD_LENGTH == (size_t)-1, so doing tls_aad[plen-4] is no good. Also check that the length of the AAD set via the control interface is equal to 13 since the whole file is written with that case in mind. Note that we no longer use this code in LibreSSL/OpenBSD. We eliminated the use of these control interfaces and stitched cipher modes in libssl a while ago. Problem found by Guido Vranken with his cryptofuzz - thanks! input & ok beck, jsing
2019-04-02fix broken commentStuart Henderson
2019-04-01Implement a print function for BIGNUM_it.Joel Sing
ok beck@, tb@
2019-04-01Correct the return values from long_print.Joel Sing
BIO_print() returns -1 on failure, whereas the ASN print functions need to return 0. ok beck@, tb@
2019-04-01Require all ASN1_PRIMITIVE_FUNCS functions to be provided.Joel Sing
If an ASN.1 item provides its own ASN1_PRIMITIVE_FUNCS functions, require all functions to be provided (currently excluding prim_clear). This avoids situations such as having a custom allocator that returns a specific struct but then is then printed using the default primative print functions, which interpret the memory as a different struct. Found by oss-fuzz, fixes issue #13799. ok beck@, tb@
2019-03-31Wrap long lines and apply some style(9).Joel Sing
2019-03-31Use named field initialisers.Joel Sing
2019-03-29Use correct capitalization of EC_GROUP_get_curve_GF{2m,p}(3).Theo Buehler
2019-03-27Cast nonce bytes to avoid undefined behaviour when left shifting.Joel Sing
Reported by oss-fuzz, really fixes issue #13805. ok beck@ tb@
2019-03-27bump to 2.9.1Brent Cook
2019-03-26Use limits.h instead of sys/limits.h for portability.Joel Sing
From phrocker via github.
2019-03-24Don't allow asn1_parse2 to recurse arbitrarily deep. Constrain to a maxBob Beck
depth of 128 - For oss-fuzz issue 13802 ok jsing@
2019-03-24Cast nonce bytes to avoid undefined behaviour when left shifting.Joel Sing
Reported by oss-fuzz, fixes issue #13805. ok beck@ tb@
2019-03-23Add range checks to varios ASN1_INTEGER functions to ensure theBob Beck
sizes used remain a positive integer. Should address issue 13799 from oss-fuzz ok tb@ jsing@