init commit
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
using System;
|
||||
using Org.BouncyCastle.Math;
|
||||
|
||||
namespace Org.BouncyCastle.Bcpg;
|
||||
|
||||
public class MPInteger : BcpgObject
|
||||
{
|
||||
private readonly BigInteger val;
|
||||
|
||||
public BigInteger Value => val;
|
||||
|
||||
public MPInteger(BcpgInputStream bcpgIn)
|
||||
{
|
||||
if (bcpgIn == null)
|
||||
{
|
||||
throw new ArgumentNullException("bcpgIn");
|
||||
}
|
||||
int num = (bcpgIn.ReadByte() << 8) | bcpgIn.ReadByte();
|
||||
byte[] array = new byte[(num + 7) / 8];
|
||||
bcpgIn.ReadFully(array);
|
||||
val = new BigInteger(1, array);
|
||||
}
|
||||
|
||||
public MPInteger(BigInteger val)
|
||||
{
|
||||
if (val == null)
|
||||
{
|
||||
throw new ArgumentNullException("val");
|
||||
}
|
||||
if (val.SignValue < 0)
|
||||
{
|
||||
throw new ArgumentException("Values must be positive", "val");
|
||||
}
|
||||
this.val = val;
|
||||
}
|
||||
|
||||
public override void Encode(BcpgOutputStream bcpgOut)
|
||||
{
|
||||
bcpgOut.WriteShort((short)val.BitLength);
|
||||
bcpgOut.Write(val.ToByteArrayUnsigned());
|
||||
}
|
||||
|
||||
internal static void Encode(BcpgOutputStream bcpgOut, BigInteger val)
|
||||
{
|
||||
bcpgOut.WriteShort((short)val.BitLength);
|
||||
bcpgOut.Write(val.ToByteArrayUnsigned());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user