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

◆ ConstructDSSPublicKeyCspBlob()

static byte[] Internal.Cryptography.Pal.X509Pal.ConstructDSSPublicKeyCspBlob ( byte[] encodedKeyValue,
byte[] encodedParameters )
inlinestaticprivate

Definition at line 352 of file X509Pal.cs.

353 {
354 byte[] array = DecodeDssKeyValue(encodedKeyValue);
355 DecodeDssParameters(encodedParameters, out var p, out var q, out var g);
356 int num = p.Length;
357 if (num == 0)
358 {
359 throw (-2146893803).ToCryptographicException();
360 }
361 int capacity = 16 + num + 20 + num + num + 24;
362 MemoryStream memoryStream = new MemoryStream(capacity);
363 BinaryWriter binaryWriter = new BinaryWriter(memoryStream);
364 binaryWriter.Write((byte)6);
365 binaryWriter.Write((byte)2);
366 binaryWriter.Write((short)0);
367 binaryWriter.Write(8704u);
368 binaryWriter.Write(827544388);
369 binaryWriter.Write(num * 8);
370 binaryWriter.Write(p);
371 int num2 = q.Length;
372 if (num2 == 0 || num2 > 20)
373 {
374 throw (-2146893803).ToCryptographicException();
375 }
376 binaryWriter.Write(q);
377 if (20 > num2)
378 {
379 binaryWriter.Write(new byte[20 - num2]);
380 }
381 num2 = g.Length;
382 if (num2 == 0 || num2 > num)
383 {
384 throw (-2146893803).ToCryptographicException();
385 }
386 binaryWriter.Write(g);
387 if (num > num2)
388 {
389 binaryWriter.Write(new byte[num - num2]);
390 }
391 num2 = array.Length;
392 if (num2 == 0 || num2 > num)
393 {
394 throw (-2146893803).ToCryptographicException();
395 }
396 binaryWriter.Write(array);
397 if (num > num2)
398 {
399 binaryWriter.Write(new byte[num - num2]);
400 }
401 binaryWriter.Write(uint.MaxValue);
402 binaryWriter.Write(new byte[20]);
403 return memoryStream.ToArray();
404 }
static unsafe void DecodeDssParameters(byte[] encodedParameters, out byte[] p, out byte[] q, out byte[] g)
Definition X509Pal.cs:411
static unsafe byte[] DecodeDssKeyValue(byte[] encodedKeyValue)
Definition X509Pal.cs:406
virtual void Write(bool value)
virtual byte[] ToArray()

References System.array, System.capacity, Internal.Cryptography.Pal.X509Pal.DecodeDssKeyValue(), Internal.Cryptography.Pal.X509Pal.DecodeDssParameters(), System.IO.MemoryStream.ToArray(), and System.IO.BinaryWriter.Write().

Referenced by Internal.Cryptography.Pal.X509Pal.DecodePublicKey().