Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
Pbkdf2Params.cs
Go to the documentation of this file.
2
4
5internal struct Pbkdf2Params
6{
8
9 internal int IterationCount;
10
11 internal int? KeyLength;
12
14
15 private static ReadOnlySpan<byte> DefaultPrf => new byte[14]
16 {
17 48, 12, 6, 8, 42, 134, 72, 134, 247, 13,
18 2, 7, 5, 0
19 };
20
22 {
23 return Decode(Asn1Tag.Sequence, encoded, ruleSet);
24 }
25
27 {
28 try
29 {
31 DecodeCore(ref reader, expectedTag, encoded, out var decoded);
32 reader.ThrowIfNotEmpty();
33 return decoded;
34 }
35 catch (AsnContentException inner)
36 {
38 }
39 }
40
41 private static void DecodeCore(ref System.Formats.Asn1.AsnValueReader reader, Asn1Tag expectedTag, ReadOnlyMemory<byte> rebind, out System.Security.Cryptography.Asn1.Pbkdf2Params decoded)
42 {
43 decoded = default(System.Security.Cryptography.Asn1.Pbkdf2Params);
44 System.Formats.Asn1.AsnValueReader reader2 = reader.ReadSequence(expectedTag);
45 System.Security.Cryptography.Asn1.Pbkdf2SaltChoice.Decode(ref reader2, rebind, out decoded.Salt);
46 if (!reader2.TryReadInt32(out decoded.IterationCount))
47 {
48 reader2.ThrowIfNotEmpty();
49 }
50 if (reader2.HasData && reader2.PeekTag().HasSameClassAndValue(Asn1Tag.Integer))
51 {
52 if (reader2.TryReadInt32(out var value))
53 {
54 decoded.KeyLength = value;
55 }
56 else
57 {
58 reader2.ThrowIfNotEmpty();
59 }
60 }
61 if (reader2.HasData && reader2.PeekTag().HasSameClassAndValue(Asn1Tag.Sequence))
62 {
63 System.Security.Cryptography.Asn1.AlgorithmIdentifierAsn.Decode(ref reader2, rebind, out decoded.Prf);
64 }
65 else
66 {
68 System.Security.Cryptography.Asn1.AlgorithmIdentifierAsn.Decode(ref reader3, rebind, out decoded.Prf);
69 }
70 reader2.ThrowIfNotEmpty();
71 }
72}
static string Cryptography_Der_Invalid_Encoding
Definition SR.cs:50
Definition SR.cs:7
static readonly Asn1Tag Integer
Definition Asn1Tag.cs:13
static readonly Asn1Tag Sequence
Definition Asn1Tag.cs:29
bool HasSameClassAndValue(Asn1Tag other)
Definition Asn1Tag.cs:251
bool TryReadInt32(out int value, Asn1Tag? expectedTag=null)
AsnValueReader ReadSequence(Asn1Tag? expectedTag=null)
unsafe ReadOnlySpan< T > Span
static void Decode(ref AsnValueReader reader, ReadOnlyMemory< byte > rebind, out AlgorithmIdentifierAsn decoded)
static System.Security.Cryptography.Asn1.Pbkdf2Params Decode(Asn1Tag expectedTag, ReadOnlyMemory< byte > encoded, AsnEncodingRules ruleSet)
System.Security.Cryptography.Asn1.AlgorithmIdentifierAsn Prf
static void DecodeCore(ref System.Formats.Asn1.AsnValueReader reader, Asn1Tag expectedTag, ReadOnlyMemory< byte > rebind, out System.Security.Cryptography.Asn1.Pbkdf2Params decoded)
System.Security.Cryptography.Asn1.Pbkdf2SaltChoice Salt
static void DecodeCore(ref AsnValueReader reader, Asn1Tag expectedTag, ReadOnlyMemory< byte > rebind, out Pbkdf2Params decoded)
static System.Security.Cryptography.Asn1.Pbkdf2Params Decode(ReadOnlyMemory< byte > encoded, AsnEncodingRules ruleSet)
static Pbkdf2Params Decode(ReadOnlyMemory< byte > encoded, AsnEncodingRules ruleSet)
static void Decode(ref AsnValueReader reader, ReadOnlyMemory< byte > rebind, out Pbkdf2SaltChoice decoded)