Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
DSACertificateExtensions.cs
Go to the documentation of this file.
4
6
7[UnsupportedOSPlatform("ios")]
8[UnsupportedOSPlatform("tvos")]
9public static class DSACertificateExtensions
10{
11 public static DSA? GetDSAPublicKey(this X509Certificate2 certificate)
12 {
13 return certificate.GetPublicKey<DSA>();
14 }
15
16 public static DSA? GetDSAPrivateKey(this X509Certificate2 certificate)
17 {
18 return certificate.GetPrivateKey<DSA>();
19 }
20
21 public static X509Certificate2 CopyWithPrivateKey(this X509Certificate2 certificate, DSA privateKey)
22 {
23 if (certificate == null)
24 {
25 throw new ArgumentNullException("certificate");
26 }
27 if (privateKey == null)
28 {
29 throw new ArgumentNullException("privateKey");
30 }
31 if (certificate.HasPrivateKey)
32 {
34 }
35 using (DSA dSA = certificate.GetDSAPublicKey())
36 {
37 if (dSA == null)
38 {
40 }
41 DSAParameters dSAParameters = dSA.ExportParameters(includePrivateParameters: false);
42 DSAParameters dSAParameters2 = privateKey.ExportParameters(includePrivateParameters: false);
43 if (!dSAParameters.G.ContentsEqual(dSAParameters2.G) || !dSAParameters.P.ContentsEqual(dSAParameters2.P) || !dSAParameters.Q.ContentsEqual(dSAParameters2.Q) || !dSAParameters.Y.ContentsEqual(dSAParameters2.Y))
44 {
46 }
47 }
48 ICertificatePal pal = certificate.Pal.CopyWithPrivateKey(privateKey);
49 return new X509Certificate2(pal);
50 }
51}
static string Cryptography_Cert_AlreadyHasPrivateKey
Definition SR.cs:40
static string Cryptography_PrivateKey_WrongAlgorithm
Definition SR.cs:86
static string Cryptography_PrivateKey_DoesNotMatch
Definition SR.cs:84
Definition SR.cs:7
DSAParameters ExportParameters(bool includePrivateParameters)
static X509Certificate2 CopyWithPrivateKey(this X509Certificate2 certificate, DSA privateKey)
ICertificatePal CopyWithPrivateKey(DSA privateKey)