-
-
Notifications
You must be signed in to change notification settings - Fork 632
Use GetRevocationStatus instead of GetCertificateStatus #8402
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
Conversation
f7a894c to
a86d88a
Compare
a86d88a to
973cf7d
Compare
beautifulentropy
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We're preserving the behavior where SQLStorageAuthorityRO.GetRevocationStatus() returns NotFound for serials that do not match a known certificate, which is great. We should update the method doc comment to indicate that this is part of its API contract.
Similarly, we're depending on SQLStorageAuthorityRO.GetSerialMetadata() to return NotFound so that we meet this contract, we should update the doc comment for that as well.
Otherwise, the change looks great and makes perfect sense. I'm a little sad to see us take an extra query hit, but it keeps this method safe.
This reverts commit a5cf372.
This reverts #8402 The revokedCertificates table does not have an index on the `serial` column, unlike the certificateStatus table. This means that these highly-targeted, single-certificate lookups are actually very inefficient, and led to performance problems in the database. This revert will be followed by a schema change to add an index to the revokedCertificates table, and then by a reland of the original PR. Part of #8322
In the SA, change the implementation of GetRevocationStatus to read from the revokedCertificates table instead of reading from the certificateStatus table. In the WFE, switch to calling GetRevocationStatus when computing ARI windows. Similarly, in the RA, make the same switch when checking if a to-be-revoked certificate is already revoked. Across all three locations, use new core constants to represent "good" and "revoked", to avoid references to OCSP and unwieldy string/int conversions. This paves the way for removing sa.GetCertificateStatus, which now has only one remaining caller which is not quite so easily changed. Part of #8322 (cherry picked from commit a5cf372)
In the SA, change the implementation of GetRevocationStatus to read from the revokedCertificates table instead of reading from the certificateStatus table. In the WFE, switch to calling GetRevocationStatus when computing ARI windows. Similarly, in the RA, make the same switch when checking if a to-be-revoked certificate is already revoked. Across all three locations, use new core constants to represent "good" and "revoked", to avoid references to OCSP and unwieldy string/int conversions. This paves the way for removing sa.GetCertificateStatus, which now has only one remaining caller which is not quite so easily changed. Part of #8322 (cherry picked from commit a5cf372)
In the SA, change the implementation of GetRevocationStatus to read from the revokedCertificates table instead of reading from the certificateStatus table.
In the WFE, switch to calling GetRevocationStatus when computing ARI windows. Similarly, in the RA, make the same switch when checking if a to-be-revoked certificate is already revoked.
Across all three locations, use new core constants to represent "good" and "revoked", to avoid references to OCSP and unwieldy string/int conversions.
This paves the way for removing sa.GetCertificateStatus, which now has only one remaining caller which is not quite so easily changed.
Part of #8322
Warning
Do not merge before #8400