Conversation
7dc4cf5 to
cc6fb06
Compare
I am doing this because I have need to add information that really does belong here, and the current stuff is less documentation than more or less some hand waving about how it works without any details So to summarize the changes: 1) This documents the current way that X509_verify_cert goes about building and verifying a chain, identifying the relevant flags that can affect how this happens today, and cross references the correct page to find the rest of the exhaustive list of verification flags and what they do. 2) This documents the verification callback and how it can be used to affect the verification outcome, This includes warning potential users of the callback of what returning values from it means, the common ways to end up unintentionaly doing things you did not expect with the callback, and that it depends upon internals and should not be relied upon.
cc6fb06 to
3ca4914
Compare
|
And @botovq I would like you to read this. and I am sorry ;) |
|
(side note - if we backport this, probably the right move is to just copy the HEAD page overtop as the way to get rid of the conflicts, as this is basically a full rewrite - OTOH it has not been there for many years, so perhaps we don't need to |
Sashan
left a comment
There was a problem hiding this comment.
I've read through this. I like it. I feel enlightened now. However I'm not expert in this area, so I don't feel qualified enough to approve it. thanks.
If we wait for experts in how messed up the corner cases of X509_verify_cert are, we're going to wait a very long time for approval. Assuming I can't approve my own PR :) |
You should go ask @botovq if it's close enough for you to approve :) this will also force him to read it which I know he is avoiding because I would also avoid doing so, as everything in the BUGS and VERIFIER CALLBACK triggers PTSD in everyone who has ever dealt with it. |
Or, alternatively, since I think your approach to reviewing this is incorrect, as you are expecting that review approval implies perfection, which is utter hogwash for doc pr's especially, IMO. I think you should read the existing manual page for this function. Ask yourself if approval should be delayed because this might be worse documentation. It can be iterated upon later ;) |
Those should all be fixed. |
Sashan
left a comment
There was a problem hiding this comment.
OK, so let's get this in. I don't think the doc update makes things worse.
|
This pull request is ready to merge |
I am doing this because I have need to add information that really does belong here, and the current stuff is less documentation than more or less some hand waving about how it works without any details So to summarize the changes: 1) This documents the current way that X509_verify_cert goes about building and verifying a chain, identifying the relevant flags that can affect how this happens today, and cross references the correct page to find the rest of the exhaustive list of verification flags and what they do. 2) This documents the verification callback and how it can be used to affect the verification outcome, This includes warning potential users of the callback of what returning values from it means, the common ways to end up unintentionaly doing things you did not expect with the callback, and that it depends upon internals and should not be relied upon. Reviewed-by: Saša Nedvědický <[email protected]> Reviewed-by: Neil Horman <[email protected]> MergeDate: Wed Jun 10 11:33:13 2026 (Merged from #31314)
I am doing this because I have need to add information that really does belong here, and the current stuff is less documentation than more or less some hand waving about how it works without any details So to summarize the changes: 1) This documents the current way that X509_verify_cert goes about building and verifying a chain, identifying the relevant flags that can affect how this happens today, and cross references the correct page to find the rest of the exhaustive list of verification flags and what they do. 2) This documents the verification callback and how it can be used to affect the verification outcome, This includes warning potential users of the callback of what returning values from it means, the common ways to end up unintentionaly doing things you did not expect with the callback, and that it depends upon internals and should not be relied upon. Reviewed-by: Saša Nedvědický <[email protected]> Reviewed-by: Neil Horman <[email protected]> MergeDate: Wed Jun 10 11:33:13 2026 (Merged from #31314) (cherry picked from commit b2a133e)
I am doing this because I have need to add information that really does belong here, and the current stuff is less documentation than more or less some hand waving about how it works without any details So to summarize the changes: 1) This documents the current way that X509_verify_cert goes about building and verifying a chain, identifying the relevant flags that can affect how this happens today, and cross references the correct page to find the rest of the exhaustive list of verification flags and what they do. 2) This documents the verification callback and how it can be used to affect the verification outcome, This includes warning potential users of the callback of what returning values from it means, the common ways to end up unintentionaly doing things you did not expect with the callback, and that it depends upon internals and should not be relied upon. Reviewed-by: Saša Nedvědický <[email protected]> Reviewed-by: Neil Horman <[email protected]> MergeDate: Wed Jun 10 11:33:13 2026 (Merged from #31314) (cherry picked from commit b2a133e)
I am doing this because I have need to add information that really does belong here, and the current stuff is less documentation than more or less some hand waving about how it works without any details So to summarize the changes: 1) This documents the current way that X509_verify_cert goes about building and verifying a chain, identifying the relevant flags that can affect how this happens today, and cross references the correct page to find the rest of the exhaustive list of verification flags and what they do. 2) This documents the verification callback and how it can be used to affect the verification outcome, This includes warning potential users of the callback of what returning values from it means, the common ways to end up unintentionaly doing things you did not expect with the callback, and that it depends upon internals and should not be relied upon. Reviewed-by: Saša Nedvědický <[email protected]> Reviewed-by: Neil Horman <[email protected]> MergeDate: Wed Jun 10 11:33:13 2026 (Merged from #31314) (cherry picked from commit b2a133e)
I am doing this because I have need to add information that really does belong here, and the current stuff is less documentation than more or less some hand waving about how it works without any details So to summarize the changes: 1) This documents the current way that X509_verify_cert goes about building and verifying a chain, identifying the relevant flags that can affect how this happens today, and cross references the correct page to find the rest of the exhaustive list of verification flags and what they do. 2) This documents the verification callback and how it can be used to affect the verification outcome, This includes warning potential users of the callback of what returning values from it means, the common ways to end up unintentionaly doing things you did not expect with the callback, and that it depends upon internals and should not be relied upon. Reviewed-by: Saša Nedvědický <[email protected]> Reviewed-by: Neil Horman <[email protected]> MergeDate: Wed Jun 10 11:33:13 2026 (Merged from #31314) (cherry picked from commit b2a133e)
|
Norbert merged this to master. I have cherry-picked it to the 4.0, 3.6, 3.5 and 3.4 branches. (with trivial conflict fix up) The differences in 3.0 are non-trivial and I do not think this needs to be merged there. |
I am doing this because I have need to add information that really does belong here, and the current stuff is less documentation than more or less some hand waving about how it works without any details So to summarize the changes: 1) This documents the current way that X509_verify_cert goes about building and verifying a chain, identifying the relevant flags that can affect how this happens today, and cross references the correct page to find the rest of the exhaustive list of verification flags and what they do. 2) This documents the verification callback and how it can be used to affect the verification outcome, This includes warning potential users of the callback of what returning values from it means, the common ways to end up unintentionaly doing things you did not expect with the callback, and that it depends upon internals and should not be relied upon. Reviewed-by: Saša Nedvědický <[email protected]> Reviewed-by: Neil Horman <[email protected]> MergeDate: Wed Jun 10 11:33:13 2026 (Merged from openssl#31314)
I am doing this because I have need to add information that really does belong here, and the current stuff is less documentation than more or less some hand waving about how it works without any details So to summarize the changes: 1) This documents the current way that X509_verify_cert goes about building and verifying a chain, identifying the relevant flags that can affect how this happens today, and cross references the correct page to find the rest of the exhaustive list of verification flags and what they do. 2) This documents the verification callback and how it can be used to affect the verification outcome, This includes warning potential users of the callback of what returning values from it means, the common ways to end up unintentionaly doing things you did not expect with the callback, and that it depends upon internals and should not be relied upon. Reviewed-by: Saša Nedvědický <[email protected]> Reviewed-by: Neil Horman <[email protected]> MergeDate: Wed Jun 10 11:33:13 2026 (Merged from openssl#31314)
I am doing this because I have need to add information that really does
belong here, and the current stuff is less documentation than more or
less some hand waving about how it works without any details - I can't do that
without something like a real base to start from, and I don't want to both
rewrite the world and introduce my changes at the same time. So before
changing anything, let's put this in a state that talks about what it does
today. This is an attempt to get this documentation much closer to something
useful for these functions, as they work today.
So to summarize the changes:
This documents the current way that X509_verify_cert goes about
building and verifying a chain, identifying the relevant flags that
can affect how this happens today, and cross references the correct page
to find the rest of the exhaustive list of verification flags and what they do.
It calls out the major salient differences in path building and verification
from the standards and where the differences can cause X509_verify_cert
to fail to find or verify a path where one may actually exist according to
the standards.
This documents the verification callback and how it can be used
to affect the verification outcome, This includes warning potential
users using the callback of what returning values from it means,
the common ways to end up unintentionaly doing things you did not expect
with the callback, and that it depends upon internals and should not be
relied upon.
Checklist