Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ GetSignatureAlgorithmIdentifier()

override byte[] System.Security.Cryptography.X509Certificates.RSAPssX509SignatureGenerator.GetSignatureAlgorithmIdentifier ( HashAlgorithmName hashAlgorithm)
inline

Definition at line 18 of file RSAPssX509SignatureGenerator.cs.

19 {
20 if (_padding != RSASignaturePadding.Pss)
21 {
22 throw new CryptographicException(System.SR.Cryptography_InvalidPaddingMode);
23 }
24 int saltLength;
25 string text;
26 if (hashAlgorithm == HashAlgorithmName.SHA256)
27 {
28 saltLength = 32;
29 text = "2.16.840.1.101.3.4.2.1";
30 }
31 else if (hashAlgorithm == HashAlgorithmName.SHA384)
32 {
33 saltLength = 48;
34 text = "2.16.840.1.101.3.4.2.2";
35 }
36 else
37 {
38 if (!(hashAlgorithm == HashAlgorithmName.SHA512))
39 {
40 throw new ArgumentOutOfRangeException("hashAlgorithm", hashAlgorithm, System.SR.Format(System.SR.Cryptography_UnknownHashAlgorithm, hashAlgorithm.Name));
41 }
42 saltLength = 64;
43 text = "2.16.840.1.101.3.4.2.3";
44 }
45 PssParamsAsn pssParamsAsn = default(PssParamsAsn);
47 {
48 Algorithm = text
49 };
50 pssParamsAsn.MaskGenAlgorithm = new System.Security.Cryptography.Asn1.AlgorithmIdentifierAsn
51 {
52 Algorithm = "1.2.840.113549.1.1.8"
53 };
54 pssParamsAsn.SaltLength = saltLength;
55 pssParamsAsn.TrailerField = 1;
56 PssParamsAsn pssParamsAsn2 = pssParamsAsn;
57 AsnWriter asnWriter = new AsnWriter(AsnEncodingRules.DER);
58 using (asnWriter.PushSequence())
59 {
60 asnWriter.WriteObjectIdentifierForCrypto(text);
61 }
62 pssParamsAsn2.MaskGenAlgorithm.Parameters = asnWriter.Encode();
63 asnWriter.Reset();
64 pssParamsAsn2.Encode(asnWriter);
66 algorithmIdentifierAsn.Algorithm = "1.2.840.113549.1.1.10";
67 algorithmIdentifierAsn.Parameters = asnWriter.Encode();
68 System.Security.Cryptography.Asn1.AlgorithmIdentifierAsn algorithmIdentifierAsn2 = algorithmIdentifierAsn;
69 asnWriter.Reset();
70 algorithmIdentifierAsn2.Encode(asnWriter);
71 return asnWriter.Encode();
72 }
Scope PushSequence(Asn1Tag? tag=null)
int Encode(Span< byte > destination)
Definition AsnWriter.cs:195
static string Cryptography_UnknownHashAlgorithm
Definition SR.cs:152
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string Cryptography_InvalidPaddingMode
Definition SR.cs:46
Definition SR.cs:7

References System.Security.Cryptography.X509Certificates.RSAPssX509SignatureGenerator._padding, System.SR.Cryptography_InvalidPaddingMode, System.SR.Cryptography_UnknownHashAlgorithm, System.Security.Cryptography.Asn1.AlgorithmIdentifierAsn.Encode(), System.Security.Cryptography.Asn1.PssParamsAsn.Encode(), System.Formats.Asn1.AsnWriter.Encode(), System.SR.Format(), System.Security.Cryptography.HashAlgorithmName.Name, System.Security.Cryptography.RSASignaturePadding.Pss, System.Formats.Asn1.AsnWriter.PushSequence(), System.Formats.Asn1.AsnWriter.Reset(), System.Security.Cryptography.HashAlgorithmName.SHA256, System.Security.Cryptography.HashAlgorithmName.SHA384, System.Security.Cryptography.HashAlgorithmName.SHA512, and System.text.