summaryrefslogtreecommitdiff
path: root/src/lib (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Document X509_get_default_cert_area(3).schwarze2021-08-031-7/+41
| | | | | | | Put it into this page because this is the code actually using it. Despite its name and include file, it is unrelated to X.509 and unrelated to certificates: it is just the default directory containing the library configuration file, openssl.cnf(5).
* tweaks regarding X509_LOOKUP_by_subject(3):schwarze2021-08-021-8/+28
| | | | | | * document the X509_OBJECT output parameter * more precision regarding return values * clarify relationship with X509_LOOKUP_ctrl(3) for the dir lookup method
* new manual page X509_STORE_get_by_subject(3)schwarze2021-08-025-12/+212
|
* document X509_STORE_load_mem(3) and X509_STORE_add_lookup(3)schwarze2021-08-011-7/+67
|
* document X509_LOOKUP_mem(3) in X509_LOOKUP_hash_dir(3)schwarze2021-07-318-32/+636
| | | | and add a new manual page X509_LOOKUP_new(3)
* We have defines for alert levels - use them instead of magic numbers.jsing2021-07-312-7/+5
|
* Move the explanations related to *ptree closer together and correctschwarze2021-07-301-16/+19
| | | | | | | | | the lie that *ptree is set upon success - in some cases of success, it is set to NULL, whereas in some cases of failure, a non-trivial tree may be returned. beck@ pointed out that statements related to *ptree were scattered all over the place, and this patch works for him.
* Fix a documentation bug i introduced that tb@ pointed out:schwarze2021-07-291-12/+3
| | | | | X509_policy_check(3) never returns 2. If validation succeeds, it always returns 1.
* Document X509_STORE_set_verify_func(3), mostly using text from theschwarze2021-07-291-8/+32
| | | | | | | OpenSSL 1.1.1 branch, which is still under a free license, tweaked by me. While here, garbage collect the weird BUGS section.
* document X509_STORE_CTX_get0_parent_ctx(3)schwarze2021-07-291-4/+34
|
* document X509_STORE_CTX_set_app_data(3) and X509_STORE_CTX_get_app_data(3)schwarze2021-07-291-4/+51
|
* document X509_STORE_CTX_get0_policy_tree(3)schwarze2021-07-281-4/+41
| | | | and X509_STORE_CTX_get_explicit_policy(3)
* document X509_policy_tree_free(3)schwarze2021-07-281-3/+19
|
* consisely explain the meaning of return values rather than merelyschwarze2021-07-281-3/+20
| | | | refering to child object names defined in the standard
* Explain the meaning of the policy_oids input argument, correct theschwarze2021-07-281-14/+12
| | | | | | description of the *pexplicit_policy output argument and make it less technical, and drop the mention of the expected_policy_set because the library provides no accessor function for it.
* explicitely -> explicitly;jmc2021-07-281-4/+4
|
* new manual page X509_policy_check(3)schwarze2021-07-276-10/+198
|
* Add error checks for i2d_X509_NAME()tb2021-07-261-3/+5
| | | | | | | This avoids potential malloc(-1) and malloc(0), spotted by schwarze while documenting X509_ocspid_print(). ok schwarze
* new manual page X509_policy_tree_level_count(3)schwarze2021-07-264-6/+168
| | | | documenting the X509_POLICY_TREE object and its sub-objects
* Dedup dtls1_dispatch_alert()/ssl3_dispatch_alert().jsing2021-07-266-65/+26
| | | | | | | | The code for dtls1_dispatch_alert() and ssl3_dispatch_alert() is largely identical - with a bit of reshuffling we can use ssl3_dispatch_alert() for both protocols and remove the ssl_dispatch_alert function pointer. ok inoguchi@ tb@
* Document X509_STORE_CTX_set_trust(3), X509_STORE_CTX_set_purpose(3),schwarze2021-07-251-4/+226
| | | | | and X509_STORE_CTX_purpose_inherit(3). These functions look deceptively simple on first sight, but their semantics is surprisingly complicated.
* Two new manual pages X509_TRUST_set(3) and X509_check_trust(3)schwarze2021-07-248-12/+516
| | | | | documenting ten functions related to X509_TRUST objects, trust identifiers, and trust indices.
* Similar to x509/x509_purp.c rev. 1.5:schwarze2021-07-231-5/+1
| | | | | | | | | | | | | Delete some code from X509_TRUST_cleanup(3) that had no effect: it called a function on static objects that returns right away unless the argument is dynamically allocated. Pointed out by tb@. This commit is identical to: OpenSSL commit 5e6e650d62af09f47d63bfdd6c92e3b16e9da644 Author: Kurt Cancemi <kurt at x64architecture dot com> Date: Thu Jun 9 21:57:36 2016 -0400
* Delete some code from X509_PURPOSE_cleanup(3) that had no effect:schwarze2021-07-231-5/+1
| | | | | | | | | | | | | it called a function on static objects that returns right away unless the argument is dynamically allocated. OK jsing@ tb@ The useless code was independently discovered while writing documentation. This commit is identical to: OpenSSL commit fa3a0286d178eb3b87bf2eb5fd7af40f81453314 Author: Kurt Cancemi <kurt at x64architecture dot com> Date: Wed Jun 8 19:15:38 2016 -0400
* Add a roff(7) comment that X509_issuer_and_serial_hash() isschwarze2021-07-231-2/+4
| | | | | | intentionally undocumented because it uses MD5 only and is unused in real-world code according to codesearch.debian.net. No objection from tb@.
* Make MALLOC_STATS compile again; noted by Omar Polo and Joe Nelsonotto2021-07-231-2/+2
|
* clarify the meaning of the argument of X509_VERIFY_PARAM_set_purpose(3)schwarze2021-07-231-10/+16
|
* mention the possibility that user-defined purpose identifiers may haveschwarze2021-07-231-2/+13
| | | | been defined or user-supplied checking functions may have been installed
* new manual page X509_PURPOSE_set(3) documenting 11 functionsschwarze2021-07-234-5/+303
| | | | related to X509_PURPOSE objects, purpose identifiers, and purpose indices
* occured -> occurred;jmc2021-07-231-3/+3
|
* document X509_STORE_CTX_set_time(3) and X509_STORE_CTX_set_depth(3)schwarze2021-07-221-2/+34
|
* Major cleanup.schwarze2021-07-221-85/+66
| | | | | | | | | | | | | 1. Fix the order of functions to match the order they occur in application code, making the text significantly easier to follow. 2. Do not use the same argument placeholder *sk for several different things; call the arguments *trusted, *untrusted, and *crls as appropriate. 3. Avoid using the word "initialised" for two different concepts in the same manual page; it was sometimes intended to mean "fill with zeros" and sometimes "replace the zeros with useful data". 4. Generally, make the text more precise, more straightforward, and shorter (-84 +65 lines of mdoc code).
* Split the functions operating on the X509_VERIFY_PARAM object outschwarze2021-07-223-74/+172
| | | | | | | | | of X509_STORE_CTX_new(3) because i'm about to document five additional functions of this kind and the page X509_STORE_CTX_new(3) is growing unwieldy. No text change yet, except that i added an introductory sentence to the beginning of the DESCRIPTION of the new page.
* document X509_STORE_CTX_get0_current_issuer(3)schwarze2021-07-221-5/+51
| | | | and X509_STORE_CTX_get0_current_crl(3)
* Move X509_STORE_CTX_get0_cert(3) to the X509_STORE_CTX_new(3) manual.schwarze2021-07-222-65/+113
| | | | | | | | | | | | | | | | | | | OpenSSL documents it in X509_STORE_CTX_get_error(3), but it is misplaced there. It has nothing to do with accessing status or error information but merely retrieves a pointer to the certificate that the users wants to validate. It is a companion function to X509_STORE_CTX_init(3), X509_STORE_CTX_set_cert(3), X509_STORE_CTX_get0_store(3), and X509_STORE_CTX_get0_untrusted(3). While here: 1. Clarify how the new, init, verify, cleanup, and free calls interact, and who owns the memory involved, because this is all really confusing from the user perspective. 2. Clarify how X509_STORE_CTX_init(3), X509_STORE_CTX_set_cert(3), and X509_STORE_CTX_set_chain(3) partially override each other. 3. Move X509_STORE_CTX_set0_untrusted(3) to the proper place because it is the same as X509_STORE_CTX_set_chain(3). 4. Add a few missing words and improve some wordings.
* Document X509_STORE_CTX_get_chain(3).schwarze2021-07-211-5/+15
| | | | | It is deprecated, but it is still called by various application programs, so let's better mention it.
* Remove DTLS processed_rcds queue.jsing2021-07-213-50/+22
| | | | | | | | | | | | | | | | | | | When DTLS handshake records are received from the next epoch, we will potentially queue them on the unprocessed_rcds queue - this is usually a Finished message that has been received without the ChangeCipherSuite (CCS) message (which may have been dropped or reordered). After the epoch increments (due to the CCS being received), the current code processes all records on the unprocessed queue and immediate queues them on the processed queue, which dtls1_get_record() then pulls from. This form of processing only adds more complexity and another queue. Instead, once the epoch increments, pull a single record from the unprocessed queue and process it, allowing the contents to be consumed by the caller. We repeat this process until the unprocessed queue is empty, at which point we go back to consuming messages from the wire. ok inoguchi@ tb@
* Silently discard invalid DTLS records.jsing2021-07-211-4/+11
| | | | | | | | | | | Per RFC 6347 section 4.1.2.1, DTLS should silently discard invalid records, including those that have a bad MAC. When converting to the new record layer, we inadvertantly switched to standard TLS behaviour, where an invalid record is fatal. This restores the previous behaviour. Issue noted by inoguchi@ ok inoguchi@
* Split X509_NAME_hash(3) out of d2i_X509_NAME(3) and documentschwarze2021-07-204-25/+102
| | | | | | | | | | X509_issuer_name_hash(3), X509_subject_name_hash(3), and the _old variants. Even though this is only tangentially related to decoding and encoding, including a single function in d2i_X509_NAME(3) was probably OK, but let's not bog down that page with six functions that are likely to become obsolete at some point - even though right now, they are still being used both internally and by external software.
* document X509_CRL_print(3) and X509_CRL_print_fp(3)schwarze2021-07-195-7/+124
|
* Mop up dtls1_get_ccs_header() and struct ccs_header_st.jsing2021-07-193-21/+3
| | | | | | | | All this code does is read one byte from memory with an unknown length, potentially being a one byte overread... and then nothing is actually done with the value. ok tb@
* Inline DTLS1_CCS_HEADER_LENGTH rather than having a single use variable.jsing2021-07-191-3/+2
| | | | ok tb@
* new manual page X509_print_ex(3)schwarze2021-07-124-5/+287
|
* Use the x509_verify_cert_cache_extensions fuction instead of manuallybeck2021-07-121-9/+4
| | | | | | | calling the OpenSSL legacy cache extensions goo. Requested by tb@ ok tb@
* document X509V3_extensions_print(3)schwarze2021-07-126-7/+112
|
* document X509V3_EXT_print(3)schwarze2021-07-125-8/+167
|
* While the traditional OpenSSL return value and behaviour of BIO_dump(3)beck2021-07-112-31/+17
| | | | | | | | | | | is pure comedy gold, and now documented as such, sadly this bit of pure Muppet genius can't really in good consience stay in the tree as is. Change BIO_dump to always return the number of bytes printed on success and to stop printing and return -1 on failure if a writing function fails. ok tb@, jsing@
* new manual page ASN1_parse_dump(3)schwarze2021-07-115-7/+222
|
* document ASN1_get_object(3)schwarze2021-07-114-5/+207
|
* Fix a read buffer overrun in X509_CERT_AUX_print(3),schwarze2021-07-101-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | which by implication also affects X509_print(3). The ASN1_STRING_get0_data(3) manual explitely cautions the reader that the data is not necessarily NUL-terminated, and the function X509_alias_set1(3) does not sanitize the data passed into it in any way either, so we must assume the alias->data field is merely a byte array and not necessarily a string in the sense of the C language. I found this bug while writing manual pages for these functions. OK tb@ As an aside, note that the function still produces incomplete and misleading results when the data contains a NUL byte in the middle and that error handling is consistently absent throughout, even though the function provides an "int" return value obviously intended to be 1 for success and 0 for failure, and even though this function is called by another function that also wants to return 1 for success and 0 for failure and even does so in many of its code paths, though not in others. But let's stay focussed. Many things would be nice to have in the wide wild world, but a buffer overflow must not be allowed to remain in our backyard.