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

◆ ToRSAParameters()

static RSAParameters Internal.NativeCrypto.CapiHelper.ToRSAParameters ( this byte[] cspBlob,
bool includePrivateParameters )
inlinestaticpackage

Definition at line 329 of file CapiHelper.cs.

330 {
331 try
332 {
333 BinaryReader binaryReader = new BinaryReader(new MemoryStream(cspBlob));
334 binaryReader.ReadByte();
335 binaryReader.ReadByte();
336 binaryReader.ReadUInt16();
337 int num = binaryReader.ReadInt32();
338 if (num != 41984 && num != 9216)
339 {
341 }
342 binaryReader.ReadInt32();
343 int num2 = binaryReader.ReadInt32();
344 int num3 = num2 / 8;
345 int count = (num3 + 1) / 2;
346 uint exponent = binaryReader.ReadUInt32();
347 RSAParameters result = default(RSAParameters);
348 result.Exponent = ExponentAsBytes(exponent);
349 result.Modulus = binaryReader.ReadReversed(num3);
350 if (includePrivateParameters)
351 {
352 result.P = binaryReader.ReadReversed(count);
353 result.Q = binaryReader.ReadReversed(count);
354 result.DP = binaryReader.ReadReversed(count);
355 result.DQ = binaryReader.ReadReversed(count);
356 result.InverseQ = binaryReader.ReadReversed(count);
357 result.D = binaryReader.ReadReversed(num3);
358 }
359 return result;
360 }
362 {
363 throw GetEFailException();
364 }
365 }
static CryptographicException GetEFailException()
static byte[] ExponentAsBytes(uint exponent)
virtual byte ReadByte()
virtual ushort ReadUInt16()
virtual int ReadInt32()
virtual uint ReadUInt32()

References System.count, Internal.NativeCrypto.CapiHelper.ExponentAsBytes(), Internal.NativeCrypto.CapiHelper.GetEFailException(), System.IO.BinaryReader.ReadByte(), System.IO.BinaryReader.ReadInt32(), System.IO.BinaryReader.ReadUInt16(), and System.IO.BinaryReader.ReadUInt32().