# System.Security.Cryptography.X509Certificates ``` diff namespace System.Security.Cryptography.X509Certificates { public sealed class CertificateRequest { + public X509Certificate2 Create(X500DistinguishedName issuerName, X509SignatureGenerator generator, DateTimeOffset notBefore, DateTimeOffset notAfter, ReadOnlySpan serialNumber); + public X509Certificate2 Create(X509Certificate2 issuerCertificate, DateTimeOffset notBefore, DateTimeOffset notAfter, ReadOnlySpan serialNumber); } public sealed class X500DistinguishedName : AsnEncodedData { + public X500DistinguishedName(ReadOnlySpan encodedDistinguishedName); } public class X509Certificate2 : X509Certificate { + public X509Certificate2(ReadOnlySpan rawData); + public X509Certificate2(ReadOnlySpan rawData, ReadOnlySpan password, X509KeyStorageFlags keyStorageFlags = X509KeyStorageFlags.DefaultKeySet); + public X509Certificate2(string fileName, ReadOnlySpan password, X509KeyStorageFlags keyStorageFlags = X509KeyStorageFlags.DefaultKeySet); + public static X509Certificate2 CreateFromEncryptedPem(ReadOnlySpan certPem, ReadOnlySpan keyPem, ReadOnlySpan password); + public static X509Certificate2 CreateFromEncryptedPemFile(string certPemFilePath, ReadOnlySpan password, string keyPemFilePath = null); + public static X509Certificate2 CreateFromPem(ReadOnlySpan certPem, ReadOnlySpan keyPem); + public static X509Certificate2 CreateFromPemFile(string certPemFilePath, string keyPemFilePath = null); + public static X509ContentType GetCertContentType(ReadOnlySpan rawData); } public class X509Certificate2Collection : X509CertificateCollection { - public void Import(byte[] rawData, string password, X509KeyStorageFlags keyStorageFlags); + public void Import(byte[] rawData, string password, X509KeyStorageFlags keyStorageFlags = X509KeyStorageFlags.DefaultKeySet); + public void Import(ReadOnlySpan rawData); + public void Import(ReadOnlySpan rawData, ReadOnlySpan password, X509KeyStorageFlags keyStorageFlags = X509KeyStorageFlags.DefaultKeySet); + public void Import(ReadOnlySpan rawData, string password, X509KeyStorageFlags keyStorageFlags = X509KeyStorageFlags.DefaultKeySet); + public void Import(string fileName, ReadOnlySpan password, X509KeyStorageFlags keyStorageFlags = X509KeyStorageFlags.DefaultKeySet); - public void Import(string fileName, string password, X509KeyStorageFlags keyStorageFlags); + public void Import(string fileName, string password, X509KeyStorageFlags keyStorageFlags = X509KeyStorageFlags.DefaultKeySet); + public void ImportFromPem(ReadOnlySpan certPem); + public void ImportFromPemFile(string certPemFilePath); } public sealed class X509ChainPolicy { + public X509Certificate2Collection CustomTrustStore { get; } + public bool DisableCertificateDownloads { get; set; } + public X509ChainTrustMode TrustMode { get; set; } } + public enum X509ChainTrustMode { + CustomRootTrust = 1, + System = 0, + } public class X509Extension : AsnEncodedData { + public X509Extension(Oid oid, ReadOnlySpan rawData, bool critical); + public X509Extension(string oid, ReadOnlySpan rawData, bool critical); } public sealed class X509SubjectKeyIdentifierExtension : X509Extension { + public X509SubjectKeyIdentifierExtension(ReadOnlySpan subjectKeyIdentifier, bool critical); } } ```