KeyFlags
using Org.BouncyCastle.Utilities;
using System;
namespace Org.BouncyCastle.Bcpg.Sig
{
public class KeyFlags : SignatureSubpacket
{
public const int CertifyOther = 1;
public const int SignData = 2;
public const int EncryptComms = 4;
public const int EncryptStorage = 8;
public const int Split = 16;
public const int Authentication = 32;
public const int = 128;
public int Flags => DataToFlags(base.Data);
private static int DataToFlags(byte[] data)
{
int num = 0;
int num2 = System.Math.Min(4, data.Length);
for (int i = 0; i < num2; i++) {
num |= data[i] << i * 8;
}
return num;
}
private static byte[] FlagsToData(int flags)
{
int num = (32 - Integers.NumberOfLeadingZeros(flags) + 7) / 8;
byte[] array = new byte[num];
for (int i = 0; i < num; i++) {
array[i] = (byte)(flags >> i * 8);
}
return array;
}
public KeyFlags(bool critical, bool isLongLength, byte[] data)
: base(SignatureSubpacketTag.KeyFlags, critical, isLongLength, data)
{
}
public KeyFlags(bool critical, int flags)
: base(SignatureSubpacketTag.KeyFlags, critical, false, FlagsToData(flags))
{
}
}
}