Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
DirectoryStringAsn.cs
Go to the documentation of this file.
2
4
5internal struct DirectoryStringAsn
6{
7 internal string TeletexString;
8
9 internal string PrintableString;
10
12
13 internal string Utf8String;
14
15 internal string BmpString;
16
17 internal void Encode(AsnWriter writer)
18 {
19 bool flag = false;
20 if (TeletexString != null)
21 {
22 if (flag)
23 {
24 throw new CryptographicException();
25 }
26 writer.WriteCharacterString(UniversalTagNumber.TeletexString, TeletexString);
27 flag = true;
28 }
29 if (PrintableString != null)
30 {
31 if (flag)
32 {
33 throw new CryptographicException();
34 }
35 writer.WriteCharacterString(UniversalTagNumber.PrintableString, PrintableString);
36 flag = true;
37 }
38 if (UniversalString.HasValue)
39 {
40 if (flag)
41 {
42 throw new CryptographicException();
43 }
44 if (!Asn1Tag.TryDecode(UniversalString.Value.Span, out var tag, out var _) || !tag.HasSameClassAndValue(new Asn1Tag(UniversalTagNumber.UniversalString)))
45 {
46 throw new CryptographicException();
47 }
48 try
49 {
50 writer.WriteEncodedValue(UniversalString.Value.Span);
51 }
52 catch (ArgumentException inner)
53 {
55 }
56 flag = true;
57 }
58 if (Utf8String != null)
59 {
60 if (flag)
61 {
62 throw new CryptographicException();
63 }
64 writer.WriteCharacterString(UniversalTagNumber.UTF8String, Utf8String);
65 flag = true;
66 }
67 if (BmpString != null)
68 {
69 if (flag)
70 {
71 throw new CryptographicException();
72 }
73 writer.WriteCharacterString(UniversalTagNumber.BMPString, BmpString);
74 flag = true;
75 }
76 if (!flag)
77 {
78 throw new CryptographicException();
79 }
80 }
81}
static string Cryptography_Der_Invalid_Encoding
Definition SR.cs:50
Definition SR.cs:7
static bool TryDecode(ReadOnlySpan< byte > source, out Asn1Tag tag, out int bytesConsumed)
Definition Asn1Tag.cs:87
unsafe ReadOnlySpan< T > Span