-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Advance warning for test certificate expiry: design #7018
Comments
Some ideas about that.
I am thinking about the rulers of certificate files, it is not clearly now. |
|
|
Ideas about this topic
Other issue:
|
Failures of the faketime job are not critical. So I think it should be completely separate from the normal nightly job. If the normal nightly job fails, we fix it ASAP. Currently faketime is the only non-critical thing we want to test. But I think there will be others in the future. For example, test with pre-release versions of compilers.
Minor: I think this should be a separate script rather than
That would be good, but I'm not sure we're ready for it. I'm worried that it might be unreliable:
We can't do that in
On the contrary, I prefer to use non-mbedtls tools to generate test data. This way we know that mbedtls interoperates with openssl (or other). Whenever we use mbedtls itself to generate test data, we lose this knowledge.
I don't think that's useful. Intermediate files can be useful to generate more derived files. At least all files that aren't generated reproducibly (independent of randomness, time and tool version) need to be checked in. |
Agree. It should be completely separate.
Is there any issue for that? I just want to share job list with
I am trying to make sure this point. My ideas is set the timestamp to git commit date before
Yes, that's important, I miss that. How about replace mbedtls with Openssl ? |
Update according to @gilles-peskine-arm 's feedback
Other issue:
|
Not yet. It's part of the plans around the repository split: scripts that are common to both repositories will be split into a common engine part + a “configuration” in each repository.
I think that's a good long-term objective, but not realistic in the short term. Also, there are files for which we don't care because we have similar content in the unit tests. I think generally for keys we don't care, but for some more complex content like non-self-signed certificates it's good to have a wide range of data produced by OpenSSL, because OpenSSL produces most certificates in the real world. About the updated plan: that sounds good. There are different priorities though. My top priority is setting up the faketime job, that's part of our nice-to-have objective for this quarter. Then I think adding missing commands to the makefile is the most important thing. I'd like to get to a point where we can delete everything in |
I just create Mbed-TLS/mbedtls-test#106, #7729, #7730, #7731, #7732 and label them. I am not sure if the label and priority are right, please correct me. About point 1 in #7730, I am trying to confirm if we can implement it.
I put this point in #7732 . I think not all files should be deleted, some files are input files. We should category them before do that. |
The X.509 and TLS tests in Mbed TLS use X.509 data (certificates, CRL, CSR, …) with a validity date. Such data is only valid within a certain validity interval. For example:
So any test involving
test-int-ca3.crt
will fail if run after August 2025.If we do nothing, all will be fine until 29 August 2025, and then all CI jobs will fail.
At least twice in the past (2019, 2023), we were only saved from being crippled by sudden failing tests thanks to the SuSE maintainer who gave us advance warning.
The goal of this issue is to set up an automated job that lets us know a few months in advance before test data becomes invalid. This cannot just be a failure of the regular CI, since we'd be back to the problem of having a failure on a certain date. This can be a separate CI job where we're ok if it keeps failing for a while.
Two possible approaches:
faketime -f '+6 months'
(a subset that exercises all the test data is enough, we don't need much more than the full config and one withoutMBEDTLS_USE_PSA_CRYPTO
). Upside: exactly implements the goal “the CI must pass in 6 months”, does not rely on the accuracy of the audit script. Downside: uses resources.Note that this not just an architectural problem, it's also a process problem. This is going to remain dormant for years. We need to ensure that when it becomes relevant, 1. the job will yell and 2. we will notice.
The text was updated successfully, but these errors were encountered: