84 return Pal.FriendlyName;
99 return Pal.HasPrivateKey;
103 [
Obsolete(
"X509Certificate2.PrivateKey is obsolete. Use the appropriate method to get the private key, such as GetRSAPrivateKey, or use the CopyWithPrivateKey method to create a new instance with a private key.", DiagnosticId =
"SYSLIB0028", UrlFormat =
"https://aka.ms/dotnet-warnings/{0}")]
185 return array.CloneByteArray();
249 [
Obsolete(
"X509Certificate and X509Certificate2 are immutable. Use the appropriate constructor to create a new certificate.", DiagnosticId =
"SYSLIB0026", UrlFormat =
"https://aka.ms/dotnet-warnings/{0}")]
504 using RSA rSA = this.GetRSAPublicKey();
554 [
Obsolete(
"X509Certificate and X509Certificate2 are immutable. Use the appropriate constructor to create a new certificate.", DiagnosticId =
"SYSLIB0026", UrlFormat =
"https://aka.ms/dotnet-warnings/{0}")]
560 [
Obsolete(
"X509Certificate and X509Certificate2 are immutable. Use the appropriate constructor to create a new certificate.", DiagnosticId =
"SYSLIB0026", UrlFormat =
"https://aka.ms/dotnet-warnings/{0}")]
567 [
Obsolete(
"X509Certificate and X509Certificate2 are immutable. Use the appropriate constructor to create a new certificate.", DiagnosticId =
"SYSLIB0026", UrlFormat =
"https://aka.ms/dotnet-warnings/{0}")]
573 [
Obsolete(
"X509Certificate and X509Certificate2 are immutable. Use the appropriate constructor to create a new certificate.", DiagnosticId =
"SYSLIB0026", UrlFormat =
"https://aka.ms/dotnet-warnings/{0}")]
579 [
Obsolete(
"X509Certificate and X509Certificate2 are immutable. Use the appropriate constructor to create a new certificate.", DiagnosticId =
"SYSLIB0026", UrlFormat =
"https://aka.ms/dotnet-warnings/{0}")]
586 [
Obsolete(
"X509Certificate and X509Certificate2 are immutable. Use the appropriate constructor to create a new certificate.", DiagnosticId =
"SYSLIB0026", UrlFormat =
"https://aka.ms/dotnet-warnings/{0}")]
597 for (
int i = 0; i <
x509Chain.ChainElements.Count; i++)
599 x509Chain.ChainElements[i].Certificate.Dispose();
667 case "1.2.840.113549.1.1.1":
669 case "1.2.840.10040.4.1":
675 case "1.2.840.10045.2.1":
695 case "1.2.840.113549.1.1.1":
697 case "1.2.840.10040.4.1":
703 case "1.2.840.10045.2.1":
720 return eCDsa !=
null;
739 if (
span.SequenceEqual(
"CERTIFICATE"))
778 TAlg val = factory();
780 val.ImportFromPem(contents[
pemFields2.Location]);
805 if (
span.SequenceEqual(
"ENCRYPTED PRIVATE KEY"))
807 TAlg val = factory();
static bool IsDSASupported
static bool AreSamePublicECParameters(ECParameters aParameters, ECParameters bParameters)
static bool TryFromBase64Chars(ReadOnlySpan< char > chars, Span< byte > bytes, out int bytesWritten)
static string ReadAllText(string path)
static string GetFullPath(string path)
static string Cryptography_X509_NoOrMismatchedPemKey
static string Format(string resourceFormat, object p1)
static string NotSupported_KeyAlgorithm
static string Cryptography_X509_NoPemCertificate
static string Cryptography_Cert_AlreadyHasPrivateKey
static string Cryptography_UnknownKeyAlgorithm
static string Cryptography_PrivateKey_WrongAlgorithm
static string Cryptography_PrivateKey_DoesNotMatch
static string Arg_EmptyOrNullArray
static void Return(byte[] array, int clearSize=-1)
static byte[] Rent(int minimumLength)
static new? DSA Create(string algName)
static new? ECDiffieHellman Create(string algorithm)
static new? ECDsa Create(string algorithm)
static new? RSA Create(string algName)
X500DistinguishedName IssuerName
X509Certificate2(byte[] rawData, string? password)
ECDiffieHellman? GetECDiffieHellmanPrivateKey()
static bool HasECDiffieHellmanKeyUsage(X509Certificate2 certificate)
static X509ContentType GetCertContentType(byte[] rawData)
static X509Certificate2 CreateFromPem(ReadOnlySpan< char > certPem, ReadOnlySpan< char > keyPem)
override void Import(byte[] rawData)
static X509Certificate2 CreateFromPemFile(string certPemFilePath, string? keyPemFilePath=null)
X509Certificate2(ReadOnlySpan< byte > rawData)
X509ExtensionCollection Extensions
X509Certificate2(byte[] rawData, SecureString? password)
volatile Oid _lazySignatureAlgorithm
static X509Certificate2 CreateFromEncryptedPem(ReadOnlySpan< char > certPem, ReadOnlySpan< char > keyPem, ReadOnlySpan< char > password)
override void Import(byte[] rawData, string? password, X509KeyStorageFlags keyStorageFlags)
static readonly string[] s_DsaPublicKeyPrivateKeyLabels
X509Certificate2(string fileName, SecureString? password, X509KeyStorageFlags keyStorageFlags)
X509Certificate2(string fileName, ReadOnlySpan< char > password, X509KeyStorageFlags keyStorageFlags=X509KeyStorageFlags.DefaultKeySet)
static X509Extension CreateCustomExtensionIfAny(Oid oid)
X509Certificate2(SerializationInfo info, StreamingContext context)
override void Import(string fileName, string? password, X509KeyStorageFlags keyStorageFlags)
static X509ContentType GetCertContentType(ReadOnlySpan< byte > rawData)
X500DistinguishedName SubjectName
override void Import(byte[] rawData, SecureString? password, X509KeyStorageFlags keyStorageFlags)
volatile X500DistinguishedName _lazyIssuerName
X509Certificate2(string fileName, string? password, X509KeyStorageFlags keyStorageFlags)
override void Import(string fileName, SecureString? password, X509KeyStorageFlags keyStorageFlags)
X509Certificate2(string fileName)
static X509ContentType GetCertContentType(string fileName)
override string ToString(bool verbose)
ECDiffieHellman? GetECDiffieHellmanPublicKey()
AsymmetricAlgorithm? PrivateKey
X509Certificate2(byte[] rawData)
X509Certificate2(string fileName, string? password)
X509Certificate2(byte[] rawData, string? password, X509KeyStorageFlags keyStorageFlags)
X509Certificate2 CopyWithPrivateKey(ECDiffieHellman privateKey)
static readonly string[] s_RsaPublicKeyPrivateKeyLabels
X509Certificate2(string fileName, SecureString? password)
volatile X509ExtensionCollection _lazyExtensions
volatile int _lazyVersion
X509Certificate2(X509Certificate certificate)
static X509Certificate2 ExtractKeyFromEncryptedPem< TAlg >(ReadOnlySpan< char > keyPem, ReadOnlySpan< char > password, Func< TAlg > factory, Func< TAlg, X509Certificate2 > import)
X509Certificate2(ReadOnlySpan< byte > rawData, ReadOnlySpan< char > password, X509KeyStorageFlags keyStorageFlags=X509KeyStorageFlags.DefaultKeySet)
X509Certificate2(byte[] rawData, SecureString? password, X509KeyStorageFlags keyStorageFlags)
static X509Certificate2 ExtractKeyFromPem< TAlg >(ReadOnlySpan< char > keyPem, string[] labels, Func< TAlg > factory, Func< TAlg, X509Certificate2 > import)
override string ToString()
static readonly string[] s_EcPublicKeyPrivateKeyLabels
static X509Certificate2 CreateFromPem(ReadOnlySpan< char > certPem)
static bool IsECDsa(X509Certificate2 certificate)
volatile PublicKey _lazyPublicKey
X509Certificate2(ICertificatePal pal)
static X509Certificate2 CreateFromEncryptedPemFile(string certPemFilePath, ReadOnlySpan< char > password, string? keyPemFilePath=null)
volatile X500DistinguishedName _lazySubjectName
volatile AsymmetricAlgorithm _lazyPrivateKey
string GetNameInfo(X509NameType nameType, bool forIssuer)
X509Certificate2(IntPtr handle)
override void Import(string fileName)
static bool IsECDiffieHellman(X509Certificate2 certificate)
volatile byte[] _lazyRawData
virtual byte[] GetKeyAlgorithmParameters()
static string FormatDate(DateTime date)
virtual string GetKeyAlgorithm()
virtual byte[] GetPublicKey()
virtual string GetSerialNumberString()
virtual string GetCertHashString()
ICertificatePal CopyWithPrivateKey(DSA privateKey)
static CertificateAsn Decode(ReadOnlyMemory< byte > encoded, AsnEncodingRules ruleSet)