summaryrefslogtreecommitdiff
path: root/src/lib/libssl/ssl_methods.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2022-07-13On May 4 14:19:08 2006 UTC, while fixing a security issue, djm@schwarze1-11/+64
provided the new public function DH_check_pub_key(3) in <openssl/dh.h>. Sorry for being a bit tardy in documenting the new function. Then again, OpenSSL doesn't document it either, yet. While here, drop a HISTORY entry about a constant that was renamed in OpenSSL 0.9.5. That's no longer relevant.
2022-07-13Do not make tables static so we can access them from regress.tb1-5/+5
2022-07-13Enable Wycheproof primality tests.tb2-4/+4
2022-07-13Enable BPSW primality test.tb1-1/+3
ok jsing
2022-07-13Hook BPSW into BN_is_prime_fasttest_ex()tb1-3/+13
ok jsing
2022-07-13Link bn_bpsw.c to buildtb1-2/+2
ok jsing
2022-07-13Implement the Baillie-PSW primality testtb2-1/+423
It has long been known that pure Miller-Rabin primality tests are insufficient. "Prime and Prejudice: Primality Testing Under Adversarial Conditions" https://eprint.iacr.org/2018/749 points out severe flaws in many widely used libraries. In particular, they exhibited a method to generate 2048-bit composites that bypass the default OpenSSL (and hence LibreSSL) primality test with a probability of 1/16 (!). As a remedy, the authors recommend switching to using BPSW wherever possible. This possibility has always been there, but someone had to sit down and actually implement a properly licensed piece of code. Fortunately, espie suggested to Martin Grenouilloux to do precisely this after asking us whether we would be interested. Of course we were! After a good first implementation from Martin and a lot of back and forth, we came up with the present version. This implementation is ~50% slower than the current default Miller-Rabin test, but that is a small price to pay given the improvements. Thanks to Martin Grenouilloux <martin.grenouilloux () lse ! epita ! fr> for this awesome work, to espie without whom it wouldn't have happened, and to djm for pointing us at this problem a long time back. ok jsing
2022-07-13Link bn_isqrt.c to buildtb1-1/+2
ok jsing
2022-07-13Integer square root and perfect square testtb2-1/+241
This adds an implementation of the integer square root using a variant of Newton's method with adaptive precision. The implementation is based on a pure Python description of cpython's math.isqrt(). This algorithm is proven to be correct with a tricky but very neat loop invariant: https://github.com/mdickinson/snippets/blob/master/proofs/isqrt/src/isqrt.lean Using this algorithm instead of Newton method, implement Algorithm 1.7.3 (square test) from H. Cohen, "A course in computational algebraic number theory" to detect perfect squares. ok jsing
2022-07-12Unbreak the tree, after the previous commit.jsing1-2/+1
2022-07-12Move BN_lsw() to bn_lcl.h so that other code can use it.tb2-5/+5
ok jsing
2022-07-12Remove mkerr.pl remnants from LibreSSLkn63-1261/+61
This script is not used at all and files are edited by hand instead. Thus remove misleading comments incl. the obsolete script/config. Feedback OK jsing tb
2022-07-12The asn1time test no longer needs static linking.tb1-4/+1
2022-07-11Sync cert.pem with certdata.txt from the NSS release branch. OK tb@ bcook@sthen1-382/+849
remove (expired): /O=Cybertrust, Inc/CN=Cybertrust Global Root /OU=GlobalSign Root CA - R2/O=GlobalSign/CN=GlobalSign remove: /C=ES/O=Agencia Catalana de Certificacio (NIF Q-0801176-I)/OU=Serveis Publics de Certificacio/OU=Vegeu https://www.catcert.net/verarrel (c)03/OU=Jerarquia Entitats de Certificacio Catalanes/CN=EC-ACC /C=GB/O=Trustis Limited/OU=Trustis FPS Root CA add new root (existing CAs): /C=TW/O=Chunghwa Telecom Co., Ltd./CN=HiPKI Root CA - G1 /C=DE/O=D-Trust GmbH/CN=D-TRUST BR Root CA 1 2020 /C=DE/O=D-Trust GmbH/CN=D-TRUST EV Root CA 1 2020 /C=GR/O=Hellenic Academic and Research Institutions CA/CN=HARICA TLS ECC Root CA 2021 /C=GR/O=Hellenic Academic and Research Institutions CA/CN=HARICA TLS RSA Root CA 2021 /C=US/O=Internet Security Research Group/CN=ISRG Root X2 /C=PL/O=Unizeto Technologies S.A./OU=Certum Certification Authority/CN=Certum Trusted Network CA 2 add (new CAs): /C=TN/O=Agence Nationale de Certification Electronique/CN=TunTrust Root CA /serialNumber=G63287510/C=ES/O=ANF Autoridad de Certificacion/OU=ANF CA Raiz/CN=ANF Secure Server Root CA /C=PL/O=Asseco Data Systems S.A./OU=Certum Certification Authority/CN=Certum EC-384 CA /C=PL/O=Asseco Data Systems S.A./OU=Certum Certification Authority/CN=Certum Trusted Root CA /C=AT/O=e-commerce monitoring GmbH/CN=GLOBALTRUST 2020 /C=CN/O=iTrusChina Co.,Ltd./CN=vTrus ECC Root CA /C=CN/O=iTrusChina Co.,Ltd./CN=vTrus Root CA /C=FI/O=Telia Finland Oyj/CN=Telia Root CA v2 replace with another cert with same CN (SHA1 vs SHA256): /C=ES/CN=Autoridad de Certificacion Firmaprofesional CIF A62634068
2022-07-11fix NULL return adding missing semicolonbcook1-2/+2
ok tb@
2022-07-10Annotate the security callback and the security ex_data as deliberatelytb1-3/+3
not exposed in the public API.
2022-07-10In dsa.h rev. 1.38, tb@ provided DSA_meth_get0_name(3)schwarze1-8/+55
and DSA_meth_set1_name(3). Merge the documentation from the OpenSSL 1.1.1 branch, which is still under a free license, significantly tweaked by me.
2022-07-09Check that ASN1_{INTEGER,ENUMERATED}_get(NULL) return 0 as documented.tb1-1/+22
2022-07-09Make ASN1_{INTEGER,ENUMERATED}_get() return 0 on NULL againtb2-2/+6
This is the documented behavior which got lost in the recent rewrite. Mismatch of documentation and reality pointed out by schwarze ok jsing
2022-07-09Document ASN1_INTEGER_get_uint64(3), ASN1_INTEGER_get_int64(3),schwarze1-6/+90
ASN1_INTEGER_set_uint64(3), ASN1_INTEGER_set_int64(3), ASN1_ENUMERATED_get_int64(3), and ASN1_ENUMERATED_set_int64(3) recently provided by tb@. Even though Dr. Steven Henson also documented these functions in OpenSSL, the text over there is excessively verbose, repetitive, very badly ordered, and incomplete, so i chose to instead write this patch from scratch, also adding some precision in a few places.
2022-07-08whitespacetb1-3/+3
2022-07-08Add to variables instead of overriding themtb1-4/+4
2022-07-07Add support for primality checkingtb4-10/+218
Project Wycheproof's primality_tests.json contain a set of 280 numbers that trigger edge cases in Miller-Rabin and related checks. libcrypto's Miller-Rabin test is known to be rather poor, hopefully we will soon see a diff on tech that improves on this. This extends the Go test in the usual way and also adds a perl script that allows testing on non-Go architectures. Deliberately not yet linked to regress since the tests are flaky with the current BN_is_prime_ex() implementatation.
2022-07-07sorttb1-1/+1
2022-07-07Sync bs_cbb.c with libssl.tb1-1/+4
ok jsing
2022-07-07Make CBB_finish() fail if *out_data is not NULLtb1-1/+4
Contrary to CBS_stow(), CBB_finish() will leak, so ensure we fail if *out_data is populated. Discussed with & ok jsing
2022-07-07Initialize hkdf_label to NULL.tb1-2/+2
Needed for an upcoming diff adding a NULL check to CBB_finish(). ok jsing
2022-07-07Use a local bits variable to avoid ugly line break due to nested functiontb1-6/+16
calls. ok jsing
2022-07-07Use the security level knob in the test script.tb1-2/+14
from beck
2022-07-07Only run tests against ciphers supported by the method.tb2-4/+28
2022-07-07Add some minimal regress coverage for the security level.tb1-1/+6
From beck
2022-07-07Make the ssltest security level aware.tb1-1/+9
From beck
2022-07-07Bump libtls minor after libcrypto and libssl minor bumptb1-1/+1
2022-07-07Unifdef LIBRESSL_HAS_SECURITY_LEVEL and remove some workaroundstb3-35/+4
that are no longer needed now that libcrypto exposes the necessary security-bits API. ok jsing
2022-07-07Bump minor after symbol additiontb1-1/+1
2022-07-07Update Symbols.listtb2-0/+25
ok jsing
2022-07-07Expose security level symbols and error codes in the headers.tb2-6/+2
ok jsing
2022-07-07bump minor after symbol additiontb1-1/+1
2022-07-07Expose new API in headers.tb7-31/+7
These are mostly security-level related, but there are also ASN1_TIME and ASN_INTEGER functions here, as well as some missing accessors. ok jsing
2022-07-07Switch ssltest to using the newly generated certs that use SHA-256 insteadtb2-8/+6
of SHA-1. This helps the switch to security-level aware ssltest. From jsing
2022-07-05Add missing X509_V_ERR_ strings using the ones from OpenSSL.tb1-1/+17
The well-known masters of consistency of course use strings that don't match the names of the errors. ok jsing
2022-07-05Use secop instead of op everywheretb1-15/+15
2022-07-05Pull setting of is_ee out of the function calls to appease scan-buildtb1-3/+5
2022-07-05cope with ASN1_TIME_set_string_X509() renameanton1-3/+3
2022-07-04The OpenSSL API is called ASN1_TIME_set_string_X509() (uppercase x)tb2-4/+4
2022-07-04Bump to LibreSSL 3.6.0tb1-3/+3
2022-07-04Sync with changes in dsa_meth.ctb2-11/+12
pointed out by jsing
2022-07-04Prepare to provide DSA_meth_{get0,set1}_name()tb3-8/+35
Also follow OpenSSL by making the name non-const to avoid ugly casting. Used by OpenSC's pkcs11-helper, as reported by Fabrice Fontaine in https://github.com/libressl-portable/openbsd/issues/130 ok jsing sthen
2022-07-04Prepare to provide X509_VERIFY_PARAM_get_time()tb2-2/+9
ok jsing sthen
2022-07-03Reword a commenttb1-2/+2