-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
DisableCertificateDownloads on macOS disables online revocation checking #47713
Comments
I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label. |
Tagging subscribers to this area: @bartonjs, @vcsjones, @krwq Issue Details
This appears to be the behavior of Even with a complete chain, disabling AIA fetching will result in no revocation checks being performed. A [Theory]
[MemberData(nameof(AllViableRevocation))]
public static void RevokeLeafWithAiaFetchingDisabled(PkiOptions pkiOptions)
{
SimpleTest(
pkiOptions,
(root, intermediate, endEntity, holder, responder) =>
{
DateTimeOffset now = DateTimeOffset.UtcNow;
intermediate.Revoke(endEntity, now);
holder.Chain.ChainPolicy.VerificationTime = now.AddSeconds(1).UtcDateTime;
holder.Chain.ChainPolicy.DisableCertificateDownloads = true;
SimpleRevocationBody(
holder,
endEntity,
rootRevoked: false,
issrRevoked: false,
leafRevoked: true);
});
} This will fail with
Options:
Split off from #47492
|
DisableCertificateDownloads
, which was introduced in .NET 5, will disable all network operations during chain building on macOS, including CRL and OCSP. On Linux and Windows, this property controls AIA fetching independently from revocation checking.This appears to be the behavior of
SecTrustSetNetworkFetchAllowed
and it is my understanding thatSecTrustSetNetworkFetchAllowed(..., FALSE)
acts as a global on/off for network operations. The documentation isn't quite clear on this and mentions that it only controls AIA fetching, however, this does not seem to be the case. I don't see a way to independently control AIA fetching and online revocation checking.Even with a complete chain, disabling AIA fetching will result in no revocation checks being performed.
A
DynamicRevocationTests
test that demonstrates the behavior I am seeing:This will fail with
Options:
DisableCertificateDownloads
on macOS and continue as-is.SecTrustChainPal
to ignoreDisableCertificateDownloads
ifX509RevocationMode
isOnline
.Split off from #47492
The text was updated successfully, but these errors were encountered: