353 {
356 int num = p.Length;
357 if (num == 0)
358 {
359 throw (-2146893803).ToCryptographicException();
360 }
361 int capacity = 16 + num + 20 + num + num + 24;
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 }
392 if (num2 == 0 || num2 > num)
393 {
394 throw (-2146893803).ToCryptographicException();
395 }
397 if (num > num2)
398 {
399 binaryWriter.
Write(
new byte[num - num2]);
400 }
401 binaryWriter.
Write(uint.MaxValue);
402 binaryWriter.
Write(
new byte[20]);
404 }
static unsafe void DecodeDssParameters(byte[] encodedParameters, out byte[] p, out byte[] q, out byte[] g)
static unsafe byte[] DecodeDssKeyValue(byte[] encodedKeyValue)
virtual void Write(bool value)