202 instantiations of X509Certificate2
Aspire.Dashboard (1)
Aspire.Dashboard.Tests (1)
Binding.UDS.IntegrationTests (1)
dotnet-dev-certs (4)
dotnet-svcutil-lib (11)
HttpClientApp (3)
HttpStress (1)
IIS.FunctionalTests (1)
IIS.LongTests (1)
IIS.NewHandler.FunctionalTests (1)
IIS.NewShim.FunctionalTests (1)
IIS.ShadowCopy.Tests (1)
IISExpress.FunctionalTests (1)
Infrastructure.Common (6)
InMemory.FunctionalTests (14)
Interop.FunctionalTests (4)
InteropClient (1)
Microsoft.AspNetCore.DataProtection.Extensions.Tests (7)
DataProtectionProviderTests.cs (7)
122using (var imported = new X509Certificate2(filePath, "password", X509KeyStorageFlags.Exportable))
148var certWithoutKey = new X509Certificate2(Path.Combine(GetTestFilesPath(), "TestCertWithoutPrivateKey.pfx"), "password");
176var certWithoutKey = new X509Certificate2(Path.Combine(GetTestFilesPath(), "TestCert3WithoutPrivateKey.pfx"), "password3", X509KeyStorageFlags.Exportable);
193var certWithKey = new X509Certificate2(Path.Combine(GetTestFilesPath(), "TestCert3.pfx"), "password3");
217var certificate = new X509Certificate2(filePath, "password");
246var certificate = new X509Certificate2(filePath, "password");
288var certificate = new X509Certificate2(filePath, "password");
Microsoft.AspNetCore.DataProtection.Tests (7)
XmlEncryption\EncryptedXmlDecryptorTests.cs (7)
18var testCert1 = new X509Certificate2(Path.Combine(AppContext.BaseDirectory, "TestFiles", "TestCert1.pfx"), "password");
32var testCert1 = new X509Certificate2(Path.Combine(AppContext.BaseDirectory, "TestFiles", "TestCert1.pfx"), "password");
33var testCert2 = new X509Certificate2(Path.Combine(AppContext.BaseDirectory, "TestFiles", "TestCert2.pfx"), "password");
50var fullCert = new X509Certificate2(Path.Combine(AppContext.BaseDirectory, "TestFiles", "TestCert1.pfx"), "password");
51var publicKeyOnly = new X509Certificate2(Path.Combine(AppContext.BaseDirectory, "TestFiles", "TestCert1.PublicKeyOnly.cer"), "");
68var testCert1 = new X509Certificate2(Path.Combine(AppContext.BaseDirectory, "TestFiles", "TestCert1.pfx"), "password");
69var testCert2 = new X509Certificate2(Path.Combine(AppContext.BaseDirectory, "TestFiles", "TestCert2.pfx"), "password");
Microsoft.AspNetCore.DeveloperCertificates.XPlat (4)
Microsoft.AspNetCore.DeveloperCertificates.XPlat.Tests (3)
Microsoft.AspNetCore.Http.Extensions.Tests (1)
Microsoft.AspNetCore.HttpOverrides (1)
Microsoft.AspNetCore.Server.HttpSys (2)
Microsoft.AspNetCore.Server.HttpSys.FunctionalTests (3)
Microsoft.AspNetCore.Server.IIS (2)
Microsoft.AspNetCore.Server.IISIntegration (1)
Microsoft.AspNetCore.Server.Kestrel.Core (13)
Microsoft.AspNetCore.Server.Kestrel.Core.Tests (9)
Microsoft.AspNetCore.Server.Kestrel.Tests (22)
HttpsConfigurationTests.cs (3)
28serverOptions.TestOverrideDefaultCertificate = new X509Certificate2(Path.Combine("shared", "TestCertificates", "aspnetdevcert.pfx"), "testPassword");
193serverOptions.TestOverrideDefaultCertificate = new X509Certificate2(Path.Combine("shared", "TestCertificates", "aspnetdevcert.pfx"), "testPassword");
222ServerCertificate = new X509Certificate2(Path.Combine("shared", "TestCertificates", "aspnetdevcert.pfx"), "testPassword"),
KestrelConfigurationLoaderTests.cs (16)
249var certificate = new X509Certificate2(TestResources.GetCertPath("aspnetdevcert.pfx"), "testPassword", X509KeyStorageFlags.Exportable);
290var devCert = new X509Certificate2(TestResources.GetCertPath("aspnetdevcert.pfx"), "testPassword", X509KeyStorageFlags.Exportable);
381var otherCertificate = new X509Certificate2(otherCertificatePath, "testPassword");
416var certificate = new X509Certificate2(TestResources.GetCertPath("aspnetdevcert.pfx"), "testPassword", X509KeyStorageFlags.Exportable);
463var certificate = new X509Certificate2(TestResources.GetCertPath("aspnetdevcert.pfx"), "testPassword", X509KeyStorageFlags.Exportable);
512var certificate = new X509Certificate2(TestResources.GetCertPath("aspnetdevcert.pfx"), "testPassword", X509KeyStorageFlags.Exportable);
563var certificate = new X509Certificate2(TestResources.GetCertPath("https-aspnet.crt"));
587var certificate = new X509Certificate2(TestResources.GetCertPath("https-aspnet.crt"));
612var certificate = new X509Certificate2(TestResources.GetCertPath("https-aspnet.crt"));
637var certificate = new X509Certificate2(TestResources.GetCertPath("https-aspnet.crt"));
675var certificate = new X509Certificate2(TestResources.GetCertPath(Path.ChangeExtension(certificateFile, "crt")));
706var certificate = new X509Certificate2(TestResources.GetCertPath("aspnetdevcert.pfx"), "testPassword", X509KeyStorageFlags.Exportable);
859var oldCertificate = new X509Certificate2(TestResources.GetCertPath("aspnetdevcert.pfx"), "testPassword", X509KeyStorageFlags.Exportable);
862var newCertificate = new X509Certificate2(TestResources.TestCertificatePath, "testPassword", X509KeyStorageFlags.Exportable);
957var oldCertificate = new X509Certificate2(TestResources.GetCertPath("aspnetdevcert.pfx"), "testPassword", X509KeyStorageFlags.Exportable);
962var newCertificate = new X509Certificate2(TestResources.TestCertificatePath, "testPassword", X509KeyStorageFlags.Exportable);
Microsoft.AspNetCore.Server.Kestrel.Transport.Quic (1)
Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.Tests (3)
Microsoft.AspNetCore.Shared.Tests (1)
Microsoft.AspNetCore.SignalR.Client.FunctionalTests (2)
Microsoft.Build.Tasks.Core (1)
Microsoft.Build.Tasks.UnitTests (1)
Microsoft.DotNet.Deployment.Tasks.Links (1)
Microsoft.DotNet.SignCheckLibrary (2)
Microsoft.DotNet.SignTool (1)
SignalR.Client.FunctionalTestApp (2)
Sockets.BindTests (3)
Sockets.FunctionalTests (3)
System.Net.Quic (1)
System.Net.Security (5)
System.Security.Cryptography (17)
System.Security.Cryptography.Pkcs (1)
System.Security.Cryptography.Xml (3)
System.ServiceModel.Http.Tests (1)
System.ServiceModel.NetFramingBase (2)
Templates.Blazor.Tests (4)
Templates.Blazor.WebAssembly.Auth.Tests (4)
Templates.Blazor.WebAssembly.Tests (4)
Templates.Mvc.Tests (4)
Templates.Tests (4)
WebTransportInteractiveSampleApp (1)
WebTransportSampleApp (1)
WsFedSample (1)
1848 references to X509Certificate2
Aspire.Dashboard.Tests (14)
Binding.UDS.IntegrationTests (5)
Certificate.Optional.Sample (1)
Client.ExpectedExceptions.IntegrationTests (1)
ConfigurationSchemaGenerator.Tests (1)
dotnet-dev-certs (106)
src\Shared\CertificateGeneration\CertificateManager.cs (49)
69public static bool IsHttpsDevelopmentCertificate(X509Certificate2 certificate)
81public IList<X509Certificate2> ListCertificates(
88var certificates = new List<X509Certificate2>();
94IEnumerable<X509Certificate2> matchingCertificates = certificates;
133return (IList<X509Certificate2>)matchingCertificates;
146bool HasOid(X509Certificate2 certificate, string oid) =>
150static byte GetCertificateVersion(X509Certificate2 c)
169bool IsValidCertificate(X509Certificate2 certificate, DateTimeOffset currentDate, bool requireExportable) =>
176protected virtual void PopulateCertificatesFromStore(X509Store store, List<X509Certificate2> certificates, bool requireExportable)
178certificates.AddRange(store.Certificates.OfType<X509Certificate2>());
181public IList<X509Certificate2> GetHttpsCertificates() =>
211X509Certificate2? certificate = null;
221foreach (var candidate in currentUserCertificates)
416X509Certificate2 certificate;
475foreach (var certificate in filteredCertificates)
483public abstract TrustLevel GetTrustLevel(X509Certificate2 certificate);
485protected abstract X509Certificate2 SaveCertificateCore(X509Certificate2 certificate, StoreName storeName, StoreLocation storeLocation);
488protected abstract TrustLevel TrustCertificateCore(X509Certificate2 certificate);
490protected abstract bool IsExportable(X509Certificate2 c);
492protected abstract void RemoveCertificateFromTrustedRoots(X509Certificate2 certificate);
494protected abstract IList<X509Certificate2> GetCertificatesToRemove(StoreName storeName, StoreLocation storeLocation);
502internal void ExportCertificate(X509Certificate2 certificate, string path, bool includePrivateKey, string? password, CertificateKeyExportFormat format)
646internal X509Certificate2 CreateAspNetCoreHttpsDevelopmentCertificate(DateTimeOffset notBefore, DateTimeOffset notAfter)
692var certificate = CreateSelfSignedCertificate(subject, extensions, notBefore, notAfter);
696internal X509Certificate2 SaveCertificate(X509Certificate2 certificate)
712internal TrustLevel TrustCertificate(X509Certificate2 certificate)
739foreach (var certificate in certificates)
747internal void RemoveCertificate(X509Certificate2 certificate, RemoveLocations locations)
768internal abstract CheckCertificateStateResult CheckCertificateState(X509Certificate2 candidate);
770internal abstract void CorrectCertificateState(X509Certificate2 candidate);
772internal static X509Certificate2 CreateSelfSignedCertificate(
786var result = request.CreateSelfSigned(notBefore, notAfter);
801internal static void DisposeCertificates(IEnumerable<X509Certificate2> disposables)
803foreach (var disposable in disposables)
815protected void RemoveCertificateFromUserStore(X509Certificate2 certificate)
833protected virtual void RemoveCertificateFromUserStoreCore(X509Certificate2 certificate)
837var matching = store.Certificates
838.OfType<X509Certificate2>()
844internal static string ToCertificateDescription(IEnumerable<X509Certificate2> certificates)
857internal static string GetDescription(X509Certificate2 c) =>
863internal static bool AreCertificatesEqual(X509Certificate2 cert1, X509Certificate2 cert2)
877internal static bool TryFindCertificateInStore(X509Store store, X509Certificate2 certificate, [NotNullWhen(true)] out X509Certificate2? foundCertificate)
888var certificatesToDispose = new List<X509Certificate2>();
889foreach (var candidate in certificatesWithSubjectName.OfType<X509Certificate2>())
src\Shared\CertificateGeneration\MacOSCertificateManager.cs (28)
15/// Normally, we avoid the use of <see cref="X509Certificate2.Thumbprint"/> because it's a SHA-1 hash and, therefore,
85protected override TrustLevel TrustCertificateCore(X509Certificate2 publicCertificate)
129internal override CheckCertificateStateResult CheckCertificateState(X509Certificate2 candidate)
136internal override void CorrectCertificateState(X509Certificate2 candidate)
151public override TrustLevel GetTrustLevel(X509Certificate2 certificate)
177protected override void RemoveCertificateFromTrustedRoots(X509Certificate2 certificate)
198private static void RemoveAdminTrustRule(X509Certificate2 certificate)
237private static void RemoveCertificateFromKeychain(string keychain, X509Certificate2 certificate)
274private static bool IsCertOnKeychain(string keychain, X509Certificate2 certificate)
305protected override bool IsExportable(X509Certificate2 c) => true;
307protected override X509Certificate2 SaveCertificateCore(X509Certificate2 certificate, StoreName storeName, StoreLocation storeLocation)
336private static void SaveCertificateToUserKeychain(X509Certificate2 certificate)
373private static string GetCertificateFilePath(X509Certificate2 certificate) =>
376protected override IList<X509Certificate2> GetCertificatesToRemove(StoreName storeName, StoreLocation storeLocation)
381protected override void PopulateCertificatesFromStore(X509Store store, List<X509Certificate2> certificates, bool requireExportable)
387var certsFromStore = new List<X509Certificate2>();
418private sealed class ThumbprintComparer : IEqualityComparer<X509Certificate2>
420public static readonly IEqualityComparer<X509Certificate2> Instance = new ThumbprintComparer();
423bool IEqualityComparer<X509Certificate2>.Equals(X509Certificate2 x, X509Certificate2 y) =>
427int IEqualityComparer<X509Certificate2>.GetHashCode([DisallowNull] X509Certificate2 obj) =>
431private static ICollection<X509Certificate2> GetCertsFromDisk()
433var certsFromDisk = new List<X509Certificate2>();
445var certificate = new X509Certificate2(file);
459protected override void RemoveCertificateFromUserStoreCore(X509Certificate2 certificate)
dotnet-svcutil-lib (71)
FrameworkFork\System.ServiceModel\System\IdentityModel\Tokens\X509WindowsSecurityToken.cs (5)
17public X509WindowsSecurityToken(X509Certificate2 certificate, WindowsIdentity windowsIdentity)
22public X509WindowsSecurityToken(X509Certificate2 certificate, WindowsIdentity windowsIdentity, string id)
27public X509WindowsSecurityToken(X509Certificate2 certificate, WindowsIdentity windowsIdentity, string authenticationType, string id)
32internal X509WindowsSecurityToken(X509Certificate2 certificate, WindowsIdentity windowsIdentity, string authenticationType, bool clone)
37internal X509WindowsSecurityToken(X509Certificate2 certificate, WindowsIdentity windowsIdentity, string authenticationType, string id, bool clone)
FrameworkFork\System.ServiceModel\System\ServiceModel\Channels\TransportSecurityHelpers.cs (5)
373private static Func<HttpRequestMessage, X509Certificate2, X509Chain, SslPolicyErrors, bool> ChainValidator(Func<HttpRequestMessage, X509Certificate2, X509Chain, SslPolicyErrors, bool> previousValidator)
380Func<HttpRequestMessage, X509Certificate2, X509Chain, SslPolicyErrors, bool> chained =
393private static bool OnValidateServerCertificate(HttpRequestMessage request, X509Certificate2 certificate, X509Chain chain,
427private static void ValidateServerCertificate(X509Certificate2 certificate, string thumbprint)
FrameworkFork\System.ServiceModel\System\ServiceModel\Security\SecurityUtils.cs (7)
597internal static void AppendCertificateIdentityName(StringBuilder str, X509Certificate2 certificate)
857internal static bool TryCreateX509CertificateFromRawData(byte[] rawData, out X509Certificate2 certificate)
882internal static X509Certificate2 GetCertificateFromStore(StoreName storeName, StoreLocation storeLocation,
885X509Certificate2 certificate = GetCertificateFromStoreCore(storeName, storeLocation, findType, findValue, target, true);
893X509FindType findType, object findValue, EndpointAddress target, out X509Certificate2 certificate)
899private static X509Certificate2 GetCertificateFromStoreCore(StoreName storeName, StoreLocation storeLocation,
1006internal static void ResetCertificate(X509Certificate2 certificate)
Http3SampleApp (1)
HttpClientApp (5)
HttpStress (1)
IIS.FunctionalTests (7)
IIS.LongTests (5)
IIS.NewHandler.FunctionalTests (5)
IIS.NewShim.FunctionalTests (5)
IIS.ShadowCopy.Tests (5)
IISExpress.FunctionalTests (7)
Infrastructure.Common (43)
CertificateManager.cs (24)
88public static X509Certificate2 AddToStoreIfNeeded(StoreName storeName,
90X509Certificate2 certificate)
92X509Certificate2 resultCert = null;
134public static X509Certificate2 AddToOSXKeyChainIfNeeded(SafeKeychainHandle keychain,
135X509Certificate2 certificate)
137X509Certificate2 resultCert = null;
151var publicOnly = new X509Certificate2(certificate.RawData);
168private static X509Certificate2 CertificateFromThumbprint(X509Store store, string thumbprint, bool validOnly)
174private static X509Certificate2 CertificateFromThumbprint(StoreName storeName,
179X509Certificate2 resultCert = null;
189private static X509Certificate2 KeychainCertificateFromThumbprint(string thumbprint, bool validOnly)
191X509Certificate2 resultCert = null;
204public static X509Certificate2 RootCertificateFromThumprint(string thumbprint, bool validOnly)
210public static X509Certificate2 ClientCertificateFromThumprint(string thumbprint, bool validOnly)
216public static X509Certificate2 PeerCertificateFromThumprint(string thumbprint, bool validOnly)
222public static X509Certificate2 OSXLocalKeychainCertificateFromThumprint(string thumbprint, bool validOnly)
230public static X509Certificate2 InstallCertificateToRootStore(X509Certificate2 certificate)
240public static X509Certificate2 InstallCertificateToMyStore(X509Certificate2 certificate)
253public static X509Certificate2 InstallCertificateToTrustedPeopleStore(X509Certificate2 certificate)
268public static X509Certificate2 InstallCertificateToOSXKeychainStore(X509Certificate2 certificate)
InMemory.FunctionalTests (54)
InProcessWebSite (1)
Interop.FunctionalTests (6)
InteropClient (1)
Kestrel.SampleApp (4)
Microsoft.AspNetCore.Authentication.Certificate (13)
Microsoft.AspNetCore.Authentication.Test (11)
Microsoft.AspNetCore.DataProtection (27)
Microsoft.AspNetCore.DataProtection.Extensions (10)
Microsoft.AspNetCore.DataProtection.Extensions.Tests (10)
DataProtectionProviderTests.cs (10)
122using (var imported = new X509Certificate2(filePath, "password", X509KeyStorageFlags.Exportable))
135var certificate = certificateStore.Certificates.Find(X509FindType.FindBySubjectName, "TestCert", false)[0];
148var certWithoutKey = new X509Certificate2(Path.Combine(GetTestFilesPath(), "TestCertWithoutPrivateKey.pfx"), "password");
176var certWithoutKey = new X509Certificate2(Path.Combine(GetTestFilesPath(), "TestCert3WithoutPrivateKey.pfx"), "password3", X509KeyStorageFlags.Exportable);
187var certInStore = certificateStore.Certificates.Find(X509FindType.FindBySubjectName, "TestCert", false)[0];
193var certWithKey = new X509Certificate2(Path.Combine(GetTestFilesPath(), "TestCert3.pfx"), "password3");
217var certificate = new X509Certificate2(filePath, "password");
246var certificate = new X509Certificate2(filePath, "password");
266private static void AssetStoreDoesNotContain(X509Certificate2 certificate)
288var certificate = new X509Certificate2(filePath, "password");
Microsoft.AspNetCore.DataProtection.Tests (7)
XmlEncryption\EncryptedXmlDecryptorTests.cs (7)
18var testCert1 = new X509Certificate2(Path.Combine(AppContext.BaseDirectory, "TestFiles", "TestCert1.pfx"), "password");
32var testCert1 = new X509Certificate2(Path.Combine(AppContext.BaseDirectory, "TestFiles", "TestCert1.pfx"), "password");
33var testCert2 = new X509Certificate2(Path.Combine(AppContext.BaseDirectory, "TestFiles", "TestCert2.pfx"), "password");
50var fullCert = new X509Certificate2(Path.Combine(AppContext.BaseDirectory, "TestFiles", "TestCert1.pfx"), "password");
51var publicKeyOnly = new X509Certificate2(Path.Combine(AppContext.BaseDirectory, "TestFiles", "TestCert1.PublicKeyOnly.cer"), "");
68var testCert1 = new X509Certificate2(Path.Combine(AppContext.BaseDirectory, "TestFiles", "TestCert1.pfx"), "password");
69var testCert2 = new X509Certificate2(Path.Combine(AppContext.BaseDirectory, "TestFiles", "TestCert2.pfx"), "password");
Microsoft.AspNetCore.DeveloperCertificates.XPlat (102)
src\Shared\CertificateGeneration\CertificateManager.cs (49)
69public static bool IsHttpsDevelopmentCertificate(X509Certificate2 certificate)
81public IList<X509Certificate2> ListCertificates(
88var certificates = new List<X509Certificate2>();
94IEnumerable<X509Certificate2> matchingCertificates = certificates;
133return (IList<X509Certificate2>)matchingCertificates;
146bool HasOid(X509Certificate2 certificate, string oid) =>
150static byte GetCertificateVersion(X509Certificate2 c)
169bool IsValidCertificate(X509Certificate2 certificate, DateTimeOffset currentDate, bool requireExportable) =>
176protected virtual void PopulateCertificatesFromStore(X509Store store, List<X509Certificate2> certificates, bool requireExportable)
178certificates.AddRange(store.Certificates.OfType<X509Certificate2>());
181public IList<X509Certificate2> GetHttpsCertificates() =>
211X509Certificate2? certificate = null;
221foreach (var candidate in currentUserCertificates)
416X509Certificate2 certificate;
475foreach (var certificate in filteredCertificates)
483public abstract TrustLevel GetTrustLevel(X509Certificate2 certificate);
485protected abstract X509Certificate2 SaveCertificateCore(X509Certificate2 certificate, StoreName storeName, StoreLocation storeLocation);
488protected abstract TrustLevel TrustCertificateCore(X509Certificate2 certificate);
490protected abstract bool IsExportable(X509Certificate2 c);
492protected abstract void RemoveCertificateFromTrustedRoots(X509Certificate2 certificate);
494protected abstract IList<X509Certificate2> GetCertificatesToRemove(StoreName storeName, StoreLocation storeLocation);
502internal void ExportCertificate(X509Certificate2 certificate, string path, bool includePrivateKey, string? password, CertificateKeyExportFormat format)
646internal X509Certificate2 CreateAspNetCoreHttpsDevelopmentCertificate(DateTimeOffset notBefore, DateTimeOffset notAfter)
692var certificate = CreateSelfSignedCertificate(subject, extensions, notBefore, notAfter);
696internal X509Certificate2 SaveCertificate(X509Certificate2 certificate)
712internal TrustLevel TrustCertificate(X509Certificate2 certificate)
739foreach (var certificate in certificates)
747internal void RemoveCertificate(X509Certificate2 certificate, RemoveLocations locations)
768internal abstract CheckCertificateStateResult CheckCertificateState(X509Certificate2 candidate);
770internal abstract void CorrectCertificateState(X509Certificate2 candidate);
772internal static X509Certificate2 CreateSelfSignedCertificate(
786var result = request.CreateSelfSigned(notBefore, notAfter);
801internal static void DisposeCertificates(IEnumerable<X509Certificate2> disposables)
803foreach (var disposable in disposables)
815protected void RemoveCertificateFromUserStore(X509Certificate2 certificate)
833protected virtual void RemoveCertificateFromUserStoreCore(X509Certificate2 certificate)
837var matching = store.Certificates
838.OfType<X509Certificate2>()
844internal static string ToCertificateDescription(IEnumerable<X509Certificate2> certificates)
857internal static string GetDescription(X509Certificate2 c) =>
863internal static bool AreCertificatesEqual(X509Certificate2 cert1, X509Certificate2 cert2)
877internal static bool TryFindCertificateInStore(X509Store store, X509Certificate2 certificate, [NotNullWhen(true)] out X509Certificate2? foundCertificate)
888var certificatesToDispose = new List<X509Certificate2>();
889foreach (var candidate in certificatesWithSubjectName.OfType<X509Certificate2>())
src\Shared\CertificateGeneration\MacOSCertificateManager.cs (28)
15/// Normally, we avoid the use of <see cref="X509Certificate2.Thumbprint"/> because it's a SHA-1 hash and, therefore,
85protected override TrustLevel TrustCertificateCore(X509Certificate2 publicCertificate)
129internal override CheckCertificateStateResult CheckCertificateState(X509Certificate2 candidate)
136internal override void CorrectCertificateState(X509Certificate2 candidate)
151public override TrustLevel GetTrustLevel(X509Certificate2 certificate)
177protected override void RemoveCertificateFromTrustedRoots(X509Certificate2 certificate)
198private static void RemoveAdminTrustRule(X509Certificate2 certificate)
237private static void RemoveCertificateFromKeychain(string keychain, X509Certificate2 certificate)
274private static bool IsCertOnKeychain(string keychain, X509Certificate2 certificate)
305protected override bool IsExportable(X509Certificate2 c) => true;
307protected override X509Certificate2 SaveCertificateCore(X509Certificate2 certificate, StoreName storeName, StoreLocation storeLocation)
336private static void SaveCertificateToUserKeychain(X509Certificate2 certificate)
373private static string GetCertificateFilePath(X509Certificate2 certificate) =>
376protected override IList<X509Certificate2> GetCertificatesToRemove(StoreName storeName, StoreLocation storeLocation)
381protected override void PopulateCertificatesFromStore(X509Store store, List<X509Certificate2> certificates, bool requireExportable)
387var certsFromStore = new List<X509Certificate2>();
418private sealed class ThumbprintComparer : IEqualityComparer<X509Certificate2>
420public static readonly IEqualityComparer<X509Certificate2> Instance = new ThumbprintComparer();
423bool IEqualityComparer<X509Certificate2>.Equals(X509Certificate2 x, X509Certificate2 y) =>
427int IEqualityComparer<X509Certificate2>.GetHashCode([DisallowNull] X509Certificate2 obj) =>
431private static ICollection<X509Certificate2> GetCertsFromDisk()
433var certsFromDisk = new List<X509Certificate2>();
445var certificate = new X509Certificate2(file);
459protected override void RemoveCertificateFromUserStoreCore(X509Certificate2 certificate)
Microsoft.AspNetCore.DeveloperCertificates.XPlat.Tests (20)
CertificateManagerTests.cs (20)
52var exportedCertificate = new X509Certificate2(File.ReadAllBytes(CertificateName));
57var httpsCertificate = Assert.Single(httpsCertificates, c => c.Subject == TestCertificateSubject);
117foreach (var certificate in certificates)
143var httpsCertificate = _manager.ListCertificates(StoreName.My, StoreLocation.CurrentUser, isValid: false).Single(c => c.Subject == TestCertificateSubject);
151var exportedCertificate = new X509Certificate2(File.ReadAllBytes(CertificateName), certificatePassword);
175var httpsCertificate = _manager.ListCertificates(StoreName.My, StoreLocation.CurrentUser, isValid: false).Single(c => c.Subject == TestCertificateSubject);
185var exportedCertificate = X509Certificate2.CreateFromEncryptedPemFile(CertificateName, certificatePassword, Path.ChangeExtension(CertificateName, "key"));
208var httpsCertificate = _manager.ListCertificates(StoreName.My, StoreLocation.CurrentUser, isValid: false).Single(c => c.Subject == TestCertificateSubject);
218var exportedCertificate = new X509Certificate2(CertificateName);
239var httpsCertificate = _manager.ListCertificates(StoreName.My, StoreLocation.CurrentUser, isValid: false).Single(c => c.Subject == TestCertificateSubject);
251var importedCertificate = Assert.Single(_manager.ListCertificates(StoreName.My, StoreLocation.CurrentUser, isValid: false));
272var httpsCertificate = _manager.ListCertificates(StoreName.My, StoreLocation.CurrentUser, isValid: false).Single(c => c.Subject == TestCertificateSubject);
299var httpsCertificate = _manager.ListCertificates(StoreName.My, StoreLocation.CurrentUser, isValid: false).Single(c => c.Subject == TestCertificateSubject);
309var wrongSubjectCertificate = csr.CreateSelfSigned(httpsCertificate.NotBefore, httpsCertificate.NotAfter);
339var httpsCertificate = _manager.ListCertificates(StoreName.My, StoreLocation.CurrentUser, isValid: false).Single(c => c.Subject == TestCertificateSubject);
347var exportedCertificate = X509Certificate2.CreateFromPemFile(CertificateName, Path.ChangeExtension(CertificateName, "key"));
471var firstCertificate = httpsCertificateList[0];
472var secondCertificate = httpsCertificateList[1];
Microsoft.AspNetCore.Grpc.JsonTranscoding (3)
Microsoft.AspNetCore.Http (4)
Microsoft.AspNetCore.Http.Abstractions (4)
Microsoft.AspNetCore.Http.Extensions.Tests (7)
Microsoft.AspNetCore.Http.Features (2)
Microsoft.AspNetCore.Http.Microbenchmarks (3)
Microsoft.AspNetCore.HttpOverrides (9)
Microsoft.AspNetCore.HttpOverrides.Tests (10)
Microsoft.AspNetCore.Owin (5)
Microsoft.AspNetCore.Server.HttpSys (14)
Microsoft.AspNetCore.Server.HttpSys.FunctionalTests (10)
Microsoft.AspNetCore.Server.IIS (5)
Microsoft.AspNetCore.Server.IISIntegration (3)
Microsoft.AspNetCore.Server.Kestrel.Core (163)
Middleware\HttpsConnectionMiddleware.cs (14)
40private readonly X509Certificate2? _serverCertificate;
41private readonly Func<ConnectionContext, string?, X509Certificate2?>? _serverCertificateSelector;
97var certificate = _serverCertificate;
251private X509Certificate2 LocateCertificateWithPrivateKey(X509Certificate2 certificate)
327var cert = _serverCertificateSelector(context, name);
377Func<X509Certificate2, X509Chain?, SslPolicyErrors, bool>? clientCertificateValidation,
395var certificate2 = ConvertToX509Certificate2(certificate);
468internal static void EnsureCertificateIsAllowedForServerAuth(X509Certificate2 certificate, ILogger<HttpsConnectionMiddleware> logger)
480private static X509Certificate2? ConvertToX509Certificate2(X509Certificate? certificate)
487if (certificate is X509Certificate2 cert2)
556var cert = httpsOptions.ServerCertificateSelector(null, host);
599public static void LocatingCertWithPrivateKey(this ILogger<HttpsConnectionMiddleware> logger, X509Certificate2 certificate) => LocatingCertWithPrivateKey(logger, certificate.Thumbprint);
604public static void FoundCertWithPrivateKey(this ILogger<HttpsConnectionMiddleware> logger, X509Certificate2 certificate, StoreLocation storeLocation)
src\Shared\CertificateGeneration\CertificateManager.cs (49)
69public static bool IsHttpsDevelopmentCertificate(X509Certificate2 certificate)
81public IList<X509Certificate2> ListCertificates(
88var certificates = new List<X509Certificate2>();
94IEnumerable<X509Certificate2> matchingCertificates = certificates;
133return (IList<X509Certificate2>)matchingCertificates;
146bool HasOid(X509Certificate2 certificate, string oid) =>
150static byte GetCertificateVersion(X509Certificate2 c)
169bool IsValidCertificate(X509Certificate2 certificate, DateTimeOffset currentDate, bool requireExportable) =>
176protected virtual void PopulateCertificatesFromStore(X509Store store, List<X509Certificate2> certificates, bool requireExportable)
178certificates.AddRange(store.Certificates.OfType<X509Certificate2>());
181public IList<X509Certificate2> GetHttpsCertificates() =>
211X509Certificate2? certificate = null;
221foreach (var candidate in currentUserCertificates)
416X509Certificate2 certificate;
475foreach (var certificate in filteredCertificates)
483public abstract TrustLevel GetTrustLevel(X509Certificate2 certificate);
485protected abstract X509Certificate2 SaveCertificateCore(X509Certificate2 certificate, StoreName storeName, StoreLocation storeLocation);
488protected abstract TrustLevel TrustCertificateCore(X509Certificate2 certificate);
490protected abstract bool IsExportable(X509Certificate2 c);
492protected abstract void RemoveCertificateFromTrustedRoots(X509Certificate2 certificate);
494protected abstract IList<X509Certificate2> GetCertificatesToRemove(StoreName storeName, StoreLocation storeLocation);
502internal void ExportCertificate(X509Certificate2 certificate, string path, bool includePrivateKey, string? password, CertificateKeyExportFormat format)
646internal X509Certificate2 CreateAspNetCoreHttpsDevelopmentCertificate(DateTimeOffset notBefore, DateTimeOffset notAfter)
692var certificate = CreateSelfSignedCertificate(subject, extensions, notBefore, notAfter);
696internal X509Certificate2 SaveCertificate(X509Certificate2 certificate)
712internal TrustLevel TrustCertificate(X509Certificate2 certificate)
739foreach (var certificate in certificates)
747internal void RemoveCertificate(X509Certificate2 certificate, RemoveLocations locations)
768internal abstract CheckCertificateStateResult CheckCertificateState(X509Certificate2 candidate);
770internal abstract void CorrectCertificateState(X509Certificate2 candidate);
772internal static X509Certificate2 CreateSelfSignedCertificate(
786var result = request.CreateSelfSigned(notBefore, notAfter);
801internal static void DisposeCertificates(IEnumerable<X509Certificate2> disposables)
803foreach (var disposable in disposables)
815protected void RemoveCertificateFromUserStore(X509Certificate2 certificate)
833protected virtual void RemoveCertificateFromUserStoreCore(X509Certificate2 certificate)
837var matching = store.Certificates
838.OfType<X509Certificate2>()
844internal static string ToCertificateDescription(IEnumerable<X509Certificate2> certificates)
857internal static string GetDescription(X509Certificate2 c) =>
863internal static bool AreCertificatesEqual(X509Certificate2 cert1, X509Certificate2 cert2)
877internal static bool TryFindCertificateInStore(X509Store store, X509Certificate2 certificate, [NotNullWhen(true)] out X509Certificate2? foundCertificate)
888var certificatesToDispose = new List<X509Certificate2>();
889foreach (var candidate in certificatesWithSubjectName.OfType<X509Certificate2>())
src\Shared\CertificateGeneration\MacOSCertificateManager.cs (28)
15/// Normally, we avoid the use of <see cref="X509Certificate2.Thumbprint"/> because it's a SHA-1 hash and, therefore,
85protected override TrustLevel TrustCertificateCore(X509Certificate2 publicCertificate)
129internal override CheckCertificateStateResult CheckCertificateState(X509Certificate2 candidate)
136internal override void CorrectCertificateState(X509Certificate2 candidate)
151public override TrustLevel GetTrustLevel(X509Certificate2 certificate)
177protected override void RemoveCertificateFromTrustedRoots(X509Certificate2 certificate)
198private static void RemoveAdminTrustRule(X509Certificate2 certificate)
237private static void RemoveCertificateFromKeychain(string keychain, X509Certificate2 certificate)
274private static bool IsCertOnKeychain(string keychain, X509Certificate2 certificate)
305protected override bool IsExportable(X509Certificate2 c) => true;
307protected override X509Certificate2 SaveCertificateCore(X509Certificate2 certificate, StoreName storeName, StoreLocation storeLocation)
336private static void SaveCertificateToUserKeychain(X509Certificate2 certificate)
373private static string GetCertificateFilePath(X509Certificate2 certificate) =>
376protected override IList<X509Certificate2> GetCertificatesToRemove(StoreName storeName, StoreLocation storeLocation)
381protected override void PopulateCertificatesFromStore(X509Store store, List<X509Certificate2> certificates, bool requireExportable)
387var certsFromStore = new List<X509Certificate2>();
418private sealed class ThumbprintComparer : IEqualityComparer<X509Certificate2>
420public static readonly IEqualityComparer<X509Certificate2> Instance = new ThumbprintComparer();
423bool IEqualityComparer<X509Certificate2>.Equals(X509Certificate2 x, X509Certificate2 y) =>
427int IEqualityComparer<X509Certificate2>.GetHashCode([DisallowNull] X509Certificate2 obj) =>
431private static ICollection<X509Certificate2> GetCertsFromDisk()
433var certsFromDisk = new List<X509Certificate2>();
445var certificate = new X509Certificate2(file);
459protected override void RemoveCertificateFromUserStoreCore(X509Certificate2 certificate)
Microsoft.AspNetCore.Server.Kestrel.Core.Tests (34)
Microsoft.AspNetCore.Server.Kestrel.Tests (26)
KestrelConfigurationLoaderTests.cs (21)
249var certificate = new X509Certificate2(TestResources.GetCertPath("aspnetdevcert.pfx"), "testPassword", X509KeyStorageFlags.Exportable);
290var devCert = new X509Certificate2(TestResources.GetCertPath("aspnetdevcert.pfx"), "testPassword", X509KeyStorageFlags.Exportable);
297var defaultCert = TestResources.GetTestCertificate();
348void CheckCertificates(X509Certificate2 expectedCert)
378var testCertificate = TestResources.GetTestCertificate();
381var otherCertificate = new X509Certificate2(otherCertificatePath, "testPassword");
403void CheckListenOptions(X509Certificate2 expectedCert)
416var certificate = new X509Certificate2(TestResources.GetCertPath("aspnetdevcert.pfx"), "testPassword", X509KeyStorageFlags.Exportable);
463var certificate = new X509Certificate2(TestResources.GetCertPath("aspnetdevcert.pfx"), "testPassword", X509KeyStorageFlags.Exportable);
512var certificate = new X509Certificate2(TestResources.GetCertPath("aspnetdevcert.pfx"), "testPassword", X509KeyStorageFlags.Exportable);
518var defaultCertificate = TestResources.GetTestCertificate();
563var certificate = new X509Certificate2(TestResources.GetCertPath("https-aspnet.crt"));
587var certificate = new X509Certificate2(TestResources.GetCertPath("https-aspnet.crt"));
612var certificate = new X509Certificate2(TestResources.GetCertPath("https-aspnet.crt"));
637var certificate = new X509Certificate2(TestResources.GetCertPath("https-aspnet.crt"));
675var certificate = new X509Certificate2(TestResources.GetCertPath(Path.ChangeExtension(certificateFile, "crt")));
706var certificate = new X509Certificate2(TestResources.GetCertPath("aspnetdevcert.pfx"), "testPassword", X509KeyStorageFlags.Exportable);
859var oldCertificate = new X509Certificate2(TestResources.GetCertPath("aspnetdevcert.pfx"), "testPassword", X509KeyStorageFlags.Exportable);
862var newCertificate = new X509Certificate2(TestResources.TestCertificatePath, "testPassword", X509KeyStorageFlags.Exportable);
957var oldCertificate = new X509Certificate2(TestResources.GetCertPath("aspnetdevcert.pfx"), "testPassword", X509KeyStorageFlags.Exportable);
962var newCertificate = new X509Certificate2(TestResources.TestCertificatePath, "testPassword", X509KeyStorageFlags.Exportable);
Microsoft.AspNetCore.Server.Kestrel.Transport.Quic (6)
Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.Tests (8)
Microsoft.AspNetCore.Shared.Tests (2)
Microsoft.AspNetCore.SignalR.Client.FunctionalTests (1)
Microsoft.AspNetCore.Testing (7)
Microsoft.AspNetCore.Testing.Tests (5)
Microsoft.Build.Tasks.Core (13)
ManifestUtil\SecurityUtil.cs (9)
566X509Certificate2 cert = GetCert(certThumbprint);
613using X509Certificate2 cert = new X509Certificate2(certPath, certPassword, X509KeyStorageFlags.PersistKeySet);
617private static bool UseSha256Algorithm(X509Certificate2 cert)
636public static void SignFile(X509Certificate2 cert, Uri timestampUrl, string path)
644private static void SignFileInternal(X509Certificate2 cert,
766private static void SignPEFile(X509Certificate2 cert, Uri timestampUrl, string path, System.Resources.ResourceManager resources, bool useSha256)
780private static void SignPEFileInternal(X509Certificate2 cert, Uri timestampUrl,
886internal static X509Certificate2 GetCert(string thumbprint)
905private static bool IsCertInStore(X509Certificate2 cert)
Microsoft.Build.Tasks.UnitTests (6)
Microsoft.DotNet.Build.Tasks.Feed (1)
Microsoft.DotNet.Deployment.Tasks.Links (1)
Microsoft.DotNet.SignCheckLibrary (7)
Microsoft.DotNet.SignTool (3)
netstandard (1)
PresentationUI (29)
ScenarioTests.Common.Tests (1)
Security.TransportSecurity.IntegrationTests (7)
SignalR.Client.FunctionalTestApp (1)
Sockets.BindTests (5)
Sockets.FunctionalTests (8)
System (1)
System.Net.Http (13)
System\Net\Http\HttpClientHandler.cs (3)
305public Func<HttpRequestMessage, X509Certificate2?, X509Chain?, SslPolicyErrors, bool>? ServerCertificateCustomValidationCallback
371private static Func<HttpRequestMessage, X509Certificate2?, X509Chain?, SslPolicyErrors, bool>? s_dangerousAcceptAnyServerCertificateValidator;
373public static Func<HttpRequestMessage, X509Certificate2?, X509Chain?, SslPolicyErrors, bool> DangerousAcceptAnyServerCertificateValidator =>
System\Net\Http\SocketsHttpHandler\ConnectHelper.cs (5)
25public readonly Func<HttpRequestMessage, X509Certificate2?, X509Chain?, SslPolicyErrors, bool> FromHttpClientHandler;
28public CertificateCallbackMapper(Func<HttpRequestMessage, X509Certificate2?, X509Chain?, SslPolicyErrors, bool> fromHttpClientHandler)
32FromHttpClientHandler((HttpRequestMessage)sender, certificate as X509Certificate2, chain, sslPolicyErrors);
44Func<HttpRequestMessage, X509Certificate2?, X509Chain?, SslPolicyErrors, bool> localFromHttpClientHandler = mapper.FromHttpClientHandler;
49bool result = localFromHttpClientHandler(localRequest, certificate as X509Certificate2, chain, sslPolicyErrors);
System.Net.Http.WinHttpHandler (1)
System.Net.HttpListener (9)
System.Net.Quic (16)
System\Net\Quic\Internal\MsQuicConfiguration.Cache.cs (3)
54public CacheKey(QUIC_SETTINGS settings, QUIC_CREDENTIAL_FLAGS flags, X509Certificate? certificate, ReadOnlyCollection<X509Certificate2>? intermediates, List<SslApplicationProtocol> alpnProtocols, QUIC_ALLOWED_CIPHER_SUITE_FLAGS allowedCipherSuites)
60foreach (X509Certificate2 intermediate in intermediates)
132private static MsQuicConfigurationSafeHandle GetCachedCredentialOrCreate(QUIC_SETTINGS settings, QUIC_CREDENTIAL_FLAGS flags, X509Certificate? certificate, ReadOnlyCollection<X509Certificate2>? intermediates, List<SslApplicationProtocol> alpnProtocols, QUIC_ALLOWED_CIPHER_SUITE_FLAGS allowedCipherSuites)
System\Net\Quic\Internal\MsQuicConfiguration.cs (7)
17=> certificate is X509Certificate2 certificate2 && certificate2.Handle != IntPtr.Zero && certificate2.HasPrivateKey;
34ReadOnlyCollection<X509Certificate2>? intermediates = null;
99ReadOnlyCollection<X509Certificate2>? intermediates = default;
124private static MsQuicConfigurationSafeHandle Create(QuicConnectionOptions options, QUIC_CREDENTIAL_FLAGS flags, X509Certificate? certificate, ReadOnlyCollection<X509Certificate2>? intermediates, List<SslApplicationProtocol>? alpnProtocols, CipherSuitesPolicy? cipherSuitesPolicy, EncryptionPolicy encryptionPolicy)
204private static unsafe MsQuicConfigurationSafeHandle CreateInternal(QUIC_SETTINGS settings, QUIC_CREDENTIAL_FLAGS flags, X509Certificate? certificate, ReadOnlyCollection<X509Certificate2>? intermediates, List<SslApplicationProtocol> alpnProtocols, QUIC_ALLOWED_CIPHER_SUITE_FLAGS allowedCipherSuites)
206if (!MsQuicApi.UsesSChannelBackend && certificate is X509Certificate2 cert && intermediates is null)
260foreach (X509Certificate2 intermediate in intermediates)
System.Net.Security (53)
System.Security.Cryptography (171)
System.Security.Cryptography.Pkcs (73)
System.Security.Cryptography.X509Certificates (1)
System.Security.Cryptography.Xml (13)
System.ServiceModel.Http.Tests (1)
System.ServiceModel.NetFramingBase (2)
System.ServiceModel.Primitives (10)
System.Windows.Extensions (2)
Templates.Blazor.Tests (102)
src\Shared\CertificateGeneration\CertificateManager.cs (49)
69public static bool IsHttpsDevelopmentCertificate(X509Certificate2 certificate)
81public IList<X509Certificate2> ListCertificates(
88var certificates = new List<X509Certificate2>();
94IEnumerable<X509Certificate2> matchingCertificates = certificates;
133return (IList<X509Certificate2>)matchingCertificates;
146bool HasOid(X509Certificate2 certificate, string oid) =>
150static byte GetCertificateVersion(X509Certificate2 c)
169bool IsValidCertificate(X509Certificate2 certificate, DateTimeOffset currentDate, bool requireExportable) =>
176protected virtual void PopulateCertificatesFromStore(X509Store store, List<X509Certificate2> certificates, bool requireExportable)
178certificates.AddRange(store.Certificates.OfType<X509Certificate2>());
181public IList<X509Certificate2> GetHttpsCertificates() =>
211X509Certificate2? certificate = null;
221foreach (var candidate in currentUserCertificates)
416X509Certificate2 certificate;
475foreach (var certificate in filteredCertificates)
483public abstract TrustLevel GetTrustLevel(X509Certificate2 certificate);
485protected abstract X509Certificate2 SaveCertificateCore(X509Certificate2 certificate, StoreName storeName, StoreLocation storeLocation);
488protected abstract TrustLevel TrustCertificateCore(X509Certificate2 certificate);
490protected abstract bool IsExportable(X509Certificate2 c);
492protected abstract void RemoveCertificateFromTrustedRoots(X509Certificate2 certificate);
494protected abstract IList<X509Certificate2> GetCertificatesToRemove(StoreName storeName, StoreLocation storeLocation);
502internal void ExportCertificate(X509Certificate2 certificate, string path, bool includePrivateKey, string? password, CertificateKeyExportFormat format)
646internal X509Certificate2 CreateAspNetCoreHttpsDevelopmentCertificate(DateTimeOffset notBefore, DateTimeOffset notAfter)
692var certificate = CreateSelfSignedCertificate(subject, extensions, notBefore, notAfter);
696internal X509Certificate2 SaveCertificate(X509Certificate2 certificate)
712internal TrustLevel TrustCertificate(X509Certificate2 certificate)
739foreach (var certificate in certificates)
747internal void RemoveCertificate(X509Certificate2 certificate, RemoveLocations locations)
768internal abstract CheckCertificateStateResult CheckCertificateState(X509Certificate2 candidate);
770internal abstract void CorrectCertificateState(X509Certificate2 candidate);
772internal static X509Certificate2 CreateSelfSignedCertificate(
786var result = request.CreateSelfSigned(notBefore, notAfter);
801internal static void DisposeCertificates(IEnumerable<X509Certificate2> disposables)
803foreach (var disposable in disposables)
815protected void RemoveCertificateFromUserStore(X509Certificate2 certificate)
833protected virtual void RemoveCertificateFromUserStoreCore(X509Certificate2 certificate)
837var matching = store.Certificates
838.OfType<X509Certificate2>()
844internal static string ToCertificateDescription(IEnumerable<X509Certificate2> certificates)
857internal static string GetDescription(X509Certificate2 c) =>
863internal static bool AreCertificatesEqual(X509Certificate2 cert1, X509Certificate2 cert2)
877internal static bool TryFindCertificateInStore(X509Store store, X509Certificate2 certificate, [NotNullWhen(true)] out X509Certificate2? foundCertificate)
888var certificatesToDispose = new List<X509Certificate2>();
889foreach (var candidate in certificatesWithSubjectName.OfType<X509Certificate2>())
src\Shared\CertificateGeneration\MacOSCertificateManager.cs (28)
15/// Normally, we avoid the use of <see cref="X509Certificate2.Thumbprint"/> because it's a SHA-1 hash and, therefore,
85protected override TrustLevel TrustCertificateCore(X509Certificate2 publicCertificate)
129internal override CheckCertificateStateResult CheckCertificateState(X509Certificate2 candidate)
136internal override void CorrectCertificateState(X509Certificate2 candidate)
151public override TrustLevel GetTrustLevel(X509Certificate2 certificate)
177protected override void RemoveCertificateFromTrustedRoots(X509Certificate2 certificate)
198private static void RemoveAdminTrustRule(X509Certificate2 certificate)
237private static void RemoveCertificateFromKeychain(string keychain, X509Certificate2 certificate)
274private static bool IsCertOnKeychain(string keychain, X509Certificate2 certificate)
305protected override bool IsExportable(X509Certificate2 c) => true;
307protected override X509Certificate2 SaveCertificateCore(X509Certificate2 certificate, StoreName storeName, StoreLocation storeLocation)
336private static void SaveCertificateToUserKeychain(X509Certificate2 certificate)
373private static string GetCertificateFilePath(X509Certificate2 certificate) =>
376protected override IList<X509Certificate2> GetCertificatesToRemove(StoreName storeName, StoreLocation storeLocation)
381protected override void PopulateCertificatesFromStore(X509Store store, List<X509Certificate2> certificates, bool requireExportable)
387var certsFromStore = new List<X509Certificate2>();
418private sealed class ThumbprintComparer : IEqualityComparer<X509Certificate2>
420public static readonly IEqualityComparer<X509Certificate2> Instance = new ThumbprintComparer();
423bool IEqualityComparer<X509Certificate2>.Equals(X509Certificate2 x, X509Certificate2 y) =>
427int IEqualityComparer<X509Certificate2>.GetHashCode([DisallowNull] X509Certificate2 obj) =>
431private static ICollection<X509Certificate2> GetCertsFromDisk()
433var certsFromDisk = new List<X509Certificate2>();
445var certificate = new X509Certificate2(file);
459protected override void RemoveCertificateFromUserStoreCore(X509Certificate2 certificate)
Templates.Blazor.WebAssembly.Auth.Tests (102)
src\Shared\CertificateGeneration\CertificateManager.cs (49)
69public static bool IsHttpsDevelopmentCertificate(X509Certificate2 certificate)
81public IList<X509Certificate2> ListCertificates(
88var certificates = new List<X509Certificate2>();
94IEnumerable<X509Certificate2> matchingCertificates = certificates;
133return (IList<X509Certificate2>)matchingCertificates;
146bool HasOid(X509Certificate2 certificate, string oid) =>
150static byte GetCertificateVersion(X509Certificate2 c)
169bool IsValidCertificate(X509Certificate2 certificate, DateTimeOffset currentDate, bool requireExportable) =>
176protected virtual void PopulateCertificatesFromStore(X509Store store, List<X509Certificate2> certificates, bool requireExportable)
178certificates.AddRange(store.Certificates.OfType<X509Certificate2>());
181public IList<X509Certificate2> GetHttpsCertificates() =>
211X509Certificate2? certificate = null;
221foreach (var candidate in currentUserCertificates)
416X509Certificate2 certificate;
475foreach (var certificate in filteredCertificates)
483public abstract TrustLevel GetTrustLevel(X509Certificate2 certificate);
485protected abstract X509Certificate2 SaveCertificateCore(X509Certificate2 certificate, StoreName storeName, StoreLocation storeLocation);
488protected abstract TrustLevel TrustCertificateCore(X509Certificate2 certificate);
490protected abstract bool IsExportable(X509Certificate2 c);
492protected abstract void RemoveCertificateFromTrustedRoots(X509Certificate2 certificate);
494protected abstract IList<X509Certificate2> GetCertificatesToRemove(StoreName storeName, StoreLocation storeLocation);
502internal void ExportCertificate(X509Certificate2 certificate, string path, bool includePrivateKey, string? password, CertificateKeyExportFormat format)
646internal X509Certificate2 CreateAspNetCoreHttpsDevelopmentCertificate(DateTimeOffset notBefore, DateTimeOffset notAfter)
692var certificate = CreateSelfSignedCertificate(subject, extensions, notBefore, notAfter);
696internal X509Certificate2 SaveCertificate(X509Certificate2 certificate)
712internal TrustLevel TrustCertificate(X509Certificate2 certificate)
739foreach (var certificate in certificates)
747internal void RemoveCertificate(X509Certificate2 certificate, RemoveLocations locations)
768internal abstract CheckCertificateStateResult CheckCertificateState(X509Certificate2 candidate);
770internal abstract void CorrectCertificateState(X509Certificate2 candidate);
772internal static X509Certificate2 CreateSelfSignedCertificate(
786var result = request.CreateSelfSigned(notBefore, notAfter);
801internal static void DisposeCertificates(IEnumerable<X509Certificate2> disposables)
803foreach (var disposable in disposables)
815protected void RemoveCertificateFromUserStore(X509Certificate2 certificate)
833protected virtual void RemoveCertificateFromUserStoreCore(X509Certificate2 certificate)
837var matching = store.Certificates
838.OfType<X509Certificate2>()
844internal static string ToCertificateDescription(IEnumerable<X509Certificate2> certificates)
857internal static string GetDescription(X509Certificate2 c) =>
863internal static bool AreCertificatesEqual(X509Certificate2 cert1, X509Certificate2 cert2)
877internal static bool TryFindCertificateInStore(X509Store store, X509Certificate2 certificate, [NotNullWhen(true)] out X509Certificate2? foundCertificate)
888var certificatesToDispose = new List<X509Certificate2>();
889foreach (var candidate in certificatesWithSubjectName.OfType<X509Certificate2>())
src\Shared\CertificateGeneration\MacOSCertificateManager.cs (28)
15/// Normally, we avoid the use of <see cref="X509Certificate2.Thumbprint"/> because it's a SHA-1 hash and, therefore,
85protected override TrustLevel TrustCertificateCore(X509Certificate2 publicCertificate)
129internal override CheckCertificateStateResult CheckCertificateState(X509Certificate2 candidate)
136internal override void CorrectCertificateState(X509Certificate2 candidate)
151public override TrustLevel GetTrustLevel(X509Certificate2 certificate)
177protected override void RemoveCertificateFromTrustedRoots(X509Certificate2 certificate)
198private static void RemoveAdminTrustRule(X509Certificate2 certificate)
237private static void RemoveCertificateFromKeychain(string keychain, X509Certificate2 certificate)
274private static bool IsCertOnKeychain(string keychain, X509Certificate2 certificate)
305protected override bool IsExportable(X509Certificate2 c) => true;
307protected override X509Certificate2 SaveCertificateCore(X509Certificate2 certificate, StoreName storeName, StoreLocation storeLocation)
336private static void SaveCertificateToUserKeychain(X509Certificate2 certificate)
373private static string GetCertificateFilePath(X509Certificate2 certificate) =>
376protected override IList<X509Certificate2> GetCertificatesToRemove(StoreName storeName, StoreLocation storeLocation)
381protected override void PopulateCertificatesFromStore(X509Store store, List<X509Certificate2> certificates, bool requireExportable)
387var certsFromStore = new List<X509Certificate2>();
418private sealed class ThumbprintComparer : IEqualityComparer<X509Certificate2>
420public static readonly IEqualityComparer<X509Certificate2> Instance = new ThumbprintComparer();
423bool IEqualityComparer<X509Certificate2>.Equals(X509Certificate2 x, X509Certificate2 y) =>
427int IEqualityComparer<X509Certificate2>.GetHashCode([DisallowNull] X509Certificate2 obj) =>
431private static ICollection<X509Certificate2> GetCertsFromDisk()
433var certsFromDisk = new List<X509Certificate2>();
445var certificate = new X509Certificate2(file);
459protected override void RemoveCertificateFromUserStoreCore(X509Certificate2 certificate)
Templates.Blazor.WebAssembly.Tests (102)
src\Shared\CertificateGeneration\CertificateManager.cs (49)
69public static bool IsHttpsDevelopmentCertificate(X509Certificate2 certificate)
81public IList<X509Certificate2> ListCertificates(
88var certificates = new List<X509Certificate2>();
94IEnumerable<X509Certificate2> matchingCertificates = certificates;
133return (IList<X509Certificate2>)matchingCertificates;
146bool HasOid(X509Certificate2 certificate, string oid) =>
150static byte GetCertificateVersion(X509Certificate2 c)
169bool IsValidCertificate(X509Certificate2 certificate, DateTimeOffset currentDate, bool requireExportable) =>
176protected virtual void PopulateCertificatesFromStore(X509Store store, List<X509Certificate2> certificates, bool requireExportable)
178certificates.AddRange(store.Certificates.OfType<X509Certificate2>());
181public IList<X509Certificate2> GetHttpsCertificates() =>
211X509Certificate2? certificate = null;
221foreach (var candidate in currentUserCertificates)
416X509Certificate2 certificate;
475foreach (var certificate in filteredCertificates)
483public abstract TrustLevel GetTrustLevel(X509Certificate2 certificate);
485protected abstract X509Certificate2 SaveCertificateCore(X509Certificate2 certificate, StoreName storeName, StoreLocation storeLocation);
488protected abstract TrustLevel TrustCertificateCore(X509Certificate2 certificate);
490protected abstract bool IsExportable(X509Certificate2 c);
492protected abstract void RemoveCertificateFromTrustedRoots(X509Certificate2 certificate);
494protected abstract IList<X509Certificate2> GetCertificatesToRemove(StoreName storeName, StoreLocation storeLocation);
502internal void ExportCertificate(X509Certificate2 certificate, string path, bool includePrivateKey, string? password, CertificateKeyExportFormat format)
646internal X509Certificate2 CreateAspNetCoreHttpsDevelopmentCertificate(DateTimeOffset notBefore, DateTimeOffset notAfter)
692var certificate = CreateSelfSignedCertificate(subject, extensions, notBefore, notAfter);
696internal X509Certificate2 SaveCertificate(X509Certificate2 certificate)
712internal TrustLevel TrustCertificate(X509Certificate2 certificate)
739foreach (var certificate in certificates)
747internal void RemoveCertificate(X509Certificate2 certificate, RemoveLocations locations)
768internal abstract CheckCertificateStateResult CheckCertificateState(X509Certificate2 candidate);
770internal abstract void CorrectCertificateState(X509Certificate2 candidate);
772internal static X509Certificate2 CreateSelfSignedCertificate(
786var result = request.CreateSelfSigned(notBefore, notAfter);
801internal static void DisposeCertificates(IEnumerable<X509Certificate2> disposables)
803foreach (var disposable in disposables)
815protected void RemoveCertificateFromUserStore(X509Certificate2 certificate)
833protected virtual void RemoveCertificateFromUserStoreCore(X509Certificate2 certificate)
837var matching = store.Certificates
838.OfType<X509Certificate2>()
844internal static string ToCertificateDescription(IEnumerable<X509Certificate2> certificates)
857internal static string GetDescription(X509Certificate2 c) =>
863internal static bool AreCertificatesEqual(X509Certificate2 cert1, X509Certificate2 cert2)
877internal static bool TryFindCertificateInStore(X509Store store, X509Certificate2 certificate, [NotNullWhen(true)] out X509Certificate2? foundCertificate)
888var certificatesToDispose = new List<X509Certificate2>();
889foreach (var candidate in certificatesWithSubjectName.OfType<X509Certificate2>())
src\Shared\CertificateGeneration\MacOSCertificateManager.cs (28)
15/// Normally, we avoid the use of <see cref="X509Certificate2.Thumbprint"/> because it's a SHA-1 hash and, therefore,
85protected override TrustLevel TrustCertificateCore(X509Certificate2 publicCertificate)
129internal override CheckCertificateStateResult CheckCertificateState(X509Certificate2 candidate)
136internal override void CorrectCertificateState(X509Certificate2 candidate)
151public override TrustLevel GetTrustLevel(X509Certificate2 certificate)
177protected override void RemoveCertificateFromTrustedRoots(X509Certificate2 certificate)
198private static void RemoveAdminTrustRule(X509Certificate2 certificate)
237private static void RemoveCertificateFromKeychain(string keychain, X509Certificate2 certificate)
274private static bool IsCertOnKeychain(string keychain, X509Certificate2 certificate)
305protected override bool IsExportable(X509Certificate2 c) => true;
307protected override X509Certificate2 SaveCertificateCore(X509Certificate2 certificate, StoreName storeName, StoreLocation storeLocation)
336private static void SaveCertificateToUserKeychain(X509Certificate2 certificate)
373private static string GetCertificateFilePath(X509Certificate2 certificate) =>
376protected override IList<X509Certificate2> GetCertificatesToRemove(StoreName storeName, StoreLocation storeLocation)
381protected override void PopulateCertificatesFromStore(X509Store store, List<X509Certificate2> certificates, bool requireExportable)
387var certsFromStore = new List<X509Certificate2>();
418private sealed class ThumbprintComparer : IEqualityComparer<X509Certificate2>
420public static readonly IEqualityComparer<X509Certificate2> Instance = new ThumbprintComparer();
423bool IEqualityComparer<X509Certificate2>.Equals(X509Certificate2 x, X509Certificate2 y) =>
427int IEqualityComparer<X509Certificate2>.GetHashCode([DisallowNull] X509Certificate2 obj) =>
431private static ICollection<X509Certificate2> GetCertsFromDisk()
433var certsFromDisk = new List<X509Certificate2>();
445var certificate = new X509Certificate2(file);
459protected override void RemoveCertificateFromUserStoreCore(X509Certificate2 certificate)
Templates.Mvc.Tests (102)
src\Shared\CertificateGeneration\CertificateManager.cs (49)
69public static bool IsHttpsDevelopmentCertificate(X509Certificate2 certificate)
81public IList<X509Certificate2> ListCertificates(
88var certificates = new List<X509Certificate2>();
94IEnumerable<X509Certificate2> matchingCertificates = certificates;
133return (IList<X509Certificate2>)matchingCertificates;
146bool HasOid(X509Certificate2 certificate, string oid) =>
150static byte GetCertificateVersion(X509Certificate2 c)
169bool IsValidCertificate(X509Certificate2 certificate, DateTimeOffset currentDate, bool requireExportable) =>
176protected virtual void PopulateCertificatesFromStore(X509Store store, List<X509Certificate2> certificates, bool requireExportable)
178certificates.AddRange(store.Certificates.OfType<X509Certificate2>());
181public IList<X509Certificate2> GetHttpsCertificates() =>
211X509Certificate2? certificate = null;
221foreach (var candidate in currentUserCertificates)
416X509Certificate2 certificate;
475foreach (var certificate in filteredCertificates)
483public abstract TrustLevel GetTrustLevel(X509Certificate2 certificate);
485protected abstract X509Certificate2 SaveCertificateCore(X509Certificate2 certificate, StoreName storeName, StoreLocation storeLocation);
488protected abstract TrustLevel TrustCertificateCore(X509Certificate2 certificate);
490protected abstract bool IsExportable(X509Certificate2 c);
492protected abstract void RemoveCertificateFromTrustedRoots(X509Certificate2 certificate);
494protected abstract IList<X509Certificate2> GetCertificatesToRemove(StoreName storeName, StoreLocation storeLocation);
502internal void ExportCertificate(X509Certificate2 certificate, string path, bool includePrivateKey, string? password, CertificateKeyExportFormat format)
646internal X509Certificate2 CreateAspNetCoreHttpsDevelopmentCertificate(DateTimeOffset notBefore, DateTimeOffset notAfter)
692var certificate = CreateSelfSignedCertificate(subject, extensions, notBefore, notAfter);
696internal X509Certificate2 SaveCertificate(X509Certificate2 certificate)
712internal TrustLevel TrustCertificate(X509Certificate2 certificate)
739foreach (var certificate in certificates)
747internal void RemoveCertificate(X509Certificate2 certificate, RemoveLocations locations)
768internal abstract CheckCertificateStateResult CheckCertificateState(X509Certificate2 candidate);
770internal abstract void CorrectCertificateState(X509Certificate2 candidate);
772internal static X509Certificate2 CreateSelfSignedCertificate(
786var result = request.CreateSelfSigned(notBefore, notAfter);
801internal static void DisposeCertificates(IEnumerable<X509Certificate2> disposables)
803foreach (var disposable in disposables)
815protected void RemoveCertificateFromUserStore(X509Certificate2 certificate)
833protected virtual void RemoveCertificateFromUserStoreCore(X509Certificate2 certificate)
837var matching = store.Certificates
838.OfType<X509Certificate2>()
844internal static string ToCertificateDescription(IEnumerable<X509Certificate2> certificates)
857internal static string GetDescription(X509Certificate2 c) =>
863internal static bool AreCertificatesEqual(X509Certificate2 cert1, X509Certificate2 cert2)
877internal static bool TryFindCertificateInStore(X509Store store, X509Certificate2 certificate, [NotNullWhen(true)] out X509Certificate2? foundCertificate)
888var certificatesToDispose = new List<X509Certificate2>();
889foreach (var candidate in certificatesWithSubjectName.OfType<X509Certificate2>())
src\Shared\CertificateGeneration\MacOSCertificateManager.cs (28)
15/// Normally, we avoid the use of <see cref="X509Certificate2.Thumbprint"/> because it's a SHA-1 hash and, therefore,
85protected override TrustLevel TrustCertificateCore(X509Certificate2 publicCertificate)
129internal override CheckCertificateStateResult CheckCertificateState(X509Certificate2 candidate)
136internal override void CorrectCertificateState(X509Certificate2 candidate)
151public override TrustLevel GetTrustLevel(X509Certificate2 certificate)
177protected override void RemoveCertificateFromTrustedRoots(X509Certificate2 certificate)
198private static void RemoveAdminTrustRule(X509Certificate2 certificate)
237private static void RemoveCertificateFromKeychain(string keychain, X509Certificate2 certificate)
274private static bool IsCertOnKeychain(string keychain, X509Certificate2 certificate)
305protected override bool IsExportable(X509Certificate2 c) => true;
307protected override X509Certificate2 SaveCertificateCore(X509Certificate2 certificate, StoreName storeName, StoreLocation storeLocation)
336private static void SaveCertificateToUserKeychain(X509Certificate2 certificate)
373private static string GetCertificateFilePath(X509Certificate2 certificate) =>
376protected override IList<X509Certificate2> GetCertificatesToRemove(StoreName storeName, StoreLocation storeLocation)
381protected override void PopulateCertificatesFromStore(X509Store store, List<X509Certificate2> certificates, bool requireExportable)
387var certsFromStore = new List<X509Certificate2>();
418private sealed class ThumbprintComparer : IEqualityComparer<X509Certificate2>
420public static readonly IEqualityComparer<X509Certificate2> Instance = new ThumbprintComparer();
423bool IEqualityComparer<X509Certificate2>.Equals(X509Certificate2 x, X509Certificate2 y) =>
427int IEqualityComparer<X509Certificate2>.GetHashCode([DisallowNull] X509Certificate2 obj) =>
431private static ICollection<X509Certificate2> GetCertsFromDisk()
433var certsFromDisk = new List<X509Certificate2>();
445var certificate = new X509Certificate2(file);
459protected override void RemoveCertificateFromUserStoreCore(X509Certificate2 certificate)
Templates.Tests (102)
src\Shared\CertificateGeneration\CertificateManager.cs (49)
69public static bool IsHttpsDevelopmentCertificate(X509Certificate2 certificate)
81public IList<X509Certificate2> ListCertificates(
88var certificates = new List<X509Certificate2>();
94IEnumerable<X509Certificate2> matchingCertificates = certificates;
133return (IList<X509Certificate2>)matchingCertificates;
146bool HasOid(X509Certificate2 certificate, string oid) =>
150static byte GetCertificateVersion(X509Certificate2 c)
169bool IsValidCertificate(X509Certificate2 certificate, DateTimeOffset currentDate, bool requireExportable) =>
176protected virtual void PopulateCertificatesFromStore(X509Store store, List<X509Certificate2> certificates, bool requireExportable)
178certificates.AddRange(store.Certificates.OfType<X509Certificate2>());
181public IList<X509Certificate2> GetHttpsCertificates() =>
211X509Certificate2? certificate = null;
221foreach (var candidate in currentUserCertificates)
416X509Certificate2 certificate;
475foreach (var certificate in filteredCertificates)
483public abstract TrustLevel GetTrustLevel(X509Certificate2 certificate);
485protected abstract X509Certificate2 SaveCertificateCore(X509Certificate2 certificate, StoreName storeName, StoreLocation storeLocation);
488protected abstract TrustLevel TrustCertificateCore(X509Certificate2 certificate);
490protected abstract bool IsExportable(X509Certificate2 c);
492protected abstract void RemoveCertificateFromTrustedRoots(X509Certificate2 certificate);
494protected abstract IList<X509Certificate2> GetCertificatesToRemove(StoreName storeName, StoreLocation storeLocation);
502internal void ExportCertificate(X509Certificate2 certificate, string path, bool includePrivateKey, string? password, CertificateKeyExportFormat format)
646internal X509Certificate2 CreateAspNetCoreHttpsDevelopmentCertificate(DateTimeOffset notBefore, DateTimeOffset notAfter)
692var certificate = CreateSelfSignedCertificate(subject, extensions, notBefore, notAfter);
696internal X509Certificate2 SaveCertificate(X509Certificate2 certificate)
712internal TrustLevel TrustCertificate(X509Certificate2 certificate)
739foreach (var certificate in certificates)
747internal void RemoveCertificate(X509Certificate2 certificate, RemoveLocations locations)
768internal abstract CheckCertificateStateResult CheckCertificateState(X509Certificate2 candidate);
770internal abstract void CorrectCertificateState(X509Certificate2 candidate);
772internal static X509Certificate2 CreateSelfSignedCertificate(
786var result = request.CreateSelfSigned(notBefore, notAfter);
801internal static void DisposeCertificates(IEnumerable<X509Certificate2> disposables)
803foreach (var disposable in disposables)
815protected void RemoveCertificateFromUserStore(X509Certificate2 certificate)
833protected virtual void RemoveCertificateFromUserStoreCore(X509Certificate2 certificate)
837var matching = store.Certificates
838.OfType<X509Certificate2>()
844internal static string ToCertificateDescription(IEnumerable<X509Certificate2> certificates)
857internal static string GetDescription(X509Certificate2 c) =>
863internal static bool AreCertificatesEqual(X509Certificate2 cert1, X509Certificate2 cert2)
877internal static bool TryFindCertificateInStore(X509Store store, X509Certificate2 certificate, [NotNullWhen(true)] out X509Certificate2? foundCertificate)
888var certificatesToDispose = new List<X509Certificate2>();
889foreach (var candidate in certificatesWithSubjectName.OfType<X509Certificate2>())
src\Shared\CertificateGeneration\MacOSCertificateManager.cs (28)
15/// Normally, we avoid the use of <see cref="X509Certificate2.Thumbprint"/> because it's a SHA-1 hash and, therefore,
85protected override TrustLevel TrustCertificateCore(X509Certificate2 publicCertificate)
129internal override CheckCertificateStateResult CheckCertificateState(X509Certificate2 candidate)
136internal override void CorrectCertificateState(X509Certificate2 candidate)
151public override TrustLevel GetTrustLevel(X509Certificate2 certificate)
177protected override void RemoveCertificateFromTrustedRoots(X509Certificate2 certificate)
198private static void RemoveAdminTrustRule(X509Certificate2 certificate)
237private static void RemoveCertificateFromKeychain(string keychain, X509Certificate2 certificate)
274private static bool IsCertOnKeychain(string keychain, X509Certificate2 certificate)
305protected override bool IsExportable(X509Certificate2 c) => true;
307protected override X509Certificate2 SaveCertificateCore(X509Certificate2 certificate, StoreName storeName, StoreLocation storeLocation)
336private static void SaveCertificateToUserKeychain(X509Certificate2 certificate)
373private static string GetCertificateFilePath(X509Certificate2 certificate) =>
376protected override IList<X509Certificate2> GetCertificatesToRemove(StoreName storeName, StoreLocation storeLocation)
381protected override void PopulateCertificatesFromStore(X509Store store, List<X509Certificate2> certificates, bool requireExportable)
387var certsFromStore = new List<X509Certificate2>();
418private sealed class ThumbprintComparer : IEqualityComparer<X509Certificate2>
420public static readonly IEqualityComparer<X509Certificate2> Instance = new ThumbprintComparer();
423bool IEqualityComparer<X509Certificate2>.Equals(X509Certificate2 x, X509Certificate2 y) =>
427int IEqualityComparer<X509Certificate2>.GetHashCode([DisallowNull] X509Certificate2 obj) =>
431private static ICollection<X509Certificate2> GetCertsFromDisk()
433var certsFromDisk = new List<X509Certificate2>();
445var certificate = new X509Certificate2(file);
459protected override void RemoveCertificateFromUserStoreCore(X509Certificate2 certificate)
WebTransportInteractiveSampleApp (4)
WebTransportSampleApp (3)
WsFedSample (2)