97 instantiations of X509Certificate2
Aspire.Dashboard (2)
Aspire.Dashboard.Components.Tests (1)
Aspire.Dashboard.Tests (2)
Aspire.Hosting (1)
Aspire.Hosting.Tests (2)
Binding.UDS.IntegrationTests (1)
dotnet-dev-certs (4)
dotnet-svcutil-lib (11)
Infrastructure.Common (6)
Microsoft.AspNetCore.DeveloperCertificates.XPlat (4)
Microsoft.AspNetCore.HttpOverrides (1)
Microsoft.AspNetCore.Server.IISIntegration (1)
Microsoft.AspNetCore.Server.Kestrel.Core (13)
Microsoft.AspNetCore.Server.Kestrel.Transport.Quic (1)
Microsoft.Build.Tasks.Core (1)
RepoTasks (4)
System.Net.Http.WinHttpHandler (2)
System.Net.Quic (1)
System.Net.Security (6)
System.Security.Cryptography (14)
System.Security.Cryptography.Pkcs (1)
System.Security.Cryptography.Xml (3)
System.ServiceModel.Http.Tests (1)
System.ServiceModel.NetFramingBase (2)
System.ServiceModel.Primitives (11)
System.Windows.Extensions (1)
1541 references to X509Certificate2
aspire (115)
Certificates\CertificateGeneration\CertificateManager.cs (49)
119public static bool IsHttpsDevelopmentCertificate(X509Certificate2 certificate)
131public IList<X509Certificate2> ListCertificates(
138var certificates = new List<X509Certificate2>();
144IEnumerable<X509Certificate2> matchingCertificates = certificates;
195return (IList<X509Certificate2>)matchingCertificates;
208bool HasOid(X509Certificate2 certificate, string oid) =>
220internal bool IsValidCertificate(X509Certificate2 certificate, DateTimeOffset currentDate, bool requireExportable)
227internal static byte GetCertificateVersion(X509Certificate2 c)
246protected virtual void PopulateCertificatesFromStore(X509Store store, List<X509Certificate2> certificates, bool requireExportable)
248certificates.AddRange(store.Certificates.OfType<X509Certificate2>());
251public IList<X509Certificate2> GetHttpsCertificates() =>
317X509Certificate2? certificate = null;
327foreach (var candidate in currentUserCertificates)
553X509Certificate2? certificate = null;
619foreach (var certificate in filteredCertificates)
627public abstract TrustLevel GetTrustLevel(X509Certificate2 certificate);
629protected abstract X509Certificate2 SaveCertificateCore(X509Certificate2 certificate, StoreName storeName, StoreLocation storeLocation);
632protected abstract TrustLevel TrustCertificateCore(X509Certificate2 certificate);
634internal abstract bool IsExportable(X509Certificate2 c);
636protected abstract void RemoveCertificateFromTrustedRoots(X509Certificate2 certificate);
638protected abstract IList<X509Certificate2> GetCertificatesToRemove(StoreName storeName, StoreLocation storeLocation);
646internal void ExportCertificate(X509Certificate2 certificate, string path, bool includePrivateKey, string? password, CertificateKeyExportFormat format)
799internal X509Certificate2 CreateAspNetCoreHttpsDevelopmentCertificate(DateTimeOffset notBefore, DateTimeOffset notAfter)
851var certificate = CreateSelfSignedCertificate(subject, extensions, notBefore, notAfter);
855internal X509Certificate2 SaveCertificate(X509Certificate2 certificate)
871internal TrustLevel TrustCertificate(X509Certificate2 certificate)
898foreach (var certificate in certificates)
906internal void RemoveCertificate(X509Certificate2 certificate, RemoveLocations locations)
927internal abstract CheckCertificateStateResult CheckCertificateState(X509Certificate2 candidate);
929internal abstract void CorrectCertificateState(X509Certificate2 candidate);
943internal static X509Certificate2 CreateSelfSignedCertificate(
971var result = request.CreateSelfSigned(notBefore, notAfter);
986internal static void DisposeCertificates(IEnumerable<X509Certificate2> disposables)
988foreach (var disposable in disposables)
1000protected void RemoveCertificateFromUserStore(X509Certificate2 certificate)
1018protected virtual void RemoveCertificateFromUserStoreCore(X509Certificate2 certificate)
1022var matching = store.Certificates
1023.OfType<X509Certificate2>()
1029internal string ToCertificateDescription(IEnumerable<X509Certificate2> certificates)
1042internal string GetDescription(X509Certificate2 c) =>
1048internal static bool AreCertificatesEqual(X509Certificate2 cert1, X509Certificate2 cert2)
1062internal static bool TryFindCertificateInStore(X509Store store, X509Certificate2 certificate, [NotNullWhen(true)] out X509Certificate2? foundCertificate)
1073var certificatesToDispose = new List<X509Certificate2>();
1074foreach (var candidate in certificatesWithSubjectName.OfType<X509Certificate2>())
Certificates\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 void RemoveAdminTrustRule(X509Certificate2 certificate)
237private void RemoveCertificateFromKeychain(string keychain, X509Certificate2 certificate)
274private static bool IsCertOnKeychain(string keychain, X509Certificate2 certificate)
305internal override bool IsExportable(X509Certificate2 c) => true;
307protected override X509Certificate2 SaveCertificateCore(X509Certificate2 certificate, StoreName storeName, StoreLocation storeLocation)
336private 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 ICollection<X509Certificate2> GetCertsFromDisk()
433var certsFromDisk = new List<X509Certificate2>();
445var certificate = X509CertificateLoader.LoadPkcs12FromFile(file, password: null);
459protected override void RemoveCertificateFromUserStoreCore(X509Certificate2 certificate)
Aspire.Cli.Tests (11)
Aspire.Dashboard (6)
Aspire.Dashboard.Components.Tests (2)
Aspire.Dashboard.Tests (19)
Aspire.Hosting (37)
Aspire.Hosting.Azure.Tests (4)
Aspire.Hosting.Redis.Tests (6)
Aspire.Hosting.Tests (37)
Aspire.Hosting.Yarp.Tests (6)
Aspire.Playground.Tests (8)
Aspire.TestUtilities (8)
Binding.UDS.IntegrationTests (5)
Client.ExpectedExceptions.IntegrationTests (1)
ConfigurationSchemaGenerator.Tests (1)
dotnet (1)
dotnet-dev-certs (109)
src\aspnetcore\src\Shared\CertificateGeneration\CertificateManager.cs (49)
121public static bool IsHttpsDevelopmentCertificate(X509Certificate2 certificate)
133public IList<X509Certificate2> ListCertificates(
140var certificates = new List<X509Certificate2>();
146IEnumerable<X509Certificate2> matchingCertificates = certificates;
197return (IList<X509Certificate2>)matchingCertificates;
210bool HasOid(X509Certificate2 certificate, string oid) =>
222internal bool IsValidCertificate(X509Certificate2 certificate, DateTimeOffset currentDate, bool requireExportable)
229internal static byte GetCertificateVersion(X509Certificate2 c)
248protected virtual void PopulateCertificatesFromStore(X509Store store, List<X509Certificate2> certificates, bool requireExportable)
250certificates.AddRange(store.Certificates.OfType<X509Certificate2>());
253public IList<X509Certificate2> GetHttpsCertificates() =>
320X509Certificate2? certificate = null;
330foreach (var candidate in currentUserCertificates)
556X509Certificate2? certificate = null;
622foreach (var certificate in filteredCertificates)
630public abstract TrustLevel GetTrustLevel(X509Certificate2 certificate);
632protected abstract X509Certificate2 SaveCertificateCore(X509Certificate2 certificate, StoreName storeName, StoreLocation storeLocation);
635protected abstract TrustLevel TrustCertificateCore(X509Certificate2 certificate);
637internal abstract bool IsExportable(X509Certificate2 c);
639protected abstract void RemoveCertificateFromTrustedRoots(X509Certificate2 certificate);
641protected abstract IList<X509Certificate2> GetCertificatesToRemove(StoreName storeName, StoreLocation storeLocation);
649internal void ExportCertificate(X509Certificate2 certificate, string path, bool includePrivateKey, string? password, CertificateKeyExportFormat format)
802internal X509Certificate2 CreateAspNetCoreHttpsDevelopmentCertificate(DateTimeOffset notBefore, DateTimeOffset notAfter)
854var certificate = CreateSelfSignedCertificate(subject, extensions, notBefore, notAfter);
858internal X509Certificate2 SaveCertificate(X509Certificate2 certificate)
874internal TrustLevel TrustCertificate(X509Certificate2 certificate)
901foreach (var certificate in certificates)
909internal void RemoveCertificate(X509Certificate2 certificate, RemoveLocations locations)
930internal abstract CheckCertificateStateResult CheckCertificateState(X509Certificate2 candidate);
932internal abstract void CorrectCertificateState(X509Certificate2 candidate);
946internal static X509Certificate2 CreateSelfSignedCertificate(
974var result = request.CreateSelfSigned(notBefore, notAfter);
989internal static void DisposeCertificates(IEnumerable<X509Certificate2> disposables)
991foreach (var disposable in disposables)
1003protected void RemoveCertificateFromUserStore(X509Certificate2 certificate)
1021protected virtual void RemoveCertificateFromUserStoreCore(X509Certificate2 certificate)
1025var matching = store.Certificates
1026.OfType<X509Certificate2>()
1032internal static string ToCertificateDescription(IEnumerable<X509Certificate2> certificates)
1045internal static string GetDescription(X509Certificate2 c) =>
1051internal static bool AreCertificatesEqual(X509Certificate2 cert1, X509Certificate2 cert2)
1065internal static bool TryFindCertificateInStore(X509Store store, X509Certificate2 certificate, [NotNullWhen(true)] out X509Certificate2? foundCertificate)
1076var certificatesToDispose = new List<X509Certificate2>();
1077foreach (var candidate in certificatesWithSubjectName.OfType<X509Certificate2>())
src\aspnetcore\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)
305internal 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)
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;
152var publicOnly = new X509Certificate2(certificate.RawData);
170private static X509Certificate2 CertificateFromThumbprint(X509Store store, string thumbprint, bool validOnly)
176private static X509Certificate2 CertificateFromThumbprint(StoreName storeName,
181X509Certificate2 resultCert = null;
191private static X509Certificate2 KeychainCertificateFromThumbprint(string thumbprint, bool validOnly)
193X509Certificate2 resultCert = null;
206public static X509Certificate2 RootCertificateFromThumprint(string thumbprint, bool validOnly)
212public static X509Certificate2 ClientCertificateFromThumprint(string thumbprint, bool validOnly)
218public static X509Certificate2 PeerCertificateFromThumprint(string thumbprint, bool validOnly)
224public static X509Certificate2 OSXLocalKeychainCertificateFromThumprint(string thumbprint, bool validOnly)
232public static X509Certificate2 InstallCertificateToRootStore(X509Certificate2 certificate)
242public static X509Certificate2 InstallCertificateToMyStore(X509Certificate2 certificate)
255public static X509Certificate2 InstallCertificateToTrustedPeopleStore(X509Certificate2 certificate)
270public static X509Certificate2 InstallCertificateToOSXKeychainStore(X509Certificate2 certificate)
Microsoft.AspNetCore.DataProtection (28)
Microsoft.AspNetCore.DataProtection.Extensions (10)
Microsoft.AspNetCore.DeveloperCertificates.XPlat (103)
src\aspnetcore\src\Shared\CertificateGeneration\CertificateManager.cs (49)
121public static bool IsHttpsDevelopmentCertificate(X509Certificate2 certificate)
133public IList<X509Certificate2> ListCertificates(
140var certificates = new List<X509Certificate2>();
146IEnumerable<X509Certificate2> matchingCertificates = certificates;
197return (IList<X509Certificate2>)matchingCertificates;
210bool HasOid(X509Certificate2 certificate, string oid) =>
222internal bool IsValidCertificate(X509Certificate2 certificate, DateTimeOffset currentDate, bool requireExportable)
229internal static byte GetCertificateVersion(X509Certificate2 c)
248protected virtual void PopulateCertificatesFromStore(X509Store store, List<X509Certificate2> certificates, bool requireExportable)
250certificates.AddRange(store.Certificates.OfType<X509Certificate2>());
253public IList<X509Certificate2> GetHttpsCertificates() =>
320X509Certificate2? certificate = null;
330foreach (var candidate in currentUserCertificates)
556X509Certificate2? certificate = null;
622foreach (var certificate in filteredCertificates)
630public abstract TrustLevel GetTrustLevel(X509Certificate2 certificate);
632protected abstract X509Certificate2 SaveCertificateCore(X509Certificate2 certificate, StoreName storeName, StoreLocation storeLocation);
635protected abstract TrustLevel TrustCertificateCore(X509Certificate2 certificate);
637internal abstract bool IsExportable(X509Certificate2 c);
639protected abstract void RemoveCertificateFromTrustedRoots(X509Certificate2 certificate);
641protected abstract IList<X509Certificate2> GetCertificatesToRemove(StoreName storeName, StoreLocation storeLocation);
649internal void ExportCertificate(X509Certificate2 certificate, string path, bool includePrivateKey, string? password, CertificateKeyExportFormat format)
802internal X509Certificate2 CreateAspNetCoreHttpsDevelopmentCertificate(DateTimeOffset notBefore, DateTimeOffset notAfter)
854var certificate = CreateSelfSignedCertificate(subject, extensions, notBefore, notAfter);
858internal X509Certificate2 SaveCertificate(X509Certificate2 certificate)
874internal TrustLevel TrustCertificate(X509Certificate2 certificate)
901foreach (var certificate in certificates)
909internal void RemoveCertificate(X509Certificate2 certificate, RemoveLocations locations)
930internal abstract CheckCertificateStateResult CheckCertificateState(X509Certificate2 candidate);
932internal abstract void CorrectCertificateState(X509Certificate2 candidate);
946internal static X509Certificate2 CreateSelfSignedCertificate(
974var result = request.CreateSelfSigned(notBefore, notAfter);
989internal static void DisposeCertificates(IEnumerable<X509Certificate2> disposables)
991foreach (var disposable in disposables)
1003protected void RemoveCertificateFromUserStore(X509Certificate2 certificate)
1021protected virtual void RemoveCertificateFromUserStoreCore(X509Certificate2 certificate)
1025var matching = store.Certificates
1026.OfType<X509Certificate2>()
1032internal static string ToCertificateDescription(IEnumerable<X509Certificate2> certificates)
1045internal static string GetDescription(X509Certificate2 c) =>
1051internal static bool AreCertificatesEqual(X509Certificate2 cert1, X509Certificate2 cert2)
1065internal static bool TryFindCertificateInStore(X509Store store, X509Certificate2 certificate, [NotNullWhen(true)] out X509Certificate2? foundCertificate)
1076var certificatesToDispose = new List<X509Certificate2>();
1077foreach (var candidate in certificatesWithSubjectName.OfType<X509Certificate2>())
src\aspnetcore\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)
305internal 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.Http (4)
Microsoft.AspNetCore.Http.Abstractions (4)
Microsoft.AspNetCore.Http.Features (2)
Microsoft.AspNetCore.HttpOverrides (9)
Microsoft.AspNetCore.Server.IISIntegration (3)
Microsoft.AspNetCore.Server.Kestrel.Core (165)
Middleware\HttpsConnectionMiddleware.cs (14)
41private readonly X509Certificate2? _serverCertificate;
42private readonly Func<ConnectionContext, string?, X509Certificate2?>? _serverCertificateSelector;
101var certificate = _serverCertificate;
281private X509Certificate2 LocateCertificateWithPrivateKey(X509Certificate2 certificate)
357var cert = _serverCertificateSelector(context, name);
407Func<X509Certificate2, X509Chain?, SslPolicyErrors, bool>? clientCertificateValidation,
425var certificate2 = ConvertToX509Certificate2(certificate);
498internal static void EnsureCertificateIsAllowedForServerAuth(X509Certificate2 certificate, ILogger<HttpsConnectionMiddleware> logger)
510private static X509Certificate2? ConvertToX509Certificate2(X509Certificate? certificate)
517if (certificate is X509Certificate2 cert2)
586var cert = httpsOptions.ServerCertificateSelector(null, host);
629public static void LocatingCertWithPrivateKey(this ILogger<HttpsConnectionMiddleware> logger, X509Certificate2 certificate) => LocatingCertWithPrivateKey(logger, certificate.Thumbprint);
634public static void FoundCertWithPrivateKey(this ILogger<HttpsConnectionMiddleware> logger, X509Certificate2 certificate, StoreLocation storeLocation)
src\aspnetcore\src\Shared\CertificateGeneration\CertificateManager.cs (49)
121public static bool IsHttpsDevelopmentCertificate(X509Certificate2 certificate)
133public IList<X509Certificate2> ListCertificates(
140var certificates = new List<X509Certificate2>();
146IEnumerable<X509Certificate2> matchingCertificates = certificates;
197return (IList<X509Certificate2>)matchingCertificates;
210bool HasOid(X509Certificate2 certificate, string oid) =>
222internal bool IsValidCertificate(X509Certificate2 certificate, DateTimeOffset currentDate, bool requireExportable)
229internal static byte GetCertificateVersion(X509Certificate2 c)
248protected virtual void PopulateCertificatesFromStore(X509Store store, List<X509Certificate2> certificates, bool requireExportable)
250certificates.AddRange(store.Certificates.OfType<X509Certificate2>());
253public IList<X509Certificate2> GetHttpsCertificates() =>
320X509Certificate2? certificate = null;
330foreach (var candidate in currentUserCertificates)
556X509Certificate2? certificate = null;
622foreach (var certificate in filteredCertificates)
630public abstract TrustLevel GetTrustLevel(X509Certificate2 certificate);
632protected abstract X509Certificate2 SaveCertificateCore(X509Certificate2 certificate, StoreName storeName, StoreLocation storeLocation);
635protected abstract TrustLevel TrustCertificateCore(X509Certificate2 certificate);
637internal abstract bool IsExportable(X509Certificate2 c);
639protected abstract void RemoveCertificateFromTrustedRoots(X509Certificate2 certificate);
641protected abstract IList<X509Certificate2> GetCertificatesToRemove(StoreName storeName, StoreLocation storeLocation);
649internal void ExportCertificate(X509Certificate2 certificate, string path, bool includePrivateKey, string? password, CertificateKeyExportFormat format)
802internal X509Certificate2 CreateAspNetCoreHttpsDevelopmentCertificate(DateTimeOffset notBefore, DateTimeOffset notAfter)
854var certificate = CreateSelfSignedCertificate(subject, extensions, notBefore, notAfter);
858internal X509Certificate2 SaveCertificate(X509Certificate2 certificate)
874internal TrustLevel TrustCertificate(X509Certificate2 certificate)
901foreach (var certificate in certificates)
909internal void RemoveCertificate(X509Certificate2 certificate, RemoveLocations locations)
930internal abstract CheckCertificateStateResult CheckCertificateState(X509Certificate2 candidate);
932internal abstract void CorrectCertificateState(X509Certificate2 candidate);
946internal static X509Certificate2 CreateSelfSignedCertificate(
974var result = request.CreateSelfSigned(notBefore, notAfter);
989internal static void DisposeCertificates(IEnumerable<X509Certificate2> disposables)
991foreach (var disposable in disposables)
1003protected void RemoveCertificateFromUserStore(X509Certificate2 certificate)
1021protected virtual void RemoveCertificateFromUserStoreCore(X509Certificate2 certificate)
1025var matching = store.Certificates
1026.OfType<X509Certificate2>()
1032internal static string ToCertificateDescription(IEnumerable<X509Certificate2> certificates)
1045internal static string GetDescription(X509Certificate2 c) =>
1051internal static bool AreCertificatesEqual(X509Certificate2 cert1, X509Certificate2 cert2)
1065internal static bool TryFindCertificateInStore(X509Store store, X509Certificate2 certificate, [NotNullWhen(true)] out X509Certificate2? foundCertificate)
1076var certificatesToDispose = new List<X509Certificate2>();
1077foreach (var candidate in certificatesWithSubjectName.OfType<X509Certificate2>())
src\aspnetcore\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)
305internal 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.Transport.Quic (6)
Microsoft.AspNetCore.Testing (7)
Microsoft.AspNetCore.Testing.Tests (5)
Microsoft.Bcl.Cryptography (21)
Microsoft.Build.Tasks.Core (13)
ManifestUtil\SecurityUtil.cs (9)
561X509Certificate2 cert = GetCert(certThumbprint);
608using X509Certificate2 cert = new X509Certificate2(certPath, certPassword, X509KeyStorageFlags.PersistKeySet);
612private static bool UseSha256Algorithm(X509Certificate2 cert)
631public static void SignFile(X509Certificate2 cert, Uri timestampUrl, string path)
639private static void SignFileInternal(X509Certificate2 cert,
762private static void SignPEFile(X509Certificate2 cert, Uri timestampUrl, string path, System.Resources.ResourceManager resources, bool useSha256)
776private static void SignPEFileInternal(X509Certificate2 cert, Uri timestampUrl,
882internal static X509Certificate2 GetCert(string thumbprint)
901private static bool IsCertInStore(X509Certificate2 cert)
Microsoft.DotNet.HotReload.Watch (3)
netstandard (1)
NuGet.Commands (8)
NuGet.Packaging (64)
Signing\Utility\CertificateUtility.cs (17)
29public static string X509Certificate2ToString(X509Certificate2 cert, HashAlgorithmName fingerprintAlgorithm)
46internal static IReadOnlyList<SignatureLog> X509Certificate2ToLogMessages(X509Certificate2 cert, HashAlgorithmName fingerprintAlgorithm, string indentation = " ")
70private static void X509Certificate2ToString(X509Certificate2 cert, StringBuilder certStringBuilder, HashAlgorithmName fingerprintAlgorithm, string indentation)
116var cert = certCollection[i];
156public static bool IsSignatureAlgorithmSupported(X509Certificate2 certificate)
175public static bool IsCertificatePublicKeyValid(X509Certificate2 certificate)
194public static bool HasLifetimeSigningEku(X509Certificate2 certificate)
205public static bool HasExtendedKeyUsage(X509Certificate2 certificate, string ekuOid)
238public static bool IsValidForPurposeFast(X509Certificate2 certificate, string ekuOid)
266public static bool IsCertificateValidityPeriodInTheFuture(X509Certificate2 certificate)
271public static bool IsDateInsideValidityPeriod(X509Certificate2 certificate, DateTimeOffset date)
285public static byte[] GetHash(X509Certificate2 certificate, HashAlgorithmName hashAlgorithm)
302public static string GetHashString(X509Certificate2 certificate, HashAlgorithmName hashAlgorithm)
328public static bool IsSelfIssued(X509Certificate2 certificate)
399foreach (var certificate in certificates)
472internal static IReadOnlyList<string> GetCrlDistributionPointUrls(X509Certificate2 cert)
537internal static IReadOnlyList<string> GetOcspUrls(X509Certificate2 cert)
PresentationUI (29)
RepoTasks (104)
src\aspnetcore\src\Shared\CertificateGeneration\CertificateManager.cs (49)
121public static bool IsHttpsDevelopmentCertificate(X509Certificate2 certificate)
133public IList<X509Certificate2> ListCertificates(
140var certificates = new List<X509Certificate2>();
146IEnumerable<X509Certificate2> matchingCertificates = certificates;
197return (IList<X509Certificate2>)matchingCertificates;
210bool HasOid(X509Certificate2 certificate, string oid) =>
222internal bool IsValidCertificate(X509Certificate2 certificate, DateTimeOffset currentDate, bool requireExportable)
229internal static byte GetCertificateVersion(X509Certificate2 c)
248protected virtual void PopulateCertificatesFromStore(X509Store store, List<X509Certificate2> certificates, bool requireExportable)
250certificates.AddRange(store.Certificates.OfType<X509Certificate2>());
253public IList<X509Certificate2> GetHttpsCertificates() =>
320X509Certificate2? certificate = null;
330foreach (var candidate in currentUserCertificates)
556X509Certificate2? certificate = null;
622foreach (var certificate in filteredCertificates)
630public abstract TrustLevel GetTrustLevel(X509Certificate2 certificate);
632protected abstract X509Certificate2 SaveCertificateCore(X509Certificate2 certificate, StoreName storeName, StoreLocation storeLocation);
635protected abstract TrustLevel TrustCertificateCore(X509Certificate2 certificate);
637internal abstract bool IsExportable(X509Certificate2 c);
639protected abstract void RemoveCertificateFromTrustedRoots(X509Certificate2 certificate);
641protected abstract IList<X509Certificate2> GetCertificatesToRemove(StoreName storeName, StoreLocation storeLocation);
649internal void ExportCertificate(X509Certificate2 certificate, string path, bool includePrivateKey, string? password, CertificateKeyExportFormat format)
802internal X509Certificate2 CreateAspNetCoreHttpsDevelopmentCertificate(DateTimeOffset notBefore, DateTimeOffset notAfter)
854var certificate = CreateSelfSignedCertificate(subject, extensions, notBefore, notAfter);
858internal X509Certificate2 SaveCertificate(X509Certificate2 certificate)
874internal TrustLevel TrustCertificate(X509Certificate2 certificate)
901foreach (var certificate in certificates)
909internal void RemoveCertificate(X509Certificate2 certificate, RemoveLocations locations)
930internal abstract CheckCertificateStateResult CheckCertificateState(X509Certificate2 candidate);
932internal abstract void CorrectCertificateState(X509Certificate2 candidate);
946internal static X509Certificate2 CreateSelfSignedCertificate(
974var result = request.CreateSelfSigned(notBefore, notAfter);
989internal static void DisposeCertificates(IEnumerable<X509Certificate2> disposables)
991foreach (var disposable in disposables)
1003protected void RemoveCertificateFromUserStore(X509Certificate2 certificate)
1021protected virtual void RemoveCertificateFromUserStoreCore(X509Certificate2 certificate)
1025var matching = store.Certificates
1026.OfType<X509Certificate2>()
1032internal static string ToCertificateDescription(IEnumerable<X509Certificate2> certificates)
1045internal static string GetDescription(X509Certificate2 c) =>
1051internal static bool AreCertificatesEqual(X509Certificate2 cert1, X509Certificate2 cert2)
1065internal static bool TryFindCertificateInStore(X509Store store, X509Certificate2 certificate, [NotNullWhen(true)] out X509Certificate2? foundCertificate)
1076var certificatesToDispose = new List<X509Certificate2>();
1077foreach (var candidate in certificatesWithSubjectName.OfType<X509Certificate2>())
src\aspnetcore\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)
305internal 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)
ScenarioTests.Common.Tests (1)
Security.TransportSecurity.IntegrationTests (7)
System (1)
System.DirectoryServices.AccountManagement (7)
System.Net.Http (12)
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 (13)
System.Net.HttpListener (9)
System.Net.Quic (16)
System\Net\Quic\Internal\MsQuicConfiguration.Cache.cs (3)
37public CacheKey(QUIC_SETTINGS settings, QUIC_CREDENTIAL_FLAGS flags, X509Certificate? certificate, ReadOnlyCollection<X509Certificate2>? intermediates, List<SslApplicationProtocol> alpnProtocols, QUIC_ALLOWED_CIPHER_SUITE_FLAGS allowedCipherSuites)
53foreach (X509Certificate2 intermediate in intermediates)
117private 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 (64)
System.Security.Cryptography (137)
System\Security\Cryptography\X509Certificates\X509Certificate2.cs (32)
89/// Initializes a new instance of the <see cref="X509Certificate2"/> class from certificate data.
103/// Initializes a new instance of the <see cref="X509Certificate2"/> class from certificate data,
758public X509Certificate2 CopyWithPrivateKey(ECDiffieHellman privateKey)
846public X509Certificate2 CopyWithPrivateKey(MLKem privateKey)
948public X509Certificate2 CopyWithPrivateKey(MLDsa privateKey)
1044public unsafe X509Certificate2 CopyWithPrivateKey(SlhDsa privateKey)
1154public X509Certificate2 CopyWithPrivateKey(CompositeMLDsa privateKey)
1241public static X509Certificate2 CreateFromPemFile(string certPemFilePath, string? keyPemFilePath = default)
1307public static X509Certificate2 CreateFromEncryptedPemFile(string certPemFilePath, ReadOnlySpan<char> password, string? keyPemFilePath = default)
1357public static X509Certificate2 CreateFromPem(ReadOnlySpan<char> certPem, ReadOnlySpan<char> keyPem)
1359using (X509Certificate2 certificate = CreateFromPem(certPem))
1443public static X509Certificate2 CreateFromEncryptedPem(ReadOnlySpan<char> certPem, ReadOnlySpan<char> keyPem, ReadOnlySpan<char> password)
1445using (X509Certificate2 certificate = CreateFromPem(certPem))
1487private static bool IsECDsa(X509Certificate2 certificate)
1495private static bool IsECDiffieHellman(X509Certificate2 certificate)
1525public static X509Certificate2 CreateFromPem(ReadOnlySpan<char> certPem)
1556X509Certificate2 ret = X509CertificateLoader.LoadCertificate(certData.Span);
1890private static X509Certificate2 ExtractKeyFromPem<TAlg>(
1894Func<TAlg, X509Certificate2> import) where TAlg : IDisposable
1912private static X509Certificate2 ExtractKeyFromPem<TAlg>(
1915Func<TAlg, X509Certificate2> import) where TAlg : IDisposable
1930private static X509Certificate2 ExtractKeyFromEncryptedPem<TAlg>(
1934Func<TAlg, X509Certificate2> import) where TAlg : IDisposable
1976private static bool HasECDiffieHellmanKeyUsage(X509Certificate2 certificate)
1994private static X509Certificate2 ExtractKeyFromEncryptedECPem(
1995X509Certificate2 certificate,
2033X509Certificate2? loaded = ExtractKeyFromECPrivateKeyInfo(certificate, decryptedPkcs8.Value);
2061private static X509Certificate2 ExtractKeyFromECPem(X509Certificate2 certificate, ReadOnlySpan<char> keyPem)
2116X509Certificate2? loaded = ExtractKeyFromECPrivateKeyInfo(certificate, base64Buffer.AsMemory(0, base64Written));
2139private static X509Certificate2? ExtractKeyFromECPrivateKeyInfo(
2140X509Certificate2 certificate,
System.Security.Cryptography.Pkcs (92)
System\Security\Cryptography\Pkcs\CmsSigner.cs (10)
25public X509Certificate2? Certificate { get; set; }
88public CmsSigner(X509Certificate2? certificate)
99public CmsSigner(SubjectIdentifierType signerIdentifierType, X509Certificate2? certificate)
109CmsSigner(SubjectIdentifierType signerIdentifierType, X509Certificate2? certificate, AsymmetricAlgorithm? privateKey)
120CmsSigner(SubjectIdentifierType signerIdentifierType, X509Certificate2? certificate, MLDsa? privateKey)
131CmsSigner(SubjectIdentifierType signerIdentifierType, X509Certificate2? certificate, SlhDsa? privateKey)
142CmsSigner(SubjectIdentifierType signerIdentifierType, X509Certificate2? certificate, CompositeMLDsa? privateKey)
172X509Certificate2? certificate,
181X509Certificate2? certificate,
492X509Certificate2 cert = elements[i].Certificate;
System.Security.Cryptography.X509Certificates (1)
System.Security.Cryptography.Xml (13)
System.ServiceModel.Http (11)
System\ServiceModel\Channels\HttpTransportSecurityHelpers.cs (7)
68bool identityValidator(HttpRequestMessage requestMessage, X509Certificate2 cert, X509Chain chain, SslPolicyErrors policyErrors)
87public static void SetServerCertificateValidationCallback(HttpClientHandler handler, Func<HttpRequestMessage, X509Certificate2, X509Chain, SslPolicyErrors, bool> validator)
93private static Func<HttpRequestMessage, X509Certificate2, X509Chain, SslPolicyErrors, bool> ChainValidator(
94Func<HttpRequestMessage, X509Certificate2, X509Chain, SslPolicyErrors, bool> previousValidator,
95Func<HttpRequestMessage, X509Certificate2, X509Chain, SslPolicyErrors, bool> validator)
102bool chained(HttpRequestMessage request, X509Certificate2 certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
116private static void ValidateServerCertificate(X509Certificate2 certificate, byte[] rawData, string thumbprint)
System.ServiceModel.Http.Tests (1)
System.ServiceModel.NetFramingBase (2)
System.ServiceModel.Primitives (64)
System\ServiceModel\Security\SecurityUtils.cs (6)
845internal static X509Certificate2 GetCertificateFromStore(StoreName storeName, StoreLocation storeLocation,
848X509Certificate2 certificate = GetCertificateFromStoreCore(storeName, storeLocation, findType, findValue, target, true);
858X509FindType findType, object findValue, EndpointAddress target, out X509Certificate2 certificate)
864private static X509Certificate2 GetCertificateFromStoreCore(StoreName storeName, StoreLocation storeLocation,
1018public static bool TryCreateX509CertificateFromRawData(byte[] rawData, out X509Certificate2 certificate)
1039internal static void ResetCertificate(X509Certificate2 certificate)
System.ServiceModel.Primitives.Tests (5)
System.Windows.Extensions (6)