summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/x509 (unfollow)
Commit message (Collapse)AuthorFilesLines
2024-12-19Do not assume mlkem.h and bytestring.h are public in libcryptotb4-14/+8
As long as is not quite clear what we want to do about the public API aspect of MLKEM, keep things internal for now. discussed with beck and jsing
2024-12-19mlkem regress: reach around into bytestring againtb1-1/+2
2024-12-19ec_mult: use 1ULL to avoid C4334 warning on Visual Studiotb1-2/+2
The shift is between 0 and 5 bits, so it doesn't matter, but VS is short for very st...ubborn as are its users when it comes to reporting non-issues
2024-12-19received form the peer -> received from the peerjmc1-3/+3
2024-12-18mlkem: fix whitespacetb2-4/+6
2024-12-18kength -> lengthjsg1-3/+3
2024-12-17New manual page EVP_aes_128_gcm(3).schwarze4-75/+260
The main benefit is moving the cumbersome and error-prone method of using EVP_EncryptInit(3) for AES-GCM out of the important, but obese manual page EVP_EncryptInit(3), and to create a logical place for pointing readers to the safer and more flexible EVP_AEAD_CTX_init(3). As a side benefit, document three control commands that were so far undocumented and make the description of three others more precise. Feedback and OK tb@.
2024-12-17Avoid a reduce once that can cause Clang misoptomization.beck2-22/+54
Some versions of Clang compile this to non-constant time code. The fix is adapted from boring. For full details see: https://boringssl-review.googlesource.com/c/boringssl/+/74447 ok tb@
2024-12-17Close fp before exit since we clean up other stufftb4-4/+8
From Kenjiro Nakayama
2024-12-17Plug leak coming from debug leftovertb2-4/+2
There's still CBS holding data in here. Yuck.
2024-12-17Plug two memory leaks in MLKEM*_generate_key_external_entropy()tb2-2/+6
This needs more thinking. These are void functions that allocate... Left an XXX for now. From Kenjiro Nakayama
2024-12-17mlkem: clean up top matter in headerstb2-8/+14
2024-12-16Simplify ec_point_to_octets()tb1-8/+3
This had an extra dance to allow a NULL output buffer. The plan was to use this in i2o_ECPublicKey() to preserve the behavior of avoiding an allocation if out == NULL. However, when I rewrote the latter I punted on preserving that complication, as it was already batshit crazy enough. Thus, remove said dance and make ec_point_to_octets() cleaner. ok jsing
2024-12-14Stop reaching into libcrypto/bytestringtb1-2/+1
2024-12-14Normalize top of filestb15-109/+138
RCS marker, KNF for comment, fix and sort includes as usual.
2024-12-13Add ML-KEM 1024 from BoringSSLbeck18-5/+6552
Changes include conversion from C++, basic KNF, then adaptation to use our sha3 functions for sha3 and shake instead of the BorinSSL version. This Adds units tests to run against BoringSSL and NIST test vectors. The future public API is the same as Boring's - but is not yet exposed pending making bytestring.h public (which will happen separately) and a minor bump Currently this will just ensure we build and run regress. ok tb@ to get it into the tree and massage from there.
2024-12-13KNF nit tb wanted me to fixbeck1-2/+4
2024-12-13Add ML-KEM 768 from BoringSSLbeck21-2/+6838
Changes include conversion from C++, basic KNF, then adaptation to use our sha3 functions for sha3 and shake instead of the BorinSSL version. This Adds units tests to run against BoringSSL and NIST test vectors. The future public API is the same as Boring's - but is not yet exposed pending making bytesring.h public (which will happen separately) and a minor bump Currently this will just ensure we build and run regress. ok tb@ to get it into the tree and massage from there.
2024-12-12Rewrite a comment to use p rather than qtb1-10/+10
2024-12-12Rename group->field to group->ptb4-52/+46
Now that we only do curves over GF(p) fields, there's no need to use a weird, confusing name for what we usually call p. Adjust some comments in the vicinity as well.
2024-12-12sm3: fix ugly whitespacetb1-5/+5
2024-12-11appeared in 4.3BSD before 4.3BSD-Tahoejsg11-33/+33
ok millert@ schwarze@
2024-12-11ciphers: remove tls1 and tls1_1 leftoverstb1-16/+2
The options were already removed from the manual in 91e7614a. From Renaud Allard (hand-applied since patch was mangled)
2024-12-11Avoid an oob access in asn1_item_free()tb1-4/+3
As explained in a comment, this needs to loop backwards and the last tt-- ends up pointing at &it->templates[-1], which isn't ok. Use a simple way of looping, which is also ugly and involves some type confusion as pointed out by claudio. However, type confusion is common in libcrypto's asn1 code and won't be fixed anytime soon anyway. ok jsing
2024-12-11Drop a pair of useless parenthesestb1-2/+2
2024-12-10Improve a rather misleading sentence about EVP_PKEY_new_mac_key(3).schwarze1-4/+8
It does *not* "work in the same way" as EVP_PKEY_new_raw_private_key(3) but merely arrives at the same end result after doing lots of cumbersome and unnecessary work - and on top of that, it only works for EVP_PKEY_HMAC.
2024-12-10Add a paragraph about HMAC because that algorithm also involvesschwarze1-3/+15
parameters that can be controlled with EVP_PKEY_CTX_ctrl(3). But rather than providing a detailed despription, instead point to what application programs should use instead and explain why using the control constant directly would be a particularly bad idea in this case.
2024-12-10Add regress coverage for tls_peer_cert_common_name()tb2-0/+17
2024-12-10Document tls_peer_cert_common_name()tb1-2/+13
ok beck
2024-12-10bump minor after symbol additiontb1-1/+1
2024-12-10expose tls_peer_cert_common_name()tb1-0/+1
2024-12-10Provide tls_peer_cert_common_name()tb5-24/+105
There is currently no sane way of getting your hands on the common name or subject alternative name of the peer certificate from libtls. It is possible to extract it from the peer cert's PEM by hand, but that way lies madness. While the common name is close to being deprecated in the webpki, it is still the de facto standard to identify client certs. It would be nice to have a way to access the subject alternative names as well, but this is a lot more difficult to expose in a clean and sane C interface due to its multivaluedness. Initial diff from henning, with input from beck, jsing and myself henning and bluhm have plans of using this in syslogd. ok beck
2024-12-09Mark four "struct *_st" types declared in evp.h as intentionally undocumentedschwarze1-0/+2
because they are intended as internal, and applications are supposed to use the documented aliases DH, DSA, EC_KEY, and RSA from ossl_typ.h instead.
2024-12-09Mark four EVP_PKEY_GOST* constants as intentionally undocumentedschwarze1-0/+2
because they are completely unused by anything.
2024-12-09Mark two symbols as intentionally undocumentedschwarze1-1/+3
that are obsolete after PBE was mostly removed from LibreSSL.
2024-12-09insert a forgotten .Dv macroschwarze1-3/+3
2024-12-09Mark four EVP control constants as intentionally undocumentedschwarze1-2/+3
that are only used for GOST.
2024-12-09Mark the constants EVP_PK_*, EVP_PKS_*, and EVP_PKT_* as intentionallyschwarze1-2/+7
undocumented because they are only used by the function X509_certificate_type() which is deprecated and will eventually be deleted.
2024-12-09Mark EVP_CTRL constants for RC5 as intentionally undocumentedschwarze1-0/+1
because LibreSSL does not support RC5 and because these constants are almost unused in the wild.
2024-12-08Move the algorithm-specific functions EVP_rc2_*(3) out of EVP_EncryptInit(3)schwarze4-55/+214
and document them properly in their own manual page, including the control commands EVP_CTRL_SET_RC2_KEY_BITS and EVP_CTRL_GET_RC2_KEY_BITS that were so far undocumented. Arguably, the main benefit is another small step making the important, but still obese EVP_EncryptInit(3) manual page more palatable.
2024-12-07Document the low-level rc2.h API.schwarze2-2/+198
Not that this would be particularly important, but i had to look at the code anyway while completing the EVP documentation.
2024-12-07ec_mult: forgot to make one helper statictb1-2/+2
2024-12-07Move initialization of sign out of the middle of bits handlingtb1-3/+3
2024-12-06Rename ec_wNAF_mul() to ec_wnaf_mul()tb3-7/+7
discussed with jsing
2024-12-06ec_mult: manage wNAF data in a structtb1-86/+131
This refactors the wNAF multiplication further and introduces a small API that manages the wNAF digits for bn and the multiples of digit * point in a single struct that is initialized and freed in two API calls in the main function, ec_wNAF_mul(). This way the main algorithm is no longer cluttered with logic to keep various arrays in sync, helper functions calculating the wNAF splitting of bn and multiples of the point do not need to deal with memory management, and a pair of accessors obviates previously missing bounds checking. At this point we have reached a relatively clean and straightforward wNAF implementation that fits precisely the purpose needed in libcrypto, i.e., ECDSA verification instead of being generalized and optimized to the max for no good reason apart from endowing the author with an academic degree. Popper's famous maxim "if you can't say it clearly, keep quiet, and keep working until you can" very much applies to code as well. In other words, shut up and hack (and don't pour too much energy into commit messages, tb). ok jsing
2024-12-06Adjust the return type and value of EVP_MD_CTX_init(3)schwarze2-7/+12
and EVP_CIPHER_CTX_init(3) after tb@ changed these to OpenSSL 1.1 semantics in evp.h rev. 1.124 on March 2 this year.
2024-12-06Delete the manual pages EVP_PKEY_meth_new(3) and EVP_PKEY_meth_get0_info(3)schwarze18-776/+60
because tb@ deleted almost all functions documented there from the API in evp.h 1.127 on March 2 this year, but move the functions EVP_PKEY_CTX_set_data(3) and EVP_PKEY_CTX_get_data(3) that we still support to EVP_PKEY_keygen(3), because that page already documents EVP_PKEY_CTX_set_app_data(3) and EVP_PKEY_CTX_get_app_data(3).
2024-12-06Delete the manual page EVP_PKEY_check(3).schwarze5-158/+5
All three functions documented in this page were deleted from the API by tb@ in evp.h rev. 1.136 on August 31 this year.
2024-12-06Delete the manual page EVP_PKEY_asn1_new(3).schwarze14-566/+30
All the functions documented in this page were deleted from the API by tb@ in evp.h rev. 1.126 on March 2 this year.
2024-12-06Provide a SHA-1 assembly implementation for amd64 using SHA-NI.jsing3-2/+179
This provides a SHA-1 assembly implementation for amd64, which uses the Intel SHA Extensions (aka SHA New Instructions or SHA-NI). This provides a 2-2.5x performance gain on some Intel CPUs and many AMD CPUs. ok tb@